使得drupal主题可被定制

在Drupal的管理界面中,每个drupal主题都有自己的设置页面admin/build/themes/settings/themeName,在这里你可以配置标准设置比如“Logo image settings” 和“Shortcut icon settings”.

 

你可以使用本节所讲的方法,来为该页面表单添加额外的设置,从而完成对drupal主题的定制.

To add color.module support, see the Integrating with Color.module section.

为了添加color.module支持,可参看集成Color.module一节.

Drupal版本:

实例:修改drupal Garland主题

Steven Wittens写了一篇非常有名的文章“集成Color.module”,但是它对于许多Drupal开发者来说,有点抽象。所以,我想写点更具体的。

我还打算使用“主题化概述”里面的经常被忽视的一些信息,从而使升级更加容易一些。

 

创建你自己的drupal主题

现在,首先我不是一名drupal主题开发者。有很多人专注于drupal主题开发,但是我不行。我也只能拿着别人的东西修修补补。自己不能独立的创建自己的主题。

如果你和我一样的话,不要灰心。这里所讲的非常简单,至少相对简单。

首先,你可以直接在核心的"theme"文件夹下进行修改,但是这种方式不好,因为升级的时候会用到核心主题的,而drupal升级是经常性的,因为新版本在不断的发布,如果能不修改内核的话,就不修改内核。

 

所以,让我们先把核心主题拷贝到你的"sites/default/themes"或者"sites/all/themes"(取决于支持的站点数量)。这样你就有了核心主题的一个拷贝。

现在,你准备好创建一个自定义主题了么?这一技术同样适用于第3方主题,但是我们这里以Garland为例。

 

打开你的"sites/default/themes/garland"文件夹。在里面创建一个子文件夹。为你的新主题起个名字,比如让我们把它叫做"nancy"。

将"sites/default/themes/garland"文件夹下面的"screenshot.png" 和"styles.css"拷贝到"nancy"文件夹下。现在查看你的主题配置页面,现在就多出来了一个新主题"nancy"。漂亮吧?

 

为了修改Garland主题的颜色,你还需要将"color" 和"images"文件夹拷贝到你新主题文件夹下。

现在,你就可以放心的在这里进行修改了,这样就不用担心升级问题了。

 

提示:如果你的模块包含自己的CSS文件的话。不要直接修改这些CSS文件(因为模块的升级更加频繁)。你可以在你主题下面对模块样式进行覆写。

 

让它完全成为你的drupal主题

现在,让我们做一些更大的改动。我想逐步的来完成这一修改,每一步都可以产生显著的效果,这样你就可以跟着我学习了。

 

Garland的"style.css"(你拷贝的)里面包含了一个注释“Color Picker: don't touch”(颜色选择器:不要碰它)。找到这行,换行,在这里你将放置自己的改动。我建议你首先输入下面的内容:

/**************************************/
/***   My new stuff and overrides   ***/
/**************************************/

 

还记得吧,Wittens先生曾说过第一个颜色方案是个参考颜色集。在一个基本安装中,这意味着是"Blue Lagoon"颜色集。它们的颜色为:

Name

Color

Base

#0072b9

Link

#027ac6

Header Top

#2385c2

Header Bottom

#5ab5ee

Text

#494949

这意味着,如果你有了新的选择的话,"color picker"(颜色选择器)将会使用它来替换这5个值。注意:我不知道这是不是一个bug,但是根据我的经验,你实际上用不到这个“基”颜色集(参看,在生成的样式表中删除基颜色)。

相关链接: http://drupal.org/node/196007 , Think in Drupal

Drupal版本:

实例:修改drupal Garland主题(1)

好了,让我们做个试验。请确定你已经将新主题设为了drupal默认主题了。

 

这里要做的就是为了,让读者更好的浏览你的站点。一个关键的建议就是让你的边栏元素和主内容区域区别开来。好的,让我们试着做一下:我们把我们所有的区块都使用Garland的 "header top"颜色作为背景色。记住,它的参考颜色为"#2385c2"。

.block {
  background-color: #2385c2;
}

保存修改后的"style.css",并点击“保存设置”按钮。简单吧!所有区块的背景颜色都变了。

 

选择一个不同的颜色集。区块就会随着改变。很漂亮吧,不是么?

美中不足的是,区块中的文本的可读性不够强。你可能会认为,只需要在这里加行代码就可以了,比如color: #ffffff;(这可能对于基颜色还说得过去)。不过没有这么简单,除非用的都是最简单的区块。

像导航这样的区块,在它里面都使用了更多的样式名字。主要有"menu" 和"leaf."所以我们需要添加几行:

.block {
  background-color: #2385c2;
  color: #ffffff;
}
.block li.leaf a {
  color: #ffffff;
}

不错!基本上差不多了。但是它还没有涉及到可扩展的元素。因为,这些元素使用了不同的名字:

.block {
  background-color: #2385c2;
  color: #ffffff;
}
.block li.leaf a {
  color: #ffffff;
}
.block li.collapsed a {
  color: #ffffff;
}
.block li.expanded a {
  color: #ffffff;
}

