Drupalう思えば思うほど、ノードidからビューをカスタマイズでリンクをブロック
-
13-09-2019 - |
質問
どのようにして作成ブロックシステムを変更できるのノードIDのページのブロックを現在の座っていますか?
を使用してい景色を大きなチャンクの私がしたいできる"インテリジェントブロックにPHPモードによる動的コンテンツによってどのビューが表示するようにした。
かにすることができますので、$nidるビューは、現在の表示?
解決
ここでノードIDを取得する、より堅牢な方法です。
<?php
// Check that the current URL is for a specific node:
if(arg(0) == 'node' && is_numeric(arg(1))) {
return arg(1); // Return the NID
}
else { // Whatever it is we're looking at, it's not a node
return NULL; // Return an invalid NID
}
?>
この方法は、あなたがpath
および/またはpathauto
モジュールを使用してノードのカスタムパスを持っている場合でも動作します。
path
モジュールをオンにしない場合は、ただ、参考のために、Drupalは発生し、デフォルトのURLは、マニュアルの「システム・パス」と呼ばれています。あなたががはpath
モジュールをオンにしない場合は、文書で「エイリアス」と呼ばれるカスタムパスを設定することができます。
path
モジュールがオンになっているので、、最初に私を混乱一つのことは、それがエイリアスの一部ではなく、システムパスの一部を返すためにarg
機能のために、これまで可能であったかどうかでした。
arg
ので、arg
機能は、常にシステムのパスを返します。機能は、$_GET['q']
は、常にシステムのパスを返すことらしい研究のビットの後$_GET['q']
、あなたは$_REQUEST['q']
を使用する必要があります。 path
モジュールが有効になっている場合、$_REQUEST['q']
エイリアスまたはシステム・パスのいずれかを返すことがあります。
他のヒント
ソリューション、department/%/list
ようなパスの中でビューの引数を必要とする、特に1については、ブログ記事を参照してください。の<のhref = "http://peterpetrik.com/blog/node-id-view -argument-から-SEOフレンドリー-URLパス」のrel = "noreferrer"> SEOフレンドリーなURLパスする の
あなたは、パネルモジュールをconsidder必要があります。これは非常に大きなモジュールであり、あなたは本当にそれの潜在能力を活用することができます前に、いくつかの作業が必要です。だから、considderationにそれを取るます。
あなたはセットアップに異なる領域に配置することができますいくつかのビュー/ブロックを含むページを使用することができます。それはあなたが見ているものに関連する何もすることができ、コンテキストと呼ばれる概念を使用しています。あなたは閲覧をブロックだけでなく、レイアウトを変更するだけでなく、されているノードを決定するために、そのコンテキストを使用することができます。あなたは離れて管理インターフェースからPHPコードを移動することができますので、それはまた、もう少しきれいです。
サイドノートでは、それはまた、ビューの著者によって書かれています。
カップルの方にとって:
お客様のセットのブロックの見通し株式会社エヌアイデイを引数に指定する。
できる手動でパスのアクセスすることにより、株式会社エヌアイデイ
$view
オブジェクトをコードします。この配列で$view->result
.各行のオブジェクトの配列内の株式会社エヌアイデイ"は、そのオブジェクト。ですが、foreachことをすべて取得しますnidのすべての列のか。
最初のオプションが多く、そのニーズにこうと思います。
新しいDrupalの約7:関数menu_get_object()を使用しているノードIDを取得する正しい方法;
例:
$node = menu_get_object();
$contentType = node_type_get_name($node);
のDrupal 8は、別の方法を有しています。これをチェックします:
のarg()に廃止され