Drupal 7 开发内部培训资料, 分头诗人

drupal 7 通过编程方式设置点击子菜单的时候,父菜单自动高亮。

在默认的drupal 菜单中,点击了子菜单后,高亮的样式自动转移到子菜单,父菜单就自动取消高亮了。

但很多时候我们并不希望如此,我们更希望是当前子菜单高亮了,它的父菜单也高亮。

该怎么做呢?其实很简单,只要一个函数就可以了。

它就是menu_set_active_item()

通过他可以很方便的设置哪个菜单高亮。

这里给一个简单例子:

menu_set_active_item('user/' . $user->uid);

这代码如果生效的话,用户信息页就永远处于高亮状态了。

如何用节点队列来创建高级图片轮播?

用到的模块:
以下模块必须被安装并启用:
Dynamic display block 模块(RC6)
jQuery update 模块
CCK 模块
Views 模块
filefield 模块
imagefield 模块
imageapi 模块
imagecache (optional)
Nodequeue


创建内容
在nodequeue可以被用来创建节点队列之前,我们必须先新建一个内容类型“新闻”。
1.    在之前的教程中我们已经介绍过如何新建内容类型,这里就不冗述了,只要保证你的内容类型有以下属性就行了。
·         标题 - 作为幻灯片的标题和完整的节点页面的标题
·         翻页器文字 - 用来显示在翻页器上面。(新建一个text field(文本属性)就行了)
·         幻灯片文字 - 用来悬浮显示在幻灯片上方 (新建text field(文本属性))
·         幻灯片图片 - 作为幻灯片的图片和翻页器的图片 (新建imagefield(图片属性))
·         正文 - 完整节点的详细文字 (和每一个content type有的正文一样)

 

2.    创建一些示例节点 - 你可以随便填入一些内容来新建示例节点,至少新建两个.

Drupal 7 通过 render 读取 图片字段。

四步:

  1. 先用node_load 函数读出节点内容
  2. 然后把节点中的图片字段,通过field_get_items 获取,
  3. 再把获取的值通过field_view_value转换,
  4. 最后是通过render 转换成图片html
<?php 
$node = node_load($nid);
$image = field_get_items('node', $node, 'field_NAME');
foreach ($image as $key=>$value) {
$output = field_view_value('node', $node, 'field_NAME', $image[$key]
));
print render($output);
} 
?>

如果需要更详细的定制,可以改为下面代码:

<?php
$node = node_load($nid);
$image = field_get_items('node', $node, 'field_NAME');
foreach ($image as $key=>$value) {
$output = field_view_value('node', $node, 'field_NAME', $image[$key], array(
  'type' => 'image',
  'settings' => array(
    'image_style' => 'thumbnail', //place your image style here
    'image_link' => 'content',
  ),
));
print render($output);
}
?>

通过drupal_render() 读取node字段的format。

一般我们做模块时候,都喜欢直接通过写模块实现读取node 的字段的值,但却不懂得如何读取当前字段的format。

其实很简单只需要三句话,举例node里面有一个field_download_file的字段,我想读取他的默认显示样式:

订阅 RSS - 孤魂的博客