首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Drupal 7:数据库查询文件

Drupal 7:数据库查询文件
EN

Stack Overflow用户
提问于 2015-06-29 08:15:20
回答 3查看 283关注 0票数 0

在page.tpl.php of Drupal中,以下代码具有变量$page,其中包含呈现部分网页所需的html代码。

代码语言:javascript
代码运行次数:0
运行
复制
<?php if ($page['content']): ?>

我尝试从DB中检索更新的内容,并在不刷新整个页面的情况下更新DIV。我的问题是,在哪里可以找到$page产生的DB查询代码?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-29 12:32:46

页面“内容”变量

当Drupal显示"content“变量时,请将其视为将在页面特定部分呈现的大量数据。在此之前,它要么从本机接口的块设置(块可见性设置)检索数据,要么从覆盖此原始设置(如f.e )的自定义模块中检索数据。上下文(https://www.drupal.org/project/context)。

>>模板文件

模板文件类似于构建数据并准备呈现并交付给客户端的最后一站。

通常,最佳实践是保持呈现模板的完整性,并将逻辑和变量操作保持在pre_hook级别上。

因此,如果您想要对可以显示的内容拥有“编程”控制,则可以使用f.e.:。

使用"node_load“函数呈现特定节点,然后使用node_view($node) f.e。$node = node_load(23); //23 is random a node id if (isset($node)) { $node_data = node_view($node,'default''); // here's my node display data print drupal_render($node_data); // here's my html }

呈现使用"theme_render_template“template/7聚合不同数据的模板

如前面所述,使用views_get_view(“视图名称”)呈现视图。

这样的钩子可以帮助您添加/修改您想要的内容。

template_preprocess:(钩子模板

hook_node_view:(在呈现之前更改节点数组数据)

page_alter:(更改页面变量,如内容、标题等)

hook_views_pre_render:(视图是生成的,可以更改呈现过程)

hook_panels_alter:(用于页面管理器和ctools方法)

>>数据库查询对数据库执行直接查询也可以通过数据库api完成,然后呈现,但是要注意,您可能会错过drupal钩子功能,最终会有高维护代码逃避方便和安全的Drupal方式。

希望能帮上忙!

票数 1
EN

Stack Overflow用户

发布于 2015-06-29 09:24:42

该内容来自内部节点模板(如果您在该页上显示节点),或即在所显示的页面上查看template....or...depending。但是,如果我们假设您正在以某种内容类型显示节点页"player“,您创建的内容将”来自“模板文件”node -player.tpl.php“。

https://www.drupal.org/node/1089656

在该文件中,您可以执行数据库查询(通过使用Drupal的数据库api),甚至可以更容易地使用Drupal的视图模块查询数据库:

https://www.drupal.org/project/views

票数 1
EN

Stack Overflow用户

发布于 2015-06-29 12:48:58

你想要做的是:

“我试图在不刷新整个页面的情况下从DB中检索更新的内容,并更新一个> DIV”

,通常是通过Javascript从浏览器发送Http请求,而不是在Drupal模板文件中从执行服务器端的PHP代码发送Http请求,名为AJAX。使用Drupal进行AJAX可以通过多种方式完成,推荐的方法之一是使用“”,从而生成带有"Drupal“调用服务器端的PHP代码,该服务器端将在Drupal的输出中为您生成适当的JavaScript客户端代码呈现器。Drupal“视图”模块也可能对此任务有所帮助,因为它“了解”Drupal AJAX框架。要正确地做到这一点,需要对一般AJAX机制和Drupal框架有很好的理解。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31110833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档