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

Поле Тип.

СообщениеДобавлено: 16 сен 2013, 11:58
qmar
Как сделать, чтобы при добавлении объявления, в поле Тип по умолчанию было "Продам"? Не могу найти этот кусок кода - <option value="1" selected="selected">Rent<....

Re: Поле Тип.

СообщениеДобавлено: 16 сен 2013, 12:48
andipas
Для версий < 1.7

в файле /protected/modules/apartments/models/Apartment.php

измените
const TYPE_DEFAULT = 1;
на
const TYPE_DEFAULT = 2;

Для пользовательской части, в файле /protected/modules/userads/controllers/MainController.php

метод actionCreate
замените строку 97 -
$model->type = Apartment::TYPE_RENT;
на
$model->type = Apartment::TYPE_SALE;

Для админки, в файле /protected/modules/apartments/controllers/backend/MainController.php

метод actionCreate
замените строку 192 -
$model->type = Apartment::TYPE_RENT;
на
$model->type = Apartment::TYPE_SALE;

Для версий >= 1.7

В фале /protected/modules/apartments/models/Apartment.php

Замените
Код: Выделить всё

        
if (param('useTypeRent'1)) {
            
$this->type Apartment::TYPE_RENT;
        }
        elseif(
param('useTypeSale'1)) {
            
$this->type Apartment::TYPE_SALE;
        }
 


на

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

        
if(param('useTypeSale'1)) {
            
$this->type Apartment::TYPE_SALE;
        } elseif (
param('useTypeRent'1)) {
            
$this->type Apartment::TYPE_RENT;
        }
 

Re: Поле Тип.

СообщениеДобавлено: 16 сен 2013, 19:04
qmar
Плюс не ставится.
Спасибо!

Re: Поле Тип.

СообщениеДобавлено: 16 сен 2013, 19:22
qmar
Уточню. Пример приведён для Куплю. Для Продам меняем const TYPE_DEFAULT = 2 и вместо BUY - SALE.
И ещё я поменял местами строки 755 и 756 в в файле /protected/modules/apartments/models/Apartment.php, чтобы уж совсем всё красиво было :).

Re: Поле Тип.

СообщениеДобавлено: 04 ноя 2013, 05:54
kymitator
Всё, сработало, сделал для админской части, большое спасибо за помощь :-)

Re: Поле Тип.

СообщениеДобавлено: 31 янв 2014, 13:30
Денис
для платной версии как сделать?

Re: Поле Тип.

СообщениеДобавлено: 31 янв 2014, 16:14
andipas
Денис писал(а):для платной версии как сделать?


Точно так же

Re: Поле Тип.

СообщениеДобавлено: 31 янв 2014, 21:26
Денис
if ($model->type != Apartment::TYPE_BUY && $model->type != Apartment::TYPE_RENTING)
больше в файлах нет

Re: Поле Тип.

СообщениеДобавлено: 01 фев 2014, 21:51
Xpycm
Для доработки продукта нужны хотя бы элементарные знания PHP+html+mysql

Человеку рекомендовал книги - viewtopic.php?f=17&t=608#p2975. Почитайте их тоже.

Вот есть файл \protected\modules\apartments\views\backend\__form_general.php
Код: Выделить всё
<div class="rowold">
    <?php echo $form->labelEx($model'type'); ?>
    <?php echo $form->dropDownList($model'type'Apartment::getTypesArray(), array('class' => 'width240''id' => 'ap_type')); ?>
    <?php echo $form->error($model'type'); ?>
</div>


Как видим массив раскрывающегося списка формируется из статического метода getTypesArray модели Apartment.
Открываем файл Apartment.php , смотрим метод getTypesArray .
Видим:
Код: Выделить всё
public static function getTypesArray($withAll false){
    
$types = array();

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

    if (
param('useTypeRent'1)) {
        
$types[self::TYPE_RENT] = tt('Rent''apartments');
    }
    if (
param('useTypeSale'1)) {
        
$types[self::TYPE_SALE] = tt('Sale''apartments');
    }
    if (
param('useTypeRenting'1)) {
        
$types[self::TYPE_RENTING] = tt('Rent a''apartments');
    }
    if (
param('useTypeBuy'1)) {
        
$types[self::TYPE_BUY] = tt('Buy a''apartments');
    }
    if (
param('useTypeChange'1)) {
        
$types[self::TYPE_CHANGE] = tt('Exchange''apartments');
    }
    return 
$types;


Перемещаем код:
Код: Выделить всё
if (param('useTypeSale'1)) {
    
$types[self::TYPE_SALE] = tt('Sale''apartments');

до:
Код: Выделить всё
if (param('useTypeRent'1)) {
    
$types[self::TYPE_RENT] = tt('Rent''apartments');


Может ещё что-то где-то надо будет подкрутить. Сам не пробовал.

Re: Поле Тип.

СообщениеДобавлено: 02 фев 2014, 06:42
Денис
спс почитаю...знаний ноль....метод тыка///КСТАТЕ НЕ РАБОТАЕТ