Drupal

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

1
在哪里渲染?预处理还是模板?
我们正在不断提高编码性能,并且正在监控每个页面的加载情况,以优化网站的呈现时间。 在上面的声明中,我偶然发现了一个问题,我们应该在哪里渲染可渲染数组? 如果在预处理器中渲染它们,则模板将保持整洁,因为您仅打印变量。 预处理器: function template_preprocess_node__faq(&$variables) { $node = node_load($variables['nid']); $node_style = node_view($node, $variables['view_mode']); $faq_sets = array( '#theme' => 'my_module_faq_set', '#sets' => $variables['field_faq_set'], ); $variables['faq_image'] = render($node_style['field_faq_image']); } 模板: <div class="faq_image"> <?php print $faq_image; ?> </div> 但是,我不确定这是预处理和打印变量的正确/最快/最近的方法。 我猜Drupal并不是这个问题……在node.tpl.php呈现默认变量的同时,在其他默认模板(如html.php.php)中,变量只是被打印出来。 是否有人有规则和/或一些技巧和建议以最干净,最快的方式解决此问题?

1
日期,日期(ISO格式),日期(Unix时间戳)之间的基本区别以创建字段
我已经创建了一个字段作为字段类型Date(Unix timestamp)。 当我在上面创建的字段中编辑具有某些输入值的内容时,它显示如下错误:- PDOException: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'field_reprisal_date_value' at row 1: INSERT INTO {field_data_field_reprisal_date} (entity_type, entity_id, revision_id, bundle, delta, language, field_reprisal_date_value) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6); Array ( [:db_insert_placeholder_0] => node [:db_insert_placeholder_1] => 258985 [:db_insert_placeholder_2] => 245170 [:db_insert_placeholder_3] => embedded_video [:db_insert_placeholder_4] => 0 …
8 datetime 

5
如何每天发布3次节点?
我有一个用Views模块创建的未发布节点的列表。我希望一项任务每天在指定的时间运行3次。每次任务运行时,仅应发布列表中的一个节点。我怎样才能做到这一点? 我尝试过的步骤 排程器 该调度模块需要你指定要该节点要发布的确切时间。这使事情变得复杂,因为当每个节点都应该发布时,我将不得不进行计算。 查看批量操作+规则+规则计划程序 使用“ 视图批量操作”模块,可以创建暴露于“ 规则”模块的节点列表。然后,规则可以作用于列表,并在列表上发布节点。您可以告诉规则仅发布特定数量的节点。 这很完美。除此以外,似乎无法将规则安排为每天运行3次。 您可以将Rule链接到主站点Cron作业,但这似乎不太精确,因为Cron作业可以运行3次以上。 有一个“规则计划程序”模块(“规则”的子模块),但是您似乎无法使用此“规则”条件。似乎也没有办法指定运行时间。 工作计划 这使您可以设置时间,但似乎没有与Rule或Views集成。
8 views  nodes  rules 


1
如何在D8中以编程方式呈现主题中的联系表单
如何获得在自定义块或其他页面(然后是/ contact)(例如,首页)中单独显示的横向联系表格(反馈)? 我已经尝试过此代码,但是它不起作用(联系表单实体吗?): // get default form // get the entity object $default_form = \Drupal::config('contact.settings')->get('default_form'); $entity = \Drupal::entityManager()->getStorage('contact_form')->load($default_form); // get view builder // render view $view_builder = \Drupal::entityManager()->getViewBuilder('contact_form'); $full_output = $view_builder->view($entity);
8 8  entities  theming  emails 

2
如何在CiviCRM集成的Web表单中定义活动和/或案例?
我有一个Drupal Web表单,已集成到我的CiviCRM安装中,并使用了许多与特定活动类型相关联的自定义字段。我想使用该表格允许特定联系人编辑属于现有案例的活动。 将要提交网络表单的联系人(联系人1)在案件中具有分配的角色,并且与案件管理员具有关系。我们正在使用“视图”显示此联系人的一些数据,包括指向网络表单的链接。我了解可以通过显示给View中联系人的URL将案例ID和/或活动ID传递到表单中,并且可以通过重写Views字段之一的输出来了解如何做到这一点。 问题是:我需要同时传递案例ID和活动ID,还是仅仅传递活动ID就足够了? 在Web表单的CiviCRM选项卡中,我该如何设置案例和活动?
8 civicrm 

4
从文章/实体获取图像
如何最轻松地从Drupal 8中包含的文章内容类型中获取图像(其路径)? 我拥有的是一个实体。不过,使用$image = $node->fields['field_image']给我带来了结构上的麻烦。 有没有更简单的方法来获取图像路径?我也找不到URL,我得到的是某种target_id(文件ID?)。
8 entities  8  media 

3
Civicrm配置文件中的“状态”字段显示为数字
我正在使用带有CiviCRM 4.4.6的D7。我曾经使用civicrm创建个人资料,以便用户输入和修改其帐户中的帐单邮寄地址。 该国家/地区显示为“马来西亚”,但状态字段显示为数字“ 07”。 有什么方法可以显示状态名称,就像在编辑状态字段时在下拉列表中选择的名称一样?
8 civicrm 

2
以编程方式将工作台状态从草稿更改为已发布
我想进行批量操作并将节点从“草稿”状态更改为“已发布”。我根据先前的更改创建了一个新修订,但是所有修订默认为“草稿”。现在,我想基本上只是发布新修订版。(我正在使用工作台模块。) 我已经尝试过执行以下操作,但是似乎都没有用: $node->workbench_moderation['current']->published = "1"; 要么 $node->workbench_moderation['current']->from_state = "draft"; $node->workbench_moderation['current']->state = "published"; $node->workbench_moderation['current']->published = "1"; $node->workbench_moderation['published']->from_state = "draft"; $node->workbench_moderation['published']->state = "published"; $node->workbench_moderation['published']->published = "1"; $node->workbench_moderation['my_revision']->from_state = "draft"; $node->workbench_moderation['my_revision']->state = "published"; $node->workbench_moderation['my_revision']->published = "1"; $node->workbench_moderation['my_revision']->current = TRUE; 要么 workbench_moderation_moderate($node, 'published'); 我尝试使用以下内容而不是保存内容node_save,以为可能node_save触发了新草案。 workbench_moderation_node_update($node); 我只想简单地加载节点,发布草稿,然后再次保存。 知道我在做什么错吗?
8 workbench 

3
迁移:prepare()和prepareRow()有什么区别?
使用迁移模块:我了解prepareRow()在行上运行过滤器,并应根据某些条件返回TRUE或FALSE,这允许迁移或不迁移行,但是有人可以澄清一下: 何时使用prepare() 何时使用prepareRow() 为什么不在初始sql查询中添加过滤器来过滤您可能会删除/包含在上述任一方法中的行结果 谢谢!
8 7  6  database  migration 

4
延迟对文本字段的ajax调用以允许键入
我想以自动完成功能似乎起作用的方式延迟ajax的触发。例如,如果键入用户,则自上次键入键起经过500毫秒后,ajax才会运行。 我目前正在查看drupal.behaviors,但无法使其工作。 Drupal.behaviors.mymodule = { attach: function(context, settings) { $('input.andtimer', context).delay(500).ajaxStart(); } }; 这是行为所附加的表单元素。 $form['my_input'] = array( '#type' => 'textfield', '#default_value' => $value, '#ajax' => array( 'callback' => 'my_callback', 'event' => 'keyup', 'wrapper' => 'my_wrapper', 'trigger_as' => array( 'name' => 'my_button', ), 'progress' => array('type' => 'none'), ), '#attributes' => …

4
如何使用drupal_mail向多个收件人发送电子邮件?
我正在使用drupal_mail发送电子邮件, $to = 'email@email.com'; drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE); 我想一次将电子邮件发送到多个电子邮件地址。我应该这样做吗? $to = array('one@email.com', 'two@email.com', 'three@email.com',); drupal_mail('$module_name', $key, $to, language_default(), $params = array('username' => 'Tanvir'), $from = NULL, $send = TRUE);
8 emails 

4
创建表时出现PDOException:未找到基表或视图[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 3年前关闭。 我在MariaDB 5.5.33上运行了Drupal。当我运行update.php(从Drupal 6升级到Drupal 7.28之后)时,出现错误消息: 失败:PDOException:SQLSTATE [42S02]:找不到基表或视图:1146表'webdb.location_country'不存在:CREATE TABLE {location_country}(codeCHAR(2)NOT NULL COMMENT'主键:两个字母的ISO国家/地区代码';,nameVARCHAR(255)非空默认值'COMMENT'Full Country Name',PRIMARY KEY(code))ENGINE = InnoDB DEFAULT CHARACTER SET utf8注释'由location.module管理的国家/地区数据。数组()indb_create_table()(/home/web/public_html/includes/database/database.inc的第2720行)。 当我尝试运行命令 创建表{location_country}(codeCHAR(2)NOT NULL COMMENT'主键:两个字母的ISO国家/地区代码',nameVARCHAR(255)NOT NULL DEFAULT''COMMENT'Full Country Name',PRIMARY KEY(code))ENGINE = InnoDB DEFAULT CHARACTER SET utf8注释'由location.module管理的国家/地区数据。 在phpMyAdmin中,我得到一个错误 #1064-您的SQL语法有误;检查与您的MariaDB服务器版本相对应的手册,以获取在'{location_country}(codeCHAR(2)NOT NULL COMMENT'Primary Key:Two letter IS'in line 1)附近使用的正确语法 但是我无法找出问题出在哪里。
8 7  database 

4
为什么entity_metadata_wrapper-> save()无法更新节点的修订版?
我正在开发一个模块来更新节点(启用修订版)。看起来像这样。 $nodes = node_load_multiple(array(), array('type' => $bundleType)); foreach ($ndoes as $node){ $w = entity_metadata_wrapper('node',$node); $w->MyFields->set($someValue); $w->save(); } 它正确设置了字段,但是节点的版本号在之后没有改变$w->save()。 如何更新修订版本ID?
8 7  nodes  entities 

2
无法将Drupal Core更新到7.27
我正在尝试使用drush通过命令进行更新drush up,但是核心没有更新。它在催促输出上说: Project drupal was updated successfully. Installed version is now 7.27. 但事实并非如此!状态报告明确指出该版本仍为7.26。另外,我尝试再次运行drush,每次运行它都会成功从26更新到27 ... 更新 我执行了以下命令: drush up drupal -v 这是输出: Initialized Drupal 7.26 root directory at /www/permalink.hashworld.co/docs [notice] Initialized Drupal site default at sites/default [notice] Loading release_info engine. [notice] Loading version_control engine. [notice] Loading package_handler engine. [notice] Executing: wget …
8 7  drush  updating 

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.