DbHelp.ru
Маленький Yii блог
Комментарии
Гость: комент
Гость: wahaha
zolter: Друпал на Yii? ))
nastia: http://drupal.org/
JB: Да там просто ад)) мне всего 3 значения нужно чтобы выпадало, все равно спасибо)...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Свой текст для обновления капчи

Рубрика: Работаем с капчей (captcha)

Оцените эту статью:

Рейтинг: 0.00 (0)
5 Апр. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Yii Framework Blog img http://dbhelp.rukap Помню когда я показал свой тестовый набросок блога своему другу - ему сразу понравилась его скорость работы. Через пару дней он начал изучать Yii и задавать мне в аську интересные вопросы. 

Помню одним из таких вопросов был "как ты поменял текст на капче что б обновить код". Да, действительно, по умолчанию кнопка "обновить код" - содержит английский текст.

---

И независимо от того какой язык мы укажем в конфиге - текст все равно будет английским. Для того чтобы изменить его - я унаследовал класс капчи в компонентах. Назвал его MyCaptcha.php и имел он вот такой простой код:

     class MyCaptcha extends CCaptcha
    {
        public $buttonLabel = '<br>[новый код]';
    }

Как видите - ничего замысловатого. Я взял и задал переменной buttonLabel значение по умолчанию.

Теперь чтобы в отображении показать капчу с нашим кодом я просто пишу:

$this->widget('MyCaptcha');

И капча появляется.

Чуть пожже поковыряв API я понял что это не самый красивый вариант.
И если у нас нет в планах глубоко менять работу самой капчи - то переопределить переменную можно не наследуя клаcс. Поэтому если вы хотите по простому изменить текст на кнопке с капчей или любые другие её мелкие функции - просто используйте второй параметр в виджите CCaptcha. Т.е. в отображении вы можете просто указать:

$this->widget('CCaptcha', array('buttonLabel' => '<br>[новый код]'));

И результат будет точно такой же как в примере выше.

Используйте то что вам удобнее.

 



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

  1. Я надеюсь на эту статью обратят внимание люди которые занимаються обучением по моим урокам «Создаем блог вместе». Сегодня я обнаружил ... "Создаем блог вместе : bugfix #1"

  2. Для одного из проектов потребовалась сортировка по полям таблицы. Задача как понимаю типичная и многим приходиться её решать от проекта ... "Легкая сортировка данных из БД"

  3. Мы постоянно совершенствуем свои приложения позволяя пользователям загружать свои документы, аватарки и др. Хочешь упростить все эти функции? Читай обзор ... "Обзор дополнения CFile"

Blake-R

Было сказано: Вторник, 14 Апрель 2009

Есть ещё третий путь - через использование перевода - добавить в файл перевода группы 'yii' строку:


'Get new code' => 'Новый код',

Я делал так.

[adm] zolter

Было сказано: Вторник, 14 Апрель 2009

да тоже вариант :)

[guest] So1

Было сказано: Понедельник, 27 Апрель 2009

"Есть ещё третий путь - через использование перевода - добавить в файл перевода группы 'yii' строку:"

Очень не красивый способ.
Я сделал сразу вторым способом. Жалко что в классе CCaptcha нет допустимых символов. Например, я не хочу, чтобы показывались английские буквы в моей капче, а только цифры. Мало ли - вдруг у кого то английская раскладка сломалась, ее нет, человек просто долго ищет английские буквы на клавиатуре (мы же не только блоги для программистов собираемся на Yii писать), поэтому рано или поздно человека начнет раздражжать английский текст на капче.

[adm] zolter

Было сказано: Четверг, 30 Апрель 2009

В CCaptcha или CCaptchaAction есть генератор символов капчи.
Сейчас поковыряю немного и кину статю как сделать что б были только цифры или определённые буквы.

[guest] Гость

Было сказано: Четверг, 06 Август 2009

Есть ещё третий путь - через использование перевода - добавить в файл перевода группы 'yii' строку:



'Get new code' => 'Новый код',


Я делал так.
правильный вариант, так и надо

zraurum

Было сказано: Суббота, 08 Август 2009

Народ, а кто подскажит как продублировать функцию 'Get new code' программно. Тоесть у меня например есть комментарии они добавляются через ajax, соответсвенно страница не обновляется, но мне нужно обновить капчу. не поскажите?

[guest] Гость

Было сказано: Суббота, 08 Август 2009

Как вариант, сделать $("кнопка_обновить_капчу").click().

Оставить комментарий


Код:
Имя: