drupal6 笔记

调用进程

处理进程

Path > Access_Callback > Page_Callback > $content

 

输出进程

Page(Block) > theme > preprocess > template

发邮件

$module = 'email_example';

$key = 'contact_message';

$from = 'catcat811@hotmail.com';

$to = 'catcat811@gmail.com';

$language = language_default();

$send = true;

 

drupal_mail($module, $key, $to, $language, $params, $from, $send);

 

主题知识

Drupal分为主题表示层(theming layers)与数据逻辑层(data/logic layers),数据逻辑层可以有输出内容,但主题表示层总是可以对这些内容改写。

 

大多数页面元素一般是由theme('page')拉进来的,在显示导航信息以后,它们被放置在page.tpl.php模板中

 

区块定制总结

 

总体来说可以分为三步:

第一步:在模板文件.info中定义一个新的regions.格式是:regions[内部名称] = 显示在区块内的名称.eg:regions[footer] = Footer,(Drupal是通过在模板内使用regions来控制显示区块的,所以需要定义),记得加上默认的那些regions.(如果没有定义的 话,系统将会使用默认值,若添加新的regions,将使原来的失效,所以需要加上).

 

第二步:由于.info在主题内存在缓存,所以添加后你需要去Administer -> Site configuration -> Performance清除缓存.

 

第三步:我们需要将新的regions放在模板内,并来显示他们.若需要在页面内加入区块,则只需要在 page.tpl.php内在你想要它出现的位置添加上<?php print $内部名称 ?> 由于内部名称能够自动在page.tpl.php模板内自动转换成region 变量,所以你无须再做其他操作.若是加在其它地方,你需要在template.php内使用function 函数来处理变量,因为它不能够动态生成.

 

CCK字段调用

Node_load所填充的CCK字段一般以数组形式出现,变量名以字段名命名,文件类型的路径是filepath,调用例子如下:

$field_image[0]['filepath']

一般文本类型字段的值是value,调用例子如下:

$field_date[0]['value']

 

缓存API

cache_set($cid, $table = 'cache', $data, $expire = CACHE_PERMANENT, $headers = NULL);

cache_get($cid, $table = 'cache');

 

$cache = cache_get($cid);

if($cache){

         cache_set($cid, 'cache', $data, time() + 3600);

} else {

         Return $cache->data;

}

 

Node插入内容

Node的显示数据主要包括titlecontent等,node是以drupal_render呈现数据,所以可以在任意字段中插入内容。

 

$node->content[‘field’] = array(‘#value’ => ‘插入内容’, ‘#weight’ => 2);

以上代码放到hook_nodeapi中就可以在bodycomment之间插入内容

 

Imagecahce缩略图代码

缩略图显示页面上

$imagepath = db_result(db_query('SELECT filepath FROM {files} WHERE fid = %d', $fid));

theme('imagecache', 'List_medium', $imagepath, array_pop(explode('/', $image)), $alt, $title, $attributes);

原文地址:https://www.cnblogs.com/catcat811/p/2159091.html