確実に自分しか使わないプラグインを作成しました。誰も使わないという自信はかなりのものですけれど、せっかくなので公開しておきます。
今までストIIIサイトの右上の大会開催の項目は手動でリンクをはってましたが、これが実に面倒なのです。記事投稿、記事表示、記事のタイトルをコピー、大会ページを開く、上下関係を考慮してからタイトルをペースト、記事のURLをコピー、大会ページを開く、Aタグを書く、URLをペースト、保存、キャッシュクリアのために任意の記事を再保存、と流れを聞いただけでもイヤになるでしょ?
そこで大会開催記事を追加しただけで、サイドバーに未開催の大会開催カテゴリの記事一覧を表示するプラグインを作ってみました。いや、作ってみたと言うよりは佐藤(な)さんの NP_znCateList を改造させていただいた、と言った方が正確ですね。こちらが存在してなかったら作成できなかったと思います。本当にありがとうございます。
処理内容は、大会開催カテゴリ(当サイトでは4)から本日以降の記事タイトルを抽出し、年号は除去して表示する、という流れになっています。
<?php
// 佐藤(な)さん(http://wa.otesei.com/)の NP_znCateList を改造させていただきました。
// プラグインがNucleusバージョン2.0以下と互換性を持つために必要
if (!function_exists('sql_table')){
function sql_table($name){
return 'nucleus_' . $name;
}
}
class NP_TaikaiShow extends NucleusPlugin {
// プラグインの名前
function getName(){ return 'taikai'; }
// プラグインの作者
function getAuthor(){ return '嶽花'; }
// プラグインのサイトURL
function getURL(){ return 'http://www.takehana.tv/cccc/index.php?itemid=1529'; }
// プラグインのバージョン
function getVersion(){ return '0.1'; }
// インストール済みのプラグインリストに表示される説明文
function getDescription(){
return '嶽花専用プラグイン。未開催の大会開催カテゴリの記事タイトルを表示します。';
}
// カスタムプレフィックスがセットされている場合でバージョンが2.0より大きい場合の為に
function supportsFeature($what){
switch($what){
case 'SqlTablePrefix':
return 1;
default:
return 0;
}
}
//■スキン変数の実装
function doSkinVar() {
//グローバル変数
global $CONF;
//本日の日付
$today = date("Y/m/d");
//表示のためのSQL文(大会開催カテゴリ4から、本日以降の記事タイトルを抽出)
$sql_str = 'SELECT *, inumber item_id FROM '.sql_table("item").' WHERE '.
'icat= 4 and ititle>="'.$today.'" and ititle<="2999/12/31"'.
'ORDER BY ititle ASC';
$qid = mysql_query($sql_str);
//タイトル表示カウント
$count = 0;
echo "<ul class='nobullets'>";
//サイトでの表示
while ($row = mysql_fetch_array($qid)){
$count = $count + 1;
//FancyURLかどうか
if ($CONF['URLMode'] == 'pathinfo'){
$item_url = $blogurl."item/".$row["item_id"];
} else {
$item_url = $blogurl."index.php?itemid=".$row["item_id"];
}
//表示記事タイトルから年を除去する
$t_title = substr($row["ititle"], 5, strlen($row["ititle"]));
echo "<li><a href='".$item_url."'>".$t_title."</a></li>";
}
echo "</ul>";
//表示タイトルがゼロでないならばBRタグを表示
if ($count > 0 ){
echo "</br>";
}
}
}
?>
使い方ですが、上記のソース部分を NP_TaikaiShow.php とファイル名をつけてアップロードし、プラグインを管理画面からインストールした後、表示したいスキンの中に下記を記載してださい。これだけで表示されます。
<%TaikaiShow%>
表示したいカテゴリを変えたいとか、時間で抽出しないようにしたい、といった場合などはプラグイン内のSQL文の部分を書き換えればいろいろ対応できるかと思います。本当はプラグイン管理画面で設定値を変えられたりした方が便利なんでしょうけれど、自分以外が使うシーンを想像できなかったんで省略しました。
コメント
Nucleus プラグイン製作者がどんどん増えますねぇ〜。わぉ^o^)
製作者といえるのかどうかは何ともいえないですけど、そちらのプラグインで貴重な一歩を踏み出せたんじゃないかと思います。コメントも適切で、大変勉強になりました。ありがとうございます。