Вывод полей «Справочники» на странице объявления

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

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

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

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

Вывод полей «Справочники» на странице объявления

Сообщение sdelkadrom » 21 фев 2019, 10:45

В редакторе форм вывод полей «Справочники» вынесли на вкладку «основное». На странице объявления «Справочники» выводятся на вкладке «основное» в таблице, так же как и остальные поля. Необходимо вывести справочники не в таблице, а в отдельном блоке, под ней, на вкладке «основное». Подскажите, как это сделать?
sdelkadrom
Гражданин
Гражданин
 
Сообщения: 77
Зарегистрирован: 02 июн 2016, 14:25
Очки репутации: 5

Re: Вывод полей «Справочники» на странице объявления

Сообщение Xpycm » 21 фев 2019, 13:36

файл themes/навание_темы/views/modules/apartments/views/_tab_general.php

после
Код: Выделить всё
$rows = HFormEditor::getGeneralFields();


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

$referencesFields 
= array();

foreach(
$rows as $key => $tmp) {
    if ($tmp->field == 'references') {
        $referencesFields = $tmp;
        unset($rows[$key]);
        break;
    }
}


в этом же файле выводите где нужно $referencesFields следующим образом:
Код: Выделить всё

if 
(!empty($referencesFields)) {
    HFormEditor::renderViewRows($referencesFields, $data, $isPrintable);
}


Не тестировал, но должно работать.
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: Вывод полей «Справочники» на странице объявления

Сообщение sdelkadrom » 21 фев 2019, 18:39

Увы... (( Не работает...
sdelkadrom
Гражданин
Гражданин
 
Сообщения: 77
Зарегистрирован: 02 июн 2016, 14:25
Очки репутации: 5

Re: Вывод полей «Справочники» на странице объявления

Сообщение Xpycm » 25 фев 2019, 19:10

Вместо
Код: Выделить всё
if (!empty($referencesFields)) {
    
HFormEditor::renderViewRows($referencesFields$data$isPrintable);


Используйте:
Код: Выделить всё
if (!empty($referencesFields)) {
    
HFormEditor::renderViewRows([$referencesFields], $data$isPrintable);


Или, если используется php версии ниже 5.4, то:
Код: Выделить всё
if (!empty($referencesFields)) {
    
HFormEditor::renderViewRows(array($referencesFields), $data$isPrintable);
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: Вывод полей «Справочники» на странице объявления

Сообщение Xpycm » 25 фев 2019, 19:12

В итоге в файле themes\basis\views\modules\apartments\views\_tab_general.php

У меня такой код:
Код: Выделить всё
<div class="property_info_row">
    <?php
    $isPrintable 
= (isset($isPrintable)) ? $isPrintable false;

    if (
$data->canShowInView('price') && issetModule('seasonalprices') && isset($data->seasonalPrices) && $data->seasonalPrices && $data->type == Apartment::TYPE_RENT) {
        echo 
'<div class="ap-view-seasons-prices">' $this->renderPartial('//modules/seasonalprices/views/_table', array('apartment' => $data'showDeleteButton' => false), true) . '</div>';
    }

    
HFormEditor::$viewRowTemplate '<tr><td><strong>{label}:</strong></td><td>{value}</td></tr>';

    
$rows HFormEditor::getGeneralFields();

    
$referencesFields = array();

    foreach(
$rows as $key => $tmp) {
        if (
$tmp->field == 'references') {
            
$referencesFields $tmp;
            unset(
$rows[$key]);
            break;
        }
    }

    
?>
    <div class="table-responsive">
        <table class="table">
            <tbody>
                <?php
                
if ($data->deleted) {
                    
HFormEditor::renderViewRow('''<span class="deleted">' tt('Listing is deleted''apartments') . '</span>');
                }

                
HFormEditor::renderViewRow(tt('Apartment ID'), $data->id);

                
HFormEditor::renderViewRows($rows$data$isPrintable);

                
?>
            </tbody>
        </table>
    </div>
    <?php if ($data->type == Apartment::TYPE_CHANGE && $data->getStrByLang('exchange_to')): ?>
        <dt><?php echo tt('Exchange to''apartments'); ?>:</dt>
        <dd><?php echo CHtml::encode($data->getStrByLang('exchange_to')); ?></dd>
        <?php
    
endif;
    echo 
'<div class="clear"></div>';

    if (
$data->type == Apartment::TYPE_SALE && param('show_loan_calculator')  && !$isPrintable) {
        
$this->widget('application.modules.loanCalculator.components.LoanCalculatorWidget', array(
            
'amount' => $data->getPriceFrom()
        ));
        echo 
'<div class="clear"></div><br /><br />';
    }

    if (!empty(
$referencesFields)) {
        
HFormEditor::renderViewRows([$referencesFields], $data$isPrintable);
    }

    
?>
</div>


Проверил. Работает
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50


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

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

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

cron