Questions tagged «hooks»

将其用于允许扩展模块功能而无需编辑其代码的机制。

14
挂钩背后的基本概念是什么?
我在PHP中级。为了提高我的技能,我开始学习Drupal7。在学习Drupal体系结构概念时,术语“ 钩子”和“ 引导”使我很困惑。我阅读了《 Pro Drupal开发》这本书以及有关drupal.org的一些文档,但是对我来说,了解钩子在Drupal中如何工作以显示网页是非常先进的。 谁能告诉我简单的钩子是什么?

8
如何掩盖我用于运行网站的内容?
通过查看首页的源代码,我能做些什么来防止某些人知道我的网站正在使用Drupal?我指的是使用软件检测站点的人,该软件可以检测用于运行网站的软件,从而能够利用任何已知的弱点对其进行攻击。 如果无法完全隐藏该站点正在使用Drupal的事实,那么是否至少有可能使它们混淆(例如,通过使用URL之类的节点页面来别名http://example.com/servlets/<node-id>.jsp)?
72 hooks 

5
我需要cron任务来处理队列吗?
我有一项任务大约需要45分钟才能完成,并且每天都需要完成(将用户同步到多个外部数据库等)。 为了处理工作,我设置了一个cron队列,hook_cron_queue_info()如下所示: function mymodule_cron_queue_info() { $queues = array(); $queues['update_users_queue'] = array( 'worker callback' => '_mymodule_process_user_queue_item', 'time' => 120, ); return $queues; } 我使用此功能填充队列: function mymodule_queue_all_users_for_synching() { //...query for users... $queue = DrupalQueue::get('update_users_queue'); foreach($users as $user) { $queue->createItem($user); } } 队列填充功能被称为cron任务。我使用Elysia Cron,因此我的实现hook_cronapi()是: function mymodule_cronapi($op, $job = NULL) { $items = array(); …
32 7  hooks  cron  queue 

4
如何使用drupal_mail()通过自定义模板发送电子邮件
我想使用该drupal_mail()功能发送电子邮件,但使用自定义HTML模板,以使其与我的网站设计保持一致,但是我是钩子和模块等的完全新手,因此,我希望您提供一些解释或请初学者指导。 我可以自己创建模板,我只需要知道如何drupal_mail()使用它即可。
31 7  hooks  emails 

5
hook_form_alter中“ und”的语言键的最佳实践
我正在自定义模块中以某种形式进行修改。代码如下: function my_module_form_alter(&$form, &$form_state, $form_id) { if ($form_id == "someID") { $form['field_charity_author']['und'][0]['value']['#value'] = arg(3); //$form['field_charity_author']['#type'] = 'hidden'; } } 但是,我认为硬编码und是不好的。在这种情况下,正确修改表单字段的正确方法应该是什么?
30 7  entities  hooks  i18n-l10n 


2
从内容类型中删除字段的最佳方法
从GUI定义的内容类型中删除Drupal 7字段的最佳方法是什么?我想使用hook_update_N,以便在运行update.php时可以将更改传播到多个服务器。但是我似乎找不到解决办法。对于自定义定义的模式,db_drop_table()对我而言有意义,但对于通过GUI定义的内容类型/字段而言,则不可行。
21 7  entities  hooks  updating 

3
指定要从显示中排除的$ form元素?
我想使用form_alter或模板文件在表单中隐藏某些元素。我在Drupal 7的某个地方读到过,我们可以指定$ form元素,这样它就不会显示在表单中,但是我不记得了!不是unset(),而是其他函数!
20 7  hooks  forms  theming 

5
如何使用hook_views_query_alter()?
按照hook_views_query_alter()文档中报告的内容,我创建了一个名为的文件alterform.views.inc,并将其放入名为的已启用模块中alterform。我在alterform.views.inc..中添加了以下代码,但不起作用。 function alterform_views_query_alter(&$view, &$query) { switch($view->name) { case 'myViewName': echo 'test test'; // test $query->orderby[0] = "FIELD(node.type, 'story', 'page', 'productTypeC', 'productTypeD') ASC"; $query->orderby[1] = "node_title ASC"; break; } } 为什么不输出“测试测试”?我的代码有什么问题? 仍然没有测试和视图的输出。我的代码有什么问题?谢谢
20 7  views  hooks 

4
如何获取hook_install()以运行所有hook_update_N()?
如何获取hook_install()来运行模块的所有更新?我有mymod.install文件。 我试过了 function mymod_install() { mymod_update_6001(); } 但它似乎无能为力。如果我有mymod_update_6002(),我仍会调用6001(),只需调用6002()或同时按6001(),6002()的顺序调用它们。 我认为在默认情况下安装模块时运行所有更新是常识。
18 6  hooks  installing 


2
您是否有一个hook_menu()访问回调的示例?
我已经下载了示例项目,但是在menu_example模块中,所有项目access callback都设置为true..,很难理解它是如何工作的。 在我的示例中,我的菜单项应该在节点上可见,但仅对于有权编辑自己的节点的角色而言。 我找不到访问回调的详细示例。 有人有吗?
18 7  routes  hooks  users 

2
如何检测节点从“已发布”更改为“未发布”的时间?
在hook_node_update()中,我可以很容易地告诉节点更新后的状态(无论是否发布)。 但是,是否有一种简单的方法可以检查更新的节点是否已发布,但是现在还没有发布?(或相反亦然)? 我认为“规则”可能具有“节点值已更改”的某些条件或类似的条件,但我想以编程方式进行此操作。 我在drupal.org上的fago(规则开发人员)那里发现了这个问题,该问题似乎在Drupal 7中得到了解决,但是请给我一个很好的解释。
17 7  nodes  entities  hooks 

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

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

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.