Drupal

Drupal开发人员和管理员的问答


5
Form API中的数字字段类型
我正在尝试使用FAPI向表单添加“数字”字段类型: $form['phone_number']['areacode'] = array( '#type' => 'textfield', '#title' => '---', '#width' => '30%', '#align' => 'center', '#required' => true, '#maxlength' => 3 ); 我将“类型”更改为“数字”,并且根本不会生成该字段。号码模块已启用。我已经实现了以下主题功能: MYTHEME_form_element MYTHEME_textfield MYTHEME_container 当我使用#type = number或时#type = number_integer,该字段后面没有显示什么? 这可能与它有关: 在自定义表单的代码中手动创建Number字段(整数和十进制) 但是我实际上希望该类型在HTML中呈现为“数字”,以便智能手机显示数字拨号器 有任何想法吗?
12 forms 

7
Drush不承认发布了新的核心更新
我正在尝试通过Drush将我的Drupal 7.31内核更新为7.32。 我运行了以下命令 $ drush pm-releases Project Release Date Status drupal 7.x-dev 2014-Oct-15 Development drupal 7.32 2014-Oct-15 Supported, Recommended, Security drupal 7.31 2014-Aug-06 Security 上面的命令后,我运行以下命令: $ drush pm-更新drupal Update information last refreshed: Thu, 10/16/2014 - 07:33 Name Installed Version Proposed version Message Drupal 7.31 7.31 Unknown No code updates available. …
12 drush  updating 

3
可以迁移内容类型吗?
我有一个具有40种内容类型的Drupal 7网站。当Drupal 8发布时,我想迁移这些内容类型。 这是可能的,还是我必须从头开始创建此内容类型?
12 8  migration  upgrading 

3
如何运行PHPUnit测试?
Drupal 8用PHPUnit 补充了基于Simpletest的测试框架,Simpletest可以在Drupal 9中删除。 我还没有升级到Drupal 8,但是我想知道如何在PHPUnit中为Drupal 7编写现有测试(以跟上趋势),而不是在Simpletest中编写? 有没有将PHPUnit与Drupal 7集成的方法或模块? 很少有phpunit或drunit之类的,但它们不适用于Drupal 7。
12 7  testing 



4
为什么不能将另一个允许的文件扩展名添加到Drupal 7图像字段?
我为通过的图片上传添加了SVG文件扩展名,admin/structure/types/manage/image/fields/gallery_image如下所示: 但是当我上传图片时,仍然不允许上传SVG。 我肯定在管理页面上按了“保存”,然后清除了缓存,当我检查field_config_instance表时,甚至在数据库中看到了所需的设置。必须有其他未更新的表或缓存。任何想法?

1
将MongoDB用于字段存储是否会限制功能?
我正在考虑在站点上使用MongoDB进行字段存储,而不仅仅是将缓存,会话,批次等移出我的SQL数据库。 该字段存储API应该使这种无缝的,假设我使用Drupal的API访问数据。但是,这是否以任何方式限制了我的网站。我特别想知道“ 视图”将如何受到影响。
12 views  database 

3
通过复选框字段过滤视图
我的站点的节点类型为“资源”。该节点类型具有一个称为“已审阅”的字段。此字段是一个单独的开关复选框: 我创建了一个视图,该视图列出了节点类型为“资源”的所有节点。我想过滤该视图,因此它仅显示选中了“已审阅”复选框的节点。但是,当我尝试将该字段添加到视图中时,显示以下内容: 我希望“选项”选择框是一个复选框,可以选中或保留为空。相反,我给了一个选择框,里面有“全选”。无论是否选择此选项,都会向我显示一条错误消息,指出“在过滤器上找不到有效值:内容:已审查。”: 我在http://technology.blue-bag.com/top-tip-drupal-views-no-valid-values-found-filter上尝试了“公开主显示技巧” ,但这没有用:主显示中没有“未知”过滤器,因此似乎没有任何要修复的内容。 关于如何获得想要的结果的任何想法吗?用选择框而不是复选框处理奇怪的UI有什么用?最好知道是否有逻辑;如果没有,我会将问题发布到适当的drupal.org问题队列中。
12 7  views 

