これまでギャラリーに使っていたPholiotをNucleus用に導入するためのプラグイン、NP_Pholiotですが、私の環境ではちょっと問題が出ていました。
あるブログのトップで表示させた場合、その後カテゴリーを選択しても画像が絞り込まれず、はじめに表示したギャラリーが表示されるという問題。これ、1つのブログだけで運用している場合にはあまり問題にはならないのだけど、複数ブログを使用していると、そちらを選択しても他のブログの画像が表示されたままなので気持ち悪いのです。
プラグイン内部では、ブログ移動時やカテゴリ選択時に(Pholiot表示のタイミング)でxmlファイルを更新しているようなので環境の問題なのだろうけど、どの環境でも表示したいしね。
なので、以下のような改造を施しました。
オリジナル69行目~
$this->exquery .= ' and iblog =' . $b->getID();
global $catid;
if($catid) $this->exquery .= ' and icat =' . $catid;
の部分を以下のように変更
$this->exquery .= ' and iblog =' . $b->getID();
global $catid;
$feedFile = 'feed_' . $b->getID(); //add
$Gname = $b->getName();
$Gdesc = $b->getDescription();
if($catid){
$this->exquery .= ' and icat =' . $catid;
$feedFile .='_' . $catid; //add
$Gname = $b->getCategoryName($catid);
$Gdesc = $b->getCategoryDesc($catid);
}
$feedFile .='.xml'; //add
オリジナル96行目
<gallery name="pholiot" description="TEST">
を「削除」
その次の
EOD;
の行のあとに
$feed .= '<gallery name="' . $Gname . '" description="' . $Gdesc . '">';
を追加。
オリジナル112行目
$fp = @fopen($this->getDirectory()."feed.xml","w+");
を
$fp = @fopen($this->getDirectory() . $feedFile,"w+");
に変更
オリジナル118行目
$durl = $this->getAdminURL().'feed.xml';
を
$durl = $this->getAdminURL() . $feedFile;
に変更。
この変更は、ブログ,カテゴリごとに別のxmlファイルを出力するようにして、表示時にそれを読み込ませるようにしたのと、ギャラリー名と説明をブログ名orカテゴリ名とその説明が入るようにした改造です。
これでとりあえず、カテゴリ変更時やブログ変更時でもちゃんと画像が表示されるようになりました。とりあえず満足。
コメント
NP_Pholiot入れてみました♪
NP_Pholiotを入れてみました。
:link:サイケデリックビビアンさんのPholiot
:link:nakahara21.comさんの NP_Pholiot
:link:サクラふぁーむさんの NP_Pholiot052を改造
を参考にブログ別の表示に挑戦してみ…