Context模块:放置Drupal区块和主题在不同的页面

cn4jd的头像

Drupal模块页面中以这种方式描述Context的: "Context 允许你为网站不同部分管理情景条件和动作。你可以把每个Context设想成网站的一部分. 为每个Context, 你可以选择条件来触发此处于激活状态context并选择Drupal不同方面设置对激活的context做出动作."

这意味着: "你可以使区块,主题或更多仅显示在你想要的地方。"

Context是非常强大的模块, 许多网站使用它替代Drupal核心的区块系统.在这个教程我们将告诉你Context如何工作并使一个区块仅在指定的内容类型可见。

步骤1. 安装并启用Context

为了在你的网站上启用Context你需要:

Drupal 7 版的Context仍然在beta版,但它足够稳定使用在大多数网站,Drupal 6版,工作原理一样,但界面略微不同。

步骤2. 开始吧

前往 Structure > Context 并点击 Add.

步骤3. 创建新的context

以名称,标签,描述开始,在你填充这些字段后并从页面下面的下拉菜单中作出选择其他界面是可见的. 

  1. Name: 你context的名称,这是识别你context的主要标示并且在你创建后不能修改。

  2. Tag: context管理列表的组织分类. 可选. 例如组织标签是区块或主题。

  3. Description: 你的context描述或人可读名称.这是显示在行内编辑器的,如果可以替换名称。

  4. Require all Conditions: 如果选择,必须满足所有条件才能激活context,否则,只要满足任何一个条件就可以激活这个context

  5. Conditions: 触发激活这个context的条件

  6. Reactions: 当条件满足时采取的动作.

那空的红色框内将会列出你的条件. 一旦你选择一个条件,你会明白我的意思。

 

步骤4. 设置第一个条件

  • 点击下拉箭头来查看条件列表

  • 选择一个你想作为这个context的条件.

  • 这里我们选择节点类型.

你实际上是在创建一组 "if-then" 语句, 但是使用界面替代写代码,Conditions(条件)是 "if" 语句.如果你知道任何基本的编程你就会熟悉条件语句. 父母常用这些: "如果你吃了你的豌豆,然后你就可以拥有沙漠." 我们正在做的就是创建一组这些if-then语句. 整组语句是在Drupal "context"中的术语

步骤5. 选择详细的条件

选中该框旁边的内容或你想展示区块的节点类型

我正要添加区块到一个我们之前教程中创建的Testimonial内容类型. 当一些人阅读testimonial我们可看到区块“谁在线”,“谁新加入”,我们打算放置这些区块到每个testimonial 页面.

你也可以看到节点类型现在出现在“Conditions(条件)”之下 . 所有我们创建的条件将会列出在这里,  我们可以链接到并控制他们,这样我们可以返回并编辑他们如果我们需要.

 

步骤6. 选择一个动作

一个反应是"if-then" 语句的第二部分.

  • 从右栏中做出你的选择. 我选择“谁新加入” .

  • 点击 "Add" 在你想放置区块的区域

  • 向下滚动并保存.

  • 区块将被放置在右侧边. 类似使用区块, 但最大的区别是, “谁在线”区块将仅在所有条件都满足时出现. 所以如果你是管理员,而且如果你在浏览基本页面1,2,或3; 然后你将看到“谁新加入”区块

  • 选择区块.

  • 点击你要显示的区块旁边的选框.

 

  • 点击添加你想要的区块到区域

  • 他们将在区域下方列出. 权重将确定他们出现在网站上的顺序

  • 保存并滚动到页面底部并点击保存

  • 现在你可以看到一条确认消息

 

步骤7: 从首页检查节点类型

如果所有正常你将看到“谁在线”区块和“谁新加入”区块仅在你选择的节点条件中出现,正如上面的图片. 这些区块不会出现在其他节点上,正如下面的图片。

 

如果你想设置得更加精准,你可以返回去并添加其他条件.为了实践,可尝试添加用户权限作为一个条件那样仅登录用户可以看到区块。 你可以添加更多条件和更多动作直到你得到一个相当精细的过滤器. 你也可以尝试分配一个不同主题到一个内容类型,他甚至可以处理一个Context来触发另一个Context.

作者: 
ostraining

添加新评论