function DrawContentList($filter) { global $connection, $module, $footer_json; $requires_content_filtering = hasContentPermissionLimit(); $user = $_SESSION["user"]; if ($requires_content_filtering) { $allowed_pages = calculateIdPagesAllowed(); $allowed_pages_SQL = implode("','", $allowed_pages); } echo "<div class='modal fade' id='content-new-modal' tabindex='-1' role='dialog' aria-labelledby='newcontent-modal-label' aria-hidden='true'>\n <div class='modal-dialog'><div class='modal-content'>\n <div class='modal-header'><h4 class='modal-title' id='newcontent-modal-label'>Nuovo contenuto</h4></div>\n <div class='modal-body'>Scegliere il tipo di contenuto da creare\n <br><select class='form-control' id='content-type'>"; $type_json = json_decode(file_get_contents("../core/modules.json")); foreach ($type_json->edit_modules as $module) { echo "<option value='{$module->type}'>{$module->name} [{$module->type}]</option>"; } echo "</select></div><div class='modal-footer'>\n <button type='button' class='btn btn-default' data-dismiss='modal'>Annulla</button>\n <button type='button' class='btn btn-success' id='newcontent-modal-confirm' data-dismiss='modal'>Crea contenuto</button>\n </div></div></div></div>"; echo "<div class='page-header'><h1>Gestione contenuti</h1></div>\n"; echo "<div class='btn-group'>\n <button type='button' class='btn btn-success' id='new-content'><i class='fa fa-plus'></i> Nuovo contenuto</button>\n </div>  "; echo "<i class='fa fa-filter fa-lg'></i>Contenitore:\n <div class='btn-group'>\n <select class='form-control' id='filter'>"; echo "<option value=''>-- Visualizza tutto --</option>"; if ($filter == "orphans") { echo "<option value='orphans' selected>-- Visualizza elementi orfani --</option>"; } else { echo "<option value='orphans'>-- Visualizza elementi orfani --</option>"; } if ($requires_content_filtering) { $request = "SELECT DISTINCT container FROM page_descriptors WHERE container!='home' AND id IN ('{$allowed_pages_SQL}') ORDER BY container ASC"; } else { if ($filter == "system") { echo "<option value='system' selected>-- Visualizza elementi sistema --</option>"; } else { echo "<option value='system'>-- Visualizza elementi sistema --</option>"; } $request = "SELECT DISTINCT container FROM page_descriptors WHERE container!='home' ORDER BY container ASC"; } $result = $connection->query($request); while ($line = $result->fetch_assoc()) { $line = $line["container"]; if (explode("::", $filter)[0] == $line) { echo "<option value='{$line}' selected>{$line}</option>"; } else { echo "<option value='{$line}'>{$line}</option>"; } } if (in_array($filter, ["", "orphans", "system"])) { $attribute = "disabled"; } else { $attribute = ""; } echo "</select></div>  <i class='fa fa-file'></i> Pagina: <div class='btn-group'><select class='form-control' id='pages' {$attribute}>\n <option value=''>-- Visualizza tutto --</option>"; if (!in_array($filter, ["", "orphans", "system"])) { if (strpos($filter, "::") !== false) { $container = explode("::", $filter)[0]; } else { $container = $filter; } if ($requires_content_filtering) { $request = "SELECT DISTINCT page FROM page_descriptors WHERE container='{$container}' AND id IN ('{$allowed_pages_SQL}') ORDER BY page ASC"; } else { $request = "SELECT DISTINCT page FROM page_descriptors WHERE container='{$container}' ORDER BY page ASC"; } $result = $connection->query($request); var_dump($request); while ($line = $result->fetch_assoc()) { $line = $line["page"]; if (explode("::", $filter)[1] == $line) { echo "<option value='{$line}' selected>{$line}</option>"; } else { echo "<option value='{$line}'>{$line}</option>"; } } } echo "</select></div>  "; echo "<div class='btn-group'>\n <button type='button' class='btn btn-default' id='apply-filter'><i class='fa fa-check'></i> Applica filtri</button>\n </div>"; echo "<br><br>"; if ($requires_content_filtering) { echo "<div class='alert alert-warning' role='alert'><i class='fa fa-warning'></i><b>Attenzione!</b> L'account <code>{$user}</code> dispone di permesssi limitati in questo modulo. Solo una parte dell'elenco delle pagine è accessibile e alcune funzionalità potrebbero essere disattivate</div>"; } echo "<div class='alert alert-info onpageload' role='alert'><i class='fa fa-refresh fa-spin'></i> Caricamento dell'elenco contenuti in corso</div>"; echo "<table class='table table-hover' id='content-list'>\n <thead><tr>\n <th>Contenuto</th>\n <th>Usato da</th>\n <th>Titolo</th>\n <th>id</th>\n </tr></thead>"; if ($filter != "" and !in_array($filter, ["", "orphans", "system"])) { //filtro è un contenitore o una coppia contenitore-pagina if (strpos($filter, "::") !== false) { $container = explode("::", $filter)[0]; if (explode("::", $filter)[1] != "") { $page = explode("::", $filter)[1]; } } else { $container = $filter; } if (isset($page)) { $array = fromUsagesStandard(returnIdsFormFilterString($container, $page)); } else { $array = fromUsagesStandard(returnIdsFormFilterString($container)); } $filter_string = implode("','", array_intersect(fromUsagesStandard($allowed_pages), $array)); $request = "SELECT * FROM generic_content WHERE id IN ('{$filter_string}') ORDER BY `element-type` ASC"; } elseif ($filter == "system") { $footer_structure = json_decode($footer_json); $array = []; foreach ($footer_structure->elements as $element) { array_push($array, $element->dbid); } $filter_string = implode("','", $array); $request = "SELECT * FROM generic_content WHERE id IN ('{$filter_string}') ORDER BY `element-type` ASC"; } else { if ($requires_content_filtering) { $cfilter_string = implode("','", fromUsagesStandard($allowed_pages)); $request = "SELECT * FROM generic_content WHERE id IN ('{$cfilter_string}') ORDER BY `element-type` ASC"; } else { $request = "SELECT * FROM generic_content ORDER BY `element-type` ASC"; } } $result = $connection->query($request); while ($line = $result->fetch_assoc()) { $id = $line["id"]; $type = $line["element-type"]; $title = $line["displayname"]; $small = GenerateDisplayString($type, $line["content"]); $usage_array = findUsagesStandard($id); if (empty($usage_array)) { echo "<tr><td data-id='{$id}' class='element-orphan'><span class='label label-warning'>{$type}</span> {$small}"; } else { echo "<tr><td data-id='{$id}' class='element-ok'><span class='label label-default'>{$type}</span> {$small}"; } echo "<a class='remove-content lmb pull-right tooltipped' data-toggle='tooltip' title='Elimina'><i class='fa fa-remove'></i></a>"; echo "<a href='index.php?module=content&arg={$id}' class='lmb pull-right tooltipped' data-toggle='tooltip' title='Modifica'><i class='fa fa-edit'></i></a>"; $usage = ""; $i = 0; foreach ($usage_array as $usage_element) { if ($i > 0) { $usage .= " <i class='fa fa-plus-square-o'></i> "; } if ($usage_element->element == "page") { $usage .= "<span class='label label-success'>{$usage_element->container} <i class='fa fa-ellipsis-v'></i> {$usage_element->page}</span>"; } elseif ($usage_element->element == "footer") { $usage .= "<span class='label label-info'><em>system</em> <i class='fa fa-ellipsis-v'></i> footer</span>"; } else { $usage .= "<span class='label label-default'>{$usage_element->type} <i class='fa fa-ellipsis-v'></i> {$usage_element->id}</span>"; $usage_childs = findUsagesStandard($usage_element->id); $k = 0; foreach ($usage_childs as $child) { if ($k > 0) { $usage .= " <i class='fa fa-plus-square'></i> "; } if ($child->element == "page") { $usage .= " <i class='fa fa-toggle-right'></i> <span class='label label-success'><em>{$child->container} <i class='fa fa-ellipsis-v'></i> {$child->page}</em></span>"; } else { $usage .= " <i class='fa fa-toggle-right'></i> <span class='label label-default'><em>{$child->type} <i class='fa fa-ellipsis-v'></i> {$child->id}</em></span> <i class='fa fa-toggle-right'></i> <i class='fa fa-question'></i>"; } $k += 1; } } $i += 1; } if ($usage == "") { $usage = "<span class='text-warning'>Elemento orfano (usato da nessuna pagina)</span>"; } echo "<td>{$usage}</td>"; echo "<td>{$title}</td>"; if (empty($usage_array)) { echo "<td><span class='text-warning'>{$id}</span></td></tr>"; } else { echo "<td>{$id}</td></tr>"; } } echo "</table>"; }
function DrawPagesList($filter) { global $connection, $module; $requires_content_filtering = hasContentPermissionLimit(); $user = $_SESSION["user"]; if ($requires_content_filtering) { $allowed_pages = calculateIdPagesAllowed(); $allowed_pages_SQL = implode("','", $allowed_pages); } echo "<div class='page-header'><h1>Gestione pagine</h1></div>\n"; include "modules/php/pages-modals.php"; echo "<div class='btn-group'>\n <button type='button' class='btn btn-success' id='new-page'><i class='fa fa-plus'></i> Nuova pagina</button>\n </div>  \n <i class='fa fa-filter fa-lg'></i>Contenitore:\n <div class='btn-group'>\n <select class='form-control' id='filter'>\n <option value=''>-- Visualizza tutto --</option>"; if ($requires_content_filtering) { $request = "SELECT DISTINCT container FROM page_descriptors WHERE container!='home' AND id IN ('{$allowed_pages_SQL}') ORDER BY container ASC"; } else { $request = "SELECT DISTINCT container FROM page_descriptors WHERE container!='home' ORDER BY container ASC"; } $result = $connection->query($request); while ($line = $result->fetch_assoc()) { $line = $line["container"]; if ($filter == $line) { echo "<option value='{$line}' selected>{$line}</option>"; } else { echo "<option value='{$line}'>{$line}</option>"; } } echo "</select></div><br><br>"; if ($requires_content_filtering) { echo "<div class='alert alert-warning' role='alert'><i class='fa fa-warning'></i><b>Attenzione!</b> L'account <code>{$user}</code> dispone di permesssi limitati in questo modulo. Solo una parte dell'elenco delle pagine è accessibile e alcune funzionalità potrebbero essere disattivate</div>"; } echo " <table class='table table-hover'>\n <thead><tr>\n <th>Pagina</th>\n <th>Titolo</th>\n <th>Tags</th>\n <th>Layout</th>\n <th>id</th>\n </tr></thead>"; if ($filter == "") { if ($requires_content_filtering) { $request = "SELECT * FROM page_descriptors WHERE (page!='home' AND container!='home') AND id IN ('{$allowed_pages_SQL}') ORDER BY container ASC"; } else { $request = "SELECT * FROM page_descriptors WHERE (page!='home' AND container!='home') ORDER BY container ASC"; } } else { if ($requires_content_filtering) { $request = "SELECT * FROM page_descriptors WHERE container='{$filter}' AND id IN ('{$allowed_pages_SQL}') ORDER BY id ASC"; } else { $request = "SELECT * FROM page_descriptors WHERE container='{$filter}' ORDER BY id ASC"; } } $result = $connection->query($request); while ($line = $result->fetch_assoc()) { $id = $line["id"]; $name = $line["page"]; $container = $line["container"]; echo "<tr><td data-id='{$id}'><span class='label label-default'>{$container}</span> {$name}"; echo "<a class='remove-page lmb pull-right tooltipped' data-toggle='tooltip' title='Elimina'><i class='fa fa-remove'></i></a>"; echo "<a href='index.php?module=pages&arg={$id}' class='lmb pull-right tooltipped' data-toggle='tooltip' title='Modifica'><i class='fa fa-edit'></i></a>"; if (isset($line["descriptor"]) && $line["descriptor"] != "") { $json_decoded = json_decode($line["descriptor"]); $title = $json_decoded->title; $layout = $json_decoded->layout; $tags = explode(",", $line["tags"]); echo "</td><td>{$title}</td>"; } elseif (isset($line["container_redirect"]) && $line["container_redirect"] != "") { $container_redirect = $line["container_redirect"]; echo " <i class='fa fa-exchange tooltipped' data-toggle='tooltip' title='Reindirizzamento del contenitore: <i>{$container_redirect}</i>'></i> <span class='label label-info'><i>{$container_redirect}</i></span></td>"; $request = "SELECT * FROM page_descriptors WHERE page='{$name}' AND container='{$container_redirect}'"; $result2 = $connection->query($request); $line2 = $result2->fetch_assoc(); $json_decoded = json_decode($line2["descriptor"]); $tags = array_unique(array_merge(explode(",", $line2["tags"]), explode(",", $line["tags"]))); $title = $json_decoded->title; $layout = $json_decoded->layout; echo "</td><td><i class='fa fa-exchange tooltipped' data-toggle='tooltip' title='Reindirizzamento del contenitore: <i>{$container_redirect}</i>'></i> <i>{$title}</i></td>"; } $tags_string = ""; foreach ($tags as $tag) { switch ($tag) { case "da-finire": $l_class = "warning"; break; case "da-rivedere": $l_class = "success"; break; case "rinviato": $l_class = "info"; break; default: $l_class = "default"; break; } $tag = str_replace("-", " ", $tag); $tags_string .= "<span class='label label-{$l_class}'>{$tag}</span> "; } echo "<td>{$tags_string}</td>"; echo "<td>{$layout}</td>"; echo "<td>{$id}</td></tr>"; } echo "</table>"; }