Merge pull request #97 from arambalakjian/pulls/controller-instantiation

API Adding config option for enabling comments to be added to SiteTree
This commit is contained in:
Daniel Hensby 2015-04-01 13:04:54 +01:00
commit 882c65fdd5
3 changed files with 14 additions and 8 deletions

View File

@ -26,6 +26,6 @@
* consult the Commenting class. * consult the Commenting class.
*/ */
if(class_exists('SiteTree') && !Commenting::has_commenting('SiteTree')) { if(Config::inst()->get('Commenting', 'sitetree_comments') && class_exists('SiteTree') && !Commenting::has_commenting('SiteTree')) {
Commenting::add('SiteTree'); Commenting::add('SiteTree');
} }

View File

@ -13,12 +13,18 @@
*/ */
class Commenting { class Commenting {
/** /**
* @var array map of enabled {@link DataObject} and related configuration * @var array map of enabled {@link DataObject} and related configuration
*/ */
private static $enabled_classes = array(); private static $enabled_classes = array();
/**
* @config
* @var bool Whether to enable commenting on SiteTree objects by default
*/
private static $sitetree_comments = true;
/** /**
* @var array default configuration values * @var array default configuration values
*/ */

View File

@ -107,17 +107,17 @@ class CommentsExtension extends DataExtension {
// do not include the comments on pages which don't have id's such as security pages // do not include the comments on pages which don't have id's such as security pages
if($this->owner->ID < 0) return false; if($this->owner->ID < 0) return false;
$controller = new CommentingController(); $controller = CommentingController::create();
$controller->setOwnerRecord($this->owner); $controller->setOwnerRecord($this->owner);
$controller->setBaseClass($this->ownerBaseClass); $controller->setBaseClass($this->ownerBaseClass);
$controller->setOwnerController(Controller::curr()); $controller->setOwnerController(Controller::curr());
$moderatedSubmitted = Session::get('CommentsModerated'); $moderatedSubmitted = Session::get('CommentsModerated');
Session::clear('CommentsModerated'); Session::clear('CommentsModerated');
$form = ($enabled) ? $controller->CommentsForm() : false; $form = ($enabled) ? $controller->CommentsForm() : false;
// a little bit all over the show but to ensure a slightly easier upgrade for users // a little bit all over the show but to ensure a slightly easier upgrade for users
// return back the same variables as previously done in comments // return back the same variables as previously done in comments
return $interface->process(new ArrayData(array( return $interface->process(new ArrayData(array(