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>');
?>
とかすれば、本文表示の下に表示される。 これで、少しづつブロックが減らせることができる。