All’interno dei moduli possiamo includere codice javascript semplicemente riscrivendo le classi “VIEW”.
L’aggiunta di codice javascript può essere una soluzione comoda per avere ad esempio il controllo e validazione immediata dei valori inseriti nelle schermata di modifica, oppure potrebbe servire ad aggiungere chiamate ajax a servizi esterni e non, per estendere le funzionalità della nostra pagina.
Come abbiamo visto in un precedente articolo, le viste del CRM sono 3:
- detail – richiamata dal file view.detail.php
- edit – richiamata dal file view.edit.php
- list – richiamata dal file view.list.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
require_once('include/MVC/View/views/view.detail.php'); class <nome modulo>ViewDetail extends ViewDetail { function __construct(){ parent::__construct(); } function display(){ // logica parent::display(); } function preDisplay(){ // logica parent::display(); } } |
all’interno di queste classi abbiamo a disposizione due metodi da sovrascrivere per la preparazione dei dati da visualizzare a schermo,
- preDisplay, permette di lavorare l’informazione prima che venga inviata a schermo;
- display, permette di inviare il dato allo schermo
Sfruttando questi metodi, possiamo stampare direttamente i comandi javascript sulla pagina, oppure includere un file .js sul quale abbiamo inserito i nostri comandi.
Supponiamo quindi di voler aggiungere una elaborazione javascript su un campo della pagina di creazione preventivi. In questo caso dovremmo estender la classe AOS_QuotesViewEdit nella cartella custom del CRM ed aggiungere nel metodo preDisplay il codice che vogliamo far eseguire.
Creiamo il file
custom/modulesAOS_Quotes/view.edit.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); require_once('modules/AOS_Quotes/views/view.edit.php'); class CustomAOS_QuotesViewEdit extends AOS_QuotesViewEdit { function preDisplay(){ //INCLUDE FILE JAVASCRIPT $html = '<script src="custom/modules/AOS_Quotes/autoload.js"></script>'; //INCLUDE CODICE JAVASCRIPT DIRETTAMENTE NELLA PAGINA $html .= '<script language="javascript" type="text/javascript">'; $html .= ' /** codice javascript da eseguire **/ '; $html .= '</script> '; echo $html; parent::preDisplay(); } } ?> |
Nell’esempio di codice precedente, vediamo nello stesso metodo come poter includere un file javascript ed aggiungere anche del codice js direttamente in pagina.