ブロックが増えすぎて順序の変更ができない

2012.11.24

Drupal6でブロック表示が256個で順序の保存ができなくなった。 そこで出てきたのが、ブロックの削減だ。

いつもViewsで、

コンテンツタイプのリスト表示でページを1個。 コンテンツタイプごとに新着表示のリストでブロックを1個。 ノードを開いたときに、ノード下にそのコンテンツタイプの最新10件表示でブロックを1個。

1つのコンテンツタイプで使用するのに3つ。

こんなことをしていたら、ブロックが256個以上になってしまった。

そこで、自分なりに考えて解決策として、 各コンテンツタイプのフィードから新着表示リストと最新10件表示を生成してしまおうと・・・。

Viewsでフィードを追加して 引数でノード:タイプを選択 パスは、%/feed or %/rss.xml など フィルターで、コンテンツタイプを指定 保存したら、 xmlを好きな方法で読み込む。

(1)Content Templatesの本文のところに挿入

(2)page.tpl.php page-[front or pathとか].tpl.php
の一番下に、例えば

$rss = simplexml_load_string($file);
print('<h2>' . $rss . '</h2>'); ?>

とかすれば、本文表示の下に表示される。

(3)node.tpl.php node-[コンテンツタイプ].tpl.php の一番下に

<?php $xmlTree = simplexml_load_file('http://aaaaaaaaaaa/hanbai/123456.xml');
print('<div><h2>タイトル</h2></div>');
print('<table>');
print('<tr><th>名前</th><th>住所</th><th>地図</th></tr>');
foreach($xmlTree->channel->item as $item) { print('<tr><td>' . $item->title . '</td><td>' . $item->description . '</td><td>' . $item->link .'</td></tr>');
}
print('</table>');
?>

とかすれば、本文表示の下に表示される。 これで、少しづつブロックが減らせることができる。