複数の一致するワイルドカードURLパターンにCSSとJSを追加したいのですが。 複数の特定のURLにJavaScriptを追加する によると、 drupal_match_path() を使用してワイルドカードを使用でき、1つのパターンでうまく機能します。ただし、いくつかのパターンを使用して同じJSとCSSを追加しようとしています。これまでのところ、私はこれらを試しました:
// By path matching wildcard patterns.
$path = drupal_get_path_alias();
$pattern = 'portfolio/* || photo-blog';
そして
$path = drupal_get_path_alias();
$pattern = 'portfolio/*, photo-blog';
そして
$pattern = 'portfolio/*' 'photo-blog';
$path = drupal_get_path_alias();
...しかし、これらはどれも機能しません。私はそれが次の文脈では不可能かもしれないと推測しています:
if (drupal_match_path($path, $pattern)) {
// add JS and CSS based on above
}
リンクしたAPIページには、$patterns
引数:
$ patterns:\ n、\ r、または\ r\nで区切られた一連のパターンを含む文字列。
これらは、さまざまなオペレーティングシステムでのキャリッジリターンのタイプです。
すごい....あなたが試してみました:
$pattern = "portfolio/*\nphoto-blog";
// or
$pattern = "portfolio/*\rphoto-blog";
// or
$pattern = "portfolio/*\r\nphoto-blog";
編集:
// for platform portability heh
$pattern = "portfolio/*" . PHP_EOL . "photo-blog";
これは私にso何度も得ました-drupal_match_path()
はパスを区切るために改行文字を期待しています。この関数をプロジェクトに追加し、決して振り返らないでください。
function _get_path_pattern_string(array $items) {
return implode(PHP_EOL, $items);
}
使用例(過度に冗長):
$patterns = array('portfolio/*', 'photo-blog', 'something-else');
$pattern_string = _get_path_pattern_string($patterns);
if (drupal_match_path($path, $pattern_string)) {
// Do something...
}