2
如何设置网络表单的主题?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 6年前关闭。 我需要D7中的主题网络表单。 我怎样才能做到这一点 ? 在搜索中,我知道通过使用web-form-nid.tpl.php,我们可以将drupal个人表单作为主题。 在这种情况下,任何人都可以引导我主题化Web表单。
12 7  webforms  theming 

5
如何将分类菜单作为标准菜单项的子菜单注入?
我有一个主菜单,其顶级结构类似于以下内容: Home - Categories - Something Else - ... - Contact 这些顶级链接中的每一个都转到相应的节点页面。 我有一个类别(多级)词汇表,我需要在“类别”项下的子菜单中获得这些分类法术语。我想避免将项目硬编码到主菜单中,因为子菜单应该像词汇表一样增长/缩小。 过去,我编写了过多的代码来完成此工作,该代码与分类法操作挂钩并基于此操作管理特定菜单的子项(与“ 分类法菜单”的工作非常相似,但每个分类不必具有不同的菜单)词汇)。 尽管该方法有效,但它不是理想的方法,当然也不是通用的。我不能只是将代码从旧项目中提升到新项目中,这将需要进行合理的定制。 我忍不住觉得必须有一个基于模块的“标准”解决方案。 我已经看到了一些建议,可以结合使用许多不同的模块(甚至有些建议很奇怪地建议使用基于视图的模块)。我愿意接受任何建议,但是如果涉及安装1个或2个以上的模块,以及大量的硬编码,特定于上下文的配置,那么在这种情况下它可能不会有太大帮助。

7
在保存节点之前,通常以自定义形式检测更改的字段
我正在使用field_attach_form()将内容类型中的某些字段添加到自定义表单中。提交表单后,我正在通过#validate和#submit回调调用field_attach_form_validate()和field_attach_submit()处理这些字段。 在这一点上,我想将提交后的准备好的节点对象与原始节点进行比较,并且如果任何字段已更改,则仅对node_save()进行比较。因此,我首先使用加载原始节点entity_load_unchanged()。 不幸的是,即使未对字段进行任何更改,原始节点对象中的字段数组也不与准备保存的节点对象中的字段数组匹配,因此,简单的“ $ old_field == $ new_field比较是不可能的。例如,原始文本中会出现一个简单的文本字段: $old_node->field_text['und'][0] = array( 'value' => 'Test', 'format' => NULL, 'safe_value' => 'Test', ); 而在准备好的节点中,它看起来像这样。 $node->field_text['und'][0] = array( 'value' => 'Test', ); 您可能会想只比较“值”键,但随后会遇到由没有“值”键的其他元素组成的字段。例如,让我们看一个地址字段,其中没有“值”键,在旧节点和准备好的节点中都没有对应的键。 旧节点 $old_node->field_address['und'][0] = array( 'country' => 'GB', 'administrative_area' => 'Test', 'sub_administrative_area' => NULL, 'locality' => 'Test', 'dependent_locality' => NULL, 'postal_code' …
12 7  entities 

3
使用entity_metadata_wrapper时访问未知字段类型的值
我一直在研究使用实体元数据包装程序类(由Drupal 7中的实体模块定义)来访问字段值,因为这样做似乎是一种干净的方法。 但是,有几件事情使这有些尴尬。假设我有一个内容类型的包装器,该包装器定义了一个field_something这样命名的字段: $wrapper = entity_metadata_wrapper('node', node_load($nid)); $value = $wrapper->field_something->value(); 我遇到的第一个问题是我无法事先知道我得到的是实际值(字符串,实体等),另一个元数据结构包装器(当字段具有多个值时)还是数组(当字段具有多个属性)。 我找到了一种使用该info()方法回答这些问题的方法: $info = $wrapper->field_something->info(); $is_multi_value = (strpos($info['type'], 'list<') === 0); $has_multiple_properties = isset($info['property info']]); 但是,这几乎不可行。每当我想使用字段而不事先知道其定义时,都必须考虑几种情况。这使我的代码很繁重。 为了解决这个问题,我写了一些代码: 确保我们总是返回一个数组,即使它是单个值字段也是如此; 当有多个属性时,返回第一列的值。 要点1.这里始终有效,除非调用者想知道这是否是单个值字段。Point 2在某些情况下(并非全部)有效,但适用时很方便。 这是代码: function entity_metadata_simple_values($field) { $fields = array(); $values = array(); $info = $field->info(); if (strpos($info['type'], 'list<') === 0) { …
12 entities 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.