KumarinX Kaneko Ryogen Jean Michel Kaneko Photography MacOSX

Xoopsのヘッドラインブロックを直リンクにする

はてなアンテナモジュールのように振る舞わせる

 Xoopsのヘッドラインブロックは読み込んだ RSS Feed の各ページへのリンクをクリックしてもダイレクトにそのページにジャンプしないで一度自サイトのヘッドラインページへ誘導してしまう。リンク先に対する態度を表明するようなリンクページならそれでも良いと思うしそうして使っているがアンテナ代わりに使うヘッドラインブロックはそれではちょっと不便だよね。だいたい自分のサイトというのはポータルサイトの使い方をしていると思うので自分の為にもリンク先にダイレクトにジャンプした方が良い。そこでXoopsのヘッドラインを少し書き換えてはてなダイアリーアンテナモジュールのように振る舞うようにした。headline_block.html を以下のように書き換える。

うちのヘッドラインブロックははてなから取得した RSS Feed しか表示しないので RSS Feed のタイトルは邪魔。以下の部分をごっそり削除。
<a href="<{$site_url}>" target="_blank"><{$site_name}></a><br />
<{if $image.url != ""}>
<img src="<{$image.url}>" width="<{$image.width|default:88}>" height="<{$image.height|default:31}>" alt="<{$image.title}>" /><br />
<{/if}>
次ぎに array でリストを生成する部分のヘッドラインブロックページへのリンクをダイレクトにジャンプするように変更
<ul>
<{section name=i loop=$items}>
<{if $items[i].title != ""}>
<li><a href="<{$xoops_url}>/modules/xoopsheadline/index.php?id=<{$site_id}>#<{$items[i].link}>"><{$items[i].title}></a></li>
<{/if}>
<{/section}>
</ul>
の部分を以下のように書き換え(margin-top:-12px を加えたのはブロックタイトルとリストの間隔を他のブロックとそろえるため)
<ul style="margin-top:-12px;">
<{section name=i loop=$items}>
<{if $items[i].title != ""}>
<li><a href="<{$items[i].link}>" target="_blank"><{$items[i].title}></a></li>
<{/if}>
<{/section}>
</ul>

 最後に xoops 管理者ページからモジュール管理へ行ってヘッドラインモジュールのアップデートをかけて終わり。後の xoops バージョンアップ対策としてオリジナルの headline_block.html を headline_block.html.old などとリネームして同じデレクトリに置いておくことにする。