Drupal

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

1
安装和配置XHProf(Ubuntu)
问题 我正在尝试使用XHProf,但每次运行时都会遇到可怕的php错误。 Warning: Invalid argument supplied for foreach() in xhprof_compute_inclusive_times() (line 1670 of /var/www/drupal/sites/all/modules/XHProf/xhprof.inc). Warning: Invalid argument supplied for foreach() in xhprof_compute_flat_info() (line 1644 of /var/www/drupal/sites/all/modules/XHProf/xhprof.inc). Warning: Invalid argument supplied for foreach() in theme_xhprof_overall_summary() (line 367 of /var/www/drupal/sites/all/modules/XHProf/xhprof.module). 因为临时文件夹不存在,但是我的存在,所以这里解决了问题。 设置服务器端 我正在使用Drupal 7运行新的Ubuntu Server 13.04。 pear按照此处的说明安装xhprof 。我还向我手动创建的php.ini添加了一个临时目录。 extension=xhprof.so xhprof.output_dir="/var/tmp/xhprof" Drupal设置 我既安装了devel,也安装了XHProf模块。 …
19 7  debugging 

4
在Drupal Commerce中以编程方式为匿名用户重定向到付款页面创建订单
Ryan有一些很棒的代码,您可以以编程方式创建订单 <?php global $user; $product_id = 1; // Create the new order in checkout; you might also check first to // see if your user already has an order to use instead of a new one. $order = commerce_order_new($user->uid, 'checkout_checkout'); // Save the order to get its ID. commerce_order_save($order); // …
19 7  commerce 

2
小组对一个主题有什么好处?
我从来没有考虑过Panels,因为我一直对编写自己的主题感到满意。 但是,我看过很多文章主张Panels的优点(来自Lullabot和Active Lamp),所以我认为现在应该重新审视它,尤其是Panels将出现在Drupal 8中。 我已经广泛使用它,甚至看过这个有用的屏幕广播系列。但是我看不出有什么好处。 我通常会在网站上建立非技术人员可以编辑节点的网站。通常,每个节点表单都会有几个字段,用户可以在其中添加该页面的所有内容。 为了充分利用面板,您似乎必须将页面拆分成容纳1个内容的单独节点,然后使用面板将各个节点组合在一起。如果您要创建仅由Web设计人员编辑的网站,则可能会很好。 但是,当您将网站交给非技术人员来添加内容时,就会产生问题。大多数非技术人员都希望在一个屏幕上完成所有页面的创建。如果他们必须创建许多不同的节点,然后让面板将它们完全合并在一起,这似乎会使他们感到困惑。 我知道,与Blocks相比,Panels具有更好的性能和对上下文的更好支持。但是,它似乎增加了很多复杂性和抽象性。 我可以看到它对于非主题的人有多么巨大的用处,但是我看不出对于可以主题的人有什么好处。 有人可以启发我。谢谢!
19 theming  panels 

7
快速保存单个字段值
我的网站上大约有70k个指定类型的节点。我需要对它们进行更新。进行某些操作并将一个字段设置为所需值。node_save真的很慢,并且会导致崩溃(调用堆栈可能太长)。有没有一种更快的方法可以在此特定字段上写信息? field_attach_update在一篇文章中提到过,但是速度并不快。 编辑:在此节点类型上有一个非常复杂的视图,但不适用于我要更新的字段。
19 7  entities  nodes 

2
将视图与自定义表/模式一起使用
我需要设置一些视图,这些视图将从我创建的自定义表中提取一些数据。一些视图将需要以常规方式从我的自定义表中提取内容(我可以在其中查询特定的nid等)。 我该怎么做,或者在哪里研究?
19 7  views 

3
批处理API如何在内部工作?
前几天我遇到了使用迁移的超时问题,开始想知道Batch API在内部如何工作。 我的理解是,您将以最简单的形式传递值数组(例如,nids)和一个对这些值进行运算的函数。然后,批处理API会对每个请求处理固定数量的这些值,直到完成为止。 在运行批处理时,页面似乎使用Ajax请求来显示批处理操作的进度(完成百分比和消息)。我认为它会等到请求完成以更新进度后再立即启动下一个请求? 如果关闭了带有批处理请求的页面,则批处理会停止吗?再次打开相同的URL,它会重新启动吗?迁移模块有时会继续,但是可能正在使用队列?

1
将类型为“ text_format”的字段保存为系统设置变量
我试图让我的内容编辑者可以更改自定义模块的变量。此变量可以具有html。我不想让他们具有HTML的任何知识,所以我想让他们能够使用我们的所见即所得(由CKEditor模块提供的CKEditor)。但是,到目前为止,该数据尚未保存为变量。我已经在几个地方(Do,stackexchange)阅读过,我需要这样做: $form['foo']['bar'] = array( '#type' => 'text_format', '#title' => 'Bar', '#definition' => 'Foo Bar', '#default_value' => variable_get('bar', ''), '#weight' => 1, '#format' => 'filtered_html', '#required' => FALSE, ); 对于system_settings_form($ form),这不能立即使用。保存后,var_dump会显示以下内容: array (size=7) '#type' => string 'text_format' (length=11) '#title' => string 'Bar' (length=7) '#definition' => string 'Foo Bar' (length=74) '#default_value' => …
19 7  forms  wysiwyg 


