Blog » Как удалить поле "Адрес вашего сайта" ("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-запросе будут безуспешными.
На этой странице еще нет комментариев.