Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 根据其他块中的更改更改块内容_Drupal_Drupal 7_Partial Page Refresh_Drupal Blocks - Fatal编程技术网

Drupal 根据其他块中的更改更改块内容

Drupal 根据其他块中的更改更改块内容,drupal,drupal-7,partial-page-refresh,drupal-blocks,Drupal,Drupal 7,Partial Page Refresh,Drupal Blocks,我是经验丰富的Java/C++程序员,但对Drupal/PHP完全陌生 简短问题: 如何根据特定块的输入刷新页面中的所有块 确切场景: 我期待着创建一个网站与显示和行为类似。我已经开始在Drupal 7中为此创建自定义模块,因此我们希望: 顶部输入块,用户可以在其中输入特定公司的名称 一个主块,以一般内容开头(例如表格加上最新经济新闻等)。一旦在区块1中选择了一家公司,这将更改为关于所选公司的新闻和表格 一个侧面图形块显示一些相关图形等。同样,如果没有选择任何公司,这可能会显示一般图形(如标准普

我是经验丰富的Java/C++程序员,但对Drupal/PHP完全陌生

简短问题:

如何根据特定块的输入刷新页面中的所有块

确切场景:

我期待着创建一个网站与显示和行为类似。我已经开始在Drupal 7中为此创建自定义模块,因此我们希望:

  • 顶部输入块,用户可以在其中输入特定公司的名称
  • 一个主块,以一般内容开头(例如表格加上最新经济新闻等)。一旦在区块1中选择了一家公司,这将更改为关于所选公司的新闻和表格
  • 一个侧面图形块显示一些相关图形等。同样,如果没有选择任何公司,这可能会显示一般图形(如标准普尔、道琼斯、纳斯达克),如果选择了一家公司,这会显示所选公司的详细信息 在我看来,网站是在用户的“当前上下文”中工作的。那么,也许我可以在Drupal中设置一个会话级变量,并根据该变量的当前值刷新所有块

    然而,我不知道如何实现这一点,最好的方法是什么?(AJAX?分类法?)


    欢迎使用任何指针、提示、建议、示例和示例代码

    根据您的描述,我将以这种方式处理这个问题。视图模块处理的大部分功能

    我假设您具有以下设置:

    • 一种称为“公司”的分类词汇,其公司名称如下 条件
    • 一种称为“News”的内容类型,其中包含有关 公司。最重要的是,它需要一个分类领域,您可以 可以选择与其相关的公司(将此字段称为“公司参考”)
    • 称为“表”(?)的内容类型。我不知道你有什么消息 想要进入你的“桌子”,但同样最重要的是有一个 分类字段以引用公司。(可以是同一字段“公司\参考”)
    您正在寻找的大部分功能都可以使用“视图”模块构建

    我将创建一个视图(我们称之为“公司数据”)。视图将有三种不同的显示,每种类型为“块”

    显示1:输入块

    • 将显示名称设置为有意义的名称,例如“用户输入块”
    • 对于此块,保持格式设置不变
    • 对于字段设置,只需使用“内容:标题”(不包括 对这个街区来说真的很重要)
    • 对于筛选条件设置,添加一个筛选并选择您的 “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并注释掉或删除标有“
      ”的部分(这将从显示中删除返回的内容)
    因此,要查看刚刚创建的视图显示,将(使用自定义模板)显示一个块,其中仅包含一个字段,当用户输入公司名称时,该字段将自动完成。然后它将提交表单并将其作为GET变量传递到当前url(www.yoursite.com/yourpage?company=users company)

    显示2:*主块**

    • 将显示名称设置为有意义的名称,例如“公司新闻”
    • 设置所需的格式设置(或保持原样)
    • 对于筛选条件添加“内容:类型”筛选,并选择“新闻”和“表格”内容类型
    • 在“高级”部分中,单击“上下文过滤器”旁边的“添加”。)在URL中传递上下文过滤器,我们将获取从输入块传递的值。)选择“内容:字段\公司\参考”作为字段,然后单击“应用”
    • 对于“过滤器值不可用时”部分,选择“提供默认值”
    • 对于“类型”,选择“PHP代码”,PHP代码将是这样的“
      return isset($\u GET['company'])$_获取['company']:false
    • 对于“当提供默认值的过滤器可用时”,选中“指定验证标准”,将“验证器”设置为“分类术语”,选中“公司”词汇表和“过滤器值类型选择”术语名称转换为术语ID
    • 对于“过滤器值未验证时要采取的操作”,请选择“显示所有结果”
    要查看,此视图显示将显示列出“新闻”和“表格”内容的块。如果传递了GET变量“company”(来自输入块),则此块的内容将被过滤,以仅显示与该块关联的内容

    显示3:*图形块**

    我不确定你想在bl中显示什么数据