Страница 1 из 1

Насчет добавления объявлений на ORE 1.3

СообщениеДобавлено: 30 окт 2013, 05:52
vanred79
Добрый день! Хотел уточнить поправимо ли следующее: если пользователь не авторизован и нажимает кнопку "Добавить объявление" его кидает на форму авторизации, что логично, но после того, как он авторизовался, он попадает в личный кабинет, а не в форму добавления объявления. Для того, чтобы добавить объявление приходится повторно нажать "добавить объявление", что не удобно. Технически возможно сделать, чтобы при нажатии "добавить объявление", после авторизации кидало в форму добавления объявления? Если, не сложно делается, то подскажите как, ну если сложно буду заказывать потом.

Re: Насчет добавления объявлений на ORE 1.3

СообщениеДобавлено: 30 окт 2013, 10:31
Xpycm
Добрый день.
Посмотрите в сторону расширения для Yii - https://github.com/yiiext/set-return-url-filter

Re: Насчет добавления объявлений на ORE 1.3

СообщениеДобавлено: 30 окт 2013, 17:36
vanred79
Xpycm писал(а):Добрый день.
Посмотрите в сторону расширения для Yii - https://github.com/yiiext/set-return-url-filter


Добрый день Хруст!
Поправьте пожалуйста если, что не правильно понял в инструкции:
1) скачать и распаковать архив yiiext / set-return-url-filter в папку protected/extensions
2) в файл protected/config/main.php вставить следующий код:
Код: Выделить всё
return array(
    
'import'=>array(
        
// …
        
'ext.yiiext.filters.setReturnUrl.ESetReturnUrlFilter',
    ),
    
// …
); 


3) protected/controllers/SiteController.php добавить следующую функцию:
Код: Выделить всё
function filters() {
    return array(
        
'accessControl',
        

        
array(
            
'ESetReturnUrlFilter',
            
// Use for spcified actions (index and view):
            // 'ESetReturnUrlFilter + index, view',
        
),
    );

4) встввить Вот этот код
Код: Выделить всё
$this->redirect(Yii::app()->user->returnUrl); 
в protected/modules/userads/views create.php

Хруст, если я не ошибся и этот код
Код: Выделить всё
$this->redirect(Yii::app()->user->returnUrl); 
действительно в файл protected/modules/userads/views create.php добавлять, то в какое место?
Код: Выделить всё
<h1>Добавление объявления</h1>
<?
php

$this
->widget('zii.widgets.CMenu', array(
    
'items' => array(
        array(
'label'=>'Управление объявлениями''url'=>array('index')),
    )
));

$this->renderPartial('_form',array(
    
'model'=>$model,
    
'categories' => $categories,
));
 

Re: Насчет добавления объявлений на ORE 1.3

СообщениеДобавлено: 30 окт 2013, 18:28
vanred79
По ходу я, чо то не правильно понял в инструкции результат :" Fatal error: Class 'ESetReturnUrlFilter' not found in /var/www/v-7183/data/www/nedvizhimostpro.kz/framework/YiiBase.php on line 219" :-)

Re: Насчет добавления объявлений на ORE 1.3

СообщениеДобавлено: 31 окт 2013, 07:16
Xpycm
Инструкция по установке не совсем корректна.

В папке protected/extensions создайте папку setReturnUrl.
В получившийся каталог protected/extensions/setReturnUrl закопируйте все файлы из архивной папки 'set-return-url-filter-master'. Т.е в protected/extensions/setReturnUrl должны быть только файлы (никаких папок).

В секции 'import' файла protected\config\main.php
замените текущий:
Код: Выделить всё
'ext.yiiext.filters.setReturnUrl.ESetReturnUrlFilter'

на:
Код: Выделить всё
'ext.setReturnUrl.ESetReturnUrlFilter'

Re: Насчет добавления объявлений на ORE 1.3

СообщениеДобавлено: 31 окт 2013, 08:07
vanred79
Доброе утро Хруст! А вот этот код
Код: Выделить всё
$this->redirect(Yii::app()->user->returnUrl);  
в какой файл вставлять? В protected modules/userads/views/create.php вставил, чувствую не сюда надо :-)

Re: Насчет добавления объявлений на ORE 1.3

СообщениеДобавлено: 31 окт 2013, 08:33
Xpycm
В метод actionLogin() файла protected\controllers\SiteController.php

Вместо:

Код: Выделить всё
if (!Yii::app()->user->getState('returnedUrl')) {
    
$this->redirect(array('/usercpanel/main/index'));
} else {
    
$this->redirect(Yii::app()->user->getState('returnedUrl'));
}
 


Будет примерно так:

Код: Выделить всё
if (!Yii::app()->user->returnUrl) {
    
$this->redirect(array('/usercpanel/main/index'));
} else {
    
$this->redirect(Yii::app()->user->returnUrl);  

Re: Насчет добавления объявлений на ORE 1.3

СообщениеДобавлено: 31 окт 2013, 09:17
vanred79
Xpycm писал(а):В метод actionLogin() файла protected\controllers\SiteController.php

Вместо:

Код: Выделить всё
if (!Yii::app()->user->getState('returnedUrl')) {
    $this->redirect(array('/usercpanel/main/index'));
}
 else {
    $this->redirect(Yii::app()->user->getState('returnedUrl'));
}
 


Будет примерно так:

Код: Выделить всё
if (!Yii::app()->user->returnUrl) {
    $this->redirect(array('/usercpanel/main/index'));
}
 else {
    $this->redirect(Yii::app()->user->returnUrl);  
} 


Хруст, после вставки кода не возможно зайти на сайт, после ввода логина и пароля обратно просит их внести

Re: Насчет добавления объявлений на ORE 1.3

СообщениеДобавлено: 31 окт 2013, 09:33
Xpycm
Значит нужно добавлять исключение (фильтрацию) хранения урла логина, чтобы его не было в user->returnUrl.

Из документации https://github.com/yiiext/set-return-ur ... dme_ru.txt
Код: Выделить всё
array(
    
'ESetReturnUrlFilter',
    
// Использовать для выбранных действий (здесь index и view)
    // 'ESetReturnUrlFilter + index, view',
), 

Re: Насчет добавления объявлений на ORE 1.3

СообщениеДобавлено: 31 окт 2013, 09:47
vanred79
Большое спасибо Хруст! С Вашей помощью разобрался, работает, класс! *THUMBS UP*