Logo

Listbox Auswahl als neues Custom Field bauen für Bludit CMS


Bauen Sie eine Listbox, Auswahlliste bzw Combobox als Bludit Custom field und erweitern die Funktionen der hilfreichen Benutzerfelder für Beiträge und Posts.

Anker Power Expander

Anker Power Expander - DAS ANKER PLUS Schließe dich den über 50 Millionen glücklichen Kunden an. DUALE LEISTUNG Jeweils ein SD und ein microSD Speicherkartensteckplatz machen die Datenübertragung und -verwaltung zum Kinderspiel. BLITZSCHNELLER DATENTRANSFER Genieße dank dem hochmodernen UHS-II Speicherkartensteckplatz eine Datenübertragung mit einer Geschwindigkeit von bis zu 312 MBps. Hinweis

kaufen...
Automad Bludit Coast GetSimple GRAV Handlebars Java PHP Pico Smarty Templating Typemill WonderCMS WordPress yamlCMS

Ein neues Custom field bauen

Bludits Custom fields sind gold wert, denn Sie können die Beitragsdatenbank und jeden einzelnen Post um weitere Felder erweitern. Aktuell (3.13.1) sind die Felder:

möglich. Es fehlt lediglich noch das Feld Listbox bzw. Combobox. Die grundlegende Definition finden Sie bereits sehr gut Dokumentiert auf der Bludit Projektseite Bludit-Doku.

'JSON' Definition

Legen Sie die Auswahlliste in den Einstellungen des Backends unter Allgemein -> Benutzerdefinierte Felder im typischen JSON Format an.

{
    "sparte": {
        "type": "select",
        "label": "Sparte",
        "options": {
            "AU": "Aussendienst",
            "IK": "Inkasso",
            "PD": "Partner",
            "RS": "Rechtschutz",
            "SH": "Schaden",
            "UN": "Unfall"
        },
        "tip": "Sparte oder OE"
    }
}

In Beispiel oben gibt es ein neues Datenbankfeld im Beitrag, das sparte heißt und als Auswahl in den Beitragseigenschaften zur Verfügung stehen soll. Die Combobox soll die Auswahlen Aussendienst, Inkasso,... Unfall anzeigen, jedoch das entsprechende Kürzel AU,...UN in den Datensatz speichern. Als Kennzeichen oder Typ habe ich mir select überlegt, der das Feld als Liste identifiziert.

bl-kernel/admin/views/edit-content.php

Damit die neue Auswahlliste auch als solche gerendert werden kann, ist eine wirklich sehr einfache Anpassung in o.g. Datei nötig.

...
314    } elseif (($options['type']=="select")) {
315        echo Bootstrap::formSelectBlock(array(
316            'name'=>'custom['.$field.']',
317            'label'=>(isset($options['label'])?$options['label']:''),
318            'selected'=>$page->custom($field),
319            'class'=>'',
320            'emptyOption'=>'- '.$L->g('Uncategorized').' -',
321            'options'=>$options['options']
322            ));
323    }
...

Etwa in Zeile 314 endet die bisherige Definition der Custom fields und Sie müssen den gesamten IF mit diesem ELSEIF erweitern.

Bludit Custom field Liste Combobox Select AuswahlBludit Custom field Liste Combobox Select Auswahl

Zeile 314 fragt den vergebenen Namen, hier select ab und startet das Rendering des neuen Custom fields. Zeile 316 übernimmt den Namen aus der JSON Definition und label das Textlabel des Feldes, sofern eines existiert. Zeile 318 liest den aktuellen Inhalt des Feldes aus dem Beitrag und zeigt ihn als Startwert an. Mit Zeile 319 können Sie noch eine CSS-Klasse vorgeben, wird aber meistens nicht benötigt. In 320 wird der Default-String - Nicht kategorisiert - angezeigt bzw. dessen Übersetzung aus der de_DE.json.

Fügen Sie diesen Code einFügen Sie diesen Code ein, links neu, rechts alt

Die Magie passiert dann in Zeile 321, denn dort wird das ARRAY übergeben, das Sie mit options in den Admin-Einstellungen eingetragen haben - ebenfalls eine JSON Vorgabe.

Die Anpassung ist nicht sehr schwierig und Sie können durchaus noch weitere Felder bauen. Wenn Sie ungeübt sind, sollten Sie genau auf die öffnenden und schließenden Klammern achten, das scheint die einzige Stelle zu sein an der Sie eventuell einen Fehler machen können.

Passend:


Custom CSS eigene Styles der Seite im Bludit CMS festlegen

Sie können das Standard CSS des Bludit Theme mit eigenen Definitionen überschreiben. Dazu sollten Sie das Plugin HTML-Code aktivieren und Styles eintragen.

Custom Fields und Benutzerfelder in Bludit CMS anlegen

Mit den so genannten Custom Fields können neue Attribute der Content Datenbank in jedem Beitrag hinzufügen und auslesen wenn Sie einen neuen Post schreiben

Mehrdimensionale Arrays einfach auflösen und lesen

Das Auflösen mehrdimensionaler Arrays ist in PHP sehr sperrig, daher in diesem Beitrag ein einfaches diskretes Design-Pattern, für die Auflösung von Arrays

Markdown Bildliste im Text anlegen und Bilder referenzieren

Dieser Beitrag zeigt Ihnen, wie Sie einen Bildindex in Markdown anlegen und im Texte auf diese Bilder leicht referenzieren können. Dies ist eine Erleichterung.


Meta: Instagram CMSWorkbench.de GIMP-Handbuch.de Kontakt Impressum Datenschutz