私は、特定のURLに基づいてDrupalノードのBodyフィールドだけを取得して表示する関数を作成しようとしています。Drupal - URLを介してノードの本文を取得しますか?
現在、標準のDrupal RSSの機能を拡張して検出方法を行っています。それからロードするためにどのようなノードID告げる - http://mysite.com/rss.xml/最後の部分が重要であることをページ= 54
:これは、次のURLを入力した場合に発生します。限りコードが行くように、私は次の操作を行うための/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)「公式」これを行う方法はありますか?セミハックな回避策の代わりに、キャッシュを持つモジュールを使用するもの?
ご指摘いただきありがとうございます。 -Tom
私はDrupal 6を使用しています。私はあなたの提案 - カスタムモジュールの構築 - に行きました。とてもうまく動作します!フェッチボディを使用せず、代わりに$ _GETを取得し、それが入ってくる変数を検査し、それに応じて動作します。どうもありがとうございました。 –
これはうまくいきますが、実際にはDrupalにはURLの解析と$ _GETの追加機能があります。 – Eli