Drupal

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

2
如何为实体属性实现字段格式化程序
我使用Entity API创建了一个自定义实体,该实体具有hook_schema()在entityPropertyInfo()扩展类中定义和声明的某些属性EntityDefaultMetadataController。 到目前为止,一切都很好。 现在,我希望用户能够自定义在查看实体时是否以及如何显示这些属性,因此我实现了hook_field_extra_fields()并对其进行了声明。 然后,在我的控制器延伸EntityAPIController我添加的属性在$内容数组buildContent()作为,概述这里。 它实际上工作得很好,并且呈现了属性并遵守“管理显示”中的顺序和可见性设置。 但是,我似乎无法弄清楚如何在“管理显示”中添加设置以自定义标签位置(inline/above/hidden),更重要的是,如何为这些属性指定自定义格式器。 有什么线索吗?
16 7  entities 

4
为独立的PHP文件正确引导drupal吗?
这就是我现在所拥有的: <?php define('DRUPAL_ROOT', '/var/www/clients/client1/web15/web'); include_once(DRUPAL_ROOT . '/includes/bootstrap.inc'); drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); // drupal_flush_all_caches(); $users = views_get_view_result('userlist', 'uid_list'); $i = 0; foreach ($users as $user) { $filename = 'sites/default/files/generated_pdfs/individual_pdf_report_' . $user->uid . '.pdf'; generate_employee_pdf($user->uid, $filename); error_log('Generated ' . $filepath); $i++; } // create object $zip = new ZipArchive(); // open archive if ($zip->open("sites/default/files/generated_zips/individual-reports.zip", ZIPARCHIVE::CREATE) …
16 7  bootstrapping 

3
如何解决两个功能模块之间的冲突?
我有两种具有各种菜单,视图,菜单等的内容类型,它们打包为两个功能自定义模块。这两种内容类型都使用分类法,并且使用数据库中的几个相同字段。当我将这些功能模块加载到新站点中时,它们在这些通用字段和词汇表上显示出彼此之间的冲突,并且我不确定解决冲突的最佳方法是什么。 尽管功能模块旨在协同工作,但它们不必同时存在于同一站点上。每个也可以与其他不同功能一起使用。它们都使用分类法和字段来进行视图过滤等,因此它们每个都在其功能定义中包括这些组件是有意义的。我是不是该: 从一个模块中删除字段和分类法,并声明对另一个模块的依赖关系?这是不希望的,因为彼此之间可以互不相干。 制作功能的两个版本,一个用于独立使用,一个用于协作。 将字段和分类法定义为单独的功能? 忽略冲突并启用模块?(如果我愿意,他们俩将共享这个领域吗?) 另一个解决方案? 我尚未对此进行测试,但是禁用或卸载两个功能模块之一会从数据库中删除字段,即使另一个模块需要它也是如此吗?
16 features 

2
如何更改表单提交处理程序?
由于某种原因,我需要在每个单个文本字段中以某种形式替换某些字符(如果存在),就在它们存储在数据库中之前。换句话说,我需要一个钩子,可以在其中获取所有提交的数据并替换其字符。 我找到了这个解决方案: function hook_form_alter($form, $form_state, $form_id) { $form['#submit'] = 'my_custom_submission_function'; } 但这不是一个好主意,因为我也必须照顾其余的提交进度。我只需要替换一些字符。有挂钩吗?有什么解决方案?
16 7  hooks  forms 

