Hi Uncle Cheese,
here is the code. btw images, mp3 and flv are uploaded correctly. mpeg is saved as FILE to db.
PageRessource.php:
<?php
class PageResource extends DataObject
{
static $db = array (
'Name' => 'Text',
'Beschreibung' => 'Text'
);
static $has_one = array (
'Attachment' => 'File', //@UncleCheese: could this be the problem?
'Page' => 'Page'
);
public function getCMSFields_forPopup()
{
return new FieldSet(
new TextField('Name'),
new TextareaField('Beschreibung'),
new FileIFrameField('Attachment')
);
}
}
?>
Page.php
<?php
class Page extends SiteTree {
public static $db = array(
'RedirectToChild' => 'Int',
'Headline' => 'Text',
'Copytext' => 'HTMLText',
'BannerLinkExtern' => 'Text',
'BannerLinkInternID' => 'Text',
'BannerEinblenden' => 'Boolean',
'BannerText' => 'Text',
'KopfbildAufStartseite' => 'Boolean',
'SliderCopytext' => 'Text'
);
public static $has_one = array(
'MoodImage' => 'Page_MoodImage',
'BannerImage' => 'Page_BannerImage',
'BannerLinkIntern' => 'SiteTree'
);
static $has_many = array (
'PageResources' => 'PageResource'
);
function getCMSFields() {
$array = array(
'1' => 'Hauptnavigationspunkt anzeigen',
'2' => 'Direkt 1. Navigationspunkt der 2. Ebene anzeigen',
'3' => 'Direkt 1. Navigationspunkt der 3. Ebene anzeigen'
);
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Content.Main', new DropdownField(
'RedirectToChild',
'Content zeigen aus',
$array));
// Kopfbild
$fields->addFieldToTab('Root.Content.Kopfbild', new CheckboxField('KopfbildAufStartseite', 'Bild im Slider auf der Startseite anzeigen?'));
$fields->addFieldToTab('Root.Content.Kopfbild', new TextareaField('SliderCopytext', 'Text für Slider:'));
$fields->addFieldToTab("Root.Content.Kopfbild", new ImageField(
"MoodImage",
"Bitte wählen Sie ein Kopfbild (491*267)",
null,
null,
null,
"Kopfbilder/"
)
);
// Banner
$fields->addFieldToTab('Root.Content.Bannerbild', new ImageField(
'BannerImage',
'Bitte wählen Sie ein Bild (260*120)',
null,
null,
null,
'Bannerbilder/'
)
);
$fields->addFieldToTab('Root.Content.Banner', new TextField('Headline'));
$fields->addFieldToTab('Root.Content.Banner', new TextareaField('Copytext'));
// TreeDropdownField: $name, $title, $sourceObject, $keyField, $labelField, $showSearch
$verlinkung = new TreeDropdownField('BannerLinkInternID', 'Bitte eine interne Verlinkung wählen', 'SiteTree', 'ID', 'Title', true);
// $verlinkung->objectForKey('ID');
// $verlinkung->objectForKey($BannerLinkInternID);
$fields->addFieldToTab('Root.Content.Banner', $verlinkung);
$fields->addFieldToTab('Root.Content.Banner', new TextField('BannerLinkExtern'));
$fields->addFieldToTab('Root.Content.Banner', new CheckboxField('BannerEinblenden'));
$manager = new FileDataObjectManager(
$this, // Controller
'PageResources', // Source name
'PageResource', // Source class
'Attachment', // File name on DataObject
array(
'Name' => 'Name',
'Beschreibung' => 'Beschreibung',
), // Headings
'getCMSFields_forPopup' // Detail fields (function name or FieldSet object)
// Filter clause
// Sort clause
// Join clause
);
$fields->addFieldToTab("Root.Content.Dateien",$manager);
return $fields;
}
}
Thanks for your time, Carsten.