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

Вывод нового параметра в widgetApartments_list.php

СообщениеДобавлено: 25 янв 2019, 13:49
mactufill
Здравствуйте.
Суть такая в табличном выводе объявлений нужно добавить еще один пункт районы, созданный с помощью модуля редактор форм. Параметр районы выбирается из списка (но там список со множественным выбором ) при добавлении объявления .
В базе данных значения записываются в таблице ore_kv_apartment_reference_values (которые и нужно вывести в зависимости от выбранного пункта при заполнении объявления).
В таблице ore_kv_apartment нет параметра rajon_goroda, он находится в трех других таблицах ore_kv_search_form(которая отвечает за поиск по всей видимости) и в ore_kv_translate_message, ore_kv_formdesigner.

другие параметры я выводил просто потому что не силен не в Yii не в PHP:
Код: Выделить всё
array(
                            'header' => tt('№ Дома', 'apartments'),
                            'type' => 'raw',
                            'value' => '$data->_doma',
                            'htmlOptions' => array('class' => 'ap-view-table-doma'),
                        ),

Но как быть с выводом других параметров не представляю.
Подскажите пожалуйста если кому не сложно.
Версия Open Real Estate PRO V1.19.0

Re: Вывод нового параметра в widgetApartments_list.php

СообщениеДобавлено: 25 янв 2019, 15:33
andipas
Для вывода таких значений потребуются доработки.

В файле protected/helpers/HApartment.php нужно добавить функцию если ее там нет, если есть ничего добавлять не нужно:
Код: Выделить всё

public static function getReferenceForCategory
($adId, $catId)
{
    $sql = '
        SELECT    style, type,
                reference_categories.title_'
 . Yii::app()->language . ' as category_title,
                reference_values.title_'
 . Yii::app()->language . ' as value,
                reference_categories.id as ref_id,
                reference_values.id as ref_value_id
        FROM    {{apartment_reference}} reference,
                {{apartment_reference_categories}} reference_categories,
                {{apartment_reference_values}} reference_values
        WHERE    reference.apartment_id = "'
 . intval($adId) . '"
                AND reference_categories.id = "'
 . intval($catId) . '"
                AND reference.reference_id = reference_categories.id
                AND reference.reference_value_id = reference_values.id
        ORDER BY reference_categories.sorter, reference_values.sorter'
;

    return Yii::app()->db->createCommand($sql)->queryAll();
}
 


В модели protected/modules/apartments/models/Apartment.php добавьте функцию
Код: Выделить всё

    public function getHtmlArea
(){
        $dataRef = HApartment::getReferenceForCategory($this->id, 17);
        $html = '';
        if($dataRef){
            $refTitle = $dataRef[0]['category_title'];
            $html .= '<h4>'.$refTitle.'</h4>';
            $html .= '<ul>';
            foreach($dataRef as $ref){
                $html .= '<li>'.$ref['value'].'</li>';
            }
            $html .= '</ul>';
        }
        return $html;
    }
 

цифру 17 поменяйте на id категории районы из таблицы ore_kv_apartment_reference_categories

В файле themes/classic/views/modules/apartments/views/widgetApartments_list.php добвьте

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

                        array
(
                            'header' => tt('Район', 'apartments'),
                            'type' => 'raw',
                            'value' => '$data->getHtmlArea()'
                        ),
 

Re: Вывод нового параметра в widgetApartments_list.php

СообщениеДобавлено: 25 янв 2019, 21:43
mactufill
andipas, спасибо за ответ.
Но не работает почему-то, никаких ошибок просто пустые поля.

Re: Вывод нового параметра в widgetApartments_list.php

СообщениеДобавлено: 28 янв 2019, 09:43
andipas
mactufill писал(а):andipas, спасибо за ответ.
Но не работает почему-то, никаких ошибок просто пустые поля.


Из аз ошибки в 2 примере кода, сейчас исправил.

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

$dataRef 
HApartment::getReferenceForCategory($item->id17);
 

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

$dataRef 
HApartment::getReferenceForCategory($this->id17);