`
yushine
  • 浏览: 201477 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

自定义函数显示 Drupal 分类列表

 
阅读更多

自定义函数显示 Drupal 分类列表

Drupal中的CCK和View模块功能强大,几乎可以用鼠标点出你想要的任何内容。

但耗费的性能和效率问题也与它的功能一样强大。 :mrgreen:

其实CCK和View能实现的我们手动一样可以实现,而且异常简单。

以国内网站最常见的显示某一分类最新文章列表为例:

在模板文件 template.php 中增加一个自定义函数如下:

 

function phptemplate_show_taxonomy($tid){
//根据tid读取术语名称
$sql ="SELECT name FROM {term_data} WHERE tid = %d";
$result = db_query(db_rewrite_sql($sql),$tid);
while($data = db_fetch_object($result)){
$term_name = $data->name;
}
$output = "<div>";
$output .= "<h2>".$term_name."</h2><ul>";
$sql = "SELECT n.nid, n.title, n.created
FROM {term_node} tn
LEFT JOIN {node} n on n.nid = tn.nid
WHERE tn.tid = %d
ORDER BY n.created DESC";
$result = db_query_range(db_rewrite_sql($sql),$tid,0,8);
while($data = db_fetch_object($result)){
$output .="<li>".l($data->title,"node/$data->nid")."</li>";
}
$output .= "</ul></div>";
return $output;
}
在模板适当位置写入:
<?php print phptemplate_show_taxonomy(12) ?>

function phptemplate_show_taxonomy($tid){

//根据tid读取术语名称

$sql ="SELECT name FROM {term_data} WHERE tid = %d";

$result = db_query(db_rewrite_sql($sql),$tid);

while($data = db_fetch_object($result)){

$term_name = $data->name;

}

$output = "<div>";

$output .= "<h2>".$term_name."</h2><ul>";

$sql = "SELECT n.nid, n.title, n.created

FROM {term_node} tn

LEFT JOIN {node} n on n.nid = tn.nid

WHERE tn.tid = %d

ORDER BY n.created DESC";

$result = db_query_range(db_rewrite_sql($sql),$tid,0,8);

while($data = db_fetch_object($result)){

$output .="<li>".l($data->title,"node/$data->nid")."</li>";

}

$output .= "</ul></div>";

return $output;

}

在模板适当位置写入:

<?php print phptemplate_show_taxonomy(12) ?>

 

PS:1年前做Drupal项目时写得备忘,今天被不小心翻出来了…
WordPress贴代码真麻烦,不过懒得修改了,过几天把自己的Blog软件完善下发布出来…

TrackBack: http://mimiz.cn/index.php/drupal/drupal-category-list/trackback/
分享到:
评论

相关推荐

    drupalorg.gs:用于自动填充目的的读取 Drupal.org API 的 Google 表格的自定义函数

    Drupalorg.gs 是一个基于 JavaScript 的项目,主要用于与 Drupal.org API 进行交互,为 Google 表格提供自定义函数,从而实现数据的自动化填充。这个工具对于 Drupal 开发者、贡献者或者项目管理者来说非常实用,它...

    Drupal模板变量列表

    - `variables`:自定义的模板变量,由模块或主题在预处理函数中添加。 7. **其他常用变量**: - `css` 和 `js`:分别包含CSS和JavaScript文件的链接,用于页面渲染。 - `stylesheets` 和 `scripts`:与`css` 和 ...

    drupal_themes:自定义主题-Drupal 7

    6. **HOOKS**: Drupal的主题可以通过实现特定的“hook”函数来自定义其行为。例如,`hook_preprocess_HOOK()` 和 `hook_process_HOOK()` 可以用来在页面渲染前修改变量,而 `hook_block_view()` 可以用来修改区块的...

    drupal 7 module development

    4. **视图(Views)**:Drupal 7 集成了 Views 模块,它提供了一种强大的方式来展示和管理 Drupal 数据,如创建列表、网格或自定义页面。开发者可以利用 Views API 来扩展其功能。 5. **菜单与路由**:通过 `hook_...

    drupal7 自己写的扩展模块 news

    "news" 模块可能定义了新闻的添加、编辑和显示表单,以及一个新闻列表视图。 6. **主题集成**:Drupal 模块可以提供自己的主题函数或模板文件来控制输出样式。"news" 模块可能有 `news.tpl.php` 文件来定制新闻条目...

    Drupal data Drupal data

    此外,字段(Fields)允许自定义内容类型,每个字段都会在数据库中创建对应的表。 2. **数据模型**:Drupal使用Content Type来定义不同的数据模型,比如文章、页面或产品。每个Content Type由一系列字段组成,这些...

    drupal module-nicemenu

    开发者可以利用 PHP 编写自定义函数、钩子和其他交互逻辑,以满足特定项目的需求。 Drupal 作为一个开源 CMS,基于 PHP 开发,具有高度可扩展性和灵活性。它提供了一套完整的框架,允许开发者通过安装和配置模块、...

    Drupal模块开发中的HOOK使用详解

    HOOK是Drupal中的一种钩子机制,它允许模块在特定事件发生时执行自定义代码。 Drupal的核心或其它模块在执行某些操作前或后,会触发这些HOOK,让其它模块有机会参与到流程中。这使得Drupal具有高度的可扩展性和灵活...

    Drupal7 theme samoca

    - **钩子函数**:Drupal的钩子系统允许模块和主题自定义或扩展核心功能。例如,hook_preprocess_HOOK() 和 hook_block_view() 等钩子函数在渲染内容时被调用,可以用来修改输出。 - **Theme Registry**:Drupal的...

    Drupal分页代码

    Drupal的分页代码示例为我们展示了如何利用其内置功能和自定义模块开发技巧,高效地处理和展示大量数据。通过理解并掌握类似代码片段的编写逻辑,开发者可以在自己的Drupal项目中实现更高级的数据管理和用户交互体验...

    Drupal7 API

    Drupal 7 API则是用于扩展和自定义Drupal功能的一套接口。通过使用Drupal 7 API,开发者可以轻松地添加新功能、修改现有行为或创建自定义模块。 ### Drupal 7 API核心概念 1. **模块**:Drupal中的所有功能都是...

    2009最新drupal 学习资料合集

    Drupal拥有活跃的全球社区,资料可能提及如何参与社区,找到支持和解决问题的途径,例如 Drupal.org 上的论坛、邮件列表、IRC频道以及相关的在线教程和博客。 总的来说,这个"2009最新Drupal学习资料合集"是全面...

    smartapp_test:自定义表单drupal 8

    【标题解析】:“smartapp_test:自定义表单drupal 8”这个标题指出我们将讨论一个名为“smartapp_test”的项目,它与Drupal 8中的自定义表单功能相关。Drupal是一个开源的内容管理系统(CMS),而自定义表单是...

    自定义drupal注册表单的方法

    此外,如果用户在安装了Drupal后不想通过编写自定义代码来添加额外的用户信息,Drupal也内置了一个名为profile的模块,允许用户手动配置和添加更多的用户信息字段。这为用户提供了另一种灵活的解决方案,尤其是对于...

    Drupal专业开发指南

    - **使用分类(Taxonomy)**:分类系统是Drupal中用于组织内容的重要工具。开发者可以通过创建词汇表和术语来改善内容分类。 - **缓存机制**:缓存是提高网站性能的有效手段。了解Drupal的缓存策略以及如何配置缓存...

Global site tag (gtag.js) - Google Analytics