getLastFormIn($this->renderWith('CommentAdmin_right')); } public function Section() { $url = rtrim($_SERVER['REQUEST_URI'], '/'); if(strrpos($url, '&')) { $url = substr($url, 0, strrpos($url, '&')); } $section = substr($url, strrpos($url, '/') + 1); if($section != 'approved' && $section != 'unmoderated' && $section != 'spam') { $section = 'approved'; } return $section; } public function EditForm() { $section = $this->Section(); if($section == 'approved') { $filter = 'IsSpam=0 AND NeedsModeration=0'; $title = "

Approved Comments

"; } else if($section == 'unmoderated') { $filter = 'NeedsModeration=1'; $title = "

Comments Awaiting Moderation

"; } else { $filter = 'IsSpam=1'; $title = "

Spam

"; } $filter .= ' AND ParentID>0'; $tableFields = array( "Name" => "Author", "Comment" => "Comment", "PageTitle" => "Page", "Created" => "Date Posted" ); $popupFields = new FieldSet( new TextField("Name"), new TextareaField("Comment", "Comment") ); $idField = new HiddenField('ID', '', $section); $table = new CommentTableField($this, "Comments", "PageComment", $section, $tableFields, $popupFields, array($filter)); $table->setParentClass(false); $fields = new FieldSet( new TabSet( 'Root', new Tab('Comments', new LiteralField("Title", $title), $idField, $table ) ) ); $actions = new FieldSet(); if($section == 'unmoderated') { $actions->push(new FormAction('acceptmarked', 'Accept')); } if($section == 'approved' || $section == 'unmoderated') { $actions->push(new FormAction('spammarked', 'Mark as spam')); } if($section == 'spam') { $actions->push(new FormAction('hammarked', 'Mark as not spam')); } $actions->push(new FormAction('deletemarked', 'Delete')); if($section == 'spam') { $actions->push(new FormAction('deleteall', 'Delete All')); } $form = new Form($this, "EditForm", $fields, $actions); return $form; } function deletemarked() { $numComments = 0; $folderID = 0; $deleteList = ''; if($_REQUEST['Comments']) { foreach($_REQUEST['Comments'] as $commentid) { $comment = DataObject::get_one('PageComment', "`PageComment`.ID = $commentid"); if($comment) { $comment->delete(); $numComments++; } } } else { user_error("No comments in $commentList could be found!", E_USER_ERROR); } echo <<Count(); foreach($spam as $comment) { $comment->delete(); } } echo <<IsSpam = true; $comment->NeedsModeration = false; $comment->write(); if(SSAkismet::isEnabled()) { try { $akismet = new SSAkismet(); $akismet->setCommentAuthor($comment->getField('Name')); $akismet->setCommentContent($comment->getField('Comment')); $akismet->submitSpam(); } catch (Exception $e) { // Akismet didn't work, most likely the service is down. } } $numComments++; } } } else { user_error("No comments in $commentList could be found!", E_USER_ERROR); } echo <<IsSpam = false; $comment->NeedsModeration = false; $comment->write(); if(SSAkismet::isEnabled()) { try { $akismet = new SSAkismet(); $akismet->setCommentAuthor($comment->getField('Name')); $akismet->setCommentContent($comment->getField('Comment')); $akismet->submitSpam(); } catch (Exception $e) { // Akismet didn't work, most likely the service is down. } } $numComments++; } } } else { user_error("No comments in $commentList could be found!", E_USER_ERROR); } echo <<IsSpam = false; $comment->NeedsModeration = false; $comment->write(); $numComments++; } } } else { user_error("No comments in $commentList could be found!", E_USER_ERROR); } echo <<