社区首页 >问答首页 >模块中的钩子名称似乎不起作用

模块中的钩子名称似乎不起作用
EN

Drupal用户
提问于 2018-09-25 12:31:37
回答 1查看 56关注 0票数 1

我已经干了好几天了,但我终于觉得我可能找到了问题的一部分,maybe...but,我不知道怎么解决它。

我正在处理一个运行CiviCRM模块的Drupal站点。我有一个表单,在将数据保存到数据库之前,我希望在此表单上修改数据。因此,我一直在努力获取任何可用的CiviCRM挂钩。

我安装了civicrm_developer模块,这是对开发的一种补充,因为它用于帮助查看对象和其他变量。在模块的.module文件中,您可以看到所有的CiviCRM钩子函数,这些函数在模块中被用于dpm() (传递给它们的任何变量)。

代码语言:javascript
代码运行次数:0
复制
function civicrm_developer_civicrm_buildForm($formName, &$form){
  drupal_set_message("hook_civicrm_buildForm called: formName is $formName");
  dpm($form);
  dpm($formName);
}

对于CiviCRM中可用的每个钩子,都没有包含或其他任何内容,只有钩子和打印变量。civicrm_developer模块确实按预期工作。在我正在使用的特定页面上,有一个CiviCRM表单,这个模块在该表单上打印一个填充的Krumo,这在Drupal中的一个变量dpm()-ing中是预期的。

然而,试图制作一个使用一个或两个相同钩子的自定义模块,似乎永远无法获得相同的数据。我已经将代码从该模块(只有一个.module和.info文件)复制到我的自定义模块,并将钩子名称从"civicrm_developer“更改为"mymodule”。

因此,除了钩子名称之外,我的模块实际上是该模块的精确副本,它不会像启用civicrm_developer模块时那样在表单上生成Krumo。是的,我已经确保我的模块被启用了。

例如,这是前面写在我的自定义模块中的相同的函数。

代码语言:javascript
代码运行次数:0
复制
function mymodule_buildForm($formName, &$form){
  drupal_set_message("mymodule_buildForm called: formName is $formName");
  dpm($form);
  dpm($formName);
}

还值得一提的是,使用中的mymodule名称是该模块的唯一名称。它不匹配主题名称或任何可能导致名称冲突的东西,至少据我所知。

我不明白为什么相同的钩子在一个模块中工作,而在另一个模块中不工作。只是没有任何意义。

EN

回答 1

Drupal用户

发布于 2018-09-25 12:45:40

Drupal中没有hook_buildForm()钩子。您要实现的钩子是hook_civicrm_buildForm(),因此要使它正常工作,您应该使用mymodule_civicrm_buildForm()

您可以始终使用hook_form_alter()或更具体地说,使用hook_form_FORM_ID_alter()对任何Drupal表单进行更改。

票数 5
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/269942

复制
相关文章
MySQL分库分表浅谈一、分库分表类型二、分库分表查询三、分库分表的问题四、分库分表策略
一、分库分表类型 1、单库单表 所有数据都放在一个库,一张表。 2、单库多表 数据在一个库,单表水平切分多张表。 3、多库多表 数据库水平切分,表也水平切分。 二、分库分表查询 通过分库分表规则查找到对应的表和库的过程: 如分库分表的规则是acc_id mod 4的方式,当用户新注册了一个账号,账号id的123,我们可以通过acc_id mod 4的方式确定此账号应该保存到Acc_0003表中。当用户123登录的时候,我们通过123 mod 4后确定记录在Acc_0003中。 三、分库分表的问题 分库分表
Clive
2018/04/19
4.1K0
分库分表
如果是创业公司。比如注册用户20w, 每天日活1w, 每天单表1000, 高峰期每秒并发 10 ,这个时候,一般不需要考虑分库分表,如果注册用户2000w, 日活100w, 单表10w条,高峰期每秒并发1000,此时就要考虑分库分表。当然多加几台机器,使用负载均衡可以扛住,但是每天单表数据增加,磁盘资源会被消耗掉,高峰期如果要5000 怎么办,系统肯定撑不住。也就是说,数据增加,请求量增大,并发增大,单个数据库肯定不行。
王小明_HIT
2021/04/30
2.1K0
分库分表
不要为了“分库分表”而“分库分表”
当数据库的数据量过大,大到一定的程度,我们就可以进行分库分表。那么基于什么原则,什么方法进行拆分,这就是本篇所要讲的。
陈琛
2020/06/12
2K0
mysql分表详解
本人混迹qq群2年多了,经常听到有人说“数据表太大了,需要分表”,“xxxx了,要分表”的言论,那么,到底为什么要分表?
仙士可
2019/12/19
4.7K0
mysql分表详解
MySQL 分表查询
分表是一种数据库分割技术,用于将大表拆分成多个小表,以提高数据库的性能和可管理性。在MySQL中,可以使用多种方法进行分表,例如基于范围、哈希或列表等。下面将详细介绍MySQL如何分表以及分表后如何进行数据查询。
孟斯特
2023/10/19
1.1K0
MySQL 分表查询
分库分表初探
面试官:这边有个数据库-单表1千万数据,未来1年还会增长多500万,性能比较慢,说下你的优化思路
Joseph_青椒
2023/08/02
5250
分库分表初探
数据分表小结
本次拆分主要包括订单和优惠券两大块,这两块都是覆盖全集团所有分子公司所有业务线。随着公司的业务飞速发展,不管是存储的要求,还是写入、读取的性都基本上到了警戒水位。
王清培
2018/07/31
5250
数据分库分表
分库分表,顾名思义,既分库亦分表,拆分方式有垂直和水平,通过将单一的数据库,表进行拆分来提高整体数据库的性能
风起--追风
2022/05/20
9530
mysql 分库分表
分表是分散数据库压力的好方法。 分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库。 当然,首先要知道什么情况下,才需要分表。个人觉得单表记录条数达到百万到千万级别时就要使用分表了。 1,分表的分类 1>纵向分表 将本来可以在同一个表的内容,人为划分为多个表。(所谓的本来,是指按照关系型数据库的第三范式要求,是应该在同一个表的。) 分表理由:根据数据的活跃度进行分离,(因为不同活跃的数据,处理方式是不同的) 案例: 对于一个博客系统,文章标题,作者,分类,创建时间等,
wangxl
2018/03/07
3.1K0
分库 / 分表闲聊
大中型项目,一旦数据量比较大,就要进行对数据的拆分了,一般有两种,垂直拆分与水平拆分。
BUG弄潮儿
2021/07/22
8730
基因分库分表
    数据存储中,相互关系的表,尽量分库时落到同一个库中,避免遍历多个库查询,而且还能避免分布式事务。
