407 Nachrichten unter 107 Themen von 101 Mitgliedern
[SilverStripe Roadmap][Changelog]

Mehrspaltiger Inhalt

Seite: 1 578 mal gelesen
  • Stefko
    Community Member
    36 Beiträge

    Mehrspaltiger Inhalt

    Hallo zusammen,

    ich hänge hier gerade etwas und hoffe, dass mir hier jemand den entscheidenen Tipp geben kann.

    Aaaaaalso, ich setze gerade ein Projekt mit Silverstripe um und auf der Startseite soll der Contentbereich aus vier nebeneinander angeordneten Spalten bestehen. Jede Spalte hat ein wenig Text (evtl. ein Bild) und ein Link zu der entsprechenden Seite. Also eigentlich eine Art Teaser oder Anleser. (Ich habe das unten mal "skizziert")
    Nun bin ich am Grübeln, wie ich das am besten mache.

    Ein Weg wäre ja z.B. einen Seitentyp zu erstellen, der im Backend 4 Eingabefelder hat, die dann per CSS im Frontend nebeneinander plaziert werden. Nur bin ich mir da nicht ganz im Klaren, wie ich das bewerkstellige.

    Es würde mich sehr freuen, wenn mir da jemand weiterhelfen könnte oder jemand eine andere gute Idee hat, mit der sich das Problem lösen lässt.

    Danke und Grüße,
    Stefko


    .-------------------------------------------------------.
    | HEADER |
    .-------------------------------------------------------.
    | Navigation |
    .-------------------------------------------------------.
    | | | | |
    | Text, Text, | Text, Text, | Text, Text, | Text, Text, |
    | Text, Text, | Text, Text, | Text, Text, | Text, Text, |
    | | | | |
    | Bild | Bild | Bild | Bild |
    | Bild | Bild | Bild | Bild |
    | Bild | Bild | Bild | Bild |
    | | | | |
    | >Link> | >Link> | >Link> | >Link> |
    | | | | |
    .-------------------------------------------------------.
    | Footer |
    .-------------------------------------------------------.
  • Tobias

    131 Beiträge

    Re: Mehrspaltiger Inhalt

    Hi Stefko,

    ich würde es wohl auch so machen, wie du es beschrieben hast - mit diesem Code:
    <?php
    class Pagehomepage extends Page {

       public static $db = array(
          'Text1' => 'HTMLText',
          'Text2' => 'HTMLText',
          'Text3' => 'HTMLText',
          'Text4' => 'HTMLText'
       );
    function getCMSFields() {
    $fields = parent::getCMSFields();
          $fields->addFieldToTab('Root.Content.Zusatz', new HTMLEditorField('Text1'));
          $fields->addFieldToTab('Root.Content.Zusatz', new HTMLEditorField('Text2'));
          $fields->addFieldToTab('Root.Content.Zusatz', new HTMLEditorField('Text3'));
          $fields->addFieldToTab('Root.Content.Zusatz', new HTMLEditorField('Text4'));
    return $fields;
    }
    }
    class Pagehomepage_Controller extends Page_Controller {
    }

    Über $Text1, ... kannst du auf die Variablen im Template zugreifen -> unter /Templatespfad/Layout/ eine Datei Pagehomepage.ss anlegen und html reinsetzen:
    <h1>$Title</h1>
    $Content
    <div id="texte">
    <div id="text1">$Text1</div>
    <div id="text2">$Text2</div>
    <div id="text3">$Text3</div>
    <div id="text4">$Text4</div>
    <div class="clear"></div>
    </div>

    Im css dann #text1, #text2, #text3, #text4 {float:left; width:200px;} und .clear {clear:both;}.
    Ich umschließe die Textblöcke mit einem zusätzlichen div, damit der Block zusammengehört - mit dem letzten div (class='clear') werden die float-Elemente abgeschlossen.
    Ach so - ich habe oben 'Root.Content.Zusatz' geschrieben, damit die Zusatztexte auf einem eigenen Tab erscheinen. Sollen die Html-Boxen im Haupttab stehen, dann Zusatz durch Main ersetzen.

    Ciao ... Tobias

    Tobias, Forum-Team

  • Stefko
    Community Member
    36 Beiträge

    Re: Mehrspaltiger Inhalt

    Hi Tobias,

    super, klappt perfekt.
    Viiiiiiielen Dank für Deine ausführliche Antwort.

    Eine kleine Frage habe ich noch, kann ich irgendwo die Größe der Editorfenster im Backend ändern? (kann man bestimmt, aber wo und wie ;-)

    Danke und viele Grüße,
    Stefko
  • Tobias

    131 Beiträge

    Re: Mehrspaltiger Inhalt

    Hi Stefko,

    die Höhe kann angepasst werden:
    new HTMLEditorField('Text1','','10') legt ein Feld mit 10 Zeilen Höhe an. Alle möglichen Parameter und ihre Verwendung findest du unter http://api.silverstripe.org/2.4/forms/fields-formattedinput/HtmlEditorField.html. Wobei ich sagen muss, dass die Anzahl der Spalten (Breite) bei mir nicht wirklich funktioniert :)

    Ciao .. Tobias

    Tobias, Forum-Team

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: saerdna