Sviluppi SDK lato Portale
Sviluppi SDK lato Portale
Introduzione
Le seguenti specifiche indicano come eseguire implementazioni SDK lato portale con il fine di personalizzare l’aspetto e le funzionalità in maniera semplice e veloce.
Requisiti:
• VTE 18.12
Indice
1. Estendere Webservice SOAP
2. Modificare Webservice SOAP esistenti
3. Modificare/sovrascrivere Template Smarty
4. Modificare le Etichette del portale
5. Inserire Codice js per validare/modificare campi
6. Includere file PHP globali
7. Includere file CSS globali
Premessa: L’estensione dei webservice SOAP si rende possibile tramite metodi della classe “SOAPWSManager.php”.
I webservice di tipo SOAP utilizzati lato portale vengono ora salvati a database e possono essere aggiunti dinamicamente richiamando il seguente metodo e indicandone i parametri necessari:
addWebservice(ws_name, path, class, return_type, parameters)
Es.
$SWSMan = SOAPWSManager::getInstance();
$SWSMan->addWebservice (
‘get_field_structure’,
‘modules/SDK/src/your_folder/your_file.php’,
‘file_class’,
‘return_parameters_type’,
array (
array (‘name’ => ‘module’, ‘type’ => ‘xsd:string’),
array (‘name’ => ‘id’, ‘type’ => ‘xsd:string’),
array (‘name’ => ‘language’, ‘type’ => ‘xsd:string’),
)
);
Rimuovere webservice SOAP
Allo stesso modo, è possibile rimuovere un webservice già esistente richiamando il seguente metodo:
removeWebservice(ws_name)
Es.
$SWSMan = SOAPWSManager::getInstance();
$SWSMan->removeWebservice(‘get_field_structure’);
2. Modificare Webservice SOAP esistenti
Per modificare i webservice SOAP standard di VTE è possibile estendere la relativa classe “SOAPWebservices” contenuta in “VTE_URL/soap/SOAPWebservices.php” e modificare i metodi esistenti come descritto di seguito:
SDK::setClass(‘ws_class’, ‘new_ws_class’, ‘path’)
Es.
SDK::setClass('SOAPWebservices', 'NewSOAPWS’, 'modules/SDK/src/your_folder/your_file_SOAPWS.php')
Ad esempio, per modificare il webservice create_ticket, si può procedere come segue:
class NewSOAPWS extends SOAPWebservices {
function create_ticket($input_array) {
// prepend "PORTAL:" to the ticket title
$input_array['title'] = 'PORTAL: '.$input_array['title'];
return parent::create_ticket($input_array);
}
}
3. Modificare/sovrascrivere Template Smarty
Per modificare/sovrascrivere i template smarty lato portale basta personalizzare l’array
“sdk_config” contenuto in:
“portal/SDK/config.php”.
All’interno si definiscono i nomi dei nuovi template/fogli di stile. In questo modo, non saranno più richiamati i vecchi template standard ma i nuovi creati appositamente.
Indicare quindi queste informazioni come descritto di seguito:
$sdk_config = array (
'templates' => array(
// ‘old_template’ => ‘new_template’,
'login.tpl' => 'customer-login.tpl',
),
);
4. Modificare le Etichette del portale
Per modificare le etichette (labels) lato portale basta personalizzare l’array “sdk_config”
contenuto in:
“portal/SDK/config.php”.
All’interno si definiscono i percorsi dei file, contenenti le varie labels (label originale e traduzione relativa) in base alle lingue installate nel crm.
N.B. Le lingue SDK vengono caricate successivamente le lingue standard, pertanto è possibile sovrascrivere le labels relative quest’ultime.
Indicare quindi queste informazioni come descritto di seguito:
$sdk_config = array(
'languages' => array(
// add new labels or change existing ones
'it_it' => array(
'languages/customer-name.it_it.php',
// other files...
),
'en_us' => array(
'languages/customer-name.en_us.php',
// other files...
),
// other languages...
),
);
5.Inserire Codice js per validare/modificare campi
Per inserire del codice js lato portale dedicato alla validazione di alcuni campi (es. validazione Codice Fiscale, codice IBAN, …) o modifica degli stessi (es. prima lettera maiuscola, controllo caratteri speciali, …) basta personalizzare l’array “sdk_config” contenuto in:
“portal/SDK/config.php”.
All’interno si definiscono i percorsi dei file da includere, contenenti le funzioni necessarie per eseguire tali controlli.
Indicare quindi queste informazioni come descritto di seguito:
$sdk_config = array(
'global_js' => array(
// js to be loaded globally
'js/my-library.js',
'js/customer-name.js',
),
'module_js' => array(
// js to be loaded for specific module
'HelpDesk' => array(
'js/tickets.js',
),
// other modules...
),
);
Per poter utilizzare classi/metodi appropriatamente sviluppati è possibile includere dei file php globali personalizzando l’array “sdk_config” contenuto in:
“portal/SDK/config.php”.
All’interno si definiscono i file da includere, contenenti i metodi necessari.
Indicare quindi queste informazioni come descritto di seguito:
$sdk_config = array(
'global_php' => array(
// php files to be loaded in every page (should contain classes/functions)
'customer-name.php',
'MyUtilsFile.php',
),
);
Per poter utilizzare dei CSS personalizzati è possibile includere dei file css globali personalizzando l’array “sdk_config” contenuto in:
“portal/SDK/config.php”.
All’interno si definiscono i percorsi dei file da includere, contenenti gli stili definiti.
N.B. Questi file css globali, essendo caricati successivamente quelli standard, possono sovrascrivere i css relativi quest’ultimi.
Indicare quindi queste informazioni come descritto di seguito:
$sdk_config = array (
'global_css' => array(
// css to be loaded globally
'css/customer-name.css',
),
);