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
- ...
- UnterUnterseite 1
- Unterseite 3
- ...
- Unterseite 1
- 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

