Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 28. November 2013 13:42

dylan
kennt CMS/ms
Ort: Münsterland
Registriert: 16. Dezember 2010
Beiträge: 303

[GELÖST] breadcrumbs Template anpassen

So sieht das breadcrumbs Template aus:

{if isset($nodelist)}
{strip}
<div class="breadcrumb">
{$starttext}:&nbsp;
{foreach from=$nodelist item='node'}
  {assign var='spanclass' value='crumb'}
  {assign var='extraspanclass' value=''}
  {if $node->current == true}
    {assign var='extraspanclass' value=' current'}
  {/if}

  <span class="{$spanclass|cat:$extraspanclass}">
    {if $node->current == true}
       {$node->menutext}&nbsp;
    {elseif ($node->url == '' or $node->url == '#') && $node->type != 'sectionheader'}
       &raquo;&nbsp;
    {elseif $node->type == 'sectionheader'}   
       {$node->menutext}&nbsp;
    {else}
       <a href="{$node->url}" title="{$node->menutext}">{$node->menutext}</a>&nbsp;
    {/if}
  </span>
{/foreach}
</div>
{/strip}
{/if}

Ich brauche es für Bootstrap. Bootstrap breadcrumbs sind wie folgt aufgebaut:

<ol class="breadcrumb">
  <li><a href="#">Home</a></li>
  <li><a href="#">Library</a></li>
  <li class="active">Data</li>
</ol>

Das div in ol umzubenennen ist schnell passiert, mit dem Rest sieht es schwierig aus:

{if isset($nodelist)}
{strip}
<ol class="breadcrumb">
{$starttext}:&nbsp;
{foreach from=$nodelist item='node'}
  {assign var='spanclass' value='crumb'}
  {assign var='extraspanclass' value=''}
  {if $node->current == true}
    {assign var='extraspanclass' value=' current'}
  {/if}

  <li class="{$spanclass|cat:$extraspanclass}">
    {if $node->current == true}
       {$node->menutext}&nbsp;
    {elseif ($node->url == '' or $node->url == '#') && $node->type != 'sectionheader'}
       &raquo;&nbsp;
    {elseif $node->type == 'sectionheader'}   
       {$node->menutext}&nbsp;
    {else}
       <a href="{$node->url}" title="{$node->menutext}">{$node->menutext}</a>&nbsp;
    {/if}
  </li>
{/foreach}
</ol>
{/strip}
{/if}

So wird's nach meiner Anpassung angezeigt:
Sie sind hier: Home / » / Testseite

Ich bekomme das '»' mit den doppelten '/' nicht weg, und das  class="crumb" ist ebenso überflüssig. Für den 'active' Status müsste das 'class=...' alerdings erhalten bleiben.

So sollte es aussehen:
Home / Testseite

Kann vielleicht jemand beim Smarty code helfen?

Offline

#2 28. November 2013 16:51

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] breadcrumbs Template anpassen

Laut Deinem HTML-Beispiel müsste das hier schon alles sein:

{strip}
    {if isset($nodelist)}
<ol class="breadcrumb">
        {foreach from=$nodelist item='node'}
    <li {if $node->current}class="active"{/if}>
            {if !$node->current && $node->url != '' && $node->url != '#' && $node->type != 'sectionheader'}
        <a href="{$node->url}">{$node->menutext}</a>
            {else}
                {$node->menutext}
            {/if}
    </li>
        {/foreach}
</ol>
    {/if}
{/strip}

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 29. November 2013 12:59

dylan
kennt CMS/ms
Ort: Münsterland
Registriert: 16. Dezember 2010
Beiträge: 303

Re: [GELÖST] breadcrumbs Template anpassen

Danke für deinen code. Leider funktioniert es nicht wie gewünscht.

Im Frontend kommt folgendes dabei heraus:

Home >> Testseite

<a href="">Home</a> &gt;&gt; <span class="lastitem">Testseite</span>

Offline

#4 29. November 2013 13:32

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] breadcrumbs Template anpassen

Sicher, dass Du das richtige Template ausgewählt hast?
Womit erstellst Du eigentlich die Breadcrumbs?
Ich dachte mit dem MenuManager.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 29. November 2013 14:02

dylan
kennt CMS/ms
Ort: Münsterland
Registriert: 16. Dezember 2010
Beiträge: 303

Re: [GELÖST] breadcrumbs Template anpassen

Menüverwaltung
Da sich das breadcrumbs.tpl nicht ändern lässt, habe ich es in die Datenbank importiert und zwangsmäßig umbenannt: 'breadcrumbs'

