<?php
class NewsArticle extends DataObject
{
static $db = array (
'Date' => 'Date',
'Author' => 'Text',
'NewsContent' => 'HTMLText'
);
static $has_one = array (
'NewsHolder' => 'NewsHolder',
'NewsCategory' => 'NewsCategory'
);
public function getCMSFields_forPopup()
{
$fields = new FieldSet();
$fields->push( new CalendarDateField('Date') );
$fields->push( new TextField('Author') );
$fields->push( new SimpleTinyMCEField('NewsContent','News Content') );
$oData = (DataObject::get('NewsCategory'));
if ($oData) $CategoriesSource = $oData->toDropDownMap('ID','NewsCategory');
$dropdown = new DropdownField('NewsCategoryID','NewsCategory',$CategoriesSource);
$dropdown->setEmptyString('-- Select category --');
$fields->push ( $dropdown );
return $fields;
}
}
?>
<?php
class NewsCategory extends DataObject
{
static $db = array (
'NewsCategory' => 'Varchar(100)'
);
static $has_one = array (
'NewsHolder' => 'NewsHolder'
);
static $has_many = array (
'NewsArticles' => 'NewsArticle'
);
public function getCMSFields_forPopup() {
return new FieldSet(
new TextField('NewsCategory', 'Category')
);
}
}
?>
<?php
class NewsHolder extends Page {
static $db = array(
);
static $has_one = array(
);
static $icon = "sitefiles/images/treeicons/news";
static $has_many = array (
'NewsArticles' => 'NewsArticle',
'NewsCategories' => 'NewsCategory'
);
public function getCMSFields()
{
$f = parent::getCMSFields();
$f->addFieldToTab("Root.Content.NewsArticles", new DataObjectManager(
$this,
'NewsArticles',
'NewsArticle',
array('Date' => 'Date','Author'=>'Author','NewsContent' => 'NewsContent', 'NewsCategoryID' => 'NewsCategoryID'),
'getCMSFields_forPopup'
));
$f->addFieldToTab("Root.Content.NewsCategories", new DataObjectManager(
$this,
'NewsCategories',
'NewsCategory',
array('NewsCategory'=>'Category'),
'getCMSFields_forPopup'
));
return $f;
}
}
class NewsHolder_Controller extends Page_Controller {
}
?>