特定の URL に基づいて、Drupal ノードの Body フィールドのみを取得して表示する関数を作成しようとしています。
現在、標準の Drupal RSS の機能を拡張して、検出方法を実行しています。これは、次の URL を入力した場合に発生します: http://mysite.com/rss.xml/ page=54
最後の部分は重要です。どのノード ID からロードするかを示します。コードに関する限り、/modules/node/node.module の node_feed() 関数を次のように変更しました。
if (stristr($nids, 'page=') !== FALSE) {
$nid = substr($nids, stripos($nids, 'page=') + 5);
$result = NULL;
if ((string)(int)$nid === $nid) {
$result = db_result(db_query("SELECT `nid` FROM {node} WHERE `nid` = %s AND `type` = 'flashnode'", $nid));
}
if ($result) {
$item = node_load($result);
print($item->body);
}
exit;
}
これは機能しますが、次の 2 つの理由から心配しています。
1) 結果はキャッシュされますか? これは、頻繁に呼び出される非常に負荷の高いページです。
2)これを行う「公式」の方法はありますか?セミハッキーな回避策ではなく、キャッシュ付きのモジュールを使用するものですか?
ご指導いただきありがとうございます。-トム