Im Seitentemplate rufe ich es so auf:
{breadcrumbs root='Home' template='breadcrumbs'}

Beitrag geändert von dylan (29. November 2013 14:03)

Offline

#6 29. November 2013 16:50

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] breadcrumbs Template anpassen

Also in dem Code, den ich da geschrieben habe, kommt kein "lastitem" drin vor.
Daher wundere ich mich gerade wieso Dein Menüpunkt in einem Span mit der Klasse "lastitem" steckt. Und deshalb die Frage, ob Du auch wirklich das richtige Template am Wickel hast.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#7 29. November 2013 20:13

dylan
kennt CMS/ms
Ort: Münsterland
Registriert: 16. Dezember 2010
Beiträge: 303

Re: [GELÖST] breadcrumbs Template anpassen

Ich habe es überprüft. Das Template ist mit deinem code, wie in #2 aufgeführt, im breadcrumbs-Menutemplate. Im Template rufe ich das {breadcrumbs root='Home' template='breadcrumbs'} auf.

Können breadcrumbs-Templates überhaupt so aufgerufen werden, in der Hilfe existiert kein template=''. Ich hab's einfach mal probiert, anscheinend wird's aber nicht benutzt?.

Offline

#8 29. November 2013 21:08

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] breadcrumbs Template anpassen

Das funktioniert so auch nicht.
Mit breadcrumbs rufst du nicht die MenuManager-Funktion auf, sondern das alte Plugin.

Richtig wäre:

{cms_module module='MenuManager' action='breadcrumbs' root='Home' template='breadcrumbs'}
oder kurz:
{cms_breadcrumbs action='breadcrumbs' root='Home' template='breadcrumbs'}

Offline

#9 29. November 2013 21:53

dylan
kennt CMS/ms
Ort: Münsterland
Registriert: 16. Dezember 2010
Beiträge: 303

Re: [GELÖST] breadcrumbs Template anpassen

Danke, das Template wird übernommen :-)

Im code scheint aber noch ein Haken zu sein (!?), die Anzeige erscheint so:
Home / &raquo; / Testseite

Quellcode

<ol class="breadcrumb"><li ><a href="">Home</a></li><li >&amp;raquo;</li><li class="active">Testseite</li></ol>

Das rot markierte sollte nicht enthalten sein.

Offline

#10 30. November 2013 00:04

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] breadcrumbs Template anpassen

Diese Breadcrumb Action des Menümanagers scheint mir irgendwie Blödsinn zu sein, da in der Datei action.breadcrumbs.php als Trenner/Separator immer ein leeres Element eingefügt wird, und eben nicht mit delimiter wie früher gearbeitet wird.
Daher auch: <li>&raquo;</li>

&raquo; steht so auch in action.breadcrumbs.php drin.

Zeile:86 ff.
$separator->SetName('&raquo;');
$separator->SetMenuText('&raquo;');

Den Trenner must du leider in der action.breadcrumbs.php ändern.
HTML Entities sind eher schwierig weil bei der Ausgabe & wieder umgewandelt wird.

Offline

#11 30. November 2013 05:56

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] breadcrumbs Template anpassen

Hmm, also den Tag nur halbherzig in den MenüManager integriert - beim Tag könnte man einen eigenen Trenner festlegen ...

Offline

#12 30. November 2013 10:47

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] breadcrumbs Template anpassen

cyberman schrieb:

Hmm, also den Tag nur halbherzig in den MenüManager integriert  ...

So sieht's aus.
Warum man das in den Menümanager integriert hat, bleibt ein Rätsel. War die Pluginvariante doch viel ressourcenschonender. Vom Menümanager weiß man doch, dass der viel Sprit braucht.

Das ist alles wieder nur so halbherzig gemacht. Ich hatte immer noch mal gehofft, eine echte Breadcrumb zu sehen. Mit Titel der Newskategorien oder Titel von Modul-Items. Contentpages allein reichen nicht.
Mir sagen Leute immer wieder: "Aber da fehlt doch was..."

Offline

#13 30. November 2013 12:12

dylan
kennt CMS/ms
Ort: Münsterland
Registriert: 16. Dezember 2010
Beiträge: 303

Re: [GELÖST] breadcrumbs Template anpassen

Die Datei action.breadcrumbs.php kann ich nicht finden. Ich habe die ver. 1.11.9

Niun bekomme ich mit dem Template eine Fehlermeldung:

Warning: Parameter delimiter is not known by module MenuManager dropped in /www/htdocs/w0123f3e/lib/misc.functions.php on line 1411

