主题drupal 主题

drupal主题  时间:2021-03-20  阅读:()

name (required) 名字(必须)

这是用户可读的名字,与主题的Drupal内部名字可以分开单独进行设置.这在这里,字符的限制则很少.name=Un tema nombre de fantasiadescription (recommended) 描述(推荐)

主题的简短描述.你可以在页面"Administer>Site bui lding >themes"看到主题的描述.description=Tableless multi-column theme designed forblogs.screenshot截图

截图键时可选的,它告诉Drupal主题的缩略图在哪里,在选择主题页面(admin/bui ld/themes)里用到了缩略图.如果. info文件中忽略了该键,那么Drupal就会使用主题目录下面的"screenshot.png"文件.只有当你的缩略图不叫"screenshot.png",或者你不想把它放到你主题的根目录(比如 screenshot =images/screenshot.png)下面时才使用该键。screenshot=screenshot.pngversion (recommended)版本推荐

当发布一个新的版本时 drupal .org会自动为其添加一个版本号。当你为Drupal贡献主题时你可以忽略该值。如果你的主题没有放到d ru pa l .o rg上的话你可以为你的主题指定任意一个版本号。ve rs io n=1.0co re (req u ired) 内核必须

从Drupal 6.x开始模块和主题的. info文件都必须指明它们兼容的Drupal内核主版本号。这里设的值将与DRUPAL_CORE_COMPATIBILITY常量相比较。如果不匹配的话那么主题将被禁用。core=6.xdrupal .org的打包脚本将根据每个发布版本的Drupal内核兼容性设置 自动设置该值。所以从drupal .org下载下来的主题设置总是正确的。然而对于直接通过CVS部署的Drupal站点来说如果你将这一修改提交到你主题的. info文件中去的话将会很有帮助。它也能够非常方便的帮用户指出主题兼容CVS的HEAD中的哪些内核版本。engine (recommended)引擎推荐

主题引擎供主题使用。如果没有提供引擎的话那么主题就是独立的 比如实现一个".theme"文件。大多数主题都使用"phptemplate"作为默认引擎。

PHPTemplate负责查找主题用到的主题函数和模板。只有当你理解你在做什么的时候你才可以忽略这一设置。engine=phptemplatebase theme基主题

子主题可以声明一个基主题。这允许主题的继承也就是说基主题中的资源将被传递下来并在子主题中使用。子主题可以声明别的子主题作为其基主题也就是允许多重继承的存在。基主题的名字为其在Drupal内部的名字。下面是Garland的子主题Minnel l i的相应设置。base theme = garland 更多细节可参看子主题  它们的结构和继承http://drupal .org/node/225125。reg io ns区域

我们这样定义主题中的区域声明键'reg io ns' 紧跟着“[”接下来是内部名字接着是“]”,然后是一个等号右边是用户可读的区域名字。例如 regions[theRegion]=The region name.

如果没有定义区域的话那么使用下面的默认值。你可以根据自己的需要覆写这些值。

regions[left] = Left sidebarregions[right] = Right sidebarregions[content] =Contentregions[header]=Headerregions[foote r]=Footer更多细节可参看 “区块 内容和它们的区域” http://drupal .org/node/171224。features 特性

许多由主题控制输出的页面元素,可以在主题的配置页面启用或者禁用. "features"键控制着出现在主题配置页面上的复选框.对于一个主题,如果你不想为其定义某个复选框时,着非常有用.为了删去某个复选框,只需要在"features"中将其删除即可.如果一个也没有定义的话,那么会输出所有默认的复选框.

