主题

如何快速对一个view主题化?

我用了cck、views这2个模块做了一个view,我想快速给这个view定义一个具体的模板,有没有教程或者关于这方面的资料?我需要修改哪些文件呢?

迪原高科(北京)招聘 Drupal 前端工程师 | Dilato IT

  迪原高科(北京)招聘Drupal 前端工程师,公司是美资企业,欢迎熟悉 Drupal 及对 Drupal 有兴趣的朋友加入我们。

 

工作描述:

  • 网页设计
  • 根据网页设计稿制作 Drupal 主题

 

职位要求:

  • 精通HTML/CSS,能够处理主流浏览器兼容性问题
  • 熟悉 Drupal 主题制作(懂网页设计者优先)
  • 1年左右前端工作经验(熟悉JS者优先)
  • 基本的英文阅读能力
  • 热爱 Drupal 并希望深入学习

 

其它介绍:

  工作地点在北京,Drupal 为公司主营业务之一。公司有非常多的 Drupal 项目,可以提供非常丰富的项目经验。如果你喜欢Drupal,并希望深入学习Drupal网站建设、主题化、模块开发、国际化多语言等各方面内容,欢迎你加入我们 :D

使用menu_tree 输出子级菜单

在template.php里加入以下代码:


function [ThemeName]_preprocess_page(&$vars) {
    $vars['primary_links'] =  menu_tree('primary-links');
}


//[ThemeName]为当前主题的名字,比如garland。

然后在你想要输出二级菜单的地方,输出出来,比如放在page.tpl.php里的某处:


<div id="main-menu"><?php print $primary_links ?></div>

Drupal7 与Drupal6 在主题上的变化

Drupal7 与Drupal6 在主题方面有很大的变化,Drupal6 主题好多朋友比较熟悉,对于Drupal7 新主题的变化,在此和大家一起分享和交流。列举如下:

一、在html.tpl.php的开始部分RDFa请求有些变化

1.Drupal7能够在html.tpl.php.输出RDFa请求有以下变量

2.老的lang属性应该被改成compatibility with XHTML 1.1,仅仅xml:lang应该保留。

3.RDF命名前缀通过HTML文档在html标签中序列化以及被包含在$rdf_namespaces变量中。

4.GRDDL资料应该在<head> 标签内标明

6.x

清除主题的缓存

The contents of the .info file is cached in the database, so altering it will not be noticed by Drupal. Do not confuse the cache with the theme registry. To clear the cache, do one of the following:

利用CSS打造自己的主题

主题的样式不是我们想要的,怎么办?
1. 选择合适的基主题并创建子主题来作为自己网站的主题。个人推荐zen或fusion作为基主题,具体操作方法参考说明文档。
2. 使用火狐浏览器,利用firebug查看你要制定样式的元素的id和class,以及其样式在你主题中的位置,根据需要进行修改,添加或覆写,必要时用其父元素id或class进行限制。
整体来说是这样,网站最好有设计图,这样可以按设计去写样式。

主题设置

很多由主题输出的页面元素都可以在主题管理中设置显示状态(显示或隐藏)。进入当前主题的设置页面(Administer > Site building > Themes > 主题名称),我们可以看到类似下面截图所示的设置项目:

drupal-theme-features-enabled

我们可以通过勾选或取消勾选页面元素前面的checkbox来设定该元素是否显示。

我们可以通过.info文件中features键值的声明来控制究竟哪些元素可以被这样设置;如果没有做声明,那么系统默认会启用下面这些元素:

检查一个区域是否被占用

While theming page.tpl.php it's possible to check to see whether a region is empty, by checking the content of the relevant variable which contains the region's contents.

For example;
Drupal 6

<?php
  if($left) {
    // do something
  }
?>

Drupal 7

 
<?php
  if($page['sidebar_first']) {
    // do something
  }
?>

向区域分配内容

概念上,它是主题中的一些容器我们可以向里面添加区块(blocks)和内容。区域是在.info 文件中通过“regions”键值声明定义的,我们在前面一档中也有讲到过。“regions”键值使用如下的形式:

regions[theRegion] = The region label

方括号中的键使用机器可读名称,右侧对应值为用户可读名称。如果未作声明,系统默认会在主题中定义以下几个区域:

发个求助贴

我的网站首页显示的是文章,我设置的首页显示文章的数量为10,于是多余10篇文章以后就显示“下一页”,我想能不能不要这个“下一页”这种显示方式;在首页底部用“显示更多”这种形式,点击“显示更多”之后,直接在首页显示更多的文章。

同步内容