"Kleinigkeiten" sind meist schrecklich kompliziert ...

Sehe gerade das ich die Fehlermeldung mit meinem Versuch
delimiter='' selbst verursacht habe.

Beitrag geändert von dylan (30. November 2013 13:21)

Offline

#14 30. November 2013 13:45

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] breadcrumbs Template anpassen

dylan schrieb:

Die Datei action.breadcrumbs.php kann ich nicht finden. Ich habe die ver. 1.11.9

Da ist sie doch:
CMS-Root /modules/MenuManager/action.breadcrumbs.php

Offline

#15 30. November 2013 17:16

dylan
kennt CMS/ms
Ort: Münsterland
Registriert: 16. Dezember 2010
Beiträge: 303

Re: [GELÖST] breadcrumbs Template anpassen

Danke, gefunden.
Ich habe den Trenner einfach herausgenommen

$separator->SetName('');
$separator->SetMenuText('');

Das Ergebnis:
Home / / Testseite

<ol class="breadcrumb"><li ><a href="#">Home</a></li><li ></li><li class="active">Testseite</li></ol>

Eigentlich brauche ich den Trenner überhaupt nicht, er wird bereits durch das bootstrap CSS als '/' übergeben. Da im Template nun li's mitgegeben werden, wird ebenso der ungewünschte Trenner als Leer-li übergeben. Das Ergebnis sieht entsprechend aus.

Kann man das Template vielleicht auch ohne Trenner anlegen?

Beitrag geändert von dylan (30. November 2013 17:17)

Offline

#16 30. November 2013 18:11

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] breadcrumbs Template anpassen

Einfacher wäre es doch in action.breadcrumbs.php einen netten Trenner zu definieren und die Slashes im CSS von Bootstrap zu überschreiben. Oder nicht?

In deinem Eröffnungspost schreibst du, dass es so aussehen soll: Home / Seite
Dann würde in der action.breadcrumbs.php ein / reichen.

Was spricht eigentlich gegen das alte Breadcrumb Plugin?

Offline

#17 30. November 2013 18:36

dylan
kennt CMS/ms
Ort: Münsterland
Registriert: 16. Dezember 2010
Beiträge: 303

Re: [GELÖST] breadcrumbs Template anpassen

Ich versuche möglichst in original Dateien keine Änderungen vorzunehmen, damit diese bei Upgrades problemlos austauschbar sind. Aber Du hast natürlich Recht.

Ich habe das '/' jetzt in der action.breadcrumbs.php eingetragen, und das bootstrap css in einer sep. Datei überschrieben.

[== css ==]
.breadcrumb > li + li:before {
  padding: 0 4px;
  color: transparent;
  content: "";

So kann die bootstrap.css bei Upgrades ausgetauscht werden, die Änderungen des Trenners bleiben in der sep. css bestehen.

Danke für deine Tipps! Dank natürlich auch an NaN für das Template.

Offline

#18 02. Dezember 2013 04:31

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] breadcrumbs Template anpassen

Klenkes schrieb:

Ich hatte immer noch mal gehofft, eine echte Breadcrumb zu sehen. Mit Titel der Newskategorien oder Titel von Modul-Items. Contentpages allein reichen nicht.

Wie genau sollten die denn aussehen?

Überleg gerade, ob sich das nicht mit ein bißchen Smarty zusammenstellen lässt ...

Offline

#19 02. Dezember 2013 10:09

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] breadcrumbs Template anpassen

cyberman schrieb:

Wie genau sollten die denn aussehen?

Nehmen wir mal an ich schaue die Detailseite eines Newsartikels aus der Kategorie Allgemein an. Detailpage=News

Momentan würde die Breadcrumb so aussehen:
Sie sind hier: Home / News

Aber es müsste so aussehen:
Sie sind hier: Home / News / Allgemein / Prima Newsartikel Nr.1

Das ist bei Modulinhalten nun mal so. Sie sind nicht mit einer bestimmten Inhaltsseite verheiratet. Hat mich aber schon immer gestört.
Für eine Einzellösung kann man schon mal / Category / Entry aus der Detailseite zuweisen und an die Breadcrumb anhängen, aber eine allgemeine Lösung auch für ListIt-Module, die auch automatisch funktioniert, scheint mir eher schwer zu machen zu sein. Zumal die Breadcrumb im BODY noch VOR dem Detailinhalt kommt, und damit noch nicht zugewisen wurde.

Außerdem scheint es nur "mich" zu stören...

Offline

#20 02. Dezember 2013 10:36

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] breadcrumbs Template anpassen