2
在AJAX回调中更改$ form_state
我正在创建一个使用表单API '#ajax'属性的表单,我需要对$form_state按下启用AJAX的按钮的时间进行更改。这是我得到的: 在我的表单构建器函数中: ... $form['some_fieldset']['add_more'] = array( '#type' => 'button', '#value' => t('Add more rows'), '#ajax' => array( 'wrapper' => 'some-fieldset', 'callback' => 'my_module_settings_ajax', 'method' => 'replace', 'effect' => 'fade', ), ); ... 这是回调函数: function my_module_settings_ajax($form, $form_state) { // Make a change to $form_state if ($form_state['some_fieldset']['add_more']) { $form_state['values']['some_fieldset']['table'][] = array('first_field' …
16 7  forms  ajax 


12
设置选择列表默认值
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我有带有选项的选择列表: $options = array(0 => '0', 500 => '500', 1000 => '1000'); 我正在尝试将其默认值设置为500: $form['price']['min']['#options'] = $options; $form['price']['min']['#default_value'] = 500; 但这不起作用。
16 forms 


1
Drush 9的存档转储在哪里?
我已经安装了drush 9(当前的dev版本)。尽管文档建议它应该存在,但我找不到archive-dump命令。 执行它会产生: 找不到Drush命令“存档转储”。使用“ drush core-status”来验证是否已找到Drupal并成功将其引导。在其输出中查找“ Drupal bootstrap:成功”。 我可以确认drush core-status(或status)指出Drupal已成功引导。该问题存在于本地和远程环境以及所安装的任何计算机上(到目前为止,我已经尝试了4种,混合了MacOS和Ubuntu环境)。 我什至走到了grep drush的代码中,都提到了archive和ard(用来工作的别名,如果要相信文档,也应该使用别名。这里似乎没有任何相关之处。 那么存档转储在哪里呢?如果将其删除,它的后继者是什么?
16 drush 

4
检查用户是否以主题登录
在Drupal 7中,我们可以通过检查$GLOBAL['user']->uid或使用来简单地检查当前用户是否已登录主题user_is_logged_in()。 在Drupal 8中,如何检查用户是否以页面模板登录? 一个解决方案是手动签入hook_preprocess_page(),但是由于它非常流行,我认为Drupal默认为Twig主题引擎提供一些功能。
16 theming  8 

9
如何设置主题徽标?
如何在Drupal 8的自定义主题中设置徽标? 我可以看到Drupal正在寻找logo.svg文件。我有一个在Drupal 7中使用的PNG logo.png文件,我想重新使用它。我无法像Drupal 7一样将徽标设置为主题设置。 是否可以通过UI或主题中的自定义代码来设置徽标?
16 8  theme-settings 

9
有没有办法挂钩缓存清除?
对于拥有大量高速缓存的大型机构网站,我想尽快生成高速缓存,以便没有用户可以到达高速缓存生成... 我通过执行一些功能并请求关键页面来设置所有时间的cron,但是我想寻找的是一种知道何时刚刚清除缓存(最好是钩子)的方法,因此我可以启动它生成功能。 任何想法 ?
16 7  hooks  caching 

3
保存后的动作可以使用哪个挂钩?
我已经找到了几条关于同一问题的帖子,但是答案总是与其他主题有所不同,否则它们将无法满足我的需求。 保存节点后,我想让我的自定义模块在我的一个自定义表中插入一行,其中包含新节点的编号。当hook_node_submit被调用时,nid还不存在。hook_node_insert确实有好处,但是仅在第一次保存节点时才被调用,但是每次保存节点时我可能都需要采取措施。 我的计划是将功能分解为自己的方法并实现两个钩子,但是我试图学习使用Drupal正确地做事,所以我想知道是否有一个钩子实际上符合我的要求。 是否存在一个钩子,每次保存节点时都会调用该钩子,并在保存完成后调用该钩子?
16 7  hooks  nodes 

3
如何以编程方式从节点中删除字段?
如何以编程方式从节点中删除字段?我在迁移中将hook_update_N内容从a字段移到自定义表中。迁移之后,我想删除同一函数中的字段。 是否有可以删除字段的字段API? 编辑,解决方案:因为答案缺少实际的代码,所以这是我将$ users中的字段移到我自己的记录中,然后从数据库中删除该字段的方法; function my_module_update_7005(&$sandbox) { $slice = 100; //Fetch users from database; if (!isset($sandbox['progress'])) { $sandbox['progress'] = 0; $sandbox['current_uid'] = 0; // We'll -1 to disregard the uid 0... $sandbox['max'] = db_query('SELECT COUNT(DISTINCT uid) FROM {users}')->fetchField() - 1; } if (empty($users)) { $sandbox["current_uid"] += $slice; } $users = …
16 7  entities  updating 

5
在drupal 7 node.tpl中渲染或打印图像?
我试图用tpl为节点设置主题,当我尝试打印图像时,找不到d6中的图像路径。我必须调用哪个函数才能正确输出图像..我的意思是像theme('')这样? Array ( [und] => Array ( [0] => Array ( [fid] => 13 [alt] => [title] => [width] => 416 [height] => 335 [uid] => 1 [filename] => Capture2.PNG [uri] => public://Capture2.PNG [filemime] => image/png [filesize] => 215377 [status] => 1 [timestamp] => 1346837738 [rdf_mapping] => Array ( ) …
16 7  theming  media 

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.