picoモジュールで記事の先頭にメニューを設置したい。
タツ
投稿数: 2447
よくブログなどを見ると最初に記事内容が表示されていてこれええなぁと思うことがあります。現在、このサイトでは記事掲載が便利なpicoモジュールを利用していて、オリジナルのpicoモジュールでは記事の項目をサイドに表示するのが限界です。無理矢理メニューを手動で掲載する方法もありますが、記事が多いのでそれぞれに作っていくにはあまりにも無謀です。どうにかならないかと試行錯誤した結果次のように修正して掲載してみました。その時の忘備録です。
サーバーにて
xoops_trust_path/modules/pico/templates/block_menuファイルを複製し名前を変更(block_menu_head)しこのファイルを追加します。
→xoops_trust_path/modules/pico/templates/block_menu_headを追加(FTP等でこのファイルをアップロード追加)
サイト管理画面にて
picoモジュールを利用したモジュールをアップデートします。
テンプレートを編集に「モジュール名_block_menu_head」というテンプレートが作成されるので現在利用しているテンプレートにコピーし以下のように編集します。
テンプレートを編集
モジュール名_block_menu
サイドにカテゴリーだけの表示でOKなのでカテゴリー内の項目については表示しません。
モジュール名_block_menu_head
このテンプレートについては表示されたカテゴリーと一致した場合、その題名と項目を表示します。
※因みにclass="line_block"は項目の前に印を入れるCSSです。
ALTSYSブロック管理にて設定
ブロック管理にて表示したいpicoモジュールのメニューを複製し編集します。この時、ブロックのテンプレートの項目には先ほど編集したdb:モジュール名__menu_headを指定します。また、タイトルは表示されるとタブってしまうのでnoneを入れて表示しないようにします。
今のところpicoモジュールを利用しているものについて全部(ソロツーリングを楽しもう!、バイクメンテとD.I.Y、世界一周の旅を楽しもう!、趣味を楽しもう)に反映しています。
サーバーにて
xoops_trust_path/modules/pico/templates/block_menuファイルを複製し名前を変更(block_menu_head)しこのファイルを追加します。
→xoops_trust_path/modules/pico/templates/block_menu_headを追加(FTP等でこのファイルをアップロード追加)
サイト管理画面にて
picoモジュールを利用したモジュールをアップデートします。
テンプレートを編集に「モジュール名_block_menu_head」というテンプレートが作成されるので現在利用しているテンプレートにコピーし以下のように編集します。
テンプレートを編集
モジュール名_block_menu
サイドにカテゴリーだけの表示でOKなのでカテゴリー内の項目については表示しません。
<{foreach item=category from=$block.categories}>
<div style="margin:5px 0 0;padding:3px;background-color:#f7f7f7;">
<a href="<{$block.mod_url}>/<{$category.link}>">
<b>■<{$category.title}></b>
</a>
</div>
<{/foreach}>
モジュール名_block_menu_head
このテンプレートについては表示されたカテゴリーと一致した場合、その題名と項目を表示します。
<{foreach item=category from=$block.categories}>
<{if $category.id == $smarty.get.cat_id }>
<h3><{$category.title}>のメニュー</h3>
<{foreach item=content from=$category.contents}>
<{if $block.mod_url|cat:"/"|cat:$content.link == $xoops_url|cat:$smarty.server.REQUEST_URI}>
<div style="border:8px solid #eee;padding:1em 1em 0 1em;">
<div class="line_block">
<ul><{foreach item=content from=$category.contents}><li style="margin:5px 0;"><a href="<{$block.mod_url}>/<{$content.link}>" title="<{$block.lang_lastupdated}>:<{$content.created_time_formatted}>"><{$content.subject}></a></li>
<{/foreach}>
</ul>
</div>
</div>
<{/if}>
<{/foreach}>
<{/if}>
<{/foreach}>
ALTSYSブロック管理にて設定
ブロック管理にて表示したいpicoモジュールのメニューを複製し編集します。この時、ブロックのテンプレートの項目には先ほど編集したdb:モジュール名__menu_headを指定します。また、タイトルは表示されるとタブってしまうのでnoneを入れて表示しないようにします。
今のところpicoモジュールを利用しているものについて全部(ソロツーリングを楽しもう!、バイクメンテとD.I.Y、世界一周の旅を楽しもう!、趣味を楽しもう)に反映しています。
投票数:15
平均点:4.67
投稿ツリー
-
picoモジュールで記事の先頭にメニューを設置したい。
(タツ, 2019/7/26 11:23)
- Re: picoモジュールで記事の先頭にメニューを設置したい。 (タツ, 2019/8/12 16:21)
- Re: 再考-picoモジュールで記事の先頭にメニューを設置したい。 (タツ, 2023/2/25 5:02)