Außerdem scheint es nur "mich" zu stören...

Nö, bist da nicht der einzige wink
Es geht aber technsich nicht so einfach zu machen.

Denn bei Deinem Beispiel:

Sie sind hier: Home / News / Allgemein / Prima Newsartikel Nr.1

Wären die letzten beiden Links, Links zu Modulaktionen.
Wer soll diese Links generieren?
Das kann ein Breadcrumbs-Tool nich leisten.

Dazu müsste stattdessen das jeweilige Modul für den ModulManager eine Route generieren, aus der er dann die Breadcrumbs erstellen kann. Denn diese Hierarchie gibt es ja eigentlich garnicht. Ich bin mir nicht sicher, ob das mit der derzeitigen Architektur von CMSms überhaupt irgendwie in sinvoller Weise machbar ist.

Ein Workaround könnte sein, dass man diese Seitenhierarchie zumindest für die Kategorien tatsächlich selber erstmal baut (nicht im Menü sichtbar).
Und im Summary-Template hängt man an den "More-Link" einfach den Parameter detailpage bzw. page oder returnid mit der Kategorie des Artikels dran. (oder man ersetzt etwaige Parameter im Link)
Dann hätte man zumindest diese Breadcrumbs:

Home / News / Allgemein

Den Artikel selbst könnte man im Breadcrumbstemplate selber anhängen, wenn z.B. der Titel der Seite vom eigentlich Titel der Detailpage abweicht. D.h. die meisten wollen doch den News-Artikel Titel im Title-Attribut der Seite haben. Und genauso wie man den einbaut, kann man den ja auch im Breadcrumbs-Template einbauen. (Nur eine Idee, ist aber noch nicht ganz zu Ende gedacht und scheint mir auch zuviel Frickelei zu sein)


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#21 02. Dezember 2013 11:14

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] breadcrumbs Template anpassen

Genau.  smile

Wenn ein Projekt stark auf News oder ein anderes Modul setzt, lohnt sich so ein Aufwand schon. Meist aber schreiben Kunden nur hie und da mal eine News, und dann lohnt der Auwand oft nicht.
Den Newstitel oder Moduldetailtitel per assign in den HEAD title zu schreiben ist ja schon Standard.

Als ich noch mit plger an CTL-ModuleMaker gearbeitet habe, dachten wir mal über ein Modul nach, in dem so eine Art Route für Modulinhalte gesammelt werden.

Man hätte z.B. die $entry->url von SEARCH an dieses Modul übergeben. Dort wäre die Detailseite hinterlegt und die URL wäre umgeschrieben worden, so dass die Returnid zur Detailseite wieder stimmt. Da es aber keinen gemeinsamen Standard unter den Moduile gibt, wäre dies eher schwierig.
Momentan mache ich dies für SEARCH manuell in der Resulttemplate von Search.

Es war aber nur ein flüchtiger Modulgedanke und kam aber zu keiner Weiterentwicklung.

Offline

#22 02. Dezember 2013 11:34

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] breadcrumbs Template anpassen

Es war aber nur ein flüchtiger Modulgedanke und kam aber zu keiner Weiterentwicklung.

Schade.
Wäre meiner Meinung nach ein super Feature für den Core.
D.h. das sollte mit in die Modul-API rein.
Aber scheinbar sind die Stimmen da noch nicht laut genug.
Ich glaube aber, dass sich da innerhalb von CMSms 1.* auch nicht viel tun wird, da in CMSms 2.0 Inhalte ja generell über ein Modul verwaltet werden sollen.
Außerdem wird es ein Navigator-Modul geben. (Was wohl den MenuManager ablöst?)
Aber so lange keiner weiß, wie das genau funktionieren wird, hat jegliche Spekulation über eine bessere Realisierung von Breadcrumbs meiner Meinung nach (noch) nicht viel Sinn.
Das wäre ein Punkt an dem ich tatsächlich auch mal gern Resultate von CMSms 2.0 im SVN sehen würde...  neutral


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#23 02. Dezember 2013 21:00

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] breadcrumbs Template anpassen

NaN schrieb:

Wären die letzten beiden Links, Links zu Modulaktionen.
Wer soll diese Links generieren?

Links zu Modulaktionen kann CGSimpleSmarty (und von daher vermutlich auch Lukas' Toolbox) erstellen.

NaN schrieb:

Das kann ein Breadcrumbs-Tool nich leisten.

Zumindest wäre es einfacher, wenn es verbindliche Coding Guide Lines gäbe, und Kategorien eben immer $entry->category hieße.

Offline