Hallo an alle,
ich wollte gerne einen zusätzlichen Menüpunkt im Backend unter "Inhalte" erstellen. Dafür habe ich im contao/config Ordner die Konfigurationsdatei um folgende Zeile erweitert:
und eine Datei tl_code_id.php (so wie der Name der DB Tabelle) unter contao/dca angelegt mit folgendem Inhalt:PHP-Code:
$GLOBALS['BE_MOD']['content']['Codes'] = array('tables' => array('tl_code_id'));
Soweit so gut, der Menüpunkt wird mir im Backend angezeigt und beim Klick darauf, sehe ich alle bisherigen Einträge, die in der Datenbank sind.PHP-Code:
<?php
use Contao\CoreBundle\DataContainer\PaletteManipulator;
// Hinzufügen der Feld-Konfiguration
$GLOBALS['TL_DCA']['tl_code_id'] = [
'config' => [
'dataContainer' => 'Table',
'enableVersioning' => true,
'sql' => [
'keys' => [
'id' => 'primary',
],
],
],
'list' => [
'sorting' => [
'mode' => 1,
'fields' => ['code'],
'flag' => 1,
'panelLayout' => 'search,limit'
],
'label' => [
'fields' => ['code'],
'format' => '%s',
],
'operations' => [
'edit' => [
'href' => 'table=tl_code_id',
'icon' => 'edit.svg',
],
'editheader' => [
'href' => 'act=edit',
'icon' => 'header.svg',
],
'delete' => [
'href' => 'act=delete',
'icon' => 'delete.svg',
],
'show' => [
'href' => 'act=show',
'icon' => 'show.svg'
],
],
],
'fields' => [
'id' => [
'sql' => ['type' => 'integer', 'unsigned' => true, 'autoincrement' => true],
],
'tstamp' => [
'sql' => ['type' => 'integer', 'unsigned' => true],
],
'code' => [
'label' => array('Please insert the identification code:', 'Pattern: XX1111XX or XXX1111XXX'),
'search' => true,
'inputType' => 'text',
'eval' => [
'mandatory' => true,
'tl_class' => 'w50',
'minlength' => 8,
'maxlength' => 10,
'rgxp' => 'identification',
'save_callback' => array(array('codeClass', 'changeValue'))
],
'sql' => 'varchar(14) NOT NULL default ""'
],
],
'palettes' => [
'default' => '{Identification Code},code'
],
];
// Save Callback
class codeClass extends \Backend {
public function changeValue($value, DataContainer $dc) {
$value = " ";
return $value;
}
}
Nun zu meinen Fragen:
- Um einen neuen Eintrag im Backend vornehmen zu können, muss dieses weiße Pluszeichen mit grünen Hintergrund gedrückt werden. Im Newsletter Modul steht dort in der deutschen Version "Neuer Verteiler". Aktuell steht bei mir dort noch kein Text, da wohl die Übersetzung fehlt. Wie lautet denn die Übersetzung für die einzelnen Labels? Im Newsletter Modul war es etwas wie [TL_LANG?][Modulname][new][0], aber das hatte beim ersten Version in der Sprachdatei nicht funktioniert.
- Wenn ich bei meinem erstellten Modul auf Eintrag löschen gehe, wird dieser sofort gelöscht. In anderen Modulen wird jedoch zunächst ein Alert-Fenster ausgelöst, ob ich mir wirklich sicher bin. Wie ist denn dieses einzustellen? Über Javascript oder gibt es da etwas vorgefertigtes,was lediglich im DCA aktiviert werden muss?
- Ich würde gerne die Eingabe manipulieren, wenn im Backend ein neuer Eintrag vorgenommen wird. Dazu habe ich die save_callback Funktion verwendet, jedoch scheint es, als ob diese Funktion nicht aufgerufen wird. Bei einem anderen Projekt verwende ich das Prinzip 1:1, sofern ich mich nicht verschaut habe und dort klappt es aber.
Ich bin gespannt auf die Antworten und die Hilfe, danke im Voraus!
Lesezeichen