如何使功能仅适用于某些空格? -- 6 领域 和 features 领域 和 7 领域 和 organic-groups 领域 和 distributions 领域 drupal 相关 的问题

How to make a Feature available only to certain Spaces?


3
vote

问题

中文

对于Drupal 6开放式庭院站点(即,功能,空格,有机组)我正在运行,我创建了一些自定义功能,只能真正适用于站点上的数百个群体。

它代表,"自定义功能" 配置屏幕显示所有的功能,包括那些我想故意限制到几个特殊群体的那些。

预防每个小组提供这些特殊功能的最佳方法,同时保留了特殊组上的这些功能?

英文原文

For a Drupal 6 Open Atrium site (i.e., Features, Spaces, Organic Groups) I'm running, I've created some custom Features that only really apply to a handful of the hundreds of groups on the site.

As it stands, the "Customize Features" config screen shows all the Features, including those I'd like to intentionally restrict to just a couple of special groups.

What's the best way to prevent these special Features from being offered to every group, while retaining those Features on the special groups?

              

回答列表

2
 
vote
vote
最佳答案
 

通过 spaces_features_form() 功能配置每个空间的功能。你可以实现 hook_form_alter() 选择性地和有条件地删除特定组的功能。

  function MYMODULE_form_alter(&$form, $form_state, $form_id) {   if ($form_id == 'spaces_features_form') {     $space = spaces_get_space();     // Populate the array with hard-coded NIDs, or whatever logic     // needed to determine if these features should be allowed.     if ($space->type == 'og' && !in_array($space->group->nid, array(...))) {       // Hide features foo and bar.       foreach (array('feature_foo', 'feature_bar') as $feature) {         $form['spaces_features'][$feature]['#access'] = FALSE;       }     }   } }   
 

The features for each space are configured via the spaces_features_form() function. You could implement hook_form_alter() to selectively and conditionally remove features from specific groups.

function MYMODULE_form_alter(&$form, $form_state, $form_id) {   if ($form_id == 'spaces_features_form') {     $space = spaces_get_space();     // Populate the array with hard-coded NIDs, or whatever logic     // needed to determine if these features should be allowed.     if ($space->type == 'og' && !in_array($space->group->nid, array(...))) {       // Hide features foo and bar.       foreach (array('feature_foo', 'feature_bar') as $feature) {         $form['spaces_features'][$feature]['#access'] = FALSE;       }     }   } } 
 
 
1
 
vote

功能是模块。系统宽启用模块,不能链接到空格或组。但是,您可以通过创建自定义权限来控制对它们的访问,请参阅 hook_perm()。

 

Features are modules. Modules are enabled system-wide and cannot be linked to a Space or Group. However, you could control access to them by creating custom permissions, see hook_perm().

 
 
 
 
1
 
vote

我会添加此hook_perm建议表单的更改,以基于组类型禁用适用功能。 hook_form_alter可能不会工作原因,结果相关项目尚未存在。您可能必须注册一个 #after_build 钩子,然后相应地修改表格。

 

I'd add to this hook_perm suggestion an alteration on the form to disable the applicable feature based on the group type. hook_form_alter probably wont work cause the feature related items won't be present yet. You may have to register an #after_build hook and then modify the form accordingly.

 
 
1
 
vote

上下文绝对是去的方式。
上下文,功能和 spaces 是一个强大的组合。这个发展的帖子应该有帮助:在drupal中建立一个"博客功能" 上下文和空间

 

Context is definitely the way to go.
Context, Features and Spaces are a powerful combination. This DevelopmentSeed post should help: Building a "Blog Feature" in Drupal with Context and Spaces

 
 
-1
 
vote

您是否可以从一开始就启用所有功能,但通过上下文?我还没有机会尝试自己的上下文,但听起来像一个合身。

 

Could you enable all of the features from the start, but handle their display via Context? I haven't had a chance to try Context myself yet, but it sounds like a fit.

 
 

相关问题

8  在不支持之后,Drupal 6将以安全的状态留下?  ( Will drupal 6 be left in a secure state after it becomes unsupported ) 
我使用drupal 6 + 视图 + cck 对我公司的工作非常好,最近我必须将它迁移到另一台服务器。 我想"嘿,为什么不安装drupal 7然后转储数据库:然后我可以在迁移时将drupal升级到最新版本!" 结果是一个坏主意。 Drupal 7似乎没有丝毫的线索如何处理我给它的数据库信息。升级指南现在看起来非...

3  核心论坛形式下拉空  ( Core forum form dropdown empty ) 
在D6站点中,当用户进入节点/添加/论坛时,他们发现下拉"论坛" 只是显示"请选择" 但是该菜单中没有任何内容。 PHP错误日志或看门狗中没有任何内容。 我相信用户有正确的权限 - 毕竟,表单确实显示。否则(admin)的下拉列表显示了站点上的所有不同论坛,都是空的,而且没有它不能提交表单。 我已经看到了几乎所有...

7  使drupal_goto忽略?目的地= foo  ( Making drupal goto ignore destination foo ) 
我经常在我的drupal 6站点来遇到一个用户可能会遇到我的模块的页面?destinational = foo querystring从网站上的先前交互附加到URL。这种结果因"非常加重" 而异。 drupal_goto() 首先检查目标参数的默认行为,并将参数忽略 drupal_goto() 如果存在。 是否有...

6  以编程方式插入WebForm结果  ( Programmatically insert webform result ) 
我使用的是安装了WebForm模块的Drupal 6。 我需要能够从php结果到webform封锁。伪码: <?php //File: remote_script_not_hosted_on_the_same_server_as_drupal.php $results = array( 'name' => 't...

4  如何将独立的PHP文件放入Drupal 6?  ( How do i go about putting standalone php files into drupal 6 ) 
我想添加一个额外的酷炫php类,我将把它放在drupal中,我如何使代码不呈现安全风险,我应该把它变成一个模块吗? ...

2  Ubercart:更改产品显示表单标签“SKU”  ( Ubercart change the product display form label sku ) 
如何更改SKU的显示? (哪个钩子管理产品节点显示?) 我需要sku输出以显示"型号#" 。在产品节点页面上 drupal版本6.2x ...

1  Ubercart Marketplace - 用户的Imagefield在哪里?  ( Ubercart marketplace where is the imagefield for users ) 
使用drupal 6 Imagefield配置为产品。 Imagefield出现为管理员,但不是用户。如何为授权Ubercart Marketplace卖家销售的用户出现拍摄剧场?任何帮助都赞赏! andre e ...

2  多轴投票系统(星级评级)  ( Multiple axis voting system star rating ) 
我尝试了多轴投票系统使用Drupal Fivestar和Computed Field ,但我无法理解以下2分: 将节点参考字段添加到投票节点类型,使所选的目标节点类型。 设置投票(aka.review)节点类型,为多个AXIS投票添加所有必填字段和FiveStar字段。记住将"目标" 选项设置为#3字段。 愿有人...

5  配置SSL  ( Configuring ssl ) 
我正在使用drupal 6并已经设置了SSL证书(使用我自己的证书颁发机构)配置了我的Apache服务器,并在Drupal .htaccess 文件中添加了以下重定向。 RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^test/home https://loca...

3  WSOD在管理页面上  ( Wsod on administration pages ) 
以下是事实: 制作了一个干净的Drupal 6.20 已安装和启用管理员菜单模块 从这一点上我无法访问任何 admin/* 页面,但我可以访问 99887661 和 user/* ... php log: No entries apache错误日志: No entries apac...

4  如何控制来自视图内容窗格的“更多”链接,以指向Biblio过滤页面  ( How do i control the more link from a views content pane to point to a biblio ) 
我正在使用drupal 6.我正在尝试创建一个查看窗格,列出匹配特定术语的三个Biblio项,然后提供与使用相同术语过滤的更多项目的链接。 Biblio允许我使用 biblio/term/term_name 很好地访问这些项目。有没有办法控制视图提供的 more 链接,以便它指向这个位置? ...

2  Ubercart:属性?  ( Ubercart attributes ) 
我有现有的推车,库存有不同权重的单独产品,它们是单独的条目。我希望各种权重组合并按属性搜索。用ubercart做到这一点的最佳方法是什么。 我正在使用drupal 6 ubercart 2。 ...

3  强制所有链接到绝对  ( Force all links to be absolute ) 
我是一个自定义模块,我正在通过电子邮件发送节点和视图的内容。该模块首先渲染节点/视图并将结果包围公共模板。 但是当我的视图和节点内容构建时,它们包含链接是亲戚。我正在寻找一种方法来强迫这些链接成为绝对(即,具有域和协议)。 URL()和L()函数可用于输出绝对链接,但我没有看到一种方法来强制在所有链接上强制此行为。...

2  等效_phestemplate_variables()  ( Equivalent of phptemplate variables ) 
在Drupal 6中已弃用的Drupal 5( _phptemplate_variables() )中有一个函数。 在Drupal 6中是否有类似的功能? ...

4  如何在注册时重定向到命名节点  ( How to redirect to a named node upon registration ) 
给出了一个D6网站,用户必须确认其电子邮件地址,我希望新注册人立即重定向到解释电子邮件验证过程的页面节点。 我试图使用动作和触发器来执行此操作,但"触发:在发送用户帐户之后" 在发送激活电子邮件之前执行,因此消息被阻止,从未退出。这似乎是一个未解决的问题追踪,如D5。 登录目标模块列为支持D7.x但不是6.x的...

4  如何在许多论坛中放置一个论坛主题  ( How to place one forum topic in many forums ) 
我有一个使用D6和高级论坛模块创建的论坛系统。我想在所有论坛部分中发布一个特殊的论坛主题,该部分描述了网站规则以及如何使用各种论坛功能。如果可以使用一次出现在所有论坛中的单个节点可以完成这一点,这将是完美的,因为这种注释将包含在一个讨论中。 ...

2  需要一个wysiwyg插件  ( Need a wysiwyg plugin ) 
直到这一点,我需要一个用于Drupal 6的WYSIWYG模块;以下是要求: 易于更改工具栏按钮 能够添加自定义样式 能够上传图像并投入内容 能够上传闪存并渲染内容 能够上传文件并将其显示为下载链接 熟悉WordPress WysiWyg编辑器的人?这是我想要的。 ...

5  更改$ <field_name> _ _rendered输出?  ( Change field name rendered output ) 
在节点中,我将CCK字段的值作为$数组或$ _ _RENDERED作为字段的呈现视图。如何从其默认渲染方式更改 $<field_name>_rendered ? ...

10  如何检测当前的URL?  ( How to detect the current url ) 
我想在D6中添加一个身体类,如果您在我的 template.php 上的特定页面上,我有: if url('the/path') { add the body class... } 但该功能似乎对我来说似乎没有工作。 ...

1  为新安装添加CDN功能:现在或更高版本?  ( Adding a cdn feature for a new installation now or later ) 
如果您从头开始设置Drupal 6网站,请立即安装CDN模块(或类似服务)是重要的吗?或者将添加此类功能稍后易于执行 - 即使在站点域中已使用多个图像文件或静态文件,甚至可以在网站域中使用? ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.