You are here

drupal主题

 

Drupal的行话来说,主题就是一组负责你站点外观的文件。你可以从http://drupal.org/project/Themes下载第3方主题,或者你可以自己动手创建一个主题,后者正是你在本章将要学习的。作为一个web设计者,主题由你所熟悉的大部分内容所组成:样式表,图片,JavaScript文件,等等。你将发现,在Drupal主题和纯HTML站点之间的区别就是模板文件。这些文件一般都包含大段的静态HTML,和一些小段的用来插入动态内容的代码。它们负责你站点的一个特定部分的外观。模板文件的语法依赖于它所使用的主题引擎。例如,列表8-1,8-2,8-3列出了3个模板文件的代码片段,它们输出的内容是一样但是包含的模板文件内容却完全不同。
 
列表 8-1. Smarty
<div id="top-nav">
    {if count($secondary_links)}
        <ul id="secondary">
        {foreach from=$secondary_links item=link}
            <li>{$link}</li>
        {/foreach}
        </ul>
    {/if}
 
    {if count($primary_links)}
        <ul id="primary">
        {foreach from=$primary_links item=link}
            <li>{$link}</li>
        {/foreach}
        </ul>
    {/if}
</div>
 
列表 8-2. PHPTAL
<div id="top-nav">
    <ul tal:condition="php:is_array(secondary_links)" id="secondary">
        <li tal:repeat="link secondary_links" tal:content="link">secondary link</li>
    </ul>
 
    <ul tal:condition="php:is_array(primary_links)" id="primary">
        <li tal:repeat="link primary_links" tal:content="link">primary link</li>
    </ul>
</div>
 
列表 8-3. PHPTemplate
<div id="top-nav">
    <?php if (count($secondary_links)) : ?>
        <ul id="secondary">
        <?php foreach ($secondary_links as $link): ?>
            <li><?php print $link?></li>
        <?php endforeach; ?>
        </ul>
    <?php endif; ?>
 
    <?php if (count($primary_links)) : ?>
        <ul id="primary">
        <?php foreach ($primary_links as $link): ?>
            <li><?php print $link?></li>
        <?php endforeach; ?>
        </ul>
    <?php endif; ?>
</div>
 
    每一个模板文件,由于它所使用的模板语言的不同,所以看起来也各不相同。模板文件的扩展名指明了它所使用的模板语言,也就是它所依赖的主题引擎(参看表8-1)
 
8-1 模板文件的扩展名指出了它所依赖的模板语言。
模板文件           主题引擎扩展
.theme                   PHP
.tpl.php                PHPTemplate*
.tal                      PHPTAL
.tpl                      Smarty
* PHPTemplate是Drupal的默认主题引擎
 老葛的Drupal培训班 Think in Drupal

Drupal版本: