Drupal的外观控制是最为灵活可定制的,但是这个系统复杂而且不够直观。另外,某些思维不够流畅的作者经常会写出一些晦涩难懂的Drupal主题高级特性之类的文章,把学习Theme的激情完全打垮了。为此本文会从一个相对简单的视角,对Theme系统的原理、分布和一些使用做出介绍。
Drupal终归还是一个基于php的CMS,所有的最终技术还是通过HTML、CSS、PHP这些来完成,而那些布局和效果主要还是通过HTML和CSS和协作来完成。如果对于HTML和CSS不够了解,那还是先学习这些方面为好。尤其是现在HTML5和CSS3已经很成熟,能够方便、高效率地显示出优秀的效果。另外,Drupal是一个CMS,而CMS的重要特征就是MVC式的开发,让显示和数据、控制分开。Drupal在这方面做的很好,甚至把View部分更加细化,数据的具体显示和布局,整体的显示和布局甚至都进行分开,使得Theme更专心于整体的显示效果。Drupal采用了PHPTemplate这个主题引擎,来把这些显示技术结合起来。这个引擎在Drupal的核心中工作,操作Drupal的时候,改核心Core是大忌,一般不应该被修改,否则不仅会使得系统不稳定,而且破坏了开发的模块性,使开发陷入一团糟。我们需要做的就是使用模块化的方式,单独使用一些显示技术来实现对Drupal主题的定制。
Drupal中,有很多默认的主题。在Drupal6的阶段,默认的主题一般是Garland主题,这是一个蓝色的,常见的主题。在Drupal7中,默认主题变为了Bartik,我觉得这个主题确实是比Garland要更好看一些。另外,系统默认还会安装一些其他的主题,比如seven、stark等等。主题的定制可以简单,可以复杂。下面先说一下最简单的小定制。
这里以定制默认主题Bartik为例。运行环境为Drupal7原版。登陆管理页面,管理-》外观-》Bartik设置Theme 1这时就进入了主题设置页面。Theme 2在这里,可以给网页的配色进行设置,更改标志logo,更改favicon。具体操作就不说了,简单到爆。如果没有额外需求,我觉得用Bartik加上简单的颜色配置、logo配置就足够了。除了颜色和logo之外,主题系统还提供了更多的配置,可以做一些常用的定制。主题系统可以对以下功能进行开关:
当然,如果不进行自定义的话,细节是没法修改(一般也不用修改),布局没法修改。这些都是定制好的,直接使用就可以了,简单方便。如果需求简单,那么文章看到这里就行了。如果需要更深层次的定制,继续往下看。
在Drupal的安装目录下,有一个themes文件夹。路径:
1 | /themes |
文件夹下面一般有几个默认主题:Theme 3我的这个文件夹有四个主题,分别是Bartik、garland、seven、stark。README.txt对这个文件夹的内容做了说明,engines不是主题,它里面是PHPTemplate主题引擎。如果向Drupal中添加新的主题,不应该放在默认文件夹里,而应该放在
1 | /sites/all/themes |
目录下。这不仅可以和核心主题做区分,还可以对所有的站点可用。如果采用Drupal来支持很多站点的话,这是必需的。上面展示了两个路径。但如果你使用的是定制的Drupal的话,还有可能在别的路径下面。比如你使用了Commerce Kickstart,那么下面这一条路径放置着Kickstart默认的主题:
1 | /PRofile/commerce_kickstart/themes |
下面是Drupal7的例子。可能和Drupal6有一些不一样,时代更新了还是以Drupal7为准吧,等Drupal8出来再说别的。打开一个主题看下面有什么,以Barktik为例:Theme 4
下面介绍模板文件。基于PHPTemplate的主题都包含一个或者多个模版文件。他们的扩展名是tpl.php。模版文件为页面提供了布局框架。Drupal系统中有一些默认的模板。当主题不含有相应的模版文件的时候,将会采用默认模板。所以当一些内容不需要定制的时候,很多模版文件并不是必需的。与之类似的还有CSS文件,系统中也有很多默认的CSS。当用户自定义CSS的时候,这个CSS文件的优先级要高于内核的CSS。在主题模板文件中,最核心的还是page.tpl.php。它是主题中最关键的文件之一。同时,在CSS文件夹中,最核心的是style.css。在Bartik中,有一个文件叫做teplate.php。这个文件看似是一个最重要的模板,因为它出现在了Bartik文件夹下,而且一看名字就很重要。但是实际上,打开这个文件并没有看到预想中很多的div,而是一些代码。这个文件主要就是包含很多的高级代码片段,是一些主题化函数的重写。这个文件并不是所有主题必需的。
这个部分也是一个相对来说非常简单的部分。点击https://www.drupal.org/project/project_theme就可以看到一大堆主题。复制某个主题的下载链接,然后打开Drupal的管理页面,外观-》安装新主题-》从URL安装,就可以直接获得了。或者,从网上下载到本地,然后解压到前面所说的这个文件夹内。
1 | /sites/all/themes |
然后再打开Drupal的管理员设置,设置一下外观,就发现该主题了。首先启用(Enable),然后设为默认(set default)就大功告成了。不仅在Drupal官网上,还有很多网站也提供Drupal的主题。收费的主题一般都更加精美,而且小众化,也可以进行考虑。常见的网站有:
仅仅根据主题提供的选项进行配置,毕竟可以做的还是有限的。如截图所见,Bartik这种已经算是有较多配置选项的主题了,还可以定制颜色。很多主题的配置少得可怜,很多功能不能通过配置来实现。这个时候就需要对已有的主题进行定制,或者创建我们自己的主题。创建自己的主题还是算了,因为很多很多东西都要从头开始写。自己不过是想加一个功能而已,为啥要做那么多的事情,不划算。所以,子主题是最好的选择。为什么不在原有的主题上直接进行修改呢。这就是模块化,怕弄乱了。前面也说了,之所以弄了两个文件夹,本身就是为了区分核心主题和自定义主题。下面有一长串步骤,看起来很吓人其实也不难。现在我们要对Bartik主题进行一个定制,按照这个步骤进行操作就可以了。
CSS样式表是最常用的网页样式配置文件。最简单的方法就是直接在主题内部对CSS进行修改。
Drupal Bartik原始标题上面这张照片是我们最常见的Bartik默认主题下的标题和网站口号。假如我们觉得这个标题字体太小了,想放大一点怎么办呢?首先在网页点击右键,然后检查元素(Safari的开发模式,Firefox,Chrome等众多浏览器都有这个模式的)。这是就跳转到了HTML源代码窗口。我们找到相关代码:
-*-*-*-*-*-*-*-*-*-*
本文并未结束
更多内容请点击连接转到原文:5Mark
转载请表明出处,并附上原文链接,谢谢~
新闻热点
疑难解答