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):
inverwendung.jpg
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!
Lesezeichen