Drupal

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

3
自定义主题功能没有被调用?
我正在构建一个Drupal 7模块来创建一个定制字段类型。我已经实现了所有必需的钩子。我的hook_field_formatter_view()函数如下所示: function MYMODULE_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) { $element = array(); switch ($display['type']) { case 'default': foreach ($items as $delta => $item) { $element[$delta] = array( '#theme' => 'test', '#item' => $item, ); } break; } return $element; } 然后,我定义了theme()以下函数: function theme_test($variables) { return '<h1>Hello World</h1>'; } …
8 7  theming  hooks  entities 

3
在一个URL上运行多个Drupal安装:是否建议?
我的雇主正在考虑用Drupal替代我们相当静态的网站,主要是为了使我们能够更轻松地实施我们已有的一些想法,并以此作为将来的一种证明。这是一个总括组织,因为它有几个彼此不同的面向客户的部门,除了属于同一组织之外,它们之间并没有真正的关联。 因此,从广义上讲,每个部门都有非常特定的需求-某些类型的已定义用户,节点类型;有些人需要他们自己的小论坛,基本的购物车等。我的本能是将每个部门当作自己的Drupal安装,并使用自己的特定模块配置,并以这种方式将它们分开。也就是说,可能需要某些功能分散到整个站点。例如,一个或两个以上的高级职员可能需要能够登录和编辑几个部门中的内容。 是否有可能做到这一点?要在domainname.org/dept1、domainname.org/dept2、domainname.org/dept3等处运行不同的安装。更重要的是,是否建议这样做?如果要进行这样的设置,我可能会遇到什么问题?

2
使用template.php将CSS类动态添加到视图行
我实际上已经到达了Google的底部,试图弄清楚如何向视图的每一行添加一个CSS类。诀窍在于,我需要根据视图所来自的节点中的某些数据来动态确定每一行的类。为节点巧妙地实现这一目标的功能是- function pgc_preprocess(&$variables) { $node = $variables['node']; if ($node->type == "event") { $variables['event_class'] = ''; $num_trainers = $node->field_number_of_trainers[0]['value']; $count = count($node->field_trainer); if($count < $num_trainers) { $variables['event_class'] = 'red'; } else { $variables['event_class'] = 'green'; } return $variables; } } 这样做的目的是对没有足够人注册的事件进行颜色编码。首页上将有一个事件列表,我还需要对它们进行颜色编码。我真的希望有一些简单的解决方案- function pgc_preprocess_views_view_unformatted(&$variables) { // Magic here, preferably having something to …
8 views  theming 


4
将自定义视图用于分类术语页面
使用Drupal 7和Views 7.x-3.0-beta3,使分类页面使用自定义视图的最佳方法是什么? 例如,在“路径自动”中,我有一个规则,将URL别名“国家/地区”指向“分类法/ term / 44”。 当用户访问国家/地区时,我要显示一个使用“视图”创建的页面,而不是默认的分类页面。 我正在使用分类菜单填充菜单,该菜单尚未支持Drupal 7中的自定义路径。
8 7  views 


4
jQuery UI主题
我想在我的模块中使用themeroller的自定义jQuery UI主题。最好的方法是什么?
8 7  javascript 

2
如何在Drupal 7中创建节点引用字段?
我很困惑。在D6 CCK中,这是一个非常有价值的选项,但是由于它已经进入了内核,所以我找不到创建noderef字段的选项(尽管找到了术语参考字段)。我知道它一定在外面,在哪里?
8 7  entities 

1
具有自己菜单的自定义模块?
我正在编写第三个自定义模块,而这是我迄今为止最大的挑战。我知道如何使用hook_menu生成菜单项,并根据您选择的路径确定它们在站点上的显示位置(管理菜单或主菜单等)。 我的问题是-如何指定“新建”菜单,这样我创建的路径不会出现在“主链接”或“导航”中,而是出现在它们自己的“自定义模块”菜单中?
8 7  routes  hooks 

2
Drupal 7中的db_affected_rows for db_query
我只是注意到@Berdir非常适合db_affected_rows从Drupal 7中删除。我现在想知道现在最好的方法是检测您运行的查询是否更改了数据库中的任何内容。 一个典型的用例是。 db_query(...); if (!db_affected_rows()) { db_query(...); } 我看了从db_query返回的查询对象,但似乎并没有太大帮助。 更新: 我不清楚我在什么情况下需要该信息。 我当前的用例是一个非常简单的用例。我有一个带有nid列和一些数据列的节点类型表。我有一个表单,提交表单后,我想插入或更新数据库中的行。 db_update/ 的问题db_insert在于,如果我先使用update,并且在update返回0时插入,我将无法捕获条件,即使用db中的值提交表单。如果我先使用db_insert,则在数据库中已经存在一行的情况下,将引发en错误。 我想在这种特定情况下,我可以在创建节点时插入一个空白值,然后仅使用更新,但是在某些情况下,如果我需要存储键入到外部数据库的信息,这可能是不可能的。我还想避免必须依赖数据库值才能使代码起作用。 对于这种情况,我通常的策略是 db_query("INSERT IGNORE INTO ...") if (!db_affected_rows()) { db_query("UPDATE ..."); } 无论数据库处于什么条件,这样做都是简单且无错误的。我现在看到的最佳选择是使用SQL处理它并执行以下操作: db_query("INSERT ... ON DUPLICATE KEY UPDATE"); 但是我希望数据库API能够处理此问题。
8 7  database 

2
自定义模块变量名称的最佳实践?
我已经习惯了为我的模块做一个非常健壮的配置窗格,并且发现变量名和管理相当麻烦。 我有像这样的变量mymodule_section_subvar_varname_type_context,我不仅不了解变量名中元素的顺序,而且感觉好像变量名那么长是设计缺陷。 我一直在考虑在变量mymodule_section_settings中使用序列化数组,并结合使用一组易于维护该数组的函数,但是我很乐意在前缀和/之外建立的最佳实践中(如果有的话)输入一些信息或我们信任的模块示例,以及它们对大量变量所做的工作。 谢谢!


3
如何创建批量节点创建界面?
我有一个接口请求,可以在一个屏幕上批量创建带有少量必填字段(例如,标题,日期和节点引用)的节点。 我正在想象某种可编辑的表格视图/网格,每行代表一个单独的节点。 实现这样的最佳方法是什么?
8 7  nodes 

6
分类学面包屑
我正在为博客标签使用核心分类模块,但是当在标签页面上时,面包屑只能显示为“主页”,而理想情况下,我希望它为“主页>博客>#Tag#”。我正在使用自定义面包屑模块​​为内容类型设置面包屑(<-不允许分类面包屑),并且尝试使用分类面包屑模块​​绝对没有结果,部分原因是它不是一个特别可配置的模块。博客标签页(列出一个术语下的所有节点)似乎是由核心分类模块而不是视图生成的,因此我无法在视图中解决问题。 如果有人能指出正确的方向,我将不胜感激:)

6
Drupal 6在不受支持后会保持安全状态吗?
我使用Drupal 6 + Views + CCK创建了一个自定义数据库界面,该界面对我的公司非常有效,最近我不得不将其迁移到另一台服务器。 我想:“嘿,为什么不安装Drupal 7,然后在其中转储数据库:然后在迁移时我可以将Drupal升级到最新版本!” 原来这是一个坏主意。Drupal 7似乎丝毫不了解如何处理我提供的数据库信息。现在,升级指南对我而言非常耗时。 所以我的问题是:Drupal 6在不受支持后会保持安全状态吗?还是平台将变得过时且易受攻击,从而迫使我进行更大的升级?
8 6  security  upgrading 

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.