Die Bootstrap Admin Data Tables können mit ihrer Haupt-PHP-Klasse und ihrer TWIG-Vorlage, die im Admin-Ordner verfügbar ist, angepasst werden.
Organisation der Dateien zu den Tabellen der Verwaltungsdaten
Wenn Sie eine Datentabelle mit dem CRUD-Generator erstellen, werden mehrere Dateien erzeugt:
- /admin/class/crud/Tabelle.php
- Die wichtigste PHP-Klasse
- /admin/vorlagen/tabelle.html
- Die HTML TWIG-Vorlage
- /admin/crud-data/table-filter-data.json
- Die zum Filtern Ihrer Datensätze verwendeten Filter, falls vorhanden
- /admin/crud-data/table-select-data.json
- Konfiguration der Dropdowns auswählen (falls vorhanden)
wobei table die Tabelle ist, die Sie anpassen möchten.
Die beiden JSON-Dateien werden von der internen PHPCG-Engine verwendet, um Ihre Datenlistenfilter zu erstellen oder Daten auszuwählen.
Betrachten Sie sie als private CORE-Dateien und ändern Sie sie nicht.
Die Dateien, die uns hier interessieren, sind die PHP-Klasse und die TWIG HTML-Vorlage.
Die wichtigste PHP-Klasse
Die PHP-Hauptklasse führt die SQL-Abfrage an Ihre Datenbank durch und ruft die Datensätze aus Ihrer Tabelle ab.
Es ruft auch die Datensätze aus den relationalen Tabellen ab, wenn diese in Ihrer Datentabelle angezeigt werden sollen.
Felder und Werte werden als Attribute des Objekts in einer Schleife aufgezeichnet, die Ihre Datensätze durchläuft:
if (!empty($this->records_count)) {
while ($row = $db->fetch()) {
$this->pk[] = $row->$primary_key;
$this->my_field[]= $row->my_field;
// ...
}
}
Jede $row->
ist der Wert, der in der Datentabelle angezeigt werden soll.
Sie können jede beliebige Funktion anwenden, wenn Sie sie z.B. ändern möchten:
$this->my_field[]= strtolower($row->my_field); // to lowercase
if (!empty($row->my_field)) {
$this->my_field[]= 'Yes';
} else {
$this->my_field[]= 'No';
}
Die TWIG HTML-Vorlage
Die TWIG HTML-Vorlage holt sich die Werte aus der PHP-Hauptklasse und erstellt die HTML-Datentabelle.
Sie können jeden Vorlagenteil leicht bearbeiten, insbesondere die Elemente <th></th> und <td></td> der Tabelle.
Werte mit HTML-Code
Es kommt häufig vor, dass HTML-Inhalte gespeichert werden, die z.B. mit einem RTE (TinyMce) bearbeitet werden sollen.
Die TWIG-Vorlage zeigt standardmäßig HTML-Tags an, während Sie den HTML-Inhalt anzeigen möchten.
Dazu werden wir die TWIG-Vorlage ändern und den TWIG-Filter "raw" verwenden:
<td>{{ object.last_name[ loop.index0 ]|raw }}</td>
Beispiel für eine Anpassung mit Verlinkung zur öffentlichen Website
Aktivieren Sie im Generator die Schaltfläche URL öffnen, wenn Sie Ihre READ-Liste erstellen.
Dadurch wird jedem Datensatz Ihrer Liste im Verwaltungsbereich ein Link-Symbol hinzugefügt.
Der Link verweist auf das Stammverzeichnis der Domain. Wir möchten diesen Link so ändern, dass er zu den entsprechenden Seiten der einzelnen Aufnahmen auf der öffentlichen Website führt. So erreichen Sie dies.
Nehmen wir die Akteurstabelle als Beispiel. Nehmen wir an, dass jeder Datensatz eine Seite https://www.my-website.com/actor-x.php öffnen muss , wobei x der Index ist.
- Öffnen Sie admin/templates/actor.html in Ihrem Code-Editor.
- Suchen Sie den Link open url in der Vorlage, der wie folgt aussehen sollte:
<td> <a href="{{ constant('BASE_URL') }}" rel="noindex" data-delay="500" data-tooltip="{{ constant('OPEN_URL') }}" target="_blank"><span class="{{ constant('ICON_NEW_TAB') }} text-center"></span></a> </td>
- Dieser Link führt Sie vorerst auf die Startseite. Damit er auf die Seite des Schauspielers zeigt, müssen Sie die URL (href) ändern und den Index des aktuellen Datensatzes hinzufügen
:<td> <a href="{{ constant('BASE_URL') }}/actor-{{ object.pk[loop.index0] }}.php" rel="noindex" data-delay="500" data-tooltip="{{ constant('OPEN_URL') }}" target="_blank"><span class="{{ constant('ICON_NEW_TAB') }} text-center"></span></a> </td>
Hier verwenden wir den Primärschlüssel: {{ object.pk[loop.index0] }}
.
Er stammt aus dem Actor-Objekt in admin/class/crud/Actor.php, das an die TWIG-Vorlage übergeben wurde.
Wie können Sie Ihre Änderungen beibehalten, wenn Sie Ihre Datentabellen neu erstellen?
Wenn Sie Änderungen in den von PHPGC generierten Verwaltungsdateien vorgenommen haben und Ihre READ-Liste neu erstellen, werden diese Änderungen überschrieben.
Automatische Sicherung der Admin-Dateien
Um Datenverlust zu vermeiden:
Wenn Sie die Dateien des Admin-Panels generieren, werden die vorhandenen Dateien im Backup-Ordner des Generators gespeichert: /generator/backup-files/
Dateivergleichstool
Das Generator-Vergleichstool ermöglicht es Ihnen:
- die gespeicherten Versionen mit den neu erstellten Versionen vergleichen
- fügen Sie die beiden verfügbaren Versionen zusammen, indem Sie in den beiden linken/rechten Bereichen die Codeteile auswählen, die Sie behalten möchten.