Последовательность при добавлении объявлений

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

Последовательность при добавлении объявлений

Сообщение AndyFe » 13 мар 2013, 12:25

Помогите пожалуйста с такой штукой... В Вашем варианте добавления объявления выводится страница "Добавление объявления" с открытой первой вкладкой "Основные". Человек заполняет все что ему там предлагается и нажимает кнопку СОХРАНИТЬ. Потому что мозг у людей не работает в направлении 2,3,4 вкладок. Они не догадываются что туда тоже тыкать надо. Вообщем в результате нажатия на кнопку СОХРАНИТЬ, этого горе добавлятеля выбрасывает на страницу с его объявлением , с одним лишь названием и выбранным типом недвижимости. Человек в ступоре, в панике пытается найти тыкалку "редактировать обьявление", но найти ее не может, потому что она куда то делась.. и достать до этого объявления можно только очень длинным, окружным путем через личный кабинет, управление объявлением, и.т.д. и.т.п. Но так как не все в этой жизни проктологи, на этом этапе клиенты обычно говорят дафай дасвиданя, и идут туда, где этот процесс проще и понятней. Лирическое отступление закончилось.. Причину проблемы описал.. теперь к делу.. Помогите изменить код кнопки "СОХРАНИТЬ", изменить так, что бы она по нажатию делала сохранение и перебрасывала пользователя не на общую страницу объявления, а на страницу редактирования этого же объявления но на следующую вкладку. И так до последней вкладки на которой эта кнопка будет делать то что она сейчас и делает. Я эту кнопку назвал "Далее", так логичней.. но в коде yii я плаваю, и стандартными методами я это не осилю. Ну и так более логично с точки зрения последовательности действий. Такая метода у сбербанка на сайте.. по одной вкладке заполняешь, тебя ведут пошагово, и только на последней вкладке окончание процесса.. Раньше спрыгнешь, ничего не получишь..
По сути надо развернуть перенаправление со страницы http://ххх.хх/property/=ID= на страницу http://ххх.хх/userads/main/update/id/=ID=#tab-extended, а следующие на http://ххх.хх/userads/main/update/id/=ID=#tab-images, и http://ххх.хх/userads/main/update/id/=ID=#tab-map. И на последней оставить существующий код кнопки.
AndyFe
Прохожий
 
Сообщения: 34
Зарегистрирован: 22 фев 2013, 18:54
Очки репутации: 1

Re: Последовательность при добавлении объявлений

Сообщение andipas » 14 мар 2013, 09:20

Необходимо вносить изменения в файлах
/protected/modules/userads/views/_form.php
/protected/modules/apartments/views/backend/_form.php
/protected/modules/apartments/views/backend/__form.php

Используется следующий jquery плагин http://api.jqueryui.com/tabs/

Если у вас не получится, мы можем сделать, но это будет платно. Обращайтесь через форму контактов
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

Re: Последовательность при добавлении объявлений

Сообщение AndyFe » 14 мар 2013, 10:08

Эти файлы я уже вдоль и поперек перепахал.. Но сложность в том что не понимая логику разработчика жутко сложно найти нужное место в коде или выяснить что где входит а что где выходит.. Да и я вообще не программист.. логику и структуру могу расписать на что угодно.. а сидеть и писать руками div class="header-form-line select-num-of-rooms-inner header-small-search"... для меня проще застрелицца.. *WALL* Ничего в этом не понимаю.. :-D

Наверно мы о разном.. Я не имел ввиду доклеивать в код яву что бы "прятать" вкладки.. Пусть они все на виду будут.. если человек сообразит на них ткнуть, значит он знает что "сохранить" надо тыкать в последнюю очередь.. Мне нужна помощь в раскопках каким финдиперсовым способом осуществляется submit в Yii и можно ли в этот скрипт (Tbutton или какой он там) дописать в конце строчку типа go to /userads/main/update/id/=ID=#tab-extended. или проще забить на Yii и этот кусок кода попытаться воплотить на голом пхп.

Пересылка на нужный url после выполнения submit это катастрофа для Yii? или решается одной строчкой с двумя переменными?
AndyFe
Прохожий
 
Сообщения: 34
Зарегистрирован: 22 фев 2013, 18:54
Очки репутации: 1

Re: Последовательность при добавлении объявлений

Сообщение AndyFe » 14 мар 2013, 10:58

И к слову о логике разработчика... Ну вот куда можно было засунуть данные для формирования параметра select в форме добавления в поле выбора типа RENT, SALE и.т.д. Где в этот массив попадает волшебная буква val(), что именно РЕНТ должен быть селект.. ? Уже мозг взорвался искать где селект сделать на SALE...

Вот этот вот
Код: Выделить всё

    const TYPE_SALE 
= 1;
    const TYPE_RENT = 2;
    const TYPE_RENTING = 3;
    const TYPE_BUY = 4;
    const TYPE_CHANGE = 5;
    const TYPE_DEFAULT = 1;
 

в файле /protected/modules/apartments/models/Apartment.php
TYPE_DEFAULT это чего именно он DEFAULT Вернее для кого?
AndyFe
Прохожий
 
Сообщения: 34
Зарегистрирован: 22 фев 2013, 18:54
Очки репутации: 1

Re: Последовательность при добавлении объявлений

Сообщение andipas » 14 мар 2013, 11:14

TYPE_DEFAULT это тип который будет по умолчанию при добавлении нового объявления.

UPD. Не правильно написал. Посмотрел по коду, данная константа используется чтобы получить какие либо данные о объявлениях, которые показываются пользователю по умолчанию или же используются в коде.
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

Re: Последовательность при добавлении объявлений

Сообщение andipas » 14 мар 2013, 11:24

Чтобы при добавлении объявления был тип "продажа" по умолчанию, в файле /protected/modules/apartments/models/Apartment.php

