Feature-Request: Template-Optionen

Gesperrt
digitalbricks
Beiträge: 3
Registriert: So 11. Aug 2013, 13:25

Feature-Request: Template-Optionen

Beitrag von digitalbricks »

Hallo geschätzte BlackCat-Entwickler und Community,

wer schon mal z.B. mit Wordpress bzw. Wordpress-Themes gearbeitet hat, kennt sicher die Möglichkeit, das Theme via Backend anzupassen: Ein anderes Farbschema, Social-Media-Icons aktiveren, Social-Media-Profil-URLs eingeben, ein Hintergrund- oder Header-Bild festlegen etc. Was haltet ihr von dem Vorschlag, Derartiges auch in BlackCat CMS zu ermöglichen? Ich finde das wäre eine prima Sache und ein weiteres Alleinstellungsmerkmal gegenüber WebsiteBaker und LEPTON. Klar, das ist kein Feature dass man mal eben über Nacht einbaut und ist sicher nichts für die 1.x-Version aber vielleicht für später.

Ich habe mir auch schon mal (sehr grob) Gedanken gemacht, wie man diese Funktionalität einheitlich in das vorhanden Template-System integrieren könnte – hier meine Gedanken am Beispiel eines Google+ Icons:

1. In der info.php, die sowieso jedes Template enthält, werden die gewünschten Optionen angelegt:

Code: Alles auswählen

$tpl_option[1] = array(
			       'name' => "Google+ Icon",
				'description' => "Should the icon be displayed?",
				'typ' => "radio", 
                  	        'options' => "Yes|No",
                  	        'default' => "No"
                                );
                  	
$tpl_option[2] = array(
				'name' => "Google+ Profile",
				'description' => "Enter the URL of your profile page starting with http://",
				'typ' => "text", 
                  	        'default' => ""
                                );
2. Im Backend des CMS unter "Optionen" werden diese Template-Optionen geparst und entsprechende Eingabefelder (im Beispiel ein input vom Typ "radio" und eines vom Typ "text") dargestellt. Der Admin der Site kann dort die entsprechenden Einstellungen vornehmen, die dann in die DB geschrieben werden und anschließend im Template (index.php) zur Verfügung stehen.

3. Der Template-Entwickler kann dann im Template-Code auf die entsprechenden Optionen zugreifen – im Beispiel z.B. prüfen ob das Google+ Icon angezeigt werden soll und ggf. die URL dazu abfragen. Hier mal Pseudo-Code in PHP (der dann sicher in Dwoo integriert werden müsste):

Code: Alles auswählen

if($get_option[1]['value'] == "Yes"){
    echo "<a href="get_option[2]['value']">Google+</a>"
}  
Damit ließen sich dann allerhand interessante Dinge anstellen, die auch weniger verserten Nutzern die Anpassung des Templates ermöglichen.

Was meint ihr?
Benutzeravatar
shadowcat
Administrator
Beiträge: 5329
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Feature-Request: Template-Optionen

Beitrag von shadowcat »

Wir werden das intern besprechen.

Was ja schon geht, sind "Varianten". Nehmen wir z. B. unsere HP, basierend auf Mojito: Wir haben eine andere Darstellung auf der Einstiegsseite als auf den anderen Seiten. Mittels Varianten ist es nun problemlos möglich, innerhalb eines Templates verschiedene Seitenlayouts anzubieten.

Das Gleiche geht auch im Backend. Wer die Farbgebung des FreshCat Themes nicht mag, nimmt die Variante "custom" und packt da seine Anpassungen rein.

Auf diese Weise KÖNNTE man die vorgeschlagenen Optionen schon umsetzen. Ich gebe aber zu, dass das eher umständlich wäre, zumal, wenn man mehrere Optionen kombinieren möchte.

Ich finde die Idee ganz gut, ich muß mir nur Gedanken darüber machen, wo und wie man das am besten umsetzt.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5329
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Feature-Request: Template-Optionen

