91 Nachrichten unter 31 Themen von 36 Mitgliedern
[SilverStripe Roadmap][Changelog]

Individuelle Sidebar für verschiedene Seiten

Seite: 1 2434 mal gelesen
  • StartUp3D
    StartUp3D Community Member
    16 Beiträge

    Individuelle Sidebar für verschiedene Seiten

    Hallo zusammen,
    erstmal Herzlichen Glückwunsch für das neue deutsche Forum! Sieht klasse aus und deutsch schreiben fällt mir immer noch leichter, als englisch :)

    Nun aber zu meinem Verständnisproblem. Vielleicht kann mir jemand dabei helfen:

    Wie in diesem Forumseintrag im englischen Forum (http://www.silverstripe.org/archive/show/117657) würde ich gerne verschiedene Sidebars für verschiedene Seiten nutzen. Dabei ist der Ansatz wie im oben genannten Thread beschrieben klasse, da ich im Backend via Combobox direkt die gewünschte Sidebar-Seite auswählen kann. Leider erhalten ich anschließend keine Anzeige im Frontend der gewünschten Seite. Habe ich vielleicht was vergessen?

    Hier die Code-Stücke, die ich nutze:

    mysite/code/ContentPage.php

    class ContentPage extends Page
    {
       static $db = array();
       static $has_one = array(
          'RightSideBar' => 'Page'
       );
       
       function getCMSFields()
       {
          $fields = parent::getCMSFields();
          $fields->addFieldToTab('Root.Content.Main', new TreeDropdownField("RightSideBar", "Rechte Sidebar anzeigen", "SiteTree"), 'Content');
          return $fields;
       }
    }
    class ContentPage_Controller extends Page_Controller {
       
    }


    mysite/code/RightSideBar.php

    class RightSideBar extends ContentPage
    {
       static $db = array();
       static $has_one = array();
    }

    class RightSideBar_Controller extends ContentPage_Controller
    {

    }


    templates/Layout/ContentPage.ss

    <div id="contentleft" style="width:500px;">
          $Content
    </div>
    <% control RightSideBar %>
       <div id="contentright" style="width:178px;">
          test: $Content
       </div>
    <% end_control %>



    Besten Dank für eure Hilfe.

    Gruß,
    Otto
  • Steven

    86 Beiträge

    Re: Individuelle Sidebar für verschiedene Seiten

    Hallo Otto,

    Du versuchst über das Control Daten von RightSideBar zu durchlaufen:
    <% control RightSideBar %>...<% control RightSideBar %>
    RightSideBar ist aber nur als Klasse definiert. Hier muss eine Methode angesprochen werden. Das wird im englischen Post ebenfalls beschrieben.

    Steven

    Steven, Forum-Team

  • StartUp3D
    StartUp3D Community Member
    16 Beiträge

    Re: Individuelle Sidebar für verschiedene Seiten

    Guten Morgen,
    ja, das war der Part, den im englischen Forum der User dio5 beschrieben hat:
    "Why not store those numbers as has_one's?"
    "without the need to make those extra getter methods.. I think"

    Leider funktioniert diese Art von dio5 nicht. Daher habe ich die ganz normale Funktion eingebaut (die ich vergessen hatte) und jetzt klappt es einwandfrei.

    Danke für den Hinweis Steven!

    Gruß,
    Otto



  • suntrop
    suntrop Community Member
    10 Beiträge

    Re: Individuelle Sidebar für verschiedene Seiten

    Hallo StartUp3D.
    Ich habe nach deinem Beispiel ebenfalls eine Sidebar erstellt, aber zum einen weiß ich nicht, auf welche "Funktion" du dich im letzten Posting beziehst und zweitens wird meine Angabe im SiteTree (Back-end) nicht gespeichert.

    Kannst du mir weiterhelfen? Oder hat jemand anderes eine Idee?
  • brokemeister
    brokemeister Community Member
    76 Beiträge

    Re: Individuelle Sidebar für verschiedene Seiten

    Hi suntrop,

    ein beliebter Fehler hat sich in dem Script eingeschlichen.
    Bei has_one-Relation wird ein Datenbank-Feld mit "FieldID" erzeugt und nicht "Field".

    Also muss folgende Zeile wie folgt abgeändert werden, damit die Daten gespeichert werden...

    $fields->addFieldToTab('Root.Content.Main', new TreeDropdownField("RightSideBarID", "Rechte Sidebar anzeigen", "SiteTree"), 'Content');



    Gruß
    Malte

    EOS Uptrade GmbH - Komplexes einfach machen | Certified Silverstripe Partner | www.eos-uptrade.de

  • suntrop
    suntrop Community Member
    10 Beiträge

    Re: Individuelle Sidebar für verschiedene Seiten

    1A :-)

    Vielen Dank für deine Hilfe. Das mit der ID hat bestens funktioniert – kann jetzt aus dem SiteTree eine Seite laden und speichern!

    Grüße
    suntrop

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: friendlyX96