パンくずリスト表示プラグインです
使い方は wiki を参照してください
ファイルの上書きのみでアップデート完了です
06/11/29 0:40 追記
htmlspecialchars() に ENT_QUOTES を追加
<%ItemNaviEX(0)%> とした時も HOME のリンクが表示されていた不具合を修正
06/11/29 23:50 追記 ver.0.993
表示部分を”部分的に”テンプレート化しました
詳細はこのトピックの最新記事を参照ください
オフライン
バージョンアップお疲れ様です
プラグイン一覧の説明には<%ItemNaviEX()%> or <%ItemNaviEX(0)%>とありますが、
引数はWikiに書いてある方(1か2)でいいんですよね?
1を指定したのですが、Homeのリンク先がデフォルトブログでなく
カレントブログのものになってしまいます。
それと、個人的にアーカイブへのリンクや前後リンクが不要で
パンくずリストだけを表示させたいのですが、可能でしょうか?
オフライン
それと、個人的にアーカイブへのリンクや前後リンクが不要で
パンくずリストだけを表示させたいのですが、可能でしょうか?
374行目以下の
// Print subNavi
// todo Henceforth to template
// echo ' <div style="text-align: center;">';
// echo ' <span style="text-align:right;">';
echo ' <span class="prevnextnavi">';
$endKey = $this->scanEndKey($naviUnit);
if ($skinType != 'archivelist' && $skinType != 'archive' && $skinType != 'item') {
echo '<a href="' . $naviUnit[$endKey][2] . '">» ArchiveList</a>';
}
echo @join(' :: ', $subNaviUnit);
// echo '</div>';
echo '</span>';
// Print mainNavi
unset($naviUnit[$endKey][1]);
$naviVar = array_map(array(&$this, 'createNaviLink'), $naviUnit);
echo '<span class="breadcrumbslist">', @join(' > ', $naviVar);
を
// Print subNavi
// todo Henceforth to template
// echo ' <div style="text-align: center;">';
// echo ' <span style="text-align:right;">';
/* echo ' <span class="prevnextnavi">';
$endKey = $this->scanEndKey($naviUnit);
if ($skinType != 'archivelist' && $skinType != 'archive' && $skinType != 'item') {
echo '<a href="' . $naviUnit[$endKey][2] . '">» ArchiveList</a>';
}
echo @join(' :: ', $subNaviUnit);
// echo '</div>';
echo '</span>';*/
// Print mainNavi
unset($naviUnit[$endKey][1]);
$naviVar = array_map(array(&$this, 'createNaviLink'), $naviUnit);
echo '<span class="breadcrumbslist">', @join(' > ', $naviVar);
とコメントアウトすればパンくずリストだけ出る・・・はず。
なにかおかしかったら言ってくださいm(._.*)mペコッ
Tucker
NucleusCMS 入門サイト計画中&アイデア募集中
オフライン
カザミさん
プラグイン一覧の説明には<%ItemNaviEX()%> or <%ItemNaviEX(0)%>とありますが、
引数はWikiに書いてある方(1か2)でいいんですよね?
えーっとごめんなさい、 wiki の書きもれです
0、1、2の三種類指定できます
<%ItemNaviEX(0)%>
カテゴリ・サブカテゴリ、またはアイテム選択時のみ「HOME」のリンクを表示します(HOME はカレントブログになります)
<%ItemNaviEX%> または <%ItemNaviEX(1)%>
HOME リンクをデフォルトブログのトップとして表示します
<%ItemNaviEX(2)%>
HOME リンクをカレントブログとのトップして表示します
1を指定したのですが、Homeのリンク先がデフォルトブログでなく
カレントブログのものになってしまいます。
うーん…
これはウチでは再現しなかったんですが、モード0 用にちょっと引数の判定変えたんで、ひょっとしたら直ってるかもしれません(ver.0.992)
アップデートはファイルの上書きのみで OK です
あと、パンくずのみの表示の場合は、Tucker さんの改造で OK です
ここらへん、「todo Henceforth to template」って書いてる通りなんで、もう少し先のバージョンになると改造がいらなくなってるかもしれません 8)
オフライン
Tuckerさん、shizukiさん、レスありがとうございます。
パンくずのみの表示、上手く行きました!
Homeのリンク先の方は、ver 0.992 に入れ替えても変わりませんでした
デフォルトブログ http://example.com/
サブブログ http://example.com/blogname/
というような形で作っているんですが、パンくずリスト(<%ItemNaviEX(1)%>指定)は
Home > ブログ > カテゴリ > ~
↑この Home もブログも http://example.com/blogname というリンク先になってます。
最後のスラッシュが消えてるのも(実際何かの影響があるわけではないですが)少し気になります。
カテゴリ以下はまったく問題ありません。スラッシュも付いてます。
関係あるか分かりませんが、NP_CustomURL 入れてます。
こちらの環境の問題でしょうか…
何かヒント等ありましたらご教示ください。よろしくお願いいたします。
オフライン
う~ん…
やっぱりウチのサーバがおかしいのかなぁ…
今ソース見てたらカザミさんの書かれた通りの挙動になるように書いてありました
なので正常に動作するウチの環境がヘンです
夜には修正版をアップしますが、お急ぎであれば196行目あたりからの
//store Home =====================================
// comment out this block when HOME is sub-blog top
if ($showHome == 1) {
$naviUnit[] = array(
0 => 'Home',
1 => createBlogidLink($blogid),
2 => createArchiveListLink($blogid)
);
}
を
//store Home =====================================
// comment out this block when HOME is sub-blog top
if ($showHome == 1) {
$defBlogid =intval($CONF['DefaultBlog']);
$naviUnit[] = array(
0 => 'Home',
1 => createBlogidLink($defBlogid),
2 => createArchiveListLink($blogid)
);
}
に書き換えてください
これで本来の動きになるはずです
お手数かけますがよろしくお願いします
オフライン
こんにちは…。
あまり詳しい事が分からないので上手く説明できるか不安なのですが…
表示のかたちについての質問です。
バージョンアップ以前は横一列に並んでアーカイブやアイテムの前後が右端に表示されていました。
バージョンアップした後はアーカイブやアイテムの前後がHOMEより前の左端に表示されました。
で、06/11/29 のアップで今度は二列になり、アーカイブやアイテムの前後が上に表示されるようになりました。
これをバージョンアップ前の「アーカイブやアイテムの前後が右端に表示」にしたいのですが…。
どの様にすれば宜しいのでしょうか?
お答頂ければ幸いです。
オフライン
バージョンアップ前にどのバージョンをお使いだったかわからないので、推測でItemNaviEX0.92をお使いだったものとしてお答えします。違うようでしたら下記の設定は行わないほうが無難かと思います。
最新版の396行目以降443行目まで
// Print subNavi
// todo Henceforth to template
// echo ' <div style="text-align: center;">';
// echo ' <span style="text-align:right;">';
echo ' <span class="prevnextnavi">';
$endKey = $this->scanEndKey($naviUnit);
if ($skinType != 'archivelist' && $skinType != 'archive' && $skinType != 'item') {
echo '<a href="' . $naviUnit[$endKey][2] . '">» ArchiveList</a>';
}
echo @join(' :: ', $subNaviUnit);
// echo '</div>';
echo '</span><br />';
// Print mainNavi
unset($naviUnit[$endKey][1]);
$naviVar = array_map(array(&$this, 'createNaviLink'), $naviUnit);
echo '<span class="breadcrumbslist">', @join(' > ', $naviVar);
//add Taginfo =====================================
// display selected TAGs whith link mod by shizuki
if ($manager->pluginInstalled('NP_TagEX')) {
// if (requestVar('tag')) {
$tagPlugin =& $manager->getPlugin('NP_TagEX');
$requestT = $tagPlugin->getNoDecodeQuery('tag');
if (!empty($requestT)) {
$requestTarray = $tagPlugin->splitRequestTags($requestT);
$reqAND = array_map(array(&$tagPlugin, "_rawdecode"), $requestTarray['and']);
if ($requestTarray['or']) {
$reqOR = array_map(array(&$tagPlugin, "_rawdecode"), $requestTarray['or']);
}
if ($reqOR) {
$reqTags = array_merge($reqAND, $reqOR);
} else {
$reqTags = $reqAND;
}
for ($i=0;$i<count($reqTags);$i++) {
$tag = trim($reqTags[$i]);
$taglist[$i] = '<a href="' . $tagPlugin->creatTagLink($tag, 0) . '">'
. htmlspecialchars($tag, ENT_QUOTES, _CHARSET) . '</a>';
}
echo ' <small style="font-family:Tahoma;">';
// echo ' (Tag for "'.$tagPlugin->_rawdecode(requestVar('tag')).'")';
echo ' (Tag for "' . @join(' / ', $taglist) . '")';
echo '</small>';
}
}
echo '</span>';
↑こちらを
// Print subNavi
// todo Henceforth to template
echo ' <div style="float: right;"><small>';
$endKey = $this->scanEndKey($naviUnit);
if ($skinType != 'archivelist' && $skinType != 'archive' && $skinType != 'item') {
echo '<a href="' . $naviUnit[$endKey][2] . '">» ArchiveList</a>';
}
echo @join(' :: ', $subNaviUnit);
echo '</small></div>';
// Print mainNavi
unset($naviUnit[$endKey][1]);
$naviVar = array_map(array(&$this, 'createNaviLink'), $naviUnit);
echo @join(' > ', $naviVar);
//add Taginfo =====================================
// display selected TAGs whith link mod by shizuki
if ($manager->pluginInstalled('NP_TagEX')) {
// if (requestVar('tag')) {
$tagPlugin =& $manager->getPlugin('NP_TagEX');
$requestT = $tagPlugin->getNoDecodeQuery('tag');
if (!empty($requestT)) {
$requestTarray = $tagPlugin->splitRequestTags($requestT);
$reqAND = array_map(array(&$tagPlugin, "_rawdecode"), $requestTarray['and']);
if ($requestTarray['or']) {
$reqOR = array_map(array(&$tagPlugin, "_rawdecode"), $requestTarray['or']);
}
if ($reqOR) {
$reqTags = array_merge($reqAND, $reqOR);
} else {
$reqTags = $reqAND;
}
for ($i=0;$i<count($reqTags);$i++) {
$tag = trim($reqTags[$i]);
$taglist[$i] = '<a href="' . $tagPlugin->creatTagLink($tag, 0) . '">'
. htmlspecialchars($tag, ENT_QUOTES, _CHARSET) . '</a>';
}
echo ' <small style="font-family:Tahoma;">';
// echo ' (Tag for "'.$tagPlugin->_rawdecode(requestVar('tag')).'")';
echo ' (Tag for "' . @join(' / ', $taglist) . '")';
echo '</small>';
}
}
// echo '</span>';
と置き換えれば以前と同じ表示になるはずです。未検証ですが・・・ :idea:
Tucker
NucleusCMS 入門サイト計画中&アイデア募集中
オフライン
表示部分の変更がしやすいようにちょっとだけテンプレート化しました
[list=][*]subnaviTemplate
サブナビゲーション部分(前後へのリンク・アーカイブリストへのリンク表示部分)
<%archivedata%>:アーカイブリストへのリンクを表示します
<%subnavi%>:前後ページへのリンクを表示します
[/*]
[*]topicPathTemplate
パンくずリスト表示部分
<%topicpath%>:パンくずリストを表示します
<%taglist%>:「tagListTemplate」で指定します
[/*]
[*]tagListTemplate
「topicPathTemplate」の<%taglist%>部分のテンプレート
NP_TagEX 使用時の選択中のタグをリンクつきで表示します
[/*][/list]
中身については現在のところ従来どおりになります
適当に「div」や「span」でくくってスタイル指定して使ってください
デフォルトは両方「div」でくくってあります
バージョンアップは「削除 -> 再インストール」でお願いします
ぽちさんへ
このアップデートで”見た目だけ”は以前と同じになります(厳密には違います)
オフライン
>shizukiさん
早速アップデートしてみました。
オプションのテンプレート指定、いいですね
Homeのリンクも直りましたし、大満足です。
どうもありがとうございました。
オフライン
アーカイブ右側に表示されるようになりました。
ありがとうございました。 ペコリ(o_ _)o))
オフライン
再びすみません…(o*。_。)oペコッ
HOMEへのリンクが変です…。
<%ItemNaviEX(1)%>の記述で、Home部分のリンクが、
http://honya/カレントのブログの短縮名/blog/ブログID
となり、defaultブログにはリンクされず、カレントブログが開いてしまします。
よろしくお願いします。
オフライン
えーっと、状況が再現できないんでちょっと…
ひょっとしたら NP_CustomURL の方かも
とりあえず NP_CustomURL をアップデートして試してみてください
すくなくとも「/blog/ブログのID」はきえるはずです
オフライン
お忙しいのに度々すみません…。
私のサイトはFancyURLの複数ブログです。
NP_ExtraSkinJPを使っていて、NP_RightURLを入れています。
(記憶が定かではないのですが、一緒に入れた方が良いと書いてあったのでそのようにしたと思います…)
ためしにNP_RightURLをプラグインから外した所、正しくリンクされるようになりました。
このままNP_RightURLを外して良いのかの判断もつきかねています。
お答頂ければ幸いです。
オフライン
あー、なるほど
RightURL が $CONF['BlogURL'] をカレントブログに書き換えてますからねぃ
どうしよっかな…
別に RightURL 無くても問題は無いと思うけど、たまに URLヘンになっちゃいますよねぇ
とりあえず、 NP_ItemNaviEX.php の197行目からの
//store Home =====================================
// comment out this block when HOME is sub-blog top
if ($showHome == 1) {
$defBlogid =intval($CONF['DefaultBlog']);
$naviUnit[] = array(
0 => 'Home',
1 => createBlogidLink($defBlogid),
2 => createArchiveListLink($blogid)
);
}
ここを
//store Home =====================================
// comment out this block when HOME is sub-blog top
if ($showHome == 1) {
$defBlogid =intval($CONF['DefaultBlog']);
$tmpB =& $manager->getBlog($tmpB);
$naviUnit[] = array(
0 => 'Home',
// 1 => createBlogidLink($defBlogid),
1 => $tmpB->getURL(),
2 => createArchiveListLink($blogid)
);
}
で解決すると思います
もうちょっと考えたいことがあるんで公開は待ってください
オフライン
書かれている通りに変更したところ
<%ItemNaviEX(1)%>
の記述で、Homeが表示されLinkが無い状態になりました。
もうちょっと考えたいことがあるんで公開は待ってください
急いでいる訳ではないので…じっくり考えて下さい
オフライン
また typo … orz
$tmpB =& $manager->getBlog($tmpB);
の部分は
$tmpB =& $manager->getBlog($defBlogid);
です :oops:
オフライン
お忙しいのにありがとうございます
きちんと表示されるようになりました。
感謝感謝です(゜▽゜*)♪
オフライン
Shizukiさん、はじめまして。
パンくずリストプラグイン、大変重宝しております。
ひとつ困ったことがあり、自分でどうしても解決できないのでお聞きします。
NP_CustomURLプラグインとNP_ItemNaviEXを併用していて、http://ブログのURL/ブログのショートネーム/で運用しています。
そのカテゴリページにパンくずリストを表示させているのですが、Homeのリンクの最後に"/(スラッシュ)"が付いてくれません。 :cry:
もしかしたらNP_ItemNaviEX側の話ではないかもしれませんが、ご回答よろしくお願いします。
オフライン
Homeのリンクの最後に"/(スラッシュ)"が付いてくれません。
CustomURL側の問題でしょうね
週末にアップデートしますのでしばらくお待ちください
オフライン
Homeのリンクの最後に"/(スラッシュ)"が付いてくれません。
CustomURL側の問題でしょうね
週末にアップデートしますのでしばらくお待ちください
早速のご返事ありがとうございます。
アップデート心待ちにしています!
オフライン
いつもお世話になっております。
NP_ItemNaviEXのVer.0.993をNucleus Ver.3.24で利用させて頂いております。
(近日中にNucleusをV3.3へアップデート予定です)
以前Funcy URLで利用していたときは正常動作していたと思うのですが、
先日サーバを移転し、現在のサーバでは、Funcy URL化できなかったため
Nomal URLでの運用に切替えました。
複数ブログで運用しており、デフォルトブログに別ブログの
記事タイトルリストなどを表示したり、同ブログ内でも
メインの目次ページにはタイトルリストのみを表示し、そこから
個別アイテムを開くような形にしている箇所があるのですが、
カテゴリごとに見た目を変えたり、コーナーのように分けて
利用してるため、タイトルリスト用のテンプレートで
個別アイテムのURLにカテゴリIDを付けるように記述しています。
以前はFuncy URLでの運用だったので、タイトルリスト用のテンプレートに
<a href="<%itemid%>/catid/<%catid%>"><%title%></a>
のように記述し、ItemNaviEXでの前後リンク等も
ちゃんとカテゴリで絞り込みされていたと記憶しています。
Nomal URLに変わってしまったので、テンプレートの記述を
<a href="<%itemid%>&catid=<%catid%>"><%title%></a>
に変更しました。
これで表示されたタイトルリストから個別アイテムを開くと、
開いた個別アイテムには正常にカテゴリIDが付加され、
正しいURLで開けています。
この時、パンくずリストは
Home>カテゴリ>アイテムのタイトル
と表示されるのですが、この時のカテゴリURLが
http://mysite.url/blog1/?catid=XX/catid/XX
となってしまいます。
テンプレートでアイテム表示時にカテゴリIDを付加しているので、
?catid=xxと付いているのだと思うのですが、
どうやらItemNaviEXの方でその後ろにカテゴリIDを
FuncyURL形式でくっつけてくれるみたい?で…。
ただ、この場合は先の ?catid=XX が有効になり、
後ろの /catid/XX は無視されますので、
カテゴリの絞込み自体には問題はないため、
あまり気にしてはいないのですが…。
問題は、この時の前後アイテムへのリンクURLで、
catid=の前の&が、&となってしまい、
カテゴリで絞り込めなくなるようなのです。
http://mysite.url/blog1/?itemid=XX&catid=XX
↑こんな感じです。
これが
http://mysite.url/blog1/?itemid=XX&catid=XX
になってくれると嬉しいのですが…。
現時点では前後リンクを開くと、itemidだけのURLになってしまい、
カテゴリ選択状態が解除されてしまいます。
また、普通にブログを開いてからカテゴリを選択すると、
パンくずリストのカテゴリのURLは
http://mysite.url/blog1/?catid=XX
のように正常なURLになっています。
ですが、この時も前後アイテムへのURLは上記同様
http://mysite.url/blog1/?itemid=XX&catid=XX
となってしまい、これで前後アイテムに移動すると
カテゴリ選択状態が解除されてしまいます…。
何かこれらの回避方法(修正方法?)はありますでしょうか?
もしくは…タイトルリスト用のテンプレートの記述が悪いのでしょうか?
テンプレートでタイトルリストを表示する時に
カテゴリIDを含める場合の良い記述方法が他にあるようでしたら
ご教授いただければ嬉しく思うのですが…。
パンくずリストや前後アイテムへのリンクはとても便利で
今後も利用していきたいと思うのですが、
カテゴリが解除されてしまうと、見た目が変わってしまったり(苦笑)
少々閲覧上面倒くさいことになってしまうような構成に
している部分もあり、何とか解消できればうれしいなぁと
思っているのですが。
上手く説明できず申し訳ありません。
どうぞよろしくお願いいたします。
オフライン
修正してみました
多分大丈夫だとは思いますが、もしかすると他で影響が出るかも知れません
オフライン
shizukiさん
お世話になっております!
お忙しい中、修正してくださって有難うございます!
私のところでは他の不具合も出ずに正常動作しているようです
本当に助かりました!
有難うございました
オフライン
たぶんものすごく単純な話だと思うんですが、わからなかったので教えてください。
NP_ItemNaviEXを入れると、カテゴリごとの表示では「«Prev | | Next»」って出ますよね。
この、「Prev」とか「Next」とかって文字はどこをどういじれば変更できるんでしょうか?
プラグイン本体などを検索しても出てこないように思うんですが……。
ホントすいませんつまんない話で。
オフライン