Drupal 根据其他块中的更改更改块内容
我是经验丰富的Java/C++程序员,但对Drupal/PHP完全陌生 简短问题: 如何根据特定块的输入刷新页面中的所有块 确切场景: 我期待着创建一个网站与显示和行为类似。我已经开始在Drupal 7中为此创建自定义模块,因此我们希望:Drupal 根据其他块中的更改更改块内容,drupal,drupal-7,partial-page-refresh,drupal-blocks,Drupal,Drupal 7,Partial Page Refresh,Drupal Blocks,我是经验丰富的Java/C++程序员,但对Drupal/PHP完全陌生 简短问题: 如何根据特定块的输入刷新页面中的所有块 确切场景: 我期待着创建一个网站与显示和行为类似。我已经开始在Drupal 7中为此创建自定义模块,因此我们希望: 顶部输入块,用户可以在其中输入特定公司的名称 一个主块,以一般内容开头(例如表格加上最新经济新闻等)。一旦在区块1中选择了一家公司,这将更改为关于所选公司的新闻和表格 一个侧面图形块显示一些相关图形等。同样,如果没有选择任何公司,这可能会显示一般图形(如标准普
欢迎使用任何指针、提示、建议、示例和示例代码 根据您的描述,我将以这种方式处理这个问题。视图模块处理的大部分功能 我假设您具有以下设置:
- 一种称为“公司”的分类词汇,其公司名称如下 条件
- 一种称为“News”的内容类型,其中包含有关 公司。最重要的是,它需要一个分类领域,您可以 可以选择与其相关的公司(将此字段称为“公司参考”)
- 称为“表”(?)的内容类型。我不知道你有什么消息 想要进入你的“桌子”,但同样最重要的是有一个 分类字段以引用公司。(可以是同一字段“公司\参考”)
- 将显示名称设置为有意义的名称,例如“用户输入块”
- 对于此块,保持格式设置不变
- 对于字段设置,只需使用“内容:标题”(不包括 对这个街区来说真的很重要)
- 对于筛选条件设置,添加一个筛选并选择您的 “company_reference”字段,将其设置为自动完成,显示过滤器 并(在“更多”部分下)更改其过滤器标识 到“公司”
- 对于寻呼机设置,将其设置为显示特定数量的项目,并将其设置为“1”。(这将限制此块检索的数据)
- 在“高级”部分下,更改“机器名称”,使其有意义,如“用户输入块”
- 仍在“高级”部分,单击“主题:信息”。这将显示可用于此视图的不同自定义模板文件的列表。对于“Display Output”,写下列表中的最后一个模板建议,类似于“views view--company data--user input block.tpl.php”(“视图视图--{your view name}--{your Display name}.tpl.php”)。单击“显示输出”并复制它列出的PHP。(这是视图的默认PHP)
- 在文本编辑器/IDE(无论您使用什么)中,粘贴复制的PHP代码,并使用您写下的模板名称将其保存在自定义主题中。编辑PHP并注释掉或删除标有“
”的部分(这将从显示中删除返回的内容)…
- 将显示名称设置为有意义的名称,例如“公司新闻”
- 设置所需的格式设置(或保持原样)
- 对于筛选条件添加“内容:类型”筛选,并选择“新闻”和“表格”内容类型
- 在“高级”部分中,单击“上下文过滤器”旁边的“添加”。)在URL中传递上下文过滤器,我们将获取从输入块传递的值。)选择“内容:字段\公司\参考”作为字段,然后单击“应用”
- 对于“过滤器值不可用时”部分,选择“提供默认值”
- 对于“类型”,选择“PHP代码”,PHP代码将是这样的“
return isset($\u GET['company'])$_获取['company']:false代码>”
- 对于“当提供默认值的过滤器可用时”,选中“指定验证标准”,将“验证器”设置为“分类术语”,选中“公司”词汇表和“过滤器值类型选择”术语名称转换为术语ID
- 对于“过滤器值未验证时要采取的操作”,请选择“显示所有结果”