2017-08-04 16:28:16 +02:00
< ? php
include_once __DIR__ . '/../core.php' ;
2018-07-18 16:12:25 +02:00
// Lettura parametri iniziali
2017-08-04 16:28:16 +02:00
if ( ! empty ( $id_plugin )) {
2018-02-14 11:10:03 +01:00
$element = Plugins :: get ( $id_plugin );
2017-08-04 16:28:16 +02:00
2018-07-18 16:12:25 +02:00
$directory = '/plugins/' . $element [ 'directory' ];
} else {
$element = Modules :: get ( $id_module );
$directory = '/modules/' . $element [ 'directory' ];
}
if ( ! empty ( $id_plugin )) {
2018-06-26 14:26:40 +02:00
// Inclusione di eventuale plugin personalizzato
2018-02-14 11:10:03 +01:00
if ( ! empty ( $element [ 'script' ])) {
2018-08-11 15:37:38 +02:00
include $element -> getEditFile ();
2017-08-04 16:28:16 +02:00
return ;
}
echo '
< h4 >
2018-05-03 12:53:30 +02:00
< span class = " '.(!empty( $element['help'] ) ? ' tip' : '').' " '.(!empty($element[' help ']) ? ' title = " '.prepareToField( $element['help'] ).' " data - position = " bottom " ' : ' ').' >
'.$element[' title '].(!empty($element[' help ']) ? ' < i class = " fa fa-question-circle-o " ></ i > ' : ' ').' </ span > ' ;
2017-08-04 16:28:16 +02:00
2018-08-11 15:37:38 +02:00
if ( $element -> hasAddFile ()) {
2017-08-04 16:28:16 +02:00
echo '
2017-09-04 12:02:29 +02:00
< button type = " button " class = " btn btn-primary " data - toggle = " modal " data - title = " '.tr('Aggiungi').'... " data - target = " #bs-popup " data - href = " add.php?id_module='. $id_module .'&id_plugin='. $id_plugin .'&id_parent='. $id_record .' " >< i class = " fa fa-plus " ></ i ></ button > ' ;
2017-08-04 16:28:16 +02:00
}
echo '
</ h4 > ' ;
}
2018-07-18 16:12:25 +02:00
$type = $element [ 'option' ];
2017-08-04 16:28:16 +02:00
2018-07-19 12:47:28 +02:00
// Caricamento funzioni del modulo
$modutil = App :: filepath ( $directory . '|custom|' , 'modutil.php' );
if ( ! empty ( $modutil )) {
include_once $modutil ;
}
2018-07-09 12:57:55 +02:00
// Lettura risultato query del modulo
2018-07-09 15:01:11 +02:00
// include App::filepath($directory.'|custom|', 'init.php');
2018-07-09 12:57:55 +02:00
2017-08-04 16:28:16 +02:00
// Caricamento file aggiuntivo su elenco record
2018-07-19 12:47:28 +02:00
$controller_before = App :: filepath ( $directory . '|custom|' , 'controller_before.php' );
if ( ! empty ( $controller_before )) {
include $controller_before ;
}
2017-08-04 16:28:16 +02:00
2018-07-09 14:40:16 +02:00
/*
* Datatables con record
*/
2018-07-18 16:12:25 +02:00
if ( ! empty ( $type ) && $type != 'menu' && $type != 'custom' ) {
2018-07-19 09:58:28 +02:00
$total = App :: readQuery ( $element );
2018-07-18 16:12:25 +02:00
if ( empty ( $id_plugin ) && count ( Modules :: getSegments ( $id_module )) > 1 ) {
2018-07-09 14:40:16 +02:00
echo '
2018-03-27 15:11:31 +02:00
< div class = " row " >
< div class = " col-md-4 pull-right " >
2018-07-19 09:58:28 +02:00
{[ " type " : " select " , " name " : " id_segment_ " , " required " : 0 , " values " : " query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module = '.prepare( $id_module ).' " , " value " : " '. $_SESSION['module_'.$id_module] ['id_segment'].' " ]}
2018-03-27 15:11:31 +02:00
</ div >
</ div >
2018-07-09 14:40:16 +02:00
< br > ' ;
2018-03-27 15:11:31 +02:00
2018-07-09 14:40:16 +02:00
echo '
2018-03-27 15:11:31 +02:00
< script >
$ ( document ) . ready ( function () {
$ ( " #id_segment_ " ) . on ( " change " , function (){
2018-07-09 14:40:16 +02:00
if ( $ ( this ) . val () < 1 ){
session_set ( " m'. $id_module .',id_segment " , " " , 1 , 1 );
} else {
session_set ( " m'. $id_module .',id_segment " , $ ( this ) . val (), 0 , 1 );
2018-03-27 15:11:31 +02:00
}
});
});
2018-07-09 14:40:16 +02:00
</ script > ' ;
}
2018-03-27 15:11:31 +02:00
2017-08-04 16:28:16 +02:00
$table_id = 'main_' . rand ( 0 , 99 );
echo '
< table data - idmodule = " '. $id_module .' " data - idplugin = " '. $id_plugin .' " data - idparent = " '. $id_record .' " id = " '. $table_id .' " width = " 100% " class = " main-records table table-condensed table-bordered " >
< thead >
< tr >
< th id = " th_selector " ></ th > ' ;
foreach ( $total [ 'fields' ] as $key => $field ) {
$attr_td = '' ;
$name = trim ( $field );
// Check per tipologie di campi particolari
if ( preg_match ( '/^color_/' , $field )) {
$attr_td .= " width='140' " ;
$field = str_replace ( 'color_' , '' , $field );
}
// Data (larghezza fissa)
elseif ( preg_match ( '/^Data/' , $field )) {
$attr_td .= " width='100' " ;
}
// Icona di stampa
elseif ( trim ( $field ) == '_print_' ) {
$attr_td .= " width='30' " ;
$field = str_replace ( '_print_' , '' , $field );
} elseif ( preg_match ( '/^icon_/' , $field )) {
$attr_td .= " width='30' " ;
$name = str_replace ( 'icon_' , 'icon_title_' , $name );
$field = str_replace ( 'icon_' , '' , $field );
}
echo '
< th '.$attr_td.' id = " th_'.str_replace([' ', '.'], ['-', ''], $name ).' " ' ;
if ( $total [ 'search' ][ $key ] == 1 ) {
echo ' class="search"' ;
} else {
echo ' class="no-search"' ;
}
if ( $total [ 'slow' ][ $key ] == 1 ) {
echo ' data-slow="1"' ;
}
echo '>' . $field . '</th>' ;
}
echo '
</ tr >
</ thead >
< tbody >
</ tbody >
< tfoot >
< tr > ' ;
2018-04-20 15:50:57 +02:00
echo '
< td ></ td > ' ;
2017-08-04 16:28:16 +02:00
foreach ( $total [ 'fields' ] as $key => $field ) {
echo '
< td ></ td > ' ;
}
echo '
</ tr >
</ tfoot >
</ table > ' ;
2017-09-06 10:48:59 +02:00
echo '
2017-08-04 16:28:16 +02:00
< div class = " row " data - target = " '. $table_id .' " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-5 " >
2017-08-04 16:28:16 +02:00
< div class = " btn-group " role = " group " >
2017-09-04 12:02:29 +02:00
< button type = " button " class = " btn btn-primary btn-select-all " > '.tr(' Seleziona tutto ').' </ button >
< button type = " button " class = " btn btn-default btn-select-none " > '.tr(' Deseleziona tutto ').' </ button >
2017-08-04 16:28:16 +02:00
</ div >
</ div >
2018-02-20 16:46:23 +01:00
< div class = " col-md-2 dropdown " > ' ;
2017-08-04 16:28:16 +02:00
if ( ! empty ( $bulk )) {
echo '
2017-09-04 12:02:29 +02:00
< button class = " btn btn-primary btn-block dropdown-toggle bulk-container disabled " type = " button " data - toggle = " dropdown " disabled > '.tr(' Azioni di gruppo ').' < span class = " caret " ></ span ></ button >
2017-08-04 16:28:16 +02:00
< ul class = " dropdown-menu " data - target = " '. $table_id .' " role = " menu " > ' ;
foreach ( $bulk as $key => $value ) {
2017-09-06 11:59:47 +02:00
$text = is_array ( $value ) ? $value [ 'text' ] : $value ;
$data = is_array ( $value ) ? $value [ 'data' ] : [];
$extra = [];
foreach ( $data as $k => $v ) {
2018-07-23 13:47:09 +02:00
$extra [] = 'data-' . $k . '="' . prepareToField ( \HTMLBuilder\HTMLBuilder :: replace ( $v )) . '"' ;
2017-09-06 11:59:47 +02:00
}
2017-08-04 16:28:16 +02:00
echo '
2018-07-23 11:09:50 +02:00
< li role = " presentation " >< a class = " bulk-action clickable " data - op = " '.prepareToField( $key ).' " data - backto = " record-list " '.implode(' ', $extra).' > '.$text.' </ a ></ li > ' ;
2017-08-04 16:28:16 +02:00
}
echo '
</ ul > ' ;
}
2017-09-06 11:59:47 +02:00
echo '
2017-08-04 16:28:16 +02:00
</ div >
2018-02-20 16:46:23 +01:00
< div class = " col-md-5 text-right " >
2018-07-02 16:56:00 +02:00
< div class = " btn-group " role = " group " > ' ;
2018-07-09 10:44:54 +02:00
if ( setting ( 'Abilita esportazione Excel e PDF' )) {
2018-07-02 16:56:00 +02:00
echo '
< div class = " btn-group " >
< button type = " button " class = " btn btn-primary table-btn btn-csv disabled " disabled > '.tr(' Esporta ').' </ button >
< button type = " button " class = " btn btn-primary table-btn disabled dropdown-toggle " data - toggle = " dropdown " aria - haspopup = " true " aria - expanded = " false " >
< span class = " caret " ></ span >
< span class = " sr-only " > Toggle Dropdown </ span >
</ button >
< ul class = " dropdown-menu " >
< li >< a class = " table-btn btn-pdf disabled " disabled > '.tr(' PDF ').' </ a ></ li >
< li >< a class = " table-btn btn-excel disabled " disabled > '.tr(' Excel ').' </ a ></ li >
</ ul >
</ div > ' ;
} else {
echo '
< button type = " button " class = " btn btn-primary table-btn btn-csv disabled " disabled > '.tr(' Esporta ').' </ button > ' ;
}
echo '
< button type = " button " class = " btn btn-default table-btn btn-copy disabled " disabled > '.tr(' Copia ').' </ button >
< button type = " button " class = " btn btn-default table-btn btn-print disabled " disabled > '.tr(' Stampa ').' </ button >
2017-08-04 16:28:16 +02:00
</ div >
</ div >
</ div > ' ;
}
/*
* Inclusione modulo personalizzato
*/
2018-07-18 16:12:25 +02:00
elseif ( $type == 'custom' ) {
2018-08-11 15:37:38 +02:00
include $element -> getEditFile ();
2017-08-04 16:28:16 +02:00
}
// Caricamento file aggiuntivo su elenco record
2018-07-19 12:47:28 +02:00
$controller_after = App :: filepath ( $directory . '|custom|' , 'controller_after.php' );
if ( ! empty ( $controller_after )) {
include $controller_after ;
}