Полнотекстовый поиск по MySQL в October CMS

Понадобилось мне искать строку сразу в нескольких полях. Думал-думал и решил использовать полнотекстовый поиск MySQL. Довольно простая, но хитрая штука.

При создании таблицы в бд, надо добавить строку FULLTEXT (title,body) (где title,body — поля для поиска):

CREATE TABLE articles (
      id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
      title VARCHAR(200),
      body TEXT,
      FULLTEXT (title,body)
    ) ENGINE=InnoDB;

Если же таблица уже создана, то выполняем запрос в MySQL:

CREATE FULLTEXT INDEX title_body ON articles(title,body)
Читать далее…

October CMS ошибка 404

Как вернуть ошибку 404?

Вот так:

return $this->controller->run('404');

Тестовый плагин с примерами для October CMS

Для Октября есть классный тестовый плагин — https://github.com/octoberrain/test-plugin.

Плагин содержит кучу разных примеров и является своеобразной «песочницей» — в админке можно потыкать кнопки, посмотреть как работает функционал.

Качаем, закидываем в /plugins/october/test, кликаем на «Playground» и играемся 🙂

AJAX-пагинация (кнопка загрузить ещё) в October CMS

Написал я компонент, и оказалось так, что вывожу сотню-другую элементов в рамках этого компонента. Естественно, что для этого добра нужна пагинация.

Не захотел делать пагинацию в виде циферок, по клику на которые меняются страницы с элементами. Решил, что сделаю кнопку «Загрузить ещё» при помощи AJAX.

Читать далее…

Как скрыть форму после отправки в October CMS?

После отправки формы обязательно нужно что-то делать — или перенаправлять пользователя на другую страницу (редирект), либо скрыть форму и показать сообщение об успешной отправки формы.

Почему именно скрыть, а не показать всплывающее сообщение? Потому что всплывающее сообщение пользователь может не заметить и нажать на кнопку отправки формы ещё раз. А может быть это будет негодяй, который нажмёт на кнопку отправки 100 раз подряд.

И вот чтобы нам не проверять на повторную отправку формы, не очищать форму и т.д., мы можем просто форму скрыть. Ниже я расскажу как это делать.

Читать далее…