sdcuike
2020/01/26
1.8K0
MySQL - 分库分表
主从模式对于写少读多的场景确实非常大的优势,但是总会写操作达到瓶颈的时候,导致性能提不上去。
Vincent-yuan
2021/10/09
5.9K0
MySQL - 分库分表
分库分表-ShardingSphere
如果要join的表,是个字典表(表小,数据变动不大),建议做成广播表,所有的库都有存一份。
温安适
2023/10/16
3070
分库分表-ShardingSphere
MySQL分表【转载】
一、时间结构   如果业务系统对时效性较高,比如新闻发布系统的文章表,可以把数据库设计成时间结构,按时间分有几种结构:   1) 平板式   表类似:   article_200901   article_200902   article_200903   用年来分还是用月可自定,但用日期的话表就太多了,也没这必要。一般建议是按月分就可以。   这种分法,其难处在于,假设我要列20条数据,结果这三张表里都有2条,那么业务上很有可能要求读三次表。如果时间长了,有几十张表,而每张表是0条,那不就是要读完整个系统
wangxl
2018/03/08
1.9K0
MySQL分库分表
① 从连接数来看,根据官方文档,5.1.17以上版本,单台mysql数据库的连接数默认是151,上限为10w,虽然可以在上限范围内人为的设置最大连接数,或者建立连接池进行一定程度优化,但单台数据库的性能总是有瓶颈的,当请求量过大的时候,若连接数不够,则会处于阻塞状态
素履coder
2022/09/07
4.5K0
MySQL分库分表
还是分表了
实在没办法了,自己来,呵,不行了最多重新导入,或者放弃这个站就是了。 1、新建系统模型,附加表为:dede_addon_1_20w 2、将原附加表中20万以上数据导入dede_addon_1_20w中: insert into dede_addon_1_20w select * from dede_addonarticle where aid>200000; 3、将原附加表和dede_addon_1_20w换名 rename table dede_addonarticle to dede_addonarti
用户1272546
2018/06/04
5830
MySQL 分库分表
随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行数据存储,存在以下性能瓶颈:
用户9615083
2022/12/25
14.2K0
MySQL 分库分表
Mysql分库分表,你如何分,怎样分?
为什么要分表和分区? 日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。
友儿
2022/09/11
2K0
protractor量角器软件_flashback啥意思
protractor 是一个 Node.js 程序,为了运行 protractor ,你首先需要 Node 环境。你还应该检查一下 Node 的版本,它应该在 v0.10.0 以上。
全栈程序员站长
2022/11/01
1.9K0
hive中外部表、内部表、分区表、分桶表
create table student(t_id string,t_name string) row format delimited fields terminated by ‘\t’; 加载数据 ( /export/servers/hivedatas/student .csv 数据在虚拟机上地址) load data local inpath ‘/export/servers/hivedatas/student .csv’ into table student; 在hdfs查看表中的数据 ( /user/hive/warehouse/myhive.db/student 数据在hdfs上的地址) hadoop fs -ls /user/hive/warehouse/myhive.db/student 在hive中查询 select * from student 删除数据表techer drop table student; 再次查看 hadoop fs -ls /user/hive/warehouse/myhive.db/student(数据不存在)
用户4870038
2021/02/05
6760

相似问题

IE7分区创建表

42

Jenkins-量角器集成-Centos7 7

26

Windows 7中的量角器

12

单击事件隐藏2分量角4

13

角度7量角器非角度LoginPage

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文