如何设置最小次数的必填字段? -- entities 领域 和 files 领域 drupal 相关 的问题

How to set MINIMUM number of required fields?


0
vote

问题

中文

我需要为Drupal 7中的多个文件字段设置最小所需值数。我只能找到选项以使现场所需的字段或设置最大允许值数。有没有办法设置所需值的最小数量?

英文原文

I need to set the minimum number of required values for several file fields in Drupal 7. I can only find options to make the field required or set a maximum number of allowed values. Is there any way to set the MINIMUM number of required values?

     

回答列表

3
 
vote

您可以使用验证模块,并使用"选择数量" 设置验证规则。
现场验证模块具有许多验证规则,您可以为您的任何字段设置。它可以通过首先定义一组验证规则,然后将该设置设置为字段。

要回答您的问题,所需的验证规则是"选择数量" 。您可以定义最小值和最大数量所需的值。只需留空"最大选择数" 参数,并为您的需求设置"最小选择数量" 。
 

You can use the Field validation module, and set up a validation rule using "number of selections".
The Field validation module has many validation rules you can set for any of your fields. It works by defining a set of validation rules at first, then you can assign that set to a field.

To answer your question, the validation rule you need to use is the "number of selections". You can define a minimum and a maximum number of values required. Just leave blank the "Maximum number of selections" parameter and set "Minimum number of selections" to your needs.

 
 
2
 
vote

我发现字段验证选项导致了大量的表单提交失败消息,最好是在我只抱怨我没有BTWN 3和5的时候添加另一个字段,但没有给我另一个领域。

