CSS-Klassen für Kategorien

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
chris8408
Beiträge: 55
Registriert: So 2. Apr 2006, 19:07
Wohnort: Korschenbroich
Kontaktdaten:

CSS-Klassen für Kategorien

Beitrag von chris8408 » Do 2. Aug 2018, 19:53

Hallo zusammen,

ich stoße immer wieder auf die Frage nach individuellen CSS für Kategorien, beispielsweise um Icons vor Navigationspunkte zu setzen.

Ich habe mir mal auf Basis des aktuellen GIT-Repositories (Contenido 4.9.12) die Mühe gemacht den Core dahingehend anzupassen, dass man beim Umbenennen einer Kategorie neben Name und Alias nun auch CSS-Klassen eingeben kann. Eigentlich ist es ein Freitext-Feld, welches in Frontendmodulen frei verwendet werden kann. Ich nutze es halt um CSS-Klassen einer Kategorie mit auf den Weg zu geben.

Folgende Dateien wurden angepasst:
contenido/includes/include.str_overview.php
contenido/includes/functions.str.php
contenido/includes/type/action/include.str_renamecat.action.php
contenido/scripts/str_overview.js
contenido/templates/standard/template.str_overview.html
setup/data/tables.txt

Anpassungen:

Code: Alles auswählen

diff  setup/data/tables.txt setup/data/tables.txt
133a134
> "cat_lang";"catcssclasses";"varchar(255)";"";"";"";"";""
diff  contenido/templates/standard/template.str_overview.html contenido/templates/standard/template.str_overview.html
172a173,178
> 
>                         <span style="padding-left:15px;">&nbsp;</span>
> 
>                         {LABEL_CATCSSCLASSES_NAME}
>                         {INPUT_CATCSSCLASSES_EDIT}
> 

diff  contenido/scripts/str_overview.js contenido/scripts/str_overview.js
94a95
>                 document.renamecategory.newcategorycatcssclasses.value = strDataObj[iCatId]['catcssclasses'];

diff  contenido/includes/type/action/include.str_renamecat.action.php contenido/includes/type/action/include.str_renamecat.action.php
20c20
<     strRenameCategory($idcat, $lang, $newcategoryname, $newcategoryalias);
---
>     strRenameCategory($idcat, $lang, $newcategoryname, $newcategoryalias, $newcategorycatcssclasses);

diff  contenido/includes/functions.str.php contenido/includes/functions.str.php
471c471
< function strRenameCategory($idcat, $lang, $newCategoryName, $newCategoryAlias) {
---
> function strRenameCategory($idcat, $lang, $newCategoryName, $newCategoryAlias, $newCategoryCatCssClasses) {
503a504
>     $oCatLang->set('catcssclasses', $newCategoryCatCssClasses);

diff  contenido/includes/include.str_overview.php contenido/includes/include.str_overview.php
339a340
>         $newItem->setCustom('catcssclasses', $item['catcssclasses']);
370c371
<             idtree, A.idcat, level, name, parentid, preid, postid, visible, public, idtplcfg, C.urlname as alias
---
>             idtree, A.idcat, level, name, parentid, preid, postid, visible, public, idtplcfg, C.urlname as alias, catcssclasses
427a429
>             $entry['catcssclasses'] = $db->f('catcssclasses');
554a557
> 
679a683
>         $sCatCssClasses = $value->getCustom('catcssclasses');
681a686
>         $aRecord['catcssclasses'] = conHtmlSpecialChars($sCatCssClasses);
890a896,900
> 
> $oNewAlias = new cHTMLTextbox('newcategorycatcssclasses');
> $oNewAlias->setStyle('width:150px; vertical-align:middle;');
> $tpl->set('s', 'INPUT_CATCSSCLASSES_EDIT', $oNewAlias->render());
> 
Die tables.txt aus dem Setup habe ich angepasst, um über die Update-Funktion die Datenbanktabelle anzulegen.
Das Sprachtag "LABEL_CATCSSCLASSES_NAME" habe ich nicht in die Locales eingebaut. Ich habe aktuell kein Programm zum Übersetzen der .po in die .mo-Datei

Falls jemand einen besseren Vorschlag hat, würde ich mich über Anregungen sehr freuen. Kommentare auch gerne.

Beste Grüße,

Christian
CatCssClasses.zip
Core-Dateien zum Tausch für CSS Klassen bei Kategorien
(32.55 KiB) 3-mal heruntergeladen
Zuletzt geändert von chris8408 am Fr 3. Aug 2018, 09:34, insgesamt 2-mal geändert.
--------------------------------------------
Christian John aus Düsseldorf
Selbständiger Web-Entwickler
“There are 10 types of people in the world… those that understand binary and those that don’t.”

Oldperl
Beiträge: 3984
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: CSS-Klassen für Kategorien

Beitrag von Oldperl » Fr 3. Aug 2018, 07:48

Servus Christian,

kann man so machen. Schön wäre wenn DU die geänderten Dateien als DL anhängen könntest, denn nicht jeder kann etwas mit einer Diff-/Patch-Datei anfangen.
Persönlich löse ich das immer über das Navi-Modul direkt, indem ich bestimmten Kategorien dort entsprechend eine CSS-Klasse zuweisen. Da dies in den meisten Fällen nur einmal im Leben der Webseite erfolgt, reicht das dort in der Regel aus. Will man es noch konfigurierbar machen, so kann man das über eine Mandanteneinstellung tun.
Als Lösung ohne den Core zu verändern wäre sicherlich ein Plugin überlegenswert, wobei man da zuerst mal schauen muss, inwieweit im Core Chains vorhanden sind für eine Einbindung. Wenn da dann welche fehlen, wäre eventuell sogar besser, diese im Core zu integrieren. Zumindest in der functions.str.php findet man davon aber schon ein paar.

Gruß aus Franken

Ortwin
*NEU* PHP 7.x Community Draft von CONTENIDO 4.9 auf github
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

chris8408
Beiträge: 55
Registriert: So 2. Apr 2006, 19:07
Wohnort: Korschenbroich
Kontaktdaten:

Re: CSS-Klassen für Kategorien

Beitrag von chris8408 » Fr 3. Aug 2018, 09:34

Hallo Ortwin,

danke für die Hinweis. Dateien sind angehängt....

Für ein bis zwei Kategorien sicherlich als Ausnahme im Script machbar, wenn man aber wirklich 15-20 Kategorien belegen möchte und sich regelmäßig etwas ändern ist das kaum realisierbar. So kann ein Redakteur das selber machen...

VG Christian
--------------------------------------------
Christian John aus Düsseldorf
Selbständiger Web-Entwickler
“There are 10 types of people in the world… those that understand binary and those that don’t.”

Antworten