. */ include_once __DIR__.'/../../core.php'; echo ' '; $moduli = Modules::getHierarchy(); echo renderElencoModuli($moduli); echo '
'.tr('Nome').' '.tr('Versione').' '.tr('Stato').' #
'; function renderElencoModuli($elenco, $depth = 0) { $versione_gestionale = Update::getVersion(); $moduli_sempre_attivi = ['Utenti e permessi', 'Stato dei servizi']; $result = ''; foreach ($elenco as $record) { $record_bloccato = in_array($record['name'], $moduli_sempre_attivi); $is_plugin = !empty($record['idmodule_to']); $nome_tipo = string_lowercase($is_plugin ? tr('Plugin') : tr('Modulo')); // Render per sotto-moduli $sotto_moduli = renderElencoModuli($record['all_children'], $depth + 1); $elenco_plugin = null; if (empty($record['idmodule_to'])) { $plugins = database()->table('zz_plugins') ->selectRaw('zz_plugins.*, zz_plugins_lang.title as title') ->join('zz_plugins_lang', function ($join) { $join->on('zz_plugins.id', '=', 'zz_plugins_lang.id_record') ->where('zz_plugins_lang.id_lang', '=', Models\Locale::getDefault()->id); }) ->where('idmodule_to', '=', $record['id']) ->get()->map(fn ($i) => (array) $i)->toArray(); $elenco_plugin = renderElencoModuli($plugins, $depth + 1); } // COMPATIBILITA' // Controllo per ogni versione se la regexp combacia per dire che è compatibile o meno $compatibile = false; $versioni_compatibili = explode(',', (string) $record['compatibility']); foreach ($versioni_compatibili as $versione) { $compatibile = (preg_match('/'.$versione.'/', $versione_gestionale)) ? true : $compatibile; } if ($compatibile) { $class = ($record['enabled']) ? 'success' : 'warning'; } else { $class = 'danger'; } $result .= ' '.str_repeat(' ', $depth * 4).'- '.$record['title'].' '.($compatibile ? '' : '
' ).' '.($is_plugin ? ''.tr('Plugin').'' : '').' '.$record['version'].' '; // Possibilità di disabilitare o abilitare il moduli/plugin if (!$record_bloccato) { if ($record['enabled']) { $result .= '
'; // Possibilità di abilitare tutti i sottomoduli $sotto_moduli_disabilitato = str_contains((string) $sotto_moduli, 'fa fa-plug'); if ($sotto_moduli_disabilitato) { $result .= '
'; } } else { $result .= '
'; } } else { $result .= '
'; } $result .= ' '; // Possibilità di disinstallare solo se il modulo/plugin non è tra quelli predefiniti if (empty($record['default'])) { $result .= '
'; } else { $result .= '
'; } $result .= ' '; $result .= $elenco_plugin; $result .= $sotto_moduli; } return $result; }