Добавление javascript с использованием расширения

Я разработал файл javascript, который хочу включить в пакет, и я вижу, что могу добавить его с помощью пользовательского файла editviews.php. Это прекрасно работает. Тем не менее, я хочу, чтобы моему коллеге было легко установить его. Я создал файл в папке custom/extension/modules/leads/vardefs/ со следующим содержимым (и сделал быстрое восстановление):

$viewdefs['Leads']['EditView']['templateMeta']['includes'][]=array('file'=>'custom/modules/mme_form_js_functions.js');
$viewdefs['Leads']['QuickCreate']['templateMeta']['includes'][]=array('file'=>'custom/modules/mme_form_js_functions.js');

Похоже, это не работает, поэтому, если у кого-то есть быстрое предложение о том, как это сделать, используя структуру расширения, я хотел бы узнать ответ, не разгадывая сахарный php-код.


person user2679310    schedule 13.08.2013    source источник


Ответы (2)


Вот как я это сделал (SuiteCRM 7.10):

Сначала зарегистрируйте хук after_ui_frame application, т. е. создайте custom/Extension/application/Ext/LogicHooks/myhooks.php, содержащий что-то вроде:

<?php

$hook_version = 1;  
$hook_array = Array();  
$hook_array['after_ui_frame'] = Array();  
$hook_array['after_ui_frame'][] = Array(99, 'Add my custom js',
                      'custom/Extension/application/mycustomizations.php', 'MyHooks', 'add_my_js');

Затем создайте custom/Extension/application/mycustomizations.php и добавьте свой файл javascript (вы можете добавить его только к определенным модулям/действиям):

<?php

if(!defined('sugarEntry') || !sugarEntry) die('Not a valid entry point');

class MyHooks {

    function add_my_js($event, $args){
        if ($_REQUEST['module'] == 'Leads' && $_REQUEST['action'] == 'EditView') {
echo '<script type="text/javascript" src="custom/Extension/application/mycustom.js"></script>';
        }
    }
}

Наконец, сделайте Quick repair and rebuild.

person Joril    schedule 21.06.2018

Выполняли ли вы быстрый ремонт и восстановление после внесения этих изменений? Это было бы необходимо. Другое дело, что в SugarCRM считается заглавная буква и ваш файл находится не в том месте, так и должно быть

пользовательский/Расширение/модули/Лиды/Ext/Vardefs/ИмяВашегоФайла.php

person Ken Brill    schedule 16.08.2013