Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Работа модуля Captcha
http://forum.kohanaframework.su/viewtopic.php?f=31&t=768
Страница 1 из 1

Автор:  wonderatom [ 15 ноя 2013, 23:15 ]
Заголовок сообщения:  Работа модуля Captcha

Здравствуйте! Сразу хочу поблагодарить за уроки и за сайт - очень помогает. А по поводу вопроса... С коханой работаю всего одну неделю и за это время так и не удалось добиться нормальной работы модуля Captcha. Во-первых, она просто банально не отображается, а во-вторых очень странный путь к картинке, который начинается с /false/captcha/default.
Скриншот
Подобный false у меня появляется при работе с html хелпером для создания форм. В чем может быть проблема?
Мой код для вызова каптчи.
Вид:
Код:
<div class="column2">
     <?=$captcha?>
     <!--<img src="/captcha/default" width="200" height="50" alt="Captcha" class="captcha">--> //приходится вручную писать путь
</div>

Контроллер index:
Код:
class Controller_Index extends Controller_Base 
{
    public function before()
    {
        parent::before();

        //Вывод в шаблон
        $this->template->menu = $this->widget_load('testmenu');

    }

    public function action_index()
    {
        $captcha = Captcha::instance();
        $this->template->captcha = $captcha;

        $block_center = View::factory('v_index');

        //Вывод в шаблон
      $this->template->page_title = 'Главная';
    }
}

Контроллер base:
Код:
class Controller_Base extends Controller_Template
{
    //Базовый шаблон
    public $template = 'v_test';

    //Папка для контроллеров виджетов
    public $widgets_folder = 'widgets';

    public function before()
    {
        parent::before();

        $settings = Kohana::$config->load('settings');

        //Вывод в шаблон
        $this->template->site_name = $settings->site_name;
        $this->template->site_description = $settings->site_description;
        //$this->template->top_menu = $this->widget_load('topmenu');
        //$this->template->top_menu = Request::factory('widgets/topmenu')->execute();
        //$this->template->cart = Request::factory('widgets/cart')->execute();
        $this->template->page_title = null;

        // Получаем стили
       // $this->template->styles = array('media/css/style.css');
        $this->template->styles = array('media/css/normalize.min.css', 'media/css/main.css');

        $this->template->scripts = array();

        //Получаем блоки
        $this->template->block_left = null;
        $this->template->block_center = null;
        $this->template->block_right = null;
    }

    public function widget_load($widget)
    {
        $path = "$this->widgets_folder/$widget";
        return Request::factory($this->widgets_folder . '/' . $widget)->execute();

    }
}

Версия Kohana 3.3. Модуль скачал с от сюда.
Где-то читал, что нужно сделать так, чтобы файлы и каталоги модуля начинались с большой буквы, но это не помогло. Есть еще какие-то варианты?

Автор:  WinterSilence [ 16 ноя 2013, 13:56 ]
Заголовок сообщения:  Re: Работа модуля Captcha

https://github.com/WinterSilence/kohana-captcha попробуй эту версию, тоже не торт, но вполне работоспособна

Автор:  wonderatom [ 16 ноя 2013, 15:28 ]
Заголовок сообщения:  Re: Работа модуля Captcha

WinterSilence писал(а):
https://github.com/WinterSilence/kohana-captcha попробуй эту версию, тоже не торт, но вполне работоспособна

К сожалению, вообще не запускается.. И я впервые вижу подобную ошибку
А еще вопрос по поводу роутов в файле init.php
Код:
if ( ! Route::cache())
{
    // Catch-all route for Captcha classes to run
    Route::set('captcha', 'captcha(/<group>)', array(
        'group' => '[\w]+',
    ))
        ->defaults(array(
            'controller' => 'Captcha',
            'action'     => 'index',
            'group'      => 'default',
        ));
}

Его нужно вставлять в bootstrap.php? В любом случае, я пробовал прописывать и не прописывать и все равно выдает ошибку.
А еще, вдруг может Вы знаете, по поводу моего второго вопроса с url, в котором почему-то добавляется в путь /false/.

Автор:  WinterSilence [ 16 ноя 2013, 15:49 ]
Заголовок сообщения:  Re: Работа модуля Captcha

какая версия php? роут никуда вставлять не надо, код из init.php запускается при загрузке модуля

Автор:  wonderatom [ 16 ноя 2013, 16:14 ]
Заголовок сообщения:  Re: Работа модуля Captcha

WinterSilence писал(а):
какая версия php? роут никуда вставлять не надо, код из init.php запускается при загрузке модуля

5.3

Автор:  WinterSilence [ 16 ноя 2013, 16:18 ]
Заголовок сообщения:  Re: Работа модуля Captcha

странно, у меня работает нормально, и не только у меня http://forum.kohanaframework.org/discus ... ment_80185 . попробуй удалить слово abstract перед названием класса

Автор:  wonderatom [ 16 ноя 2013, 17:00 ]
Заголовок сообщения:  Re: Работа модуля Captcha

WinterSilence писал(а):
странно, у меня работает нормально, и не только у меня http://forum.kohanaframework.org/discus ... ment_80185 . попробуй удалить слово abstract перед названием класса

Оказывается, что наоборот класс Captcha не был объявлен abstract (по ссылке, которую вы мне дали, у парня такая же проблема была). Но! У него картинка появилась, а у меня нет. Мне даже не верится, что уже и получится его когда-то запустить: ) Уже столько вариантов перепробовал.. Жаль, что мой уровень пхп еще слишком низкий, чтобы понимать всю работу модуля в целом.
Что примечательно, в этот раз можно запускать модуль напрямую, а не через вручную написанный тег <img> и путь картинки будет нормальным. А чуть выше вызов формы с чертовым /false/../. Скриншот
Код:
    <?=Form::open('/index/add', array('class' => 'clearfix'));?>
<!--<form action="/index/add" method="post" id="contact" accept-charset="utf-8" enctype="multipart/form-data" class="clearfix">-->
            <div class="column2">
                <?=$captcha->render();?>
<!--                <img src="/captcha/default" width="200" height="50" alt="Captcha" class="captcha">-->
            </div>

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/