Дополнительное поле в баннере

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #1 Julius123 » 17.09.2017, 15:38

Не могу понять как работает мультиязычность. Добавляю новое поле в баннеры. Вот расписал действия, которые сделал

Запрос в БД:

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

ALTER TABLE `ok_banners_images` ADD `button_title` varchar(255) NULL AFTER `url`;
ALTER TABLE `ok_lang_banners_images` ADD `button_title` varchar(255) NULL AFTER `url`;


В backend/core/BannersImageAdmin.php

После:

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

$banners_image->url = $this->request->post('url');


Вставил:

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

$banners_image->button_title = $this->request->post('button_title');


В backend/design/html/banners_image.tpl

После кода:

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

               <div class="">
                        <div class="heading_label">{$btr->banners_image_url|escape}</div>
                        <div class="">
                          <input name="url" class="form-control" type="text" value="{$banners_image->url|escape}" />
                        </div>
                    </div>


Вставил:

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

               <div class="">
                        <div class="heading_label">{$btr->banners_button_title|escape}</div>
                        <div class="">
                          <input name="button_title" class="form-control" type="text" value="{$banners_image->button_title|escape}" />
                        </div>
                    </div>


В backend/lang/ru.php в самый конец файла вставил:

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

$backend_translations->banners_button_title = 'Название кнопки';


В backend/lang/en.php в самый конец файла вставил:

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

$backend_translations->banners_button_title = 'Button name';


Поле пишется в базу данных, но не пишется в таблицу мультиязычности и не отображается поле. Подскажите что я упустил?

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #2 korshunov » 18.09.2017, 06:31

Наверняка в api/Banners.php надо, чтоб новое поле в запросе было...

Как это делать, с ходу не совсем ясно. ТО ли просто вставлять в список, то ли вставлять через языковые поля. А может, и там и там...

Подобный вопрос возникал в теме
viewtopic.php?f=9&t=177&p=817#p817

Там многоуважаемая поддержка обещала
OkayCMS писал(а):В ближайшее время сделаем подобные инструкции.

С тех пор прошло уже более года. В той теме время от времени говорится про актуальность, поддержка реагирует вяло, лишь бодро раздавая обещания...

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #3 Julius123 » 18.09.2017, 15:51

korshunov писал(а):Наверняка в api/Banners.php надо, чтоб новое поле в запросе было...
Это да, но я заменил что таких полей в баннерах как title, url и многих других нет в api/Banners.php и как они тогда работаю не пойму, даже если добавляю своё поле в api/Banners.php то поле нормально пишется в базу и выводится но таблицу мультиязычности значения все равно не пишутся.

Добавлено спустя 26 минут:
Все разобрался,

В api/Languages.php

Заменить строку:
$fields['banners_images'] = array('name', 'alt', 'title', 'description', 'url');

На:
$fields['banners_images'] = array('name', 'alt', 'title', 'button_title', 'description', 'url');

в api/banners.php поле добавлять не нужно в выборку


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 17 гостей