下面的例子列出了所有由features键控制的元素.通过注释掉primary_l inks和secondary_l inks元素,那么站点管理员就不会看到这两个复选框了.features[] = logofeatures[] = namefeatures[] = sloganfeatures[] =missionfeatures[] =node_user_picturefeatures[] = comment_user_picturefeatures[] = searchfeatures[] =favicon;These last two disabled by redefining the; above defaults with only the neededfeatures.; features[] =primary_l inks; features[] =secondary_l inks更多信息参看”定制主题设置”(http://drupal .org/node/221905).stylesheets样式表

传统方式主题可自动的使用默认的style.css并且可以在它们的te mplate.php文件中通过调用drupal_add_css()来添加其它样式表。从Drupal6开始主题也可以通过. info文件来添加样式表。stylesheets[al l][] = theStyle.css 更 多 信 息 可 参 看 “ 样 式 表 ” 一 节http://drupal .org/node/171209。scripts脚本

传统方式主题通过在template.php文件中调用drupal_add_js()来添加javascripts脚本。从Drupal6开始主题也可以通过. info文件来添加javascripts了scripts[]=script.js更多信息参看 JavaScript&jQuery一节。php

这个定义了主题支持的PHP最低版本。其默认值源自 DRUPAL_MINIMUM_PHP常量它是Drupal内核所需要的php最低版本。对于一个新的版本如果需要的话可以对其进行重新定义。而对于大多数的主题都不应该添加这一项。php=4.3.3

Garland:

; $Id:garland.info,v 1.52007/07/0123:27:32 goba Exp$name=Garlanddescription=Tableless,rec olorable,multi-c olumn, fluid width theme (default).version=VERSIONc ore=6.xengine=phptemplatestylesheets[all][] = style.c ssstylesheets[print][] = print.c ss; Information added bydrupal.org packaging script on 2008-02-13version = "6.0"project = "drupal"datestamp ="1202913006"

Minnelli sub-theme of Garland. :

; $Id:minnelli.info,v 1.72007/12/0420:58:44 goba Exp$name=Minnellidescription=Tableless,recolorable,multi-column, fixed width theme.version =VERSIONcore = 6.xbase theme =garlandstylesheets[all][] =minnelli.css; Information added by drupal.org packaging script on2008-02-13version="6.0"project="drupal"datestamp="1202913006"

注意从行“; Information added by drupal.org packaging script on 2008-02-13”开始直到结束这都是由drupal.org的打包脚本自动添加的。你一定不要手工添加project(项目)和datestamp

时间戳键。手工添加vers ion(版本)键第一个那么就可以允许直接从CVS建立起来的站点使用你的主题了。

下面是假定的默认值。如果它们没有被定义的话主题将自动使用这些值。

注意这些默认值是作为一个组来共同起作用的。换句话说仅仅使用regions[sub_header]=Su b-header来覆写一个区域的话将会造成其它默认区域的消失。为了使用它们必须对它们进行重新定义。对于"stylesheets"也是一样的。尽管从技术的角度来看 它不是一个组定义另外一个样式表除非你重新对"style.css"进行定义否则是找不到它的。regio nsregions[left]=Left sidebarregions[right]=Right sidebarregions[content]=Contentre gi o ns[he ade r]=He ade rregions[footer]=Footerfe aturesfeatures[]=logofe atures[]=namefeatures[]=sloganfeatures[]=mis sionfe atures[]=no de_user_pi cture

fe atures[]=c omment_user_picturefeatures[]=searchfeatures[]=faviconfe atures[]=primary_linksfe atur es[]=s e co ndary_linksstylesheetss tyl e s he et s[al l][]=s tyl e.cs ss cri ptss cripts[]=s cript.j sscreenshots creenshot=s creenshot.pngphp(minimum support) 支持的最低版本

DRUPAL_MINIMUM_P HP是一个常量。它指出了运行Drupal所需php的最低版本。php=DRUPAL_MINIMUM_P HP

覆写可主题化的输出

星期六, 2008-08-30 21:28—g089h515 r 806原文 http://drup al.org/node/173880

译者葛红儒, http://zhup o u.c n,

只有当你需要修改默认输出时,你才需要阅读本节.如果你的显示层是完全有CSS样式表负责的那么可以略过本节。

覆写主题输出需要掌握3个方面。首先你需要知道源头在哪里其次你要进行覆写最后你需理解它的类型。

注意Drupal使用主题注册表(theme registry)来缓存主题数据覆写完成后你必须清空缓存。

1. 寻找源头

寻找主题输出的源头是比较困难的这是由于主题系统的多层级结构造成的使得源头可能出现在系统的各个地方。

仅用来演示用。

大多数页面元素一般是由them e('p ag e')拉进来的在显示导航信息以后 它们被放置在p ag e.tp l.p hp模板中。页面元素包括主菜单、区块区域元素 区域中的区块等等。通常通过一个主题钩子来引用每个大块的主题化数据。

注意主题钩子现在包括主题函数和模板两部分。系统中的许多钩子都与主题无关。我们这

里提到的钩子都是特定于主题的。

现在使用devel模块(devel module)可以很容易的追踪特定内容的源头。 devel模块包含一个主题工具可以方便的查勘任何输出的源头类型以及其它主题相关数据。参看示范s creenc as t(http://drupal.org/node/209561)。 由于技术方面的限制它只能应用到Drupal6以及更高版本中。

2. 覆写机制

覆写机制有一个特定的级联顺序当然也包含一些特殊情况。Drup al内核和模块使用主题钩子提供了一个合理的默认输出。如果默认输出不符合主题的需求的话那么就可以对其进行覆写从而避免使用默认输出。这样默认的将被放到一边去我们不再管它而将所有的特定修改放到所用的主题目录下面。不要直接修改Drupa l内核和模块只在主题目录下面修改。

如果传统的覆写不能满足你的需要的话你可以使用主题注册表。

注意尽管在Drupal 6中PHPTemplat e.engine还存在但它已不再覆写主题函数了。在Drupal5中它允许使用模板来处理部分主题钩子。而现在则不必要这样了。

3.函数VS模板

正如前面所说实现特定的钩子有两种方式。通常的“函数”或者“模板”。根据要主题化的元素的特点选用最合适的方式。内核和模块可选用任何一种方式来构建输出。而上面的主题层可以使用同样的方式来覆写或者改变选用的方式。

Links to PDF.Flow mapfor 5 also availablefor comparison.

使用函数来实现主题钩子具有速度上的优势。通常比使用模板的快5倍但是对们对于涉及者来说就比较困难通常涉及者都比较熟悉直接的x HT ML而不是p hp函数。通常我们不需要考虑这样一点而是根据钩子的特点和在一个页面中被调用的次数来决定要选择的方式。

注意在Drup al5及以前版本 内核和模块只能使用函数来实现主题钩子。想要使用模板的话必须使用PHPTemplate来覆写钩子并在引擎层中进行转换。

下面是覆写的两个例子这里使用了devel themer.

函数方式

主题函数theme_menu_loc al_tasks是一个用来输出一级和二级标签的简单函数。这里的主题钩子就是"menu_loc al_tasks"。为了覆写它可将函数名中的前缀"theme"替换为你主题的名字或者所用主题引擎的名字。最好使用主题的名字这样可以避免潜在的与子主题http://drup al.or g/no de/225125的命名冲突。

本例中 Garland是使用引擎名来覆写的。如果你的主题是基于Garland的子主题那么你必须使用你的主题名了。

将下面的代码放到主题的temp late.php清空主题注册表缓存这样就覆写了默认输出。注意将"drop"改为你主题的名字。

<?p hpfunction drop_menu_loc al_tasks() {

$o utp ut=' ' ;if($primary=menu_primary_loc al_tasks()) {

$output .="<ol clas s=\"tabs primary\">\n". $primary."</ol>\n";

}if($s ec ondary=menu_s ec ondary_loc al_tasks()) {

$output .="<ol c las s=\"tabs secondary\">\n". $sec ondary."</ol>\n";

}r eturn$output;

}

?>

这里所做的唯一修改就是将<ul>标签改为了<o l>。

在api.drupal.org你可以找到所有的主题函数。

模板方式

如果默认是使用模板实现的那么你只需要简单得将模板源文件拷贝到主题下面然后清空主题注册表就完成了覆写。下面为s earc h-theme-form.tpl.php的一个例子。注意在这里主题钩子就是"search_theme_form"需要将连字符“-”替换为下划线“_”.

这就是你要做的。使用编辑器打开拷贝的模板对其进行修改。 内核中的所有.tp l.p hp文件都带有注释。根据注释你就可以做出具体的修改了。

注意模板可以放在主题下面的任何目录中。这样便于管理也避免了主题根目录下面的混乱。

相关页面

 为了定制模板中的变量参看自页面“预处理函数” http://drupa l.org/node/223430。 可以在子页面“核心模板和建议”Core templates and suggestions找到所有的主题模板。

将函数转化为模板

将一个主题函数转化为一个模板开始是需要一点工作的但一旦完成便很好使用。如果你和设计者一同工作那么转化为模板将会使设计者更专注于设计而不是编码。在内核中 已有了很多模板而在将来的版本中将有更多的主题函数转化为模板。第3方模块为了与内核接轨最好也使用模板。本部分是为那些还没有使用模板的主题钩子准备的。Drupal以模板的方式识别主题钩子是自动完成的。下面是完成修改所需的所有必要条件 模板名必须与主题钩子匹配。

 主题钩子中的下划线必须改为连字符。

 模板文件必须使用扩展名".tp l.p hp"。 根据主题引擎的不同扩展名会有所不同假如主题函数为theme_us er_s ignature。这里的主题钩子就是"us er_s ignature"。创建一个名为"us er-s ignature.tpl.php"的文件清空注册表就会告诉Drup al现在钩子已改为模板方式了。现在该文件中的内容将替代相应的函数。这里的难点是设置模板文件中用到的变量这可以通过预处理函数来完成。

需要注意的一些点

 可以在模板中直接放置代码但这种方式不好。所有的复杂逻辑都应该从.tp l.p hp文件中分离出来。这样使得模板文件更干净更便于管理。

 这也有安全方面的考虑。将逻辑与显示分离可以避免潜在的恶意用户来创建内容从而减小CSS(cross-site scripting)攻击的机会.当让你的设计者处理模板文价时所有的输出都应该非常干净这样设计者就不用考虑安全问题了。

 比较关于论坛的theming functions in 5和template conversions in 6。你可以使用这个作为例子来进行两种方式之间的转换。

 更多关于预处理函数的信息http://drup al.or g/no de/223430。

Drup al的主体注册表维护了主题钩子相关的缓存数据包含主题钩子和如何处理它们的信息。

对于大多数主题开发者来说都不需要直接与注册表打交道。只需要记住当添加或者删除主题函数和模板时要清空它。编辑已有的函数和模板时则不需要清空。

wordpress公司网站模板 wordpress简洁高级通用公司主题

wordpress公司网站模板,wordpresss简洁风格的高级通用自适应网站效果,完美自适应支持多终端移动屏幕设备功能,高级可视化后台自定义管理模块+规范高效的搜索优化。wordpress公司网站模板采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器: IE 6+(以及类似360、遨游等基于IE内核的)、Firefox、Google Chrome、Safari、Opera等;同时...

Sharktech:无限流量服务器丹佛,洛杉矶,荷兰$49/月起,1Gbps带宽哦!

鲨鱼机房(Sharktech)我们也叫它SK机房,是一家成立于2003年的老牌国外主机商,提供的产品包括独立服务器租用、VPS主机等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等,主打高防产品,独立服务器免费提供60Gbps/48Mpps攻击防御。机房提供1-10Gbps带宽不限流量服务器,最低丹佛/荷兰机房每月49美元起,洛杉矶机房最低59美元/月起。下面列出部分促销机型的配置信息。机房...

麻花云:3折优惠,香港CN2安徽麻花云香港安徽移动BGP云服务器(大带宽)

麻花云在7月特意为主机测评用户群定制了促销活动:香港宽频CN2云服务器、安徽移动云服务器(BGP网络,非单线,效果更好)、安徽移动独立服务器、安徽电信独立服务器,全部不限制流量,自带一个IPv4,默认5Gbps的DDoS防御。活动链接:https://www.mhyun.net/act/zjcp特价云服务器不限流量,自带一个IPv4,5Gbps防御香港宽频CN2全固态Ⅲ型 4核4G【KVM】内存:...

drupal主题为你推荐
apple.com.cn苹果官网序列号查询iprouteip route-static 192.168.1.0 255.255.255.0 3.3.3.2什么意思苹果appstore宕机为什App Store下载软件 到了一半就停了 不动了360退出北京时间电脑桌面右下放了时间不对了怎么可以准确调回北京时间"AcerMéxico.Listadeprecios-VigenteapartIrdel1deabrilde2011"sqlserver2000挂起安装sqlserver2000时总提示有挂起操作!internetexplorer无法打开internet explorer网页打不开的是cuteftp文档下载如何 下载 文库文件温州商标注册温州注册公司在哪里注册
河北服务器租用 看国外视频直播vps blackfriday vpsio 国外bt iis安装教程 火车票抢票攻略 天猫双十一抢红包 彩虹ip 免费个人网站申请 双十一秒杀 免费吧 卡巴斯基试用版 t云 台湾谷歌 360云服务 国外在线代理服务器 东莞服务器托管 德隆中文网 中国linux 更多