问题标签 [civicrm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
246 浏览

facebook - 如何将 Facebook 的“赞”按钮添加到 CiviCRM 邮件

我正在尝试将 facebook 的“喜欢”按钮添加到我的 CiviCRM civiMail 页脚模板中。当我将下载的代码粘贴到页脚代码中时,CiviCRM 编辑器会标记以下错误“输入中的非法字符(潜在的脚本攻击)”

(我已将代码粘贴到我的 HTML 页面并添加到我的 Wordpress 页面中,它在两者中都可以正常工作,但在 CiviMail 中不起作用)

有人知道怎么做吗?

0 投票
1 回答
545 浏览

drupal - 将带有下拉选项的字段添加到 civicrm 个人资料

您好,我可以在civicrm
个人资料中添加一个带有下拉选项的字段吗?我在我的 drupal 注册表中添加了一些 civicrm 字段。有工作地址和家庭地址,我想在注册表单中选择主要地址。我在 civicrm 个人资料页面中找到了该选项。如何将此添加到我的 drupal 注册表单?
提前致谢

0 投票
1 回答
6303 浏览

mysql - 使用 INNER JOIN 在表之间插入 INTO

CiviCRM 中较早的数据导入将一些成员编号放入自定义字段 ( member_number) 而不是更有用的 ( external_id) 字段。

我的(诚然有限的)SQL技能太生疏了,但我想做的是:

  1. 如果external_id字段为空,
  2. 并且contact_type是“个人”
  3. member_number然后将数据从to复制到external_id匹配的内部 ID 号。

我已经尝试了一些变体,但有不同的错误:

我真的需要 INNER JOIN 吗?而且我知道 WHERE 语句通常是指您从中提取的表,而不是您要插入的表,但我不记得正确的方法。

0 投票
2 回答
539 浏览

civicrm - 如何将 CiviCRM/Drupal 安装从一台服务器复制到另一台服务器

我尝试将 CiviCRM/Drupal 安装从一台服务器复制到另一台服务器。我复制了 drupal 根目录和数据库中的所有文件,并更改了 Drupal 的 settings.php 文件和 CiviCRM 的 civicrm.settings.php 文件中的数据库详细信息。Drupal 现在工作正常 - 复制它似乎已经奏效,而且我已经多次使用相同的方法成功地完成了。然而,CiviCRM 并没有完全发挥作用。当我访问主 CiviCRM 管理页面(即我的服务器上的http://cea-crm.philosofiles.com/civicrm/)时,我看到 CiviCRM 的侧边栏框(表明它在某种程度上工作)但是,在它们的右边,看:

当我单击任何侧边栏框链接时,例如“我的联系人仪表板”,我同样会看到:

大概我错过了一些我需要进行的更改以反映我的新服务器设置?我在 civicrm.settings.php 中看不到任何内容我仍然需要更改,例如我添加了类似define( 'CIVICRM_UF_BASEURL' , 'http://cea-crm.philosofiles.com/' );$civicrm_root = '/home/myusername/public_html/d7/sites/cea-crm.philosofiles.com/modules/civicrm';

0 投票
1 回答
343 浏览

php - PHP - 在同一会话期间变量未“重置”

我一直在努力连接 Joomla 和 CiviCRM 个人资料更新。最初,我要做的就是在 Joomla 配置文件电子邮件更改时更新 CiviCRM 匹配配置文件(注意:最新的 civi 版本将在 civi 电子邮件更改时更新 Joomla 配置文件电子邮件......所以那一侧被覆盖) . 有了这个,我就有了可以工作的代码。也就是说,当我从经过身份验证的会话中手动触发代码时,它将正确更新 civi 电子邮件。现在我试图将此代码嵌入到 Joomla user_profile 插件中,以便当用户更改他们的电子邮件时,它会更新 civi 电子邮件。

注意:我知道不要破解核心代码。最终,我将使用我的自定义代码创建一个新的配置文件插件,但为了在开发过程中简单起见,我使用的是核心 user_profile 插件。任何阅读本文的人,请勿在生产中使用以下代码!它不完整,核心不应被黑客入侵。

这可行,但是我发现如果用户没有注销会话然后在同一会话中第二次更改电子邮件,则无法识别最新的电子邮件(使用旧电子邮件),但是如果用户注销然后登录,更改电子邮件,它将起作用。我希望这是有道理的。

问题一定与变量的“实例”或与此有关的东西有关,但我是 PHP 编码的新手,不太确定我做错了什么。我已将自定义代码放在 user_profile 插件的 profile.php 脚本中的 onUserAfterSave 函数中。

任何 PHP 程序员都知道我该如何解决这个问题,这样我的自定义代码就会在每次 Joomla 中更改电子邮件时触发,无论它是否在同一个会话期间?

我的代码:

0 投票
4 回答
291 浏览

mysql - 缓慢的 MySQL SELECT 查询

我有一个缓慢的 MySQL SELECT 查询,我似乎无法排除故障。

这是一个简单的,在一个大约有 600,000 条记录的表上。

Select 查询需要 3-6 秒之间的任何时间,这使得导入另外 600,000 条依赖于此查询的记录完全不切实际。

表索引显示在附图中:表索引

如果我根据 contact.id=123456 进行搜索,那么查询时间会下降到大约 0.004 秒。contact.id 是表的主键。external_identifier 是唯一索引。

0 投票
1 回答
874 浏览

php - Joomla 数据库查询在更新后返回旧值

我正在实现一个在更新/添加数据库行后触发的基本侦听器(一个civicrm_post挂钩)。我遇到的问题是,即使表中的一行已更改,通过 Joomla 数据库对象加载同一行也会返回先前的值。

假设我将对象的名称从“foo”更改为“bar”。

返回 '​​foo' 作为名称,而

返回“酒吧”。

是否正在进行任何缓存,有什么方法可以清除它吗?

以供参考:

  • Joomla 2.5.6
  • PHP 5.3.10
  • MySQL 5.1.36

编辑:这是我在 CiviCRM 论坛上开始的一个主题,它提供了更多细节:http: //forum.civicrm.org/index.php/topic,25200.0.html

编辑2:“最新发展”和一些澄清。

我正在使用钩子推送更新的 iCal 提要,这是 CiviCRM 的前端组件提供的提要。当钩子触发时它不会更新,即使数据库在那时更新并且两端都没有缓存。显然 CiviCRM 使用自己的数据库连接器,因此上述措辞不再严格有效。使用稍后触发的钩子(civicrm_postProcess)解决了这个问题,但这是一个“hacky”修复。

0 投票
1 回答
210 浏览

javascript - 解决 Drupal 站点的客户端 JS 问题?

我管理基于 Drupal 7.14 的 CiviCRM (4.1.3) 安装,并试图解决 UI 难以捉摸的问题。该站点的几个(但不是全部)基于 Javascript 的元素已停止工作,即单击下拉箭头以显示“高级选项”或尝试打开日历小部件。这是我尝试过的: - 我检查了目录权限 - 我删除了 JS 缓存(~/public_html/civicrm/sites/default/files/js)和其他页面缓存(~/public_html/civicrm/sites/default/files/公民/模板_c)。- 我将 Drupal 模块更新到最新版本(尚未更新到 Drupal 7.15,但这个问题与 Drupal 7.14 更新不一致,所以我假设这不是问题) - 我启用(然后清除缓存)和禁用(然后清除缓存)然后在 drupal 中重新启用 JS 和 CSS 缓存/压缩/聚合

有没有人建议我应该从哪里开始以更细化的方式解决这个问题?我是 js 调试的新手,所以任何建议都会非常受欢迎。

0 投票
2 回答
550 浏览

drupal - 使用 Drupal 权限控制 CiviCRM 访问

我正在尝试在 CiviCRM 中设置访问控制系统,以限制某些用户对某些自定义数据字段集的访问。我计划使用 Civi ACL 来实现这一点,尽管我的理解是它们被 Drupal 权限覆盖,因此必须在 Drupal 权限内取消选中“CiviCRM:访问所有自定义数据”复选框。然后,我将能够使用 ACL 仅允许我想要的用户访问这些字段。

我的问题是我创建了一个 Drupal 角色“crm 用户”,但未选中此框,但是当我以具有此角色的用户身份登录时,我仍然可以看到所有自定义数据,这是我不应该做的。有谁知道我可能做错了什么?是否还有其他需要删除的 Drupal 权限?

0 投票
1 回答
3191 浏览

mysql - 两个选择查询之间的 MySQL 差异

我有两个返回电话号码列的 mysql 查询。我想最终得到一个列表中的电话号码列表,但不在另一个列表中。

所以我有两个查询是:

在有人问之前,上述两个查询并没有提供互斥的结果(基于最后一个 WHERE 语句使用 IS NULL 和 IS NOT NULL),因为我们在数据库中有使用相同电话号码的相关个人,但不必须都有一个参与者.id。

谢谢你的帮助。