SugarCRM支持链接在模块中被破坏

时间:2014-10-04 16:21:15

标签: sugarcrm

我最近下载并安装了sugarcrm社区版:6.5.17。

如何修复各个模块中的帮助链接?或者,我如何弄清楚帮助调用是如何工作的,因为我在代码中找不到正在生成的链接的任何代码引用。

当我点击任何模块中的帮助链接时,例如在商机内:

点击此处了解有关商机模块的更多信息。要访问更多信息,请使用主导航栏上的用户菜单下拉菜单访问帮助。

在查看html页面源时,“点击此处”链接如下所示:

HREF = '模块=管理&安培;行动= SupportPortal&安培;图=文档&安培;版本= 6.5.17&安培;版= CE&安培;朗=安培; help_module =项目&安培; help_action =安培;键='

此链接出现“403 Forbidden”错误:

[链接] http://support.sugarcrm.com/02_Documentation/01_Sugar_Editions/05_Sugar_Community_Edition/Sugar_Community_Edition_6.5/Application_Guide/13_Opportunities/

我手动找到了正确的链接:

[链接] http://support.sugarcrm.com/02_Documentation/01_Sugar_Editions/05_Sugar_Community_Edition/Sugar_Community_Edition_6.5/Sugar_Community_Edition_Application_Guide_6.5.0/13_Opportunities/

Example link that exhibits the problem

1 个答案:

答案 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添加一个参数指向您找到的网站的顶级页面。