Я довольно новичок в SilverStripe, поэтому, пожалуйста, прости меня, если это кажется простым.Я выполнил поиск по форуму и прочитал документацию, но не смог понять, что мне нужно.
Я использую dataobjectmanager для добавления изображений слайд-шоу на страницу.Если я создаю одну страницу с изображениями слайд-шоу, а затем создаю новую страницу с тем же типом страницы, изображения слайд-шоу уже заполнены изображениями с первой страницы.Я предполагаю, что они добавлены как глобальные активы?
Есть ли способ добавить объекты только на одну страницу с помощью dataobjectmanager?
Это мой код слайда / объекта данных ...
<?php
class Slide extends DataObject {
/**
*
* DB fields
* @var unknown_type
*/
static $db = array (
'Title' => 'Varchar(255)',
'Text' => 'Text',
'Link' => 'Text'
);
/**
*
* Relations
* @var array
*/
static $has_one = array (
'HomePage' => 'HomePage',
'Image' => 'Image'
);
/**
*
* /Fields to show in the DOM table
* @var array
*/
static $summary_fields = array(
'Thumb' => 'Image',
'Title' => 'Title',
'Text' => 'Text',
'Page link' => 'Link'
);
/**
* (non-PHPdoc)
* @see httpdocs/sapphire/core/model/DataObject::getCMSFields()
*/
public function getCMSFields()
{
return new FieldSet(
new TextField('Title'),
new TextField('Text'),
new TextField('Link'),
new ImageField('Image', 'Image', null, null, null, 'slides')
);
}
/**
*
* Generate our thumbnail for the DOM
*/
public function getThumb()
{
if($this->ImageID)
return $this->Image()->CMSThumbnail();
else
return '(No Image)';
}
}
Это код моей страницы
<?php
class AwardsHolder extends Page {
static $db = array(
);
static $has_many = array(
'Slides' => 'Slide',
'Spotlights' => 'Spotlight'
);
static $allowed_children = array('ArticlePage');
public function getCMSFields() {
$fields = parent::getCMSFields();
$manager = new DataObjectManager(
$this,
'Slides',
'Slide'
);
$fields->addFieldToTab("Root.Content.Slideshow", $manager);
$manager = new DataObjectManager(
$this,
'Spotlights',
'Spotlight'
);
$fields->addFieldToTab("Root.Content.Spotlights", $manager);
$fields->removeFieldFromTab("Root.Content.Main", 'Content');
return $fields;
}
}
class AwardsHolder_Controller extends Page_Controller {
}