2

私はmodule_invoke()ブロックを含めるために使用していますが、このブロックで親コンテンツタイプページに含まれる値を読み取る必要があります。$nodeでは、ビューからブロック内の変数を取得するにはどうすればよいですか?

私が使用しているコード:

<?php
    $block = module_invoke('my_blocks', 'block', 'view', 7);
    print $block['content'];
?>

$nodeここで、「my_blocks」にアクセスする必要があり、変数は空です。それを取得するにはどうすればよいですか?

助けてくれてありがとう!

よろしく

4

2 に答える 2

1

Drupalの方法に対する少しの修正:


    function InMODULE_or_InTHEME_get_current_node() {
      if ((arg(0) == 'node') && (is_numeric(arg(1))) && (!arg(2))) return node_load(arg(1));
      return null;
    }

コメント:node_loadはノードをキャッシュするので、パフォーマンスについて心配する必要はありません。
「!arg(2)」は、ノード編集モード(またはそのようなもの)にないことをチェックしています。

于 2010-01-26T23:34:24.637 に答える
1

コンテキストモジュールまたはカオスツールがそれを助けることができると思いますが、これが私が最近同じことをした方法です:

function myModule_get_current_node() {
    $path_arr = explode('/', $_GET['q']);
    if ($path_arr[0] == 'node') $result = node_load($path_arr[1]);
    else $result = null;
    return $result;
}
于 2010-01-26T23:22:48.500 に答える