Вывод полей «Справочники» на странице объявления
Добавлено:
21 фев 2019, 10:45
sdelkadrom
В редакторе форм вывод полей «Справочники» вынесли на вкладку «основное». На странице объявления «Справочники» выводятся на вкладке «основное» в таблице, так же как и остальные поля. Необходимо вывести справочники не в таблице, а в отдельном блоке, под ней, на вкладке «основное». Подскажите, как это сделать?
Re: Вывод полей «Справочники» на странице объявления
Добавлено:
21 фев 2019, 13:36
Xpycm
файл 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);
}
Не тестировал, но должно работать.
Re: Вывод полей «Справочники» на странице объявления
Добавлено:
25 фев 2019, 19:10
Xpycm
Вместо
- Код: Выделить всё
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);
}
Re: Вывод полей «Справочники» на странице объявления
Добавлено:
25 фев 2019, 19:12
Xpycm
В итоге в файле 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>
Проверил. Работает