テーマ関連Tips

リンク

ベース向けテーマ

テーマのコーディング規約

以下は http://drupal.org/node/1965 の日本語訳です。

テーマの作者は、プログラマがあらゆるプロジェクトでするように、きれいで、よく構造化されたコードを書くように注意しなければなりません。そうすることで、コードがより読みやすく、理解しやすく、メンテナンスしやすいものになります。異なる組織には異なる規約があるでしょうが、普通はDrupalの標準に従うことがベストです。共同作業したり援助を求める際の助けにもなります。

  • インデントにはスペース2つを使用し、タブは使用しません(これはDrupalのコーディング標準と合わせたもので一貫性を保ちます)
  • 長いHTMLブロックの開始タグと終了タグのインデントを揃えてください
  • PHPとHTMLのインデントを区別してください。 こうではなく:
      ...
      <?php if ($header): ?>
      <div id="header">
        <?php print $header; ?>
      </div>
      <?php endif; ?>
      ...
    
    こうする:
     ...
    <?php if ($header): ?>
      <div id="header">
        <?php print $header; ?>
      </div>
    <?php endif; ?>
      ...
        
    
    このように異なるインデントで定義することで、対応する開始タグと終了タグを見つけやすくなります。
  • テンプレート内では、PHP中のHTMLよりも、HTML中のPHPを使ってください。たとえば、 こうではなく:
    <?php
    if (!$page) {
      print "<h2><a href=\"$node_url\">$title</a></h2>";
    }
    
    if ($submitted) {
      print "<span class=\"submitted\">$submitted</span>";
    }
    ?>
    
    こうする:
    <?php if (!$page): ?>
      <h2><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
    <?php endif; ?>
    
    <?php if ($submitted): ?>
      <span class="submitted"><?php print $submitted; ?></span>
    <?php endif; ?>
        
    
    結局のところ、PHPはHTML埋め込み型のスクリプト言語であり、あべこべにすべきではありません。
  • 論理層はプレゼンテーション層と切り離してください。 こんなのを見たことがあるかもしれません:
    Price: <?php print $price; ?>
    Tax: <?php print $price * 0.075; ?>
    
    計算部分はデータのプレゼンテーションを始める前にコードに移動させてください。スクリプトのビジネスロジック部分は次のようになります:
    <?php $tax = $price * 0.075; ?>
    
    そしてプレゼンテーション部分は:
    Price: <?php print $price; ?>
    Tax: <?php print $tax; ?>
    
  • PHPのprintステートメントの終わりには必ずセミコロンを置いてください:
    <?php print $tax; ?> -- YES
    <?php print $tax ?> -- NO
    
    PHPコードの部分に関する詳細はDrupalコーディング標準に従ってください。

ユーザのログイン状態でCSSを出し分ける(6.x)

ログインユーザと匿名ユーザでCSSファイルを切り替えたい場合、phptemplate_preprocess_page()に以下のように書くことでCSSを出し分けることができます。ユーザのログイン状態は$logged_inで判別します。

function phptemplate_preprocess_page(&$vars) { 
  if ($vars['logged_in']) { 
    drupal_add_css(path_to_theme() . '/login-user.css', 'theme'); 
  } else { 
    drupal_add_css(path_to_theme() . '/anonymouse.css', 'theme'); 
  } 
  $vars['styles'] = drupal_get_css(); 
}

ページタイトルの"|"を変更する(6.x)

ページタイトルを変更するには$head_titleを上書きします。コンテンツタイプごとに変更したり、もっと細かい調整をしたい場合はPage Titleモジュールがおすすめです。

function phptemplate_preprocess_page(&$vars) {
  $vars['head_title'] = str_replace(' | ', ' - ', $vars['head_title']);
}

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年06月18日 10:20