Последовательность при добавлении объявлений
Добавлено:
13 мар 2013, 12:25
AndyFe
Помогите пожалуйста с такой штукой... В Вашем варианте добавления объявления выводится страница "Добавление объявления" с открытой первой вкладкой "Основные". Человек заполняет все что ему там предлагается и нажимает кнопку СОХРАНИТЬ. Потому что мозг у людей не работает в направлении 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. И на последней оставить существующий код кнопки.
Re: Последовательность при добавлении объявлений
Добавлено:
14 мар 2013, 09:20
andipas
Необходимо вносить изменения в файлах
/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/Если у вас не получится, мы можем сделать, но это будет платно. Обращайтесь через форму
контактов
Re: Последовательность при добавлении объявлений
Добавлено:
14 мар 2013, 10:08
AndyFe
Эти файлы я уже вдоль и поперек перепахал.. Но сложность в том что не понимая логику разработчика жутко сложно найти нужное место в коде или выяснить что где входит а что где выходит.. Да и я вообще не программист.. логику и структуру могу расписать на что угодно.. а сидеть и писать руками div class="header-form-line select-num-of-rooms-inner header-small-search"... для меня проще застрелицца..
Ничего в этом не понимаю..
Наверно мы о разном.. Я не имел ввиду доклеивать в код яву что бы "прятать" вкладки.. Пусть они все на виду будут.. если человек сообразит на них ткнуть, значит он знает что "сохранить" надо тыкать в последнюю очередь.. Мне нужна помощь в раскопках каким финдиперсовым способом осуществляется submit в Yii и можно ли в этот скрипт (Tbutton или какой он там) дописать в конце строчку типа go to /userads/main/update/id/=ID=#tab-extended. или проще забить на Yii и этот кусок кода попытаться воплотить на голом пхп.
Пересылка на нужный url после выполнения submit это катастрофа для Yii? или решается одной строчкой с двумя переменными?
Re: Последовательность при добавлении объявлений
Добавлено:
14 мар 2013, 10:58
AndyFe
И к слову о логике разработчика... Ну вот куда можно было засунуть данные для формирования параметра 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 Вернее для кого?
Re: Последовательность при добавлении объявлений
Добавлено:
14 мар 2013, 11:14
andipas
TYPE_DEFAULT это тип который будет по умолчанию при добавлении нового объявления.
UPD. Не правильно написал. Посмотрел по коду, данная константа используется чтобы получить какие либо данные о объявлениях, которые показываются пользователю по умолчанию или же используются в коде.
Re: Последовательность при добавлении объявлений
Добавлено:
14 мар 2013, 11:24
andipas
Чтобы при добавлении объявления был тип "продажа" по умолчанию, в файле /protected/modules/apartments/models/Apartment.php
указываем тип по умолчанию:
- Код: Выделить всё
class Apartment extends ParentModel {
public $type = self::TYPE_BUY;
ну или )
- Код: Выделить всё
class Apartment extends ParentModel {
public $type = self::TYPE_DEFAULT;
Re: Последовательность при добавлении объявлений
Добавлено:
14 мар 2013, 11:41
AndyFe
Нипаллучилось.. ни так , ни так.. где то в другом месте собака порылась..
Поймаю придушу подлую псину...
Выпадающий список формируется где то здесь..
- Код: Выделить всё
$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);
и не без помощи явы.. где то наверно жестоко в коде прописан тип по умолчанию..
Менять строки местами смысла нет.. СДАМ уходит на вторую строку но все равно она активная.. Где то селект на СДАМ жестко привязан
Re: Последовательность при добавлении объявлений
Добавлено:
15 мар 2013, 09:22
andipas
Да я был не прав. В файле /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;
}
Re: Последовательность при добавлении объявлений
Добавлено:
18 мар 2013, 20:20
AndyFe
Ураааа... заработалааа ! )) Спасибо!
Ну и для полного счастья, то что делается в файле "/protected/modules/apartments/controllers/backend/MainController.php" для админа, нужно сделать в /protected/modules/userads/controllers/MainController.php для рядовых юзеров.
Re: Последовательность при добавлении объявлений
Добавлено:
19 мар 2013, 17:37
andipas
Чтобы сделать кнопку "Далее", в файле /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_RENTING, Apartment::TYPE_BUY))) ? 1 : 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.