указываем тип по умолчанию:

Код: Выделить всё

class Apartment extends ParentModel 
{
    public $type = self::TYPE_BUY;
 


ну или )

Код: Выделить всё
class Apartment extends ParentModel {
    public 
$type self::TYPE_DEFAULT;
  
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

Re: Последовательность при добавлении объявлений

Сообщение AndyFe » 14 мар 2013, 11:41

Нипаллучилось.. ни так , ни так.. где то в другом месте собака порылась.. *WALL* Поймаю придушу подлую псину... ]:->


Выпадающий список формируется где то здесь..
Код: Выделить всё
$urls = array(
    Apartment::TYPE_RENT => $this->createUrl('/userads/main/'.$this->action->id,
        array('id' => $model->isNewRecord? '': $model->id, 'type' => Apartment::TYPE_RENT)),
    Apartment::TYPE_SALE => $this->createUrl('/userads/main/'.$this->action->id,
        array('id' => $model->isNewRecord? '': $model->id, 'type' => Apartment::TYPE_SALE)),
    Apartment::TYPE_RENTING => $this->createUrl('/userads/main/'.$this->action->id,
        array('id' => $model->isNewRecord? '': $model->id, 'type' => Apartment::TYPE_RENTING)),
    Apartment::TYPE_BUY => $this->createUrl('/userads/main/'.$this->action->id,
        array('id' => $model->isNewRecord? '': $model->id, 'type' => Apartment::TYPE_BUY)),
    Apartment::TYPE_CHANGE => $this->createUrl('/userads/main/'.$this->action->id,
        array('id' => $model->isNewRecord? '': $model->id, 'type' => Apartment::TYPE_CHANGE)),
);

Yii::app()->clientScript->registerScript('redirectType', "
    $(document).ready(function() {
        $('#ap_type').live('change', function() {
            var types = "
.CJavaScript::encode($urls).";
            var type = $('#ap_type :selected').val();
            location.href=types[type];
        });
    });
    "
,
    CClientScript::POS_END); 


и не без помощи явы.. где то наверно жестоко в коде прописан тип по умолчанию..

Менять строки местами смысла нет.. СДАМ уходит на вторую строку но все равно она активная.. Где то селект на СДАМ жестко привязан
AndyFe
Прохожий
 
Сообщения: 34
Зарегистрирован: 22 фев 2013, 18:54
Очки репутации: 1

Re: Последовательность при добавлении объявлений

Сообщение andipas » 15 мар 2013, 09:22

Да я был не прав. В файле /protected/modules/apartments/controllers/backend/MainController.php

Код: Выделить всё

    public function actionCreate
(){
        $model = new $this->modelName;
        $model->active = Apartment::STATUS_DRAFT;
        $model->type = Apartment::TYPE_RENT;
        $model->save(false);

        $this->redirect(array('update', 'id' => $model->id));
    }
 


здесь можете поставить тип по умолчанию при создании объявления

В самой форме, массив с типами возвращает метод getTypesArray модели Apartment из файла /protected/modules/apartments/models/Apartment.php

Код: Выделить всё

    public static function getTypesArray
($withAll = false){
        $types = array();

        if($withAll){
            $types[0] = tt('All', 'apartments');
        }

        $types[self::TYPE_RENT] = tt('Rent', 'apartments');
        $types[self::TYPE_SALE] = tt('Sale', 'apartments');
        $types[self::TYPE_RENTING] = tt('Rent a', 'apartments');
        $types[self::TYPE_BUY] = tt('Buy a', 'apartments');
        $types[self::TYPE_CHANGE] = tt('Exchange', 'apartments');
        return $types;
    }
 
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

Re: Последовательность при добавлении объявлений

Сообщение AndyFe » 18 мар 2013, 20:20

Ураааа... заработалааа ! )) Спасибо!

Ну и для полного счастья, то что делается в файле "/protected/modules/apartments/controllers/backend/MainController.php" для админа, нужно сделать в /protected/modules/userads/controllers/MainController.php для рядовых юзеров.
AndyFe
Прохожий
 
Сообщения: 34
Зарегистрирован: 22 фев 2013, 18:54
Очки репутации: 1

Re: Последовательность при добавлении объявлений

Сообщение andipas » 19 мар 2013, 17:37

Чтобы сделать кнопку "Далее", в файле /protected/modules/apartments/views/backend/__form.php

ищем код

Код: Выделить всё

    
} else {
        echo 
'<div class="row buttons save">';
        echo 
CHtml::button($model->isNewRecord Yii::t('common''Create') : Yii::t('common''Save'), array(
            
'onclick' => "$('#Apartment-form').submit(); return false;"'class' => 'big_button',
        ));
        echo 
'</div>';
    }
?>


заменяем на

Код: Выделить всё

    } else {
        echo '<div class="row buttons save">';
        echo CHtml::button(tc('Next'), array(
            'onclick' => "js: nextTab(); return false;", 'class' => 'big_button',
            'id' => 'ap_button'
        ));
        echo '</div>';
    }
?>

<script type="text/javascript">
    var currentTab = 0;
    var countTab = <?php echo (in_array($model->type, array(Apartment::TYPE_RENTINGApartment::TYPE_BUY))) ? 3?>

    function nextTab(){
        currentTab++;
        if(currentTab > countTab){
            $('#Apartment-form').submit();
            return false;
        }

        if(currentTab == countTab){
            $('#ap_button').attr('value', '<?php echo $model->isNewRecord Yii::t('common''Create') : Yii::t('common''Save'); ?>');
        }
        $('#tabs').tabs('select', currentTab);
    }
</script>


В админке "Управлении переводами", переводим слово Next.
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

След.

Вернуться в Вопросы и помощь по изменениям

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

cron