Beitrag von shadowcat »

My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5329
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Feature-Request: Template-Optionen

Beitrag von shadowcat »

Es ist ja geplant, das Backend auf einen FormBuilder (genauer gesagt, wbForms aus der wblib2) umzustellen. Damit wären Template-Optionen (oder auch Erweiterungsfelder bei Benutzeroptionen etc.) leicht umzusetzen. Allerdings gibt es noch keinen Plan, in welcher Version diese Umstellung stattfindet. Tendenziell v2.x, aber ohne Garantie.

Die Konfiguration erfolgt bei wbForms über ein mehrdimensionales Array. Hier ein Beispiel aus blackForms:

Code: Alles auswählen

// more here...
        array(
            'type'     => 'text',
            'name'     => 'mail_from',
            'label'    => 'Mail from address',
            'allow'    => 'email',
            'required' => true,
            'title'    => 'Please note: The recipient will see this mail address in his mail client!',
            'invalid'  => 'Invalid eMail address, please check your data',
        ),
// more here...
Dies definiert ein einzeiliges Eingabefeld namens 'mail_form' mit der Beschriftung 'Mail from address', die über die Sprachdatei in andere Sprachen übersetzt werden kann. Erlaubt ist ein Wert vom Typ 'email' (wird automatisch syntaktisch geprüft), das Feld ist ein Pflichtfeld. Mit 'title' erzeuge ich einen Hilfetext, der beim Anklicken eines automatisch hinzugefügten Icons angezeigt wird (jQuery UI Tooltip), und 'invalid' ist der Hinweis, der erscheint, wenn ein falscher Wert eingegeben wurde.

Jetzt noch eine passende Tabellenstruktur dahinter, (fast) fertig! Natürlich muß das Template diese Einstellungen dann selber (index.php oder headers.inc.php) auswerten und entsprechend agieren, das kann der Core nicht übernehmen.

Ohne Änderung des Core ginge das übrigens mit Hilfe eines Admin-Tools.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5329
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Feature-Request: Template-Optionen

Beitrag von shadowcat »

Zur Info: Das Thema Template-Optionen wird zusammen mit dem Thema SEO in Version 1.2 angegangen. Vorschläge und Ideen sollten also ab jetzt hier gepostet und diskutiert werden.

Version 1.2 wird voraussichtlich im Q1 2015 erscheinen.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5329
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Feature-Request: Template-Optionen

Beitrag von shadowcat »

In BC2 wird man die Social Media Links zentral verwalten können. Hier mal ein allererster Screenshot:

2018-10-04 18_47_47-.png
2018-10-04 18_47_47-.png (58.19 KiB) 7058 mal betrachtet
Ich bin mir noch unschlüssig, ob das ein Admin Tool wird, im Moment läuft das über die globalen Einstellungen. Im Prinzip braucht man folgende Funktionen:
  • Eine Möglichkeit, die verfügbaren Dienste global für alle Sites zu konfigurieren. (Das wäre IMHO unter Backend -> Administration -> Einstellungen -> Frontend zu platzieren)
  • Für die Site: Aktivieren der jeweiligen Links und die Möglichkeit, die Konfigurationsparameter (in der Regel {ACCOUNT}) zu hinterlegen. (Das wäre dann wohl eher ein Admin Tool)
Template-Optionen braucht es dann eigentlich nicht mehr, lediglich ein Markup, z.B. {cat_social_media_share()} bzw. {cat_social_media_follow()}.

Für die Darstellung der Buttons würde ich per Default die Darstellung via Font Awesome umsetzen und das Frontend Template kann dann alternativ eigene Images mitbringen. Das Markup schaut dann einfach für jeden Service, ob eine Datei <TEMPLATE>/images/<SERVICE>.[jpg|png|gif] vorhanden ist. Oder man hängt das an ein Template, z.B. social_media_buttons.tpl. Oder beides. :lol:
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Gesperrt