我的解决方案使用hook_form_alter(): 我现在看起来不是最优雅的代码...

  function MYMODULE_form_alter(&$form, &$form_state, $form_id) {    /**   * Make sure that there are at least 3 and at most 5 items   */   if ($form_id == 'content_type_container_node_form') {      // Count how many items we have     $item_count = 0;     foreach ($form['field_name_items'][ LANGUAGE_NONE ] as $delta => $item) {       if (is_integer($delta)) {         $item_count++;       }     }      // If it is a new node then make sure we start with 3 items     if ($form['nid']['#value'] == NULL && $item_count < 3) {       $item_template = $form['field_name_items'][ LANGUAGE_NONE ][0];        // We are adding two items to the one we already have       for ($i = 1; $i < 3; $i++) {         $form['field_name_items'][ LANGUAGE_NONE ][ $i ] = $item_template;         $form['field_name_items'][ LANGUAGE_NONE ][ $i ]['remove_button']['#delta'] = $i;       }     }      // Re-Count how many items we have     $item_count = 0;     foreach ($form['field_name_items'][ LANGUAGE_NONE ] as $delta => $item) {       if (is_integer($delta)) {         $item_count++;         // Remove the 'Remove' link for the first 3 items         if ($item_count <= 3) {           unset($form['field_name_items'][ LANGUAGE_NONE ][ $delta ]['remove_button']);         }        }     }      if ($item_count == 5) {       // Remove add more link if there are 5 items       unset($form['field_name_items'][ LANGUAGE_NONE ]['add_more']);     }   } }   
 

I found the field validation option resulted in a lot of form submission failure messages, the best was trying to add another field when I had only one complained that I did not have btwn 3 and 5, but did not give me another field.

My solution using hook_form_alter(): Not the most elegant code now that I look at it...

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {    /**   * Make sure that there are at least 3 and at most 5 items   */   if ($form_id == 'content_type_container_node_form') {      // Count how many items we have     $item_count = 0;     foreach ($form['field_name_items'][ LANGUAGE_NONE ] as $delta => $item) {       if (is_integer($delta)) {         $item_count++;       }     }      // If it is a new node then make sure we start with 3 items     if ($form['nid']['#value'] == NULL && $item_count < 3) {       $item_template = $form['field_name_items'][ LANGUAGE_NONE ][0];        // We are adding two items to the one we already have       for ($i = 1; $i < 3; $i++) {         $form['field_name_items'][ LANGUAGE_NONE ][ $i ] = $item_template;         $form['field_name_items'][ LANGUAGE_NONE ][ $i ]['remove_button']['#delta'] = $i;       }     }      // Re-Count how many items we have     $item_count = 0;     foreach ($form['field_name_items'][ LANGUAGE_NONE ] as $delta => $item) {       if (is_integer($delta)) {         $item_count++;         // Remove the 'Remove' link for the first 3 items         if ($item_count <= 3) {           unset($form['field_name_items'][ LANGUAGE_NONE ][ $delta ]['remove_button']);         }        }     }      if ($item_count == 5) {       // Remove add more link if there are 5 items       unset($form['field_name_items'][ LANGUAGE_NONE ]['add_more']);     }   } } 
 
 

相关问题

3  最轻的方式来控制领域的标记  ( Lightest way to control a fields markup ) 
到目前为止,我已经使用显示套件来控制实体的输出。这尤其适用于节点的字段,默认接收多个包装器(如 99887664 , field-item ,Zebras),我不需要。如果我错了,请纠正我,但我会说只为这个目的安装展示套件是一个很大的开销。如果您同意这一点,那么可以成为我想要的标记的最轻的方法? ...

4  使用多个值迁移文本字段  ( Migrate text field with multiple values ) 
我有一个简单的文本字段,允许2个值,让我们称之为 field_text 。我的源数据库有两列,假设 text1 和 text2 。 我想设置我的迁移字段映射,以便使用 text1 作为 field_text 的第一个值 text2 作为 field_text 的第二值。 换句话说,这样的东西: $this->a...

1  通过D7中的字段检索分类学术语  ( Retrieve taxonomy term by field in d7 ) 
我有一个具有字段"Legacy_ID" 的词汇,它是另一个相关系统的主要键。我正在建立一个例程,以根据相关系统的变化更新Drupal系统中的数据。另外,直接击中DB,有没有办法从字段中检索TID或整个术语? ...

0  倒计时定时器字段找不到倒计时定时器库 - 即使它在那里  ( Countdown timer field cannot find countdown timer library even though its the ) 
我在"管理员" 中的"倒计时定时器字段" 模块启用"倒计时定时器字段" 模块时面临的问题 - &gt; "模块" - &gt;字段。 我得到的错误消息是 "jQuery倒数定时器库无法找到。请下载它,将其安装在图书馆目录中,并将目录重命名为jQuery-toundown。库应在像网站/所有/库/ jQuery的路...

2  在用户配置文件和内容类型之间共享字段及其数据?  ( Sharing fields and their data between a user profile and a content type ) 
我有一个名为"profile" 的内容类型。这是一个独立的内容类型,可能或可能不会与站点上的实际用户相关联。 因此,我需要找到一种方式来共享Drupal用户和新自定义内容类型之间的配置文件字段。换句话说,如果在Drupal用户配置文件页面上编辑"家庭地址" 字段,则该字段(及其数据)应显示在与用户关联的配置文件页面上...

0  渲染实体的所有字段(即查看实体)  ( Rendering all fields of an entity i e viewing the entity ) 
我正在尝试渲染附加到自定义实体的所有字段。这将用于"查看" 实体,例如您将查看节点或用户等。 我首先尝试使用 field_attach_view : $fields = field_attach_view('contacts', $entity, 'full'); 但它只给了我这个: [#pre_ren...

5  我应该什么时候使用hook_field_attach_presave(),以及hook_entity_presave()?  ( When should i use hook field attach presave and when hook entity presave ) 
我正在寻找在保存之前在实体字段上采取行动的方法,我注意到了以下关于 hook_field_attach_presave()和 hook_entity_presave(): 他们采用相同的参数,但以不同的顺序。 当保存实体时,它们都被称为。例如, caxonomy_term_save()包含以下代码。 // I...

1  默认情况下,如何确保用户字段隐藏在用户字段中?  ( How can i ensure a user field is hidden by default for the logged in user ) 
模块x提供字段定义并将其附加到用户实体。 以这种方式将元数据连接到用户,使其在站点上访问它的非常方便的方法。 但是,默认情况下,登录用户也能够查看和编辑此数据,这并不总是可取的。 是有一种方法可以使用相同的模块来确保默认情况下隐藏此字段? ...

7  drupal 7面位搜索:始终显示方面  ( Drupal 7 faceted search always show facets ) 
我有一个配方的搜索工作,它使用searchapi,facetapi和entityapi。我不是那个开发这个的人,但我有一些司布的经验。截至目前,导航使用选择链接,如下所示(第一级别的子弹点不是链接)。选择混合时,声音设计和组成随预期消失。 客户端想要的所有项目都是仍然保持可见的,并且在用户钻取时选择(即使它没有返...

4  最简单的方法,将辅助数据库中的现有数据作为实体公开?  ( Easiest way to expose existing data in secondary database as entities ) 
给定"外部" 或"辅助" 数据库中的"节点" 数据库表,将它们暴露为实体的最简单方法是什么? 实体模块使存储在本地数据库中的数据似乎很容易,但我'不确定如何将其翻译成另一个数据库。 ...

1  如何在Drupal 7中以编程方式生成现场项目的字段项列表?  ( How to generate a list of field items using the field item name programmatically ) 
我需要一种方法来生成特定字段中所有项目的简单列表。字段名称是字段_portfolio_description,我希望通过结果循环循环并将每个项目输出到无序列表中。例如: <ul> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul> 是否有办...

4  批量删除实体类型  ( Batch deleting entity types ) 
在我的一个网站上,我有超过600个配置文件2配置文件类型(其中大多数在20-30个字段实例之间,有些则具有刚刚在该类型中使用的其他字段)。我已经测试了一些不同的方法进行批量删除,但无法找到使用实体/配置文件API的方法来获取删除,而无需基本上擦除网站几个小时。 似乎,当删除内容类型,配置文件类型等时,每次删除都会清除...

2  如何自动捕获来自URL的图像?  ( How to automatically capture images from urls ) 
我的网站是一个书签网站,人们共享URL。 首先,如果提交的页面具有Facebook打开图形图像信息,则Drupal应将该图像传输到本地文件并显示它(类似于Facebook上的共享链接)。 否则,显示页面的缩略图预览。 感谢提前帮助。 ...

2  创建与疏浚词汇链接的字段  ( Create a field linked to a vocabulary with drush ) 
让我们说我创建了一个称为 ABC 的分类词汇。 对于这个词汇量 ABC ,我想使用drush创建许多字段。 我试过 drush field-create ABC myfield,text,text_textfield 它有效,没有给出任何错误,但如果我转到管理员面板,我点击 structure => tax...

6  创建“实体编辑”表单的模块?  ( Module for creating entity edit form ) 
是否有一个模块,该模块将占用实体机器名称和可选的ID作为输入,并将合适的编辑表单生成输出? ...

0  从JavaScript / jQuery(Drupal 7)与Drupal沟通  ( Communicating with drupal from javascript jquery drupal 7 ) 
我正在尝试创建一个动态填充的选择列表字段窗口小部件。此窗口小部件由三个jQuery多个选择组成。当用户从第一个选择列表中进行选择时,我需要动态地填充第二选择列表的内容。我的问题是,我需要根据第一个选择和唯一可以通过Ajax调用到Drupal端点的Ajax调用来访问Drupal中存储在Drupal中的数据。等待Ajax...

1  hook_field_presave()没有被叫  ( Hook field presave isnt getting called ) 
摘要 我需要在保存之前编辑一些数据,而 hook_field_presave() 正好看起来我需要的是什么,但它没有被称为某种原因。 方案 我想编辑从更改到位置字段的数据(位置模块),所以我可以在没有提供并确保保存时查找纬度和经度信息。 实现 此刻我只是将钩子添加到位置。在将它们移动到一个单独的模块之前,...

0  新的图像字段类型仅用于在文章节点本身上显示的文章,而不是分类系统或自定义视图页面  ( New image field type for articles only displaying on the article node itself no ) 
我有一些问题只有自定义字段内容只显示在各个节点上。我为文章内容类型创建了一个名为field_second_image的新字段。我正在使用print渲染($ content ['field_second_image'])下常规字段_image在我的节点中 - Stritic.tpl.php文件。在实际物品节点上,两个...

0  如何从查询获取组名称?  ( How to fetch group name from query ) 
我正在使用字段组模块,我创建了名称&amp的3组;如下所述的ID: 组名|.机器ID 桩架| group_sh1 趋势| group_td1. 组织| group_org1. 我想在自定义模块中检索组名。通过使用"ctools" ,我能够检索组的ID,但无法获取组的名称。请在下面找到以下代码进行参考。 cto...

0  处理长名单的最佳方式  ( Best way to deal with long list ) 
我是一个名为"guy" 的实体,具有一个字段"位置" ,我要引用的9-10.000个位置。我必须使用一个靶向位置实体的简单列表(1 | BLA,2 | Blabla)或实体参考字段?我需要自动完成功能,但Drupal非常缓慢,其中大量的位置。但我不知道我是否可以加载9-10k行的列表。 我不会使用分类法。 为了加快自...




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


Licensed under cc by-sa 3.0 with attribution required.