1

ここで初めてポスターを作成します。私はデザイナーであり、php にまったく熟練していません。解決できないと思われる小さな問題があります。禅のサブテーマを使用して drupal 7 でサイトを作成しています。ところで、これは優れた CMS ですが、実際には開発者向けの CMS だと人々は言います。ビュー、ルール、ディスプレイ スイートなどを使用して必要なことを行うのに問題はありません。このような優れた CMS を作成してくれたすべての開発者に感謝します。しかし、この一見単純な問題では...モジュールは役に立たず(私は思う)、ちょっと行き詰まっています。

すべてのページのタイトルの横にサブタイトルを追加したいと思います。

ということで、コンテンツタイプ基本ページ(マシン名:field_sub_title)にカスタムフィールドを追加してみました。これは単純なテキストフィールドです。

template.php の次の行のコメントを外しました

function mytheme_preprocess_page(&$variables, $hook) { $variables['sub_title'] = t('field_sub_title'); }

ここで私の質問は、カスタム フィールドの内容をその変数にロードする方法です。2番目の部分を変更する必要があることはわかっていますが、これを変更する必要があるかどうかについての手がかりがありません.

変数を page.tpl.php に表示することは私が知っていることなので、最初の部分だけで助けが必要です。

{編集}わかりました、これを行う方法を見つけました:)

私は間違った場所で解決策を探していました。template.php ファイルを変更する必要はありません。

このコードを page.tpl.php に追加する必要がありました。

<?php
print $node->field_sub_title['und'][0]['value'];
?>

だから私はこれに苦労している他の Drupal 初心者のためにここに投稿しています....

4

2 に答える 2

0

あなたの解決策は今のところうまくいくかもしれませんが、このような問題を処理するためのもっとDrupal-yの方法があるかもしれません。まだ問題に気付いていない場合は、次の問題の1つ以上が発生する可能性があります。

  • phpまたはDrupalのテーマを知らない人は、これが機能する方法を変更する必要があるかもしれません。
  • あなたが私のようなら、これがコードのどこに実装されたかを忘れてしまうかもしれません。
  • このサブタイトルフィールドがないノード(コンテンツ)で、余分なマークアップやエラーが表示される場合があります(つまり、基本的なページやニュース記事にはサブタイトルフィールドがないイベントコンテンツ)。

コンテンツタイプにフィールドを追加すると、そのコンテンツタイプのコンテンツが表示されるたびに自動的に表示されます。ページ、イベント、またはその他の必要なもののサブタイトルフィールドを追加して、マークアップに自動的に表示できるようにする必要があります。

コンテンツタイプの表示を管理する

コンテンツタイプの「表示を管理」して、フィールドが表示される順序をドラッグアンドドロップできます。Display Suiteなどのモジュールを使用して、コンテンツタイプごとにフォーマットやレイアウトを追加することで、さらに一歩進めることができます。


これでは不十分で、字幕のマークアップをページタイトルと同じレベルにする必要がある場合(これはまれです)、少なくともifステートメントを追加して、コードに変数が存在するかどうかを確認させます。印刷する前に。また、コードを読みやすくするために、新しい変数とコメントを追加します。

<?php
  $subtitle = $node->field_sub_title['und'][0]['value'];
  if($subtitle){
     print $subtitle;
  }
?>
于 2012-08-28T22:59:55.380 に答える