- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,这是我第一次接触 SuiteCRM 或任何其他 CRM。我需要在 CRM 未为我们的报价系统使用的表上查询数据库。因此,我使用模块生成器创建了模块并修改了模块文件,以便它使用正确的表。问题在于,当查询运行时,SuiteCRM 仍然添加其默认的 where 子句并将 deleted = 0 条件添加到查询中。因此,我尝试使用 this SO page 中描述的方法.这不起作用,因为我得到一个错误,我正在使用 undefined variable (db) 并且我正在调用非对象上的成员函数 fetchByAssoc()。现在,我将代码放在 moduleName.php 文件中。也许那是我的问题。我不知道,因为我从未参与过任何其他 CRM 项目。如果有人能指出我需要做什么才能查询默认 CRM 表以外的其他表,然后在 dashlet 中显示该查询的结果,我将向您指出正确的方向,将不胜感激您的帮助.我修复了错误。他们是我的错,因为我没有引用该对象。因此,根据要求,这是我的一些代码。这是我的 php 文件。
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
require_once('include/Dashlets/Dashlet.php');
class FrtwQuotesDashlet extends Dashlet {
var $height = '200'; // height of the dashlet
var $quoteData = "";
/**
* Constructor
*
* @global string current language
* @param guid $id id for the current dashlet (assigned from Home module)
* @param array $def options saved for this dashlet
*/
function FrtwQuotesDashlet($id, $def) {
$this->loadLanguage('FrtwQuotesDashlet');
if(!empty($def['height'])) // set a default height if none is set
$this->height = $def['height'];
parent::Dashlet($id); // call parent constructor
$this->isConfigurable = true; // dashlet is configurable
$this->hasScript = false; // dashlet has javascript attached to it
// if no custom title, use default
if(empty($def['title'])) $this->title = $this->dashletStrings['LBL_TITLE'];
else $this->title = $def['title'];
}
/**
* Displays the dashlet
*
* @return string html to display dashlet
*/
function display() {
$sql = "SELECT QuoteNbr, crmname, ShipToCity FROM quotes.quotehdr LIMIT 10";
$result = $GLOBALS["db"]->query($sql);
$quoteData = "<table>";
while($quotes = $GLOBALS["db"]->fetchByAssoc($result)){
foreach ($quotes as $quote) {
$quoteData .="<tr><td>".$quote[0]."</td><td>".$quote[1]."</td><td>".$quote[2]."</td></tr>";
}
}
$ss = new Sugar_Smarty();
//assign variables
//$ss->assign('greeting', $this->dashletStrings['LBL_GREETING']);
$ss->assign('quoteData', $this->quoteData);
$ss->assign('height', $this->height);
$str = $ss->fetch('custom/modules/Home/FrtwQuotesDashlet/FrtwQuotesDashlet.tpl');
return parent::display().$str;
}
}
?>
最佳答案
问题出在 foreach 循环上。我删除了它,现在它工作正常。在分析代码时,while 循环实际上执行了所需的迭代。因此,通过添加 foreach,发生的事情是代码遍历从数据库返回的每一行,然后做一些奇怪的事情——例如,它只会返回每个值应该是什么的部分字符串。由于我在 3 个字段上查询,它还会在每一行上循环 3 次,从而从每一行创建 3 个不同的行。因此,对于遇到类似问题的任何人,这就是工作代码的样子。
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
require_once('include/Dashlets/Dashlet.php');
class FrtwQuotesDashlet extends Dashlet {
var $height = '200'; // height of the dashlet
var $quoteData = "";
/**
* Constructor
*
* @global string current language
* @param guid $id id for the current dashlet (assigned from Home module)
* @param array $def options saved for this dashlet
*/
function FrtwQuotesDashlet($id, $def) {
$this->loadLanguage('FrtwQuotesDashlet');
if(!empty($def['height']))
$this->height = $def['height'];
parent::Dashlet($id);
$this->isConfigurable = true;
$this->hasScript = false;
// if no custom title, use default
if(empty($def['title'])) $this->title = $this->dashletStrings['LBL_TITLE'];
else $this->title = $def['title'];
}
/**
* Displays the dashlet
*
* @return string html to display dashlet
*/
function display() {
$sql = "SELECT QuoteNbr, revnbr, crmname, ShipToCity FROM quotes.quotehdr LIMIT 10";
$result = $GLOBALS["db"]->query($sql);
$this->quoteData = "Need headers here when we determine exact fields....";
while($quotes = $GLOBALS["db"]->fetchByAssoc($result)){
$this->quoteData .="<tr><td width = \"30%\">".$quotes["QuoteNbr"].' '.$quotes['revnbr']."</td><td width = \"30%\">".$quotes["crmname"]."</td><td width = \"30%\">".$quotes["ShipToCity"]."</td></tr>";
}
$ss = new Sugar_Smarty();
//assign variables
// $ss->assign('greeting', $this->dashletStrings['LBL_GREETING']);
$ss->assign('greeting', "This is the Greeting....");
$ss->assign('quoteData', $this->quoteData);
$ss->assign('height', $this->height);
$str = $ss->fetch('modules/Home/Dashlets/FrtwQuotesDashlet/FrtwQuotesDashlet.tpl');
return parent::display().$str; // return parent::display for title and such
}
}
?>
关于php - 在 SuiteCRM 中使用原始 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29781597/
我们正在考虑在整个公司范围内部署 SuiteCRM。我们有一个开发环境,我们正在测试我们将需要的所有必需功能和模块,同时向管理团队演示系统最终的样子。 我们有一个问题,目前我们有大约 6 个不同的网站
我正在使用 SuiteCRM(Sugar CRM 6.x 社区版)并希望创建自定义登录页面,成功登录后我想根据用户类型进行重定向 尝试创建一些模块,但没有明确的文档,除了一些有用的 links ,
希望确认关于 DMZ 的最后一点。 服务器如下: - 1 x Ubuntu Server 16.02 - 内部 MYSQL 服务器 - 1 X Ubuntu Server 16.02 - 仅限内部使用
在 SuiteCRM 中,默认状态和潜在客户来源使用的名称中包含空格,这在 Studio 中创建是非法的。相反,我们有自定义状态名称,例如与标签“New Lead”不匹配的“New_Lead”。 Su
我无法从模块生成器创建新包。在模块构建器中,当我输入包名和 key 并点击保存时,它什么都不做。当我在 chrome 中检查时,控制台记录以下错误: Uncaught TypeError: Cann
我正在尝试实用地创建一个新模块,但是 metadata 没有被调用或显示,这是怎么做的: 在 CRM/Modules/ 中,我在其中添加了 Vendors 文件夹 我添加了以下文件夹: 元数据 , v
我现在正在使用 LDAP 身份验证在 Suitecrm 中添加用户。在正常情况下,当用户添加到系统时,我们可以在创建过程中为他分配角色,并在他的门户中隐藏一些为他启用的模块。 通过 LDAP 身份验证
Sugarcrm (6.5) 和它的 fork suitecrm (7.x) 在哪里为其创建的文件设置文件权限? 我见过带有变量的 config.php: 'default_permissions'
在日历中,将事件分配给特定日期时,有一个名为“相关”的字段。当从下拉列表中选择潜在客户并且我选择从列表中选择时,将打开一个包含所有潜在客户的弹出窗口。 我想要的是每当用户从潜在客户列表中选择或更改潜在
我在 SuiteCRM 中有 webtolead 表单,其中有多选字段。当我填写表格并单击“Sumbit”时,出现警告 Warning: mysqli_real_escape_string() exp
我在这里检查了其他几个与屏蔽输入插件不工作相关的线程,但找不到任何答案: Masked Input Plugin not working jQuery Masked Input plugin not
我试图弄清楚如何根据下拉选择使我的 SuiteCRM 数据库中的 ListView /子面板行具有某种颜色。例如,如果从下拉列表中选择“已验证”,则该行应为黄色。 我知道你可以使用逻辑钩子(Hook)
我正在 aftersave Hook 逻辑中执行一些 API 调用。有一件事我需要从数据库中获取已保存记录的 ID,以便在 Hook 类中发生任何错误时将用户重定向到编辑 View 。这是我重定向用户
我正在尝试在 suitecrm 上创建一个提醒工作流程。如果我的“票证模块”(我使用模块构建器构建的模块)的“状态”字段保持待处理状态两天,提醒工作流应该向我的电子邮件地址发送警告电子邮件 我点击了链
我在 SuiteCRM 安装的消息、弹出窗口、标题、标题甚至加载栏中收到以下错误: "undefined" 代替文本的位置。 在各种 SugarCRM 论坛中,它提到了以下内容: 将缓存文件夹的权限更
所以我有一个自定义字段,它基本上是一个隐藏和显示下拉列表的 Bool 字段。这不仅仅是一个自定义字段。我制作了一个像 Dynaminenum 或 Address 这样的字段类型,这样我就可以通过 St
最近发布的 SuiteCRM 7.3 具有显示桌面通知和站点通知的功能(在标题中)。 如何通过代码添加或触发我自己的自定义通知? 最佳答案 我还没有对此进行测试,但您应该能够简单地保存一个新的 Ale
在新安装的suiteCRM 系统中,创建新联系人或帐户时不会出现电子邮件地址字段。 这个问题在 FireFox 中不会出现,但是在 chrome 和 Safari 中会出现! 最佳答案 这些字段是由
因此,这是我第一次接触 SuiteCRM 或任何其他 CRM。我需要在 CRM 未为我们的报价系统使用的表上查询数据库。因此,我使用模块生成器创建了模块并修改了模块文件,以便它使用正确的表。问题在于,
我在 SuiteCRM 中创建了一个网络潜在客户表单,并将生成的原始 HTML 作为单页帖子复制到在 Wordpress 管理中创建的页面。但是,该表格不起作用。在 chrome JS 控制台中,我看
我是一名优秀的程序员,十分优秀!