6.6 drupal CCK总结
使用CCK创建一个front page节点类型,然后再创建一个首页节点.这种方式有啥好处呢?那就是将来你编辑首页时,首页的各个部分现在都成了一个字段,相互之间互不干扰.或许 这是唯一的好处了,但是,使用这种方式创建的首页,仍然是静态的,而且与纯HTML的首页相比,没有任何明显的优势,而且我们也看到了为CCK节点类型定制节点模板也相当的费时费力.
使用CCK创建一个front page节点类型,然后再创建一个首页节点.这种方式有啥好处呢?那就是将来你编辑首页时,首页的各个部分现在都成了一个字段,相互之间互不干扰.或许 这是唯一的好处了,但是,使用这种方式创建的首页,仍然是静态的,而且与纯HTML的首页相比,没有任何明显的优势,而且我们也看到了为CCK节点类型定制节点模板也相当的费时费力.
我们在前面提到,在节点模板中,模板使用$content变量将正文,以及由CCK创建的字段一股脑的输了出来,怎么才能将其单独的输出来,放到定制的html中呢?
在文章的最后面,我们提到了print_r()这个函数的应用,这个函数在制作模板文件中,用处可大了,又专门的支持主题制作的drupal模块,不过我没有用过,我觉得print_r已经够用了。让我们在节点模板中,插入<?php print_r($node) ?>,访问首页,发现里面的内容全乱套了。
你可以为特定节点类型的节点单独的创建一个节点模板文件,对于我们的首页节点类型,如果要单独的定制它的外观的话,就需要创建一个node-front_page.tpl.php.创建的过程就是拷贝node.tpl.php,然后将其重命名。
我们先来看看这个garland的node.tpl.php,也就是还没有被修改的node-front_page.tpl.php。注意不要把node-front_page.tpl.php写成了“node-front-page.tpl.php”,因为我在写本文的时候就犯了这个错误,有时候,这样的一个很小的错误就会浪费你半天时间。我遇到过这样的情况。换成了后者,就不管用,因为系统内部没有front-page这种节点类型,只有front_page。
直接就在garland目录下面修改了.拷贝themes/garland下面的page.tpl.php,并将复制品重命名为page-front.tpl.php,现在后者就负责首页的外观了,但是现在我们还没有在里面做任何修改。打开page-front.tpl.php,
garland的页面模板虽然丑陋,但是却相当经典。以前我做页面模板时,就是仿照这个,通常header部分都是直接拷贝这里的。
<?php
// $Id: page.tpl.php,v 1.18 2008/01/24 goba Exp $
在前面的文章中,我们使用CCK创建了一个front page节点类型,其实这还没有用到CCK,上文中用到的是drupal内置的创建节点类型。下面让我们使用CCK再添加4个字段。
导航到admin/content/node-type/front-page,
点击“Manage fields”链接。并添加四个字段,这里都是文本,2个是单行的,2个是多行的。保存一个字段后,会出现这个字段的设置表单编辑页面,这里我用的都是默认值。这后的效果如下:
我们知道,drupal的A语言的节点可以映射到另一个B语言的节点,而drupal的模块,也能够使用potx模块提取里面的可翻译字符串,生成模板文件,从而在多个语言之间切换。
对于语言的切换,你可以使用url的方式,比如说,admin/settings,这个路径,使用url的方式en/ admin/settings,cn/ admin/settings,这样就可以在en,cn两个语言之间切换了。
时间:周六2:30-5:30;地点,清华大学建筑系馆门厅(一个拐角).网友Bin Xia帮我找的地方,在这里感谢Bin Xia了.大家可以提前去,没有开始的话,可以先在清华大学转转.散散心,感受一下大学的气氛.
即便不是这里,也会在清华大学附近,找不到的话,到时可以打我手机:13641026086.我的手机是接电话收费的那种,能发消息就发消息,实在找不到了再打电话.