0

Drupalの2日目で、かなり混乱しています...サイト全体の各ページには(要素を繰り返すための)固有のスタイルが多数あるため、各ページを識別するためにbodyタグに一意のクラス名を追加する必要があります。

オンラインでいくつかのコードスニペットを見つけましたが、機能していません。たとえば、これをtemplate.phpファイルに追加しましたが、機能しません。

function testtheme_preprocess_html(&$vars) { // my theme is called "testtheme"
  $path = drupal_get_path_alias($_GET['q']);
  $aliases = explode('/', $path);

  foreach($aliases as $alias) {
    $vars['classes_array'][] = drupal_clean_css_identifier($alias);
  } 
}

bodyタグにクラスを追加することを想定していますが、何も表示されません。私は何かが足りないのですか、それとも誰かが別の解決策を提供できますか?

4

3 に答える 3

0

正しく理解できなかった場合は申し訳ありませんが、html.tpl.phpファイルのbodyタグにコードを追加して、次のように表示することができます。

<body class="<?php print $classes; ?>" <?php print $attributes;?>>

そしてそれがすべてです。その後、bodyタグはページに従って自動的にcssクラスを持ちます。また、ノードタイプ、ユーザーがログインしたかどうか、ノードIDに関する情報もあります。

それが機能するかどうか、または私が何か間違いをしたかどうかを教えてください。ありがとう、そして幸運を!

于 2012-12-03T09:21:37.987 に答える
0

降雨の答えは本当ですが:body要素ページのdrupalにはすでにページごとに一意のクラスがあります-NAMEPAGE

于 2012-12-03T16:48:34.607 に答える
0

https://www.drupal.org/project/node_classモジュールを変更できます。

1)node_class.moduleのコメント関数node_class_preprocess_node

2)挿入

$node_classes = node_class($node);
if (!empty($node_classes)) $node_classes .= ' ';
$content_column_class = str_replace(' class="','', $content_column_class);
$content_column_class = ' class="'. $node_classes . $content_column_class;

前のpage.tpl.phpで

<section<?php print $content_column_class; ?> id="content_col">
于 2016-06-21T18:27:37.763 に答える