我最近下载并安装了sugarcrm社区版:6.5.17。
如何修复各个模块中的帮助链接?或者,我如何弄清楚帮助调用是如何工作的,因为我在代码中找不到正在生成的链接的任何代码引用。
当我点击任何模块中的帮助链接时,例如在商机内:
点击此处了解有关商机模块的更多信息。要访问更多信息,请使用主导航栏上的用户菜单下拉菜单访问帮助。
在查看html页面源时,“点击此处”链接如下所示:
HREF = '模块=管理&安培;行动= SupportPortal&安培;图=文档&安培;版本= 6.5.17&安培;版= CE&安培;朗=安培; help_module =项目&安培; help_action =安培;键='
此链接出现“403 Forbidden”错误:
我手动找到了正确的链接:
答案 0 :(得分:0)
打开config_override.php
并添加custom_help_url
的参数,该参数指向您找到的网站的顶级网页。
以下是我的发现方式:
在Sugar中,您在屏幕上阅读的几乎所有内容都保存在某个语言文件中,以便进行本地化和翻译。因此,我们可以首先使用grep
在系统中搜索这段翻译文本:
[MKP01] [~/Sites/sugar] > grep -r 'to learn more about the' include/
include//language/en_us.lang.php: 'MSG_EMPTY_LIST_VIEW_NO_RESULTS_SUBMSG' => "<item4> to learn more about the <item1> module. In order to access more information, use the user menu drop down located on the main navigation bar to access Help.",
现在我们知道了标签的名称,我们可以搜索它何时被使用的实例:
[MKP01] [~/Sites/nemrace] > grep -r 'MSG_EMPTY_LIST_VIEW_NO_RESULTS_SUBMSG' include/
include//language/en_us.lang.php: 'MSG_EMPTY_LIST_VIEW_NO_RESULTS_SUBMSG' => "<item4> to learn more about the <item1> module. In order to access more information, use the user menu drop down located on the main navigation bar to access Help.",
include//ListView/ListViewGeneric.tpl: {$APP.MSG_EMPTY_LIST_VIEW_NO_RESULTS_SUBMSG|replace:"<item1>":$moduleName|replace:"<item4>":$helpLink}
我们已经知道的第一个结果,但第二个结果是你所追求的:它是所有列表视图的默认Smarty模板。如果我们在文本编辑器中打开该文件,我们可以跟踪变量$helpLink
的定义,只需要使用它的几行:
{capture assign="helpLink"}<a target="_blank" href='?module=Administration&action=SupportPortal&view=documentation&version={$sugar_info.sugar_version}&edition={$sugar_info.sugar_flavor}&lang=&help_module={$currentModule}&help_action=&key='>{$APP.LBL_CLICK_HERE}</a>{/capture}
然后你知道要深入研究modules/Administration/SupportPortal.php
并阅读那个逻辑,知道要找到函数get_help_url
的定义。我们在include/utils.php
function get_help_url($send_edition = '', $send_version = '', $send_lang = '', $send_module = '', $send_action = '', $dev_status = '', $send_key = '', $send_anchor = '') {
global $sugar_config;
if (!empty($sugar_config['custom_help_url'])) {
$sendUrl = $sugar_config['custom_help_url'];
} else {
if (!empty($sugar_config['custom_help_base_url'])) {
$baseUrl= $sugar_config['custom_help_base_url'];
} else {
$baseUrl = "http://www.sugarcrm.com/crm/product_doc.php";
}
$sendUrl = $baseUrl . "?edition={$send_edition}&version={$send_version}&lang={$send_lang}&module={$send_module}&help_action={$send_action}&status={$dev_status}&key={$ send_key}";
if(!empty($send_anchor)) {
$sendUrl .= "&anchor=".$send_anchor;
}
}
return $sendUrl;
}
这是一个好消息 - Sugar了解一些系统管理员希望提供他们自己的帮助URls或基本URL,因此我向您推荐的是config_override.php
并为custom_help_url
添加一个参数指向您找到的网站的顶级页面。