Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Template Questions /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Basic Extending

Go to End

2 Posts   1723 Views


Community Member, 18 Posts

22 December 2008 at 10:03pm

Edited: 22/12/2008 10:04pm

Hi, I want to extend a class and found this example: This works as expected so I use the same approach on the PageCommentInterface class. My code:

class CustomCommentInterface extends DataObjectDecorator {
	function CustomCommentForm() {
		return 'Foo';

DataObject::add_extension('PageCommentInterface', 'CustomCommentInterface.php');

$CustomCommentForm ('Foo' is not showing up!?)

Thanks for your time!

Note. I asked this before but the old forum is archived. I got a reply from howardgrigg (thanks for that!) but I don't want to alter the core.


Community Member, 501 Posts

27 December 2008 at 10:49pm


instead of using a dod for that, I would extend PageCommentInterface directly.

You'll see that this is called in ContentController.php (around line 300). - see the method 'PageComments'.

In your Page_Controller you could then do more or less the same:

function CustomComments() {
		if($this->data() && $this->data()->ProvideComments) {
			return new CustomCommentInterface($this, 'CustomComments', $this->data());
		} else {
			if(isset($_REQUEST['executeForm']) && $_REQUEST['executeForm'] == 'CustomComments.PostCommentForm') {
				echo "Comments have been disabled for this page";

which gives you the $CustomComments tag in yr template...

Hope this might help a bit.