79 Nachrichten unter 28 Themen von 35 Mitgliedern
[SilverStripe Roadmap][Changelog]

Image Upload in Unterordner

Seite: 1 70 mal gelesen
  • cyshift
    cyshift Community Member
    6 Beiträge

    Image Upload in Unterordner

    Hallo zusammen,

    ich wünsche allen frohe Weihnachten und melde mich mal wieder mit einer Frage.

    Wie kann ich es realisieren, dass bei einem Image Upload die Bilder automatisch in Unterordner der jeweiligen Seite abgespeichert werden ?
    Momentan landen alle Bilder in dem Ordner "Uploads", dass auf Dauer ziemlich unübersichtlich wird.

    Ich kann zwar in meinem Template einen Ordner definieren, wenn ich aber dieses Template auch für viele andere Unterseiten verwenden, wird es auch wieder unübersichtlich:

    Mein Test:

    $fields->push(new ImageField('Image','','','','MeinOrdner'));


    Navigationsstruktur:
    • Seite 1
      • Unterseite 1
      • Unterseite 2
        • UnterUnterseite 1
        • UnterUnterseite 2
        • ...

      • Unterseite 3
      • ...

    • Seite 2
    • Seite 3
    • ...



    Habt ihr vielleicht einen Tipp / Anregung, wie ich das realisieren könnte ?

    Hier auch mal mein Code:

    Image:

    <?php
    class CustomImage extends Image {
    function generateThumb($gd) {
    return $gd->resizeByWidth(200);
    }
    function generateFull($gd) {
    return $gd->resizeByWidth(665);
    }
    }


    DataObject:

    <?php

    class WoodArticle extends DataObject {
    static $db = array(
    'Title' => 'Varchar(255)',
    'Content' => 'HTMLText'
    );

    static $has_one = array(
    'Image' => 'CustomImage',
    'WoodDetail' => 'WoodDetail'
    );

    function getCMSFields_forPopup() {
    $fields = new FieldSet();
    $fields->push(new TextField('Title'));
    $fields->push(new SimpleHTMLEditorField('Content'));
    $fields->push(new ImageField('Image'));
    return $fields;
    }

    public function Link() {
    if($WoodDetail = $this->WoodDetail()) {
    $Action = $this->Link;
    return $WoodDetail->Link($Action);
    }
    }
    }


    Page:

    <?php

    class WoodDetail extends Page {
    static $has_one = array (
       'Thumbnail' => 'Image'
    );

    static $has_many = array(
    'WoodArticles' => 'WoodArticle'
    );

    function getCMSFields() {
    $fields = parent::getCMSFields();

        $fields->addFieldToTab('Root.Content.Thumbnail', new ImageField('Thumbnail'));

    $tablefield = new DataObjectManager(
    $this,
    'WoodArticles',
    'WoodArticle',
    array(
    'ID' => 'ID',
    'Title' => 'Title',
    'Content' => 'Content'
    ),
    'getCMSFields_forPopup'
    );

    $fields->addFieldToTab('Root.Content.Wood Article', $tablefield);

    return $fields;
    }
    }

    class WoodDetail_Controller extends Page_Controller {
       public function init() {
          parent::init();
       }

    }



    Über jeden Tipp bin euch sehr dankbar!

    Viele Grüße
    cyshift



Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: luiloop