Skip to main content.

[72] 記事本文に短縮コマンドを埋め込む(ISBNコードなど)

たとえば、記事内に
<%isbn(ISBN4-88474-629-5)%>
と書くだけで、ページ表示時にamazonへのリンクとかを自動的に展開する方法。
仕組みは簡単で、記事を表示する際にこのコードを見つけて自動的に文字置換を行うだけのものです。
<%media(***.zip|)%>と書いたら勝手にファイルリンクタグを表示してくれるのと一緒。

1)BLOG.phpの編集
◆function getDefinedActions()内のarrayにある、
'image',
'popup',
という行を
'image',
'popup',
'isbn',
という具合に、'isbn'要素を追加。

◆function parse_image()と、
function parse_popup()との間に、function追加
	function parse_Isbn() {

// image/popup calls have arguments separated by |
$args = func_get_args();
$args = explode('|',implode($args,', '));
call_user_func_array(array(&$this,'createIsbnCode'),$args);
}



◆function highlightAndParse(&$data)内の
$this->parser->actions = array('image','media','popup');
を以下のように修正。
$this->parser->actions = array('image','isbn','media','popup');
順序はどこでも良いと思います。

◆function createImageCodeとfunction createMediaCodeとの間にfunction追加。
==============
function createIsbnCode($isbn, $width, $height, $text = '') {
global $CONF;

$isbncode = str_replace(array("-","ISBN"),"",$isbn);

$vars['text'] = htmlspecialchars($isbn);
$vars['isbncode'] = htmlspecialchars($isbncode);
$vars['link'] = htmlspecialchars($CONF['MediaURL']. $isbncode);
$vars['image'] = '<img src="' . $vars['link'] . '" width="' . $width . '" height="' . $height . '" alt="' . $vars['text'] . '" />';



echo TEMPLATE::fill($this->template['ISBN_CODE'],$vars);;

}
==============
余計なコードがいっぱい入っているのはご容赦下さい。

2) ADMIN.phpの編集
◆$this->_templateEditRow($template, _TEMPLATE_MCODE, 'MEDIA_CODE', '', 260);
という行の下に次の1行追加
==============
$this->_templateEditRow($template, _TEMPLATE_ISBNCODE, 'ISBN_CODE', '', 250001);
==============

◆$this->addToTemplate($templateid, 'IMAGE_CODE', postVar('IMAGE_CODE'));
という行の下に1行追加
==============
$this->addToTemplate($templateid, 'ISBN_CODE', postVar('ISBN_CODE'));
==============

3)japanese.phpの編集

4)テンプレート編集
ここまでやったら、管理エリアでテンプレートの編集に入ってこのISBNテンプレートの中身を記述します。
例えば、
=============
<%text%>
<br />
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/<%isbncode%>/□□□□□/">amazon</a>
<br />
<a href="
http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?GUSR=&RECNO=1&HITCNT=10&W-ISBN=<%isbncode%>" target="_blank">紀伊国屋</a>
=============
と書けば、ISBNコードと、このISBNで検索されるamazonサイト、紀伊国屋サイトへのリンクが生成されます。□□□□□部分は、自分のアフリエイトIDを書きます。(なくてもいいけど)

ここまでの作業で、自分で手動で記事本文に
<%isbn(ISBN4-88474-629-5)%>
と書いたらちゃんと展開するかどうか、確認してみてください。

さて、次は、ISBNボタンを記事エディタにつけてみましょう。

1)edit.jsの編集 2003-12-26修正
◆function italicThis() { insertAroundCaret('<i>','</i>'); }
の次の行に
function isbnThis() { insertAroundCaret('<%isbn(',')%>'); }
を挿入


◆function ahrefThis()の次に、以下のfunctionを追加
=============
function isbnThis() {
if (document.selection)
strSelection = document.selection.createRange().text;
else
strSelection = '';

strHref = prompt("ISBNコード:","ISBN");
if (strHref == null) return;

var textpre = "<%isbn(" + strHref ;
insertAroundCaret(textpre, ")%>\n");
}
=============
以下はエラーが出る場合があるので、取り消しました。
=============
function isbnThis() {
if (document.selection)
strSelection = document.selection.createRange().text;
else
strSelection = '';

strHref = prompt("ISBNコード入力\nISBNからはじめてください","ISBN");
if (strHref == null) return;
strHrefto = strHref.replace(/ISBN/g, '').replace(/-/g, '');

var textpre = "<%isbn(";
var textpost = ")%>";

var textEl = lastSelected;
var caretPos = textEl.caretPos;
caretPos.text = textpre + strHref + textpost;

updAllPreviews();
}

=============

2)PAGEFACTORY.phpの編集
◆$this->_jsbutton('link',"ahrefThis()",_ADD_HREF_TT ." (Ctrl + Shift + A)");
の次に
$this->_jsbutton('isbn',"isbnThis()","ISBN生成");
という1行を挿入
保存の際は、文字コードに気をつけてください。自分のサイトの文字コードで保存してください。

3)ボタンの画像をサーバに置く

↑この画像を
nucleus/images ディレクトリに
button-isbn.gif
という名前で転送してください。

これで、おしまい。








Comments

Cizc8M djG39Bsk4chHy2M0xpk2Fv

Posted by sammi at 02/03/09 23:32:21
Posted by jerry at 02/26/09 04:51:34

u1DETP dkv7Rq29nVvzm74lApqSw

Posted by richard at 05/11/09 10:02:06

This site is crazy :)

Posted by Ypnxyatc at 06/16/09 06:38:27

bIuaIy gjO3ndMZzq61Mcak6f19U

Posted by nikolas at 06/20/09 05:55:00

優雅な女性との一夜をお過ごしくださいませ

Posted by セックス at 01/20/10 20:58:55

Add Comment

:

:
: