2016-12-13 1 views
0

J'ai travaillé sur un code personnalisé pour un module de sucre et je ne sais pas où placer mon code javascript dans le module.Où inclure Sugarcrm

Actuellement, j'ai mis mon habitude JS dans include/javascript/popup_parent_helper.js

Cela fonctionne bien en mode développeur, mais ne fonctionne pas quand cela est désactivé et, malheureusement, le mode dveloper court SUPER lent

I J'ai fait beaucoup de recherches et j'ai des résultats contradictoires.

Certains me disent que je devrais inclure dans:

  • /modules/[ModuleName]/

D'autres disent qu'il devrait à en:

  • /custom/modules/[NomModule/
    • et d'autres en ajoutant js comme un répertoire

S'il vous plaît aidez-moi clarifier une bonne structure pour cela et où je dois faire mon bon instruction INCLUDE

Clarifications:

Nous utilisons SugarCRM 6,5x

Dans ce cas, le JS est seulement utilisé pour un module.

Il est utilisé dans la rapide Créer une vue et la vue Edition

+0

Utilisez-vous du sucre 7.x? –

+0

Quel genre de chose fait ce javascript? Est-il isolé d'une vue particulière (enregistrement, liste, etc.)? –

+0

Clarifications concernant la version et les détails de l'utilisation JS ajouté – Jeff

Répondre

0

Si le javascript doit être accessible par un module, vous pouvez créer une nouvelle JSGrouping et tirez dans le dossier de votre commande en utilisant la technique suivante: Il semble que vous souhaitiez l'isoler de votre module personnalisé. Vous devriez donc probablement étendre la vue souhaitée. Si vous étendez la vue d'enregistrement, créez un nouveau fichier appelé à record.js personnalisée/modules/-your_module-/clients/base/vues/enregistrement/

({ 
extendsFrom: 'RecordView', 

initialize: function(options) { 
    this._super('initialize', [options]); 
    this.doSomething(); 
}, 

doSomething: function(){ 
    console.log("Help you I will"); 
}, 

... 

})

https://developer.sugarcrm.com/2014/02/10/extending-sugar-7-record-view/

+0

Cette méthode ne fonctionnera qu'avec Sugar 7.x, donc ne vous aidera pas OP. Cela peut aider quelqu'un d'autre, alors je vais le laisser ici. L'autre réponse s'adresse à Sugar 6. –

0

J'avais aussi fait face à la même question (JS devrait être le travail pour éditer et forme quickcreate), mais après avoir fait quelques RnD je parvins comme par manière suivante:

\custom\modules\<modulename>\views\view.edit.php 

<?php 
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); 

require_once('include/MVC/View/views/view.edit.php'); 

class {moduleName}ViewEdit extends ViewEdit { 

     public function __construct() { 
     parent::ViewEdit(); 
     $this->useForSubpanel = true; // this variable specifies that these changes should work for subpanel 
     ///$this->useModuleQuickCreateTemplate = true; // quick create template too 
    } 

    function display(){ ?> 
     <?php 

       $jsscript = <<<EOQ 
          <script> 
            Your JS code 
          </script> 
EOQ; 

     parent::display(); 
      echo $jsscript;  //echo the script 

    } 

} 
?>