使用选择表单字段的字段,该字段选择发布节点的组 -- organic-groups 领域 和 nodes 领域 drupal 相关 的问题

Using a select form field for the field that selects the groups where a node is posted


1
vote

问题

中文

用于为有机组模块设置为内容类型的内容类型的节点的表单具有复选框,用于选择发布节点的组;我想使用Select表单字段而不是复选框。

如何更改表单字段?

我已经尝试了drupal.org的一些修补程序,但它们无法正常工作。

我使用了以下代码。

  /**  * Helper function; Make the groups audience accept only a single group.  */ function og_single_group_form_alter(&$form, $form_state, $form_id) {   if (module_exists('og_access')) {     $path = drupal_get_path('module', 'og_single_group');     drupal_add_js($path . '/og_single_group_hideoption.js');   }    if (!empty($form['og_nodeapi']['visible']['og_groups']) && ($form['og_nodeapi']['visible']['og_groups']['#type'] != 'value')) {     $options = array();     $options = array(t('Personal blog')) + $form['og_nodeapi']['visible']['og_groups']['#options'];     $form['og_nodeapi']['visible']['og_groups']['#type'] = 'select';     $form['og_nodeapi']['visible']['og_groups']['#multiple'] = FALSE;     $form['og_nodeapi']['visible']['og_groups']['#options'] = $options;     // Add own submit handler so we can cast the groups back to an array.     $form['#submit'][] = 'og_single_group_submit';   } }   /**   * Submit handler; Since we permit only a single group per content, we need to   * case to groups into an array   */ function og_single_group_submit($form, &$form_state) {    if (!empty($form_state['values']['og_groups']) && !is_array($form_state['values']['og_groups'])) {      $form_state['values']['og_groups'] = drupal_map_assoc((array)$form_state['values']['og_groups']);    }    else if (empty($form_state['values']['og_groups'])) {     $form_state['values']['og_groups'] = array();   } }   

代码会导致以下错误:

警告:array_filter()[function.array-filter]:第一个参数应该是/var/www/mysite/sites/all/modules/contrib/og/g.module在线1303中的数组。

英文原文

The form for creating a node for the content type that has been set as content type for the Organic Groups module has checkboxes for choosing the groups where a node is posted; I want to use a select form field instead of the checkboxes.

How should I alter the form field?

I have tried some patches from drupal.org, but they do not works correctly.

I have used the following code.

/**  * Helper function; Make the groups audience accept only a single group.  */ function og_single_group_form_alter(&$form, $form_state, $form_id) {   if (module_exists('og_access')) {     $path = drupal_get_path('module', 'og_single_group');     drupal_add_js($path . '/og_single_group_hideoption.js');   }    if (!empty($form['og_nodeapi']['visible']['og_groups']) && ($form['og_nodeapi']['visible']['og_groups']['#type'] != 'value')) {     $options = array();     $options = array(t('Personal blog')) + $form['og_nodeapi']['visible']['og_groups']['#options'];     $form['og_nodeapi']['visible']['og_groups']['#type'] = 'select';     $form['og_nodeapi']['visible']['og_groups']['#multiple'] = FALSE;     $form['og_nodeapi']['visible']['og_groups']['#options'] = $options;     // Add own submit handler so we can cast the groups back to an array.     $form['#submit'][] = 'og_single_group_submit';   } }   /**   * Submit handler; Since we permit only a single group per content, we need to   * case to groups into an array   */ function og_single_group_submit($form, &$form_state) {    if (!empty($form_state['values']['og_groups']) && !is_array($form_state['values']['og_groups'])) {      $form_state['values']['og_groups'] = drupal_map_assoc((array)$form_state['values']['og_groups']);    }    else if (empty($form_state['values']['og_groups'])) {     $form_state['values']['og_groups'] = array();   } } 

The code causes the following error:

Warning: array_filter() [function.array-filter]: The first argument should be an array in /var/www/mysite/sites/all/modules/contrib/og/og.module on line 1303.

     

回答列表

2
 
vote

我正在回复基于你在评论中写的内容。

有机组显示复选框或基于"受众" 表单字段中列出的组数的选择字段。如果组数小于20,则模块将使用复选框;否则,它将使用一个选择框。

除了使用有机组添加的表单字段的模块,无法更改使用哪个表单字段的方法。 OG.Module中包含的以下代码是将受众表单字段添加到节点编辑表单中的代码。

  // show multi-select. if less than 20 choices, use checkboxes. $type = $cnt >= 20 || $is_optgroup ? 'select' : 'checkboxes'; $max_groups = variable_get('og_max_groups_'.$node->type,''); $description_max_groups = ($max_groups && !user_access('administer nodes')) ? format_plural($max_groups," Limited to !max_groups choice."," Limited to !max_groups choices.", array('!max_groups' => $max_groups)):''; $form['og_nodeapi']['visible']['og_groups'] = array(   '#type' => $type,   '#title' => t('Audience'),   '#attributes' => array('class' => 'og-audience'),   '#options' => $type == 'checkboxes' ? array_map('filter_xss', $options) : $options,   '#required' => $required,   '#description' =>  format_plural(count($options), 'Show this post in this group.', 'Show this post in these groups.') . $description_max_groups,   '#default_value' => $groups ? $groups : array(),   '#required' => $required,   '#multiple' => TRUE);   

足以有一个执行以下行的模块,表单字段将始终使用Select框来显示将帖子相关联的组列表。

  $form['og_nodeapi']['visible']['og_groups']['#type'] = 'select';   

代码需要在 99887662 ,或 99887663

 

I am replying basing on what you wrote in the comment to your question.

Organic Groups shows checkboxes or a select field basing on the number of groups that are listed in the "Audience" form field. If the number of groups is less than 20, the module will use checkboxes; otherwise, it will use a select box.

There is no way to change which form field is used, except using a module that alters the form fields added by Organic Groups. The following code, contained in og.module, is the code that adds the audience form field to the node edit form.

// show multi-select. if less than 20 choices, use checkboxes. $type = $cnt >= 20 || $is_optgroup ? 'select' : 'checkboxes'; $max_groups = variable_get('og_max_groups_'.$node->type,''); $description_max_groups = ($max_groups && !user_access('administer nodes')) ? format_plural($max_groups," Limited to !max_groups choice."," Limited to !max_groups choices.", array('!max_groups' => $max_groups)):''; $form['og_nodeapi']['visible']['og_groups'] = array(   '#type' => $type,   '#title' => t('Audience'),   '#attributes' => array('class' => 'og-audience'),   '#options' => $type == 'checkboxes' ? array_map('filter_xss', $options) : $options,   '#required' => $required,   '#description' =>  format_plural(count($options), 'Show this post in this group.', 'Show this post in these groups.') . $description_max_groups,   '#default_value' => $groups ? $groups : array(),   '#required' => $required,   '#multiple' => TRUE); 

It is enough to have a module that executes the following line, and the form field will always use a select box to show the list of groups to which associate a post.

$form['og_nodeapi']['visible']['og_groups']['#type'] = 'select'; 

The code needs to be executed inside the implementation of hook_form_alter(), or hook_form_FORM_ID_alter().

 
 
0
 
vote

在 spaces 模块有空间OG模块。这会删除"受众" 字段,并使其显示在哪里只能发布到单个组。

 

Inside the Spaces module there is the Spaces OG module. This removes the "audience" field, and makes it appear where you can only post to a single group.

 
 

相关问题

6  公开列出私有有机组而不访问节点页面?  ( List private organic groups publicly without giving access to the node page ) 
我有一个查看设置要列出我的OG节点,那些节点及其更大的内容需要私有到仅限组,但在网站的前端,我想列出一些特色节点。由于它代表节点访问系统正在从我的公众列表中删除这些节点。要保留完整节点私有的任何解决方案,但公开列出这些OG节点? ...

3  OG_MEMBERS BLOCK&OG_NODES块将无法显示内容  ( Og members block og nodes block wont display content ) 
og版本:7.x-1.x-dev 我的问题是我无法获得og_members block& og_nodes块在组页面下显示。 我的进程细分: 新建D7,必要的模块 创建了一个新的内容类型:国家/地区:指定为"组类型" ,"不是组内容类型" 。 添加一个新的国家:"英格兰" 。 createet一个新的内...

3  有机组模块误报了节点编辑  ( Organic groups module messes up node editing ) 
更新的标题,以反映问题的真正原因 我已经使用"属于" 或"关系" 的节点引用创建了一些内容类型。 当我添加新节点时,选择节点引用似乎工作正常,并且显示新创建的节点的默认"列表视图" 也显示了这些关系是正确的。但是,当我尝试查看或编辑单个节点时,显示的表单仅包含"标题" 字段,而不是其他类型。我还通过"管理字段" ...

5  块中的组ID过滤器?  ( Group id filter in block ) 
我想显示发布到OG组的内容的提款。我希望公共和私有组,因此用户必须查看访问该组以查看内容。我有一个组(命名为"组" )和用户可以发布到组的内容类型("主题" )。 我在视图中创建一个块并将其放置到符号内容,然后在显示组时显示块。目前该块将显示所有内容,我不知道如何为当前GID显示内容。 GID与NID(示例NID =...

7  发布OG内容时,如何仅从内容作者的组选择?  ( When posting og content how to choose only from content authors groups ) 
当用户编辑/创建节点时,有一个字段,用户可以选择将内容发布到的群组。我希望这个字段仅列出用户实际上是一个成员的组。有这个设置吗?如果没有,代码的最佳方式是什么? ...

2  如何使用有机组创建组并将用户分配给他们?  ( How to create groups and assign users to them using organic groups ) 
我已下载用于我的drupal项目的有机组模块,目前正在尝试创建组并将用户分配给他们。 我不想要任何花哨的东西。我只想能够创建组,让用户分配给他们的主管理员(不允许用户自身注册),并且该组的分配的"Leadent" 是组中唯一的编辑/ etc中的一个许可。 我不确定如何开始。我找到了资源有机组:使用户能够创建协作组,看...

2  安装OG后如何创建新组?  ( How do i create a new group after installing og ) 
我为我的Drupal 7帐户下载了有机组模块。我将它移到了我的网站/所有目录,并且能够在Drupal设置中看到它,其中我检查了所有有机组部分和区域设置。但是,当我开始创建/添加内容时,我没有看到创建组的选项。我做错什么了吗?之前有没有人见过这个问题? ...

2  覆盖参数  ( Overlay arguments ) 
我正在使用有机组,我为用户提供了一个为当前组创建内容的链接。我通过给出道路 node/add/grouptype?gids_node[]=1891 。 此工作正常,因为默认设置组。但是,我无法在叠加层上工作通过正确传递。 你有什么想法吗?我找不到任何文件。 ...

1  如何将OG添加到菜单?  ( How to add og to the menu ) 
我在Drupal 7中安装了有机组,我试图让组在菜单中显示。对于所有经过身份验证的用户,我希望它们属于菜单中所属的组(可以是用户菜单)。 加法: 下图显示了我所遇到的距离。这是在"编辑视图" 窗口中。最接近的窗鞋可以添加的字段。我发现的唯一的专用字段 Group: Group permissions 和 998...

2  获取正在添加到有机组的用户的用户名  ( Get the username of a user who is being added to an organic group ) 
我们正在使用有机组,我们每次有人加入一个组时都要通知管理员。 此刻,我们为此设置了一个触发器,并设置了一个动作来发送电子邮件。我们在电子邮件中使用%用户名令牌,但这是指在第一位置创建该组的人的用户名,而不是加入的人的用户名。 是否有任何方法可以发送包含正在加入该组的人的用户名的电子邮件? ...

2  有机组和文章/页面之间的问题?  ( Problem between organic groups and articles pages ) 
我目前在Drupal 7中工作,我拥有所有的视图和有机组模块。目前,当我在网站上创建新的文章或页面时,它在网站的首页上似乎很好。然而,当我点击查看/编辑文章/页面时,我无法看到文章/页面的正文,即使我可以在首页上看到它。 当我禁用模块有机组字段访问时,我能够在首页,查看和编辑屏幕上看到物品/页面的正文。 是否有一些方...

4  加入或创建注册组  ( Join or create group on registration ) 
当人们注册我的网站时,我希望它们要么加入现有组,要么创建一个新的组,如果它不存在。它们只能是一个组的成员,并且网站上只使用了一个组类型。 我有自动完成小部件集,我想改变它的功能,所以它不是抛出它创建一个组的错误消息。我假设改变og.module不是一个好主意,因为它不容易让我的特定变化通用足以为大量用例工作,所以我认...

3  在通过块分页时,页面上的另一个块消失  ( When paging through a block another block on the page disappears ) 
我正在使用Drupal 7与有机组和视图。目前在我的团队节点中,我有2个块,适当的过滤器。第一个块配置为仅在具有组内容的页面上仅显示。每页第二块显示1项,并且具有PAPER属于内容,以便通过属于块的多个节点来预订。 我注意到我通过块2底部的寻呼机转到另一个页面时,第一个块完全消失。我想要以不同的方式配置第一个块吗?...

1  每个有机组的自定义徽标  ( Custom logo for each organic group ) 
我想向组节点添加徽标(CCK Image字段)并在用户访问该组时显示它。 有没有模块? ...

0  节点对象中的图片字段是什么?  ( What is the picture field in the node object ) 
print_r($node) 输出: stdClass Object ( [nid] => 4 [type] => grouptype [language] => fa [uid] => 1 .... [title] => sample group .....

1  有机团体和工作流程  ( Organic groups and workflow ) 
如何为每个有机组为"文章" 等内容类型创建分隔工作流程? 例如: "数学集团" 有角色"作者" ,"头。" "文章" 用户创建的"作者" 角色在"数学组" 中创建的节点将仅由具有角色"头部" 的用户可见。 具有"head" 角色的用户将审查"文章" 节点,然后发布它或将其发送回"作者" 以进行改进。 如何使用 ...

2  自定义有机组论坛的显示  ( Customize the display for organic group forum ) 
我正在使用有机组,我想改变论坛主题的方式。更精确地,我希望能够添加一个显示 webfm 附件的块。 我发现的一种方式是自定义"节点模板" 页面(用于路径 function mh_integration_connect_form($form, &$form_state) { $form['#method'] =...

1  解剖OG模块 - 内容类型表单函数的内容类型表单of函数og_ui_form_node_type_form_alter?  ( Dissecting the og module where is the content type form submit handler for fun ) 
drupal版本:7 嗨,我正在尝试将设置添加到内容类型表单,我正在使用有机组作为指南。我看到og_ui.module中添加的og的表单元素在第316行中的第316行中 og_ui_form_node_type_form_alter 但我没有看到正在提交,处理,保存,处理的这些表单元素位置。我希望它将另一个提交处...

6  动态菜单链接到与当前有机组关联的论坛  ( Dynamic menu linking to the forum associated with the current organic group ) 
我有两组。我有两个属于每组的论坛。 我有一个面板设置,以显示默认为组ID的论坛主题的自定义视图,以便在URL中给出组ID arg时,它显示属于该组的论坛主题。 问题是,我现在想要每个组页面上的菜单项,它表示"论坛" ,它指向论坛视图与组ID参数,导致显示相关论坛主题的显示。 ...

4  有机组 - 群组成员列表(带内容配置文件)视图  ( Organic groups group members list with content profile with views ) 
http://ruh.kz/groups/ruhkz 下标题 - участникигруппы - 被放置显示此组成员的视图块。我使用了默认视图→og_recent_members,但它不适用于内容配置文件。我需要从Content_Profile模块中显示CCK字段。 试图在过滤器中设置 - 内容类型:配置文件...




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


Licensed under cc by-sa 3.0 with attribution required.