silverstripe-blog/code/model/BlogCategory.php

128 lines
2.5 KiB
PHP
Raw Normal View History

2013-07-21 12:23:35 +02:00
<?php
/**
* A blog category fo generalising blog posts.
*
* @package silverstripe
* @subpackage blog
*
* @author Michael Strong <github@michaelstrong.co.uk>
2013-07-21 12:23:35 +02:00
**/
class BlogCategory extends DataObject {
private static $db = array(
"Title" => "Varchar(255)",
);
2013-07-21 12:23:35 +02:00
private static $has_one = array(
"Blog" => "Blog",
);
2013-08-04 18:38:26 +02:00
private static $belongs_many_many = array(
2013-07-21 12:23:35 +02:00
"BlogPosts" => "BlogPost",
);
2013-08-04 18:38:26 +02:00
private static $extensions = array(
"URLSegmentExtension",
);
public function getCMSFields() {
$fields = new FieldList(
TextField::create("Title", _t("BlogCategory.Title", "Title"))
2013-08-04 18:38:26 +02:00
);
$this->extend("updateCMSFields", $fields);
return $fields;
}
/**
* Returns a relative link to this category.
*
* @return string URL
**/
public function getLink() {
return Controller::join_links($this->Blog()->Link(), "category", $this->URLSegment);
}
/**
* Inherits from the parent blog or can be overwritten using a DataExtension
*
* @param $member Member
*
* @return boolean
*/
public function canView($member = null) {
$extended = $this->extendedCan(__FUNCTION__, $member);
if($extended !== null) {
return $extended;
}
return $this->Blog()->canView($member);
}
/**
* Inherits from the parent blog or can be overwritten using a DataExtension
*
* @param $member Member
*
* @return boolean
*/
public function canCreate($member = null) {
$extended = $this->extendedCan(__FUNCTION__, $member);
if($extended !== null) {
return $extended;
}
// Since there is no parent yet, need to make a best guess
$permission = Blog::config()->grant_user_permission;
return Permission::checkMember($member, $permission);
}
/**
* Inherits from the parent blog or can be overwritten using a DataExtension
*
* @param $member Member
*
* @return boolean
*/
public function canDelete($member = null) {
$extended = $this->extendedCan(__FUNCTION__, $member);
if($extended !== null) {
return $extended;
}
return $this->Blog()->canEdit($member);
}
/**
* Inherits from the parent blog or can be overwritten using a DataExtension
*
* @param $member Member
*
* @return boolean
*/
public function canEdit($member = null) {
$extended = $this->extendedCan(__FUNCTION__, $member);
if($extended !== null) {
return $extended;
}
return $this->Blog()->canEdit($member);
}
}