1
加入并寻找NULL值
我正在使用标志模块,让用户将他们的问题标记为已解决,类似于其在本网站上的工作方式。因此,我希望用户过滤帖子以仅显示未解决的问题。此外,某些帖子可能根本不是问题。因此,它们不能具有“已解决”标志,但是当仅按未解决的问题进行过滤时,它们也不应出现在结果中。因此,我需要将节点表与其他两个表连接起来:flag_content和field_data_field_question(后面的表说明了帖子是否是一个问题)。 这是我正在尝试的当前代码: $query->join('flag_content', 'f', 'f.content_id = n.nid AND f.content_type = "node" AND f.fid = 5'); $query->join('field_data_field_question', 'q', 'q.entity_id = n.nid AND q.field_question_value = 1'); $query->condition('f.fid', 'NULL', 'IS'); $query->condition('q.field_question_value', 'NULL', 'IS NOT'); 但是,这导致以下错误: PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the …
19 7  database 

4
如何为节点添加其他视图模式?
我正在创建自定义内容类型。默认情况下,节点仅支持两种视图模式(full和teaser): function mymodule_view($node, $view_mode) { if ($view_mode == 'full') { $node->content['#theme']= 'my_full_node_view_theme'; } if ($view_mode == 'teaser') { $node->content['#theme']= 'my_teaser_node_view_theme'; } return $node; } 我想为此节点类型添加其他一些视图模式,例如: small_box small_box_with_user_pic big_box 并希望使用以下代码呈现节点: $node = node_load($my_nid); $output = drupal_render(node_view($node, 'big_box')); 有什么建议么?
19 7  nodes 

5
在多个安装中管理自定义模块
我们有一些用于多个站点的自定义模块。那些不能作为贡献模块发布,例如,因为它们是特定于客户的,做出的假设不适用于贡献模块等等。 我知道以下可能的解决方法: 复制并粘贴到周围。显然很难在所有安装上都使模块保持最新。 只安装一个多站点,但这并不总是可能的。 使用git子模块,但是它们很讨厌,很容易忘记更新它们,并且并不总是受支持(例如Pantheon) Drush make脚本以从通用git存储库中签出。为此,您AFAIK需要在整个站点上使用drush make,我们目前不使用它。 http://drupal.org/project/fserver。我还没有尝试过,有人知道它是否足够稳定吗?项目描述听起来不太乐观,也没有7.x版本。 还有什么/更好的吗?您喜欢什么,为什么?

1
带有块视图的上下文过滤器
我有一个页面视图(“ / news”),该页面具有用于主题(“ news / design”,“ news / coding” ...)的上下文过滤器,它们是分类法术语,并且工作正常。由于移动主题的某些更改,我需要一个块视图而不是页面视图,但无法使其与过滤器一起使用。 使用旧的过滤器设置,我的所有文章都保存在“ / news”中,但是我使用的过滤器将默认值从过滤器更改为“来自网址的分类术语ID”;现在,我看到“ / news”的空白页面(这是一个包含阻止视图的简单页面),以及“ / news / design”的“找不到站点”等。在视图的预览中,一切正常。 这些是视图的设置。
19 blocks  views 

3
将类添加到表单选择选项项
如何在没有JS的情况下将类添加到表单选项标签?目前,在Form API中,我可以像这样传递键控数组 array( '0' => 'option 0', '1' => 'option 1', ) 我会得到这样的html <option value="0">option 0</option> <option value="1">option 1</option> 有没有办法做这样的事情: array( array( 'value' => 0, 'text' => 'option 0', 'class' => 'bob 0', ), array( 'value' => 1, 'text' => 'option 1', 'class' => 'bob 1', ), ) 然后得到这个 <option …
19 theming  forms 

4
为什么我不能删除某些内容类型?
我有一个Drupal 7网站,在“内容类型”菜单下,只有某些类型在“操作”列下具有“删除”链接。 所有内容类型都有“编辑”,“管理字段”和“管理显示”的链接,但是只有一些具有“删除”,而其他则没有。 我检查了我对用户的权限,Administer content types但确实拥有了-但这似乎是所有内容类型的全局权限,因此我仍然不明白为什么某些可删除而其他不可删除的原因。 为什么只有某些内容类型具有删除操作?
19 7  nodes 

4
仅使用EntityFieldQuery获得一些字段?
Drupal 7通过EntityFieldQuery具有非常有希望的类似于ORM的查询系统。 目前,我了解如何选择节点,但是结果不包含我要查找的任何特定信息,例如文件字段。 $query = new EntityFieldQuery(); $entities = $query->entityCondition('entity_type', 'node') ->entityCondition('bundle', 'event') ->propertyCondition('status', 1) ->fieldCondition('field_date', 'value', array('2011-03-01', '2011-03-31'), 'BETWEEN') ->fieldOrderBy('field_date', 'value', 'ASC') ->execute(); 因此,如果我们只想获取一个字段的值,例如当前示例中的“ field_date”,则需要加载节点的全部数据。 $nodes = entity_load('node', array_keys($entities['node'])); 如果有一种获取字段值的方法,而是加载所有节点的完整数据,因为这会引起一些内存过载。 $nodesFieldDates = ???
19 7  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.