159 Nachrichten unter 49 Themen von 55 Mitgliedern
[SilverStripe Roadmap][Changelog]

Seitenkommentar & Breadcrump

Seite: 1 573 mal gelesen
  • Homezonebenny
    Homezonebenny Community Member
    13 Beiträge

    Seitenkommentar & Breadcrump

    Hi, dies ist mein 2. Beitrag in diesem Forum.

    Ich bin neu was den Umgang mit SilverStripe angeht, und habe SilverStripe sogar zu meiner IHK Abschlussarbeit gemacht.

    Ich habe das SilverStripe Forum bis zu:
    http://doc.silverstripe.org/sapphire/en/tutorials/2-extending-a-basic-site#showing-the-latest-news-on-the-homepage
    durchgearbeitet. Nun bin ich auf 2 "kleine" Probleme gestoßen.


    1. Seitenkommentare
    Diese habe ich standardmäßig für alle News-Einträge aktiviert (wie im Tutorial beschrieben).
    Funktioniert alles auch einwandfrei nur habe ich festgestellt das die URLs nicht escaped werden!
    Das heißt in Links sind die & nicht & ... da meine Seiten zu 100% valide sind hätte ich gerne das auch das "Page Comment" Formular valide ist.

    Gibt es hierzu eine einfache Methode dies zu ändern, oder muss ich das Page Comment System überschreiben?
    Wenn ja wie funktioniert das in SilverStripe, so weit bin ich leider noch nicht :-\


    2. Breadcrump
    Auch hiermit bin ich nicht wirklich zufrieden.
    Hier hätte ich gerne ein UL LI Konstrukt anstelle von einem
    <a>..</a> » Text
    Konstrukt. Ich denke hier bleibt mir nichts anderes übrig als das Breadcrump template zu überschreiben.


    Das wars auch schon, fürs erste ^__^ der Rest funktioniert bisher sehr überraschend ziemlich Reibungslos.


    Grüße
    Benny
  • Homezonebenny
    Homezonebenny Community Member
    13 Beiträge

    Re: Seitenkommentar & Breadcrump

    Den 1. Fehler konnte ich beheben, habe dazu auch ein Ticket erstellt:
    http://open.silverstripe.org/ticket/6610


    Das 2. Problem konnte ich mittlerweile ebenfalls lösen:



    Page_Controler (mysite/code/Page.php):

    public function Breadcrumbs($maxDepth = 20, $unlinked = false, $stopAtPageType = false, $showHidden = false)
    {
    $page = $this;
    $parts = array();
    while
    ($page
    && (!$maxDepth || sizeof($parts) < $maxDepth)
    && (!$stopAtPageType || $page->ClassName != $stopAtPageType))
    {
    if($showHidden || $page->ShowInMenus || ($page->ID == $this->ID))
    {
    if($page->URLSegment == 'home')
    $hasHome = true;

    // LI construction
    if(($page->ID == $this->ID) || $unlinked)
    $parts[] = ("<li class=\"last\"><a href=\"" . $page->Link() . "\">" . Convert::raw2xml($page->Title) . "</a></li>");
    else
    $parts[] = ("<li><a href=\"" . $page->Link() . "\">" . Convert::raw2xml($page->Title) . "</a></li>");
    }
    $page = $page->Parent;
    }

    // LI manipulation, first last single node
    $BreadCrumbs = array_reverse($parts);
    $FirstNode = $BreadCrumbs[0];
    if(count($BreadCrumbs) == 1)
    $BreadCrumbs[0] = str_replace('<li class="last">', '<li class="first last single">', $FirstNode);
    else
    $BreadCrumbs[0] = str_replace('<li>', '<li class="first">', $FirstNode);

    return implode(' ', $BreadCrumbs);
    }




    template.ss:

    <ul class="content_path tiny_text clearfix">$Breadcrumbs</ul>

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: saerdna