Как удалить поле "Адрес вашего сайта" ("Your website URL") из формы комментариев в Silverstripe

Метки: , , ,

Понятное дело, что поле «Адрес вашего сайта» (“Your website URL”) в комментариях Silverstripe CMS является очень лакомым кусочком для спамеров — давайте-ка его удалим.

Интерфейс формы комментариев задаётся в классе PageCommentInterface в файле “cms\code\sitefeatures\PageCommentInterface.php”, нам нужно сделать свой PageCommentInterface на основе этого класса. Для этого, создаем новый файл “mysite\code\MyPageCommentInterface.php” и пишем в него следующее:

<?php
class MyPageCommentInterface extends PageCommentInterface {
    public function PostCommentForm() {
        $form = parent::PostCommentForm();
        $fields = $form->Fields();
        $fields->removeByName("CommenterURL");
        return $form;
    }
}

После добавления нового файла нужно перестроить файловый кэш Silverstripe CMS — выполните скрипт “http://ваш-сайт/dev/build”.

Затем открываем наш “mysite/code/Page.php” и в классе Page_Controller переопределяем метод PageComments:

public function PageComments() {
    $ret = parent::PageComments();

    // Substitute system page comments interface with ours
    if (get_class($ret) == 'PageCommentInterface') {
        $ret = new MyPageCommentInterface($this, 'PageComments', $this->data());
    }

    return $ret;
}

Теперь поле «Адрес вашего сайта» (“Your website URL”) в форме комментариев отображаться не будет и все попытки передать значение CommenterURL в POST-запросе будут безуспешными.


22 Сентябрь 2011

Комментарии (заморожены на какое-то время)

На этой странице еще нет комментариев.


Интернет реклама