Вот и кончилась зима, всех с первым днем Весны!
Давно лежали на полке пара вещей и, наконец, удалось привести их в порядок и добавить к плагину. Описание того, что в плагине уже есть здесь: https://altocms.ru/blog/extensions/374.html , а добавлены же были следующие вещи:
- 1. Модуль склонения слов
- 2. Капча от Yii
Еще раз напомню, плагин не есть рабочая версия, все, что там – экспериментальный код, и повод для обсуждения.
Модуль склонения
Обертка для Яндекс.Склонятора http://habrahabr.ru/post/39327/, которая позволяет получать падежи слов. Реализован как статический метод, что позволяет его использовать как в PHP-коде так и в TPL-шаблонах.Вот такой код, например выведет фразу «У Ивана 28 друзей»
У {P::L('Иван', 3)} 28 друзей.
Склонение слова получается функцией P::L('Иван', 3), где первым параметром склоняемое слово, а вторым номер падежа (Кто? Что? — 1, Кого? Чего? — 2, Кому? Чему? — 3, Кого? Что? — 4, Кем? Чем?— 5, О ком? О чем?— 6). Все что Вам нужно – это определить падеж слова, который нужно получить.
У модуля есть настройки, которые позволяют задать один из четырех режимов его работы:
- — 'only_ya' — только через yandex. Результат склонения возвращается только от Яндекса, а если последний не доступен, то слово выводится в начальном виде.
- — 'only_bd' — только по БД. Каждое полученное от Яндекса слово заносится в БД, а после, если вызывается повторно – берется из нее.
- — 'both' — совмещенный режим. Если слова нет в базе денных – оно берется у Яндекса.
- — 'no' – отключено. Все слова выводятся без склонения.
Есть минус, статус Яндекс.Склонятора не определен, нет информации о правилах его использования, когда он закроется вообще или будет вечно, сколько запросов в сутки он отдаст и т.д.
Но есть и плюсы.
- — Можно строить правильные, с точки зрения русского языка фразы в письмах пользователям и на сайте.
- — Можно генерировать красивый СЕО текст.
Капча от Yii
Позволяет заменить стандартную капчу той, что идет в составе Yii. Для этого в плагине нужно переопределить экшен 'ActionCaptcha' protected $aDelegates = [
'template' => [],
'action' => [
'ActionCaptcha',
],
];
А в родном экшене Alto (common/classes/actions/ActionCaptcha.class.php) закомментировать строку
//F::IncludeLib('kcaptcha/kcaptcha.php');
После этого капча станет выглядеть вот так:
Вот и всё.
Всем удачной работы!
6 комментариев
Хмм… а вот капчу бы тем не менее хотелось поменять… Есть какой-нибудь несложный способ но без экспериментального кода?
1. сделайте пустой плагин и перенесите в него:
— common/plugins/funcpack/classes/actions/ActionCaptcha.class.php
— папку common/plugins/funcpack/classes/kcaptcha
2. В основном файле плагина добавьте делегата
3. В родном экшене Alto (common/classes/actions/ActionCaptcha.class.php) закомментируйте строку
4. Активируйте созданный плагин. Вроде все должно заработать сразу, но лучше эпспирементируйте на тестовом сервере.