好了!我的Drupal站点看起来比过去强多了。

现在,让我们加点更有趣的。比如,这些区块的边界?让我们选择颜色选择器的"link"颜色。它的参考颜色为"#027ac6."

 

.block {
  background-color: #2385c2;
  border: 3px ridge #027ac6;
  color: #ffffff;
}
.block li.leaf a {
  color: #ffffff;
}
.block li.collapsed a {
  color: #ffffff;
}
.block li.expanded a {
  color: #ffffff;
}

精彩吧!好了,让我们做最后一个修改,其它都留给你自己发挥了。

我想让book导航更突出一点,这样就能吸引更多的眼球了。在前面,我们为所有的区块设置了背景色,那么我们可不可以为book导航区块的背景颜色设为"header bottom"颜色呢?它的参考颜色为"#5ab5ee."

.block {
  background-color: #2385c2;
  border: 3px ridge #027ac6;
  color: #ffffff;
}
.block li.leaf a {
  color: #ffffff;
}
.block li.collapsed a {
  color: #ffffff;
}
.block li.expanded a {
  color: #ffffff;
}
#block-book-0 {
  background-color: #5ab5ee;
}

现在你站点的外观更与众不同了,而且你还学会了如何使用参考颜色来自动的保持站点颜色的统一。尽管这里只使用了4种颜色,但是却展示不少的CSS技巧。好玩吧。

下面是对上面的总结。

  /* Blocks */ 
.block {
  border:3px ridge #2385c2;
  background-color: #5ab5ee;
  color: #ffffff;
  font-size: 1.00em;
  line-height: 100%;
}

.block .leaf {
  color: #ffffff;
}
.block .leaf a {
  color: #ffffff;
}
.block li.collapsed a {
  color: #ffffff;
}
.block .expanded {
  background: #2385c2;
  color: #ffffff;
}
.block .expanded a {
  background: #2385c2;
  color: #ffffff;
}
.block .active {
  border:2px outset #027ac6;
  color: #ffffff;
}

/* Books - reverse scheme */
#block-book-0 {
  border:3px ridge #5ab5ee;
  background-color: #2385c2;
  color: #ffffff;
  font-size: 1.00em;
  line-height: 110%;
}
#block-book-0 .active {
  border:2px outset #0072b9;
}

/* Special blocks */
#block-event-1 a {
  color: #ffffff;
}
#block-event-1 .more-link a {
  padding-right: 50px;
  font-weight: bold;
}

 

其它

也不费太多功夫了,我在这里列出其它的颜色集,仅作参考:

$info = array(

  // Pre-defined color schemes
  // base, link, header top, header bottom, text => name
  'schemes' => array(
    '#0072b9,#027ac6,#2385c2,#5ab5ee,#494949' => t('Blue Lagoon (Default)'),
    '#464849,#2f416f,#2a2b2d,#5d6779,#494949' => t('Ash'),
    '#55c0e2,#000000,#085360,#007e94,#696969' => t('Aquamarine'),
    '#d5b048,#6c420e,#331900,#971702,#494949' => t('Belgian Chocolate'),
    '#3f3f3f,#336699,#6598cb,#6598cb,#000000' => t('Bluemarine'),
    '#d0cb9a,#917803,#efde01,#e6fb2d,#494949' => t('Citrus Blast'),
    '#0f005c,#434f8c,#4d91ff,#1a1575,#000000' => t('Cold Day'),
    '#202020,#0633a7,#000000,#808080,#000000' => t('Gothic'),
    '#c9c497,#0c7a00,#03961e,#7be000,#494949' => t('Greenbeam'),
    '#cf68a2,#c71a72,#fbbcde,#d84b7e,#9b3b3b' => t('In The Pink'),
    '#ffe23d,#a9290a,#fc6d1d,#a30f42,#494949' => t('Mediterrano'),
    '#788597,#3f728d,#a9adbc,#d4d4d4,#707070' => t('Mercury'),
    '#5b5fa9,#5b5faa,#0a2352,#9fa8d5,#494949' => t('Nocturnal'),
    '#7db323,#6a9915,#b5d52a,#7db323,#191a19' => t('Olivia'),
    '#12020b,#1b1a13,#f391c6,#f41063,#898080' => t('Pink Plastic'),
    '#d48440,#d20404,#a1443a,#f6352c,#871d12' => t('Raging Bull'),
    '#29996a,#1f563f,#0ce4cc,#02ca90,#2a8d8a' => t('Seascape'),
    '#b7a0ba,#c70000,#a1443a,#f21107,#515d52' => t('Shiny Tomato'),
    '#18583d,#1b5f42,#34775a,#52bf90,#2d2d2d' => t('Teal Top'),
    '#6b91ff,#c97b26,#fdb9d5,#fa6196,#1a1919' => t('Victorian'),
    '#ffee00,#3e8bb1,#f6e304,#91fd0d,#419d39' => t('Wake Up Call'),
    '#f1db09,#bd8a05,#fbf498,#faec14,#6e4308' => t('Yellow Pages'),
  ),

相关链接: http://drupal.org/node/196007 , Think in Drupal

Drupal版本: