Module und Templates auf Verwendung überprüfen
Hm... Was macht man, wenn man vor lauter Modulen und Templates die Übersicht verloren hat, welches Modul/Template überhaupt noch verwendet wird oder nicht?
Gibt es ein Tool, mit welchem man prüfen kann, ob ein Modul entweder in einem Artikel oder im Seitenlayout eingebunden ist und aktuell Verwendet wird? Analog wäre solch ein Tool auch toll, um zu prüfen ob ein Template in ein Modul eingebunden ist oder ob es ungenutzt auf dem Server liegt... Mein Bestreben ist, die Installation möglichst frei von Datenleichen zu halten - aber das ist schwieriger als gedacht...
Liste der Anhänge anzeigen (Anzahl: 1)
Hast du an sowas wie das AnhangsBild gedacht ?
Eine Liste aller aktivierten Erweiterungen. Pro Erweiterung wird angezeigt, in welchen Gruppen welche FrontendModule vorhanden sind.
Wurden FE Module konfiguriert, werden diese FE_MOD basiert alle angezeigt, incl. Link auf die Editiermoeglichkeit.
Ist ein altes Projekt von mir, aber das koennte man mit Sicherheit aufbohren, mit deinen / Euren Wuenschen.
Liste der Anhänge anzeigen (Anzahl: 1)
Module und Templates auf Verwendung überprüfen
Da ja im Titel "Module und Templates auf Verwendung überprüfen" steht, hänge ich mich da mal dran. ;)
Ich habe das gleiche Problem mit den Templates - daher habe ich ein Erweiterung geschrieben die alle Templates auf Verwendung überpüft (was ja eigentlich nicht wirklich geht...). Die Templates, die jedoch in der DB gefunden werden, werden mit deren Verwendung z.B. Modul/Layout xyz ausgegeben.
Ich würde mich freuen wenn jemand kurz Zeit hätte, sich das mal anzusehen und mir ein kurzes Feedback geben könnte. Ein großes Problem sind für mich die vielen Datenbankabfragen, die ich brauche um das Template eindeutig zuordnen zu können. Bei rund 100 Dateien im Templates-Ordner dauert das dann natürlich... :(
Die Module "Catalog" und "Content-Boxen" werden auch durchsucht (leider momentan nur zwei von vielen). Btw es wird auch nach {{file::*}} gesucht...
Ist meine erste Erweiterung und noch nicht ganz fertig --> Verbesserungen, Kritik usw. immer her damit :)
Liste der Anhänge anzeigen (Anzahl: 1)
Ich weiß, dieses Thema ist schon uralt, aber da ich keine Erweiterung gefunden habe und es im Core scheinbar auch nicht integriert ist (oder ich es nicht gefunden habe), habe ich mit Hilfe von Chat GPT ein einfaches PHP Script geschrieben, was mir die entsprechenden Tabellen ausliest, und ausspuckt welche Templates und welche Module in Benutzung sind, vielleicht kann es ja noch jemand gebrauchen, oder vielleicht hat sogar jemand Interesse meine Anregung zu verwenden und es als Erweiterung rauszubringen .. nützlich wäre es auf jeden Fall, oder?
Schön wäre ja so (rot = in Benutzung, grau = nicht in Benutzung):
Anhang 27030
Es ist auf keinen Fall komplett oder 100% funktionstüchtig (z.B. werden Module die im Theme geladen werden, nicht ausgegeben, mir reichte aber erstmal das was in tl_content zu finden ist, man darf den Code gerne ergänzen/verändern), aber für mich hat es gereicht.
Hier "mein" (Chat GPTs) Code ;)
PHP-Code:
<?php
// Datenbankverbindung herstellen (Anpassen mit Ihren eigenen Zugangsdaten)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
$conn = new mysqli($servername, $username, $password, $dbname);
// Überprüfen der Verbindung
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SQL-Abfrage, um alle Tabellen zu erhalten, die mit "tl_" beginnen
$sql = "SHOW TABLES LIKE 'tl_%'";
$result = $conn->query($sql);
// Array zum Speichern der eindeutigen Werte der Spalten
$uniqueTemplates = array();
// Durchlaufen der gefundenen Tabellen
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$tableName = reset($row); // Tabellenname extrahieren
$columnCheckQuery = "SHOW COLUMNS FROM $tableName";
$columnCheckResult = $conn->query($columnCheckQuery);
// Durchlaufen der Spalten
while ($column = $columnCheckResult->fetch_assoc()) {
$columnName = $column['Field'];
// Überprüfen, ob die Spalte mit "Tpl" endet
if (preg_match('/Tpl$/i', $columnName)) {
// SQL-Abfrage, um eindeutige Werte der aktuellen Spalte zu erhalten
$uniqueValuesQuery = "SELECT DISTINCT `$columnName` FROM `$tableName`";
$uniqueValuesResult = $conn->query($uniqueValuesQuery);
// Sammeln der eindeutigen Werte
while ($row = $uniqueValuesResult->fetch_assoc()) {
$uniqueTemplates[] = $row[$columnName];
}
}
}
}
}
// Ausgabe der gesammelten eindeutigen Werte
echo "Eindeutige Werte der Spalten, die mit 'Tpl' enden:<br>";
foreach (array_unique($uniqueTemplates) as $template) {
echo $template . "<br>";
}
// Zweite Abfrage
echo "<br>Module die in Verwendung sind:<br>";
// SQL-Abfrage für die zweite Abfrage
$sql = "SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbname' AND COLUMN_NAME = 'type' AND TABLE_NAME != 'tl_module'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$tableName = $row['TABLE_NAME'];
// Abfrage, wenn "type" gleich "modul" ist
$moduleTypeQuery = "SELECT module FROM $tableName WHERE type = 'module'";
$moduleTypeResult = $conn->query($moduleTypeQuery);
// Durchlaufen der Ergebnisse
while ($row = $moduleTypeResult->fetch_assoc()) {
$moduleId = $row['module'];
// SQL-Abfrage, um den Namen des Moduls zu erhalten
$moduleNameQuery = "SELECT name FROM tl_module WHERE id = '$moduleId'";
$moduleNameResult = $conn->query($moduleNameQuery);
$moduleRow = $moduleNameResult->fetch_assoc();
$moduleName = $moduleRow['name'];
echo "$moduleName<br>";
}
}
}
// Datenbankverbindung schließen
$conn->close();
?>
Falls es doch eine Alternative gibt, die ich nur nicht gefunden habe, wäre ich natürlich sehr dankbar, wenn man mir diese mitteilen würde!