ブログトップ
テンプレートをPHPの制御構文を使って編集する2
2009年10月24日
前回はブロック内でPHPを少しだか書き、
記事のタイトルやリンクが格納された配列を取り出すところまでやりました。
今回は、
配列内の値を使って、
文字数制限を書いていきたいと思います。
<!-- b_block:id="recent_entry_list" -->
<?php
var_dump($recent_entry_list);
exit;
?>
<!-- /b_block:id="recent_entry_list" -->
これで、配列内の一つ目の値を取得します。
取得した配列の値はこちら↓
array(13) {
["index"]=>
string(1) "1"
["index_visible"]=>
bool(true)
["entry_id"]=>
string(2) "77"
["entry_id_visible"]=>
bool(true)
["title"]=>
string(39) "SOY CMSはDreamweaverとなかよし!"
["title_visible"]=>
bool(true)
["entry_link"]=>
string(114) "/blog/emerald_1256349471/article/SOY_CMS%E3%81%AFDreamweaver%E3%81%A8%E3%81%AA%E3%81%8B%E3%82%88%E3%81%97%EF%BC%81"
["entry_link_attribute"]=>
array(1) {
["href"]=>
string(114) "/blog/emerald_1256349471/article/SOY_CMS%E3%81%AFDreamweaver%E3%81%A8%E3%81%AA%E3%81%8B%E3%82%88%E3%81%97%EF%BC%81"
}
["entry_link_visible"]=>
bool(true)
["create_date"]=>
string(10) "1255924146"
["create_date_visible"]=>
bool(true)
["create_time"]=>
string(10) "1255924146"
["create_time_visible"]=>
bool(true)
}
今回はタイトルの表示文字数に文字数制限をかけ、
blogpostにリストとしてリンクを表示するので、
必要な値は
["title"]と["entry_link"]になります。
それらの値を使って、
スクリプトを書いてみると
<!-- b_block:id="recent_entry_list" -->
<?php
//$recent_entry_titleから["title"]の値を取り出し、16文字目以降から「…」と表示する
$entryTitle = $recent_entry_list["title"];
$entryTitle = mb_substr($entryTitle, 0 , 14) . "…";
//記事のリンクを取得する
$getUrl = $recent_entry_list["entry_link"];
//タイトルに<a>タグを追加する
echo "<li><a href=\"" . $getUrl . "\">" . $entryTitle . "</a></li>";
?>
<!-- /b_block:id="recent_entry_list" -->
このようにコードを書いて、サイトを確認すると、
このように表示されます。
今回はシングルバイトとマルチバイトが混在しているので、
タイトルの長さが綺麗に揃いませんでしたが、
SOY CMS内でのPHPの記載は
今回のようなやり方になります。