Автор Тема: Дополнительное поле HTML в значения характеристик  (Прочитано 482 раз)

24 Март 2017, 14:51:01
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Стоит задача создать поле c описанием значения характеристик. Само поле добавил, но данные этого поля не сохраняются. Кто-то решал такую задачу на Prestashop 1.6 ?

24 Март 2017, 14:57:45
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Обычный алгоритм, нужно будет добавить в таблицу, класс, контроллер и шаблон.
24 Март 2017, 16:58:48
Ответ #2
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ну собственно это уже сделано, как на картинке показано. Но не сохраняются данные в базу.

Внёс в базу

ALTER TABLE `ps_feature_value_lang` ADD `value_description` text AFTER `value`;
В AdminFeaturesController.php в RenderView

                'value_descripton_value' => array(
                    'title' => $this->l('Value Description'),
                    'align' => 'center',
                    'class' => 'fixed-width-xs'
                ),

В AdminFeaturesController.php в RenderForm

               array(
                    'type' => 'textarea',
                    'label' => $this->l('Value Descripton'),
                    'name' => 'value_descripton',
      'autoload_rte' => true,
                    'lang' => true,
      'rows' => 10,
      'cols' => 100,
      'hint' => $this->l('Invalid characters:').' <>;=#{}'
                )

В AdminFeaturesController.php в initFormFeatureValue

                array(
                    'type' => 'textarea',
                    'label' => $this->l('Value Descripton'),
                    'name' => 'value_descripton',
      'autoload_rte' => true,
                    'lang' => true,
      'rows' => 10,
      'cols' => 100,
      'hint' => $this->l('Invalid characters:').' <>;=#{}'
                ),

В FeatureValue.php

   /** @var string */
           public $value_descripton;

В FeatureValue.php в public static $definition

    'value_description' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml'),

24 Март 2017, 17:55:57
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Файл class_index.php удалили после изменений?
24 Март 2017, 19:20:39
Ответ #4
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
24 Март 2017, 19:39:00
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
В FeatureValue.php
/** @var string */
public $value_descripton;

public static $definition = array(...
24 Март 2017, 20:02:29
Ответ #6
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
30 Март 2017, 04:36:01
Ответ #7
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Неужели такое до меня никто не делал?
30 Март 2017, 10:57:56
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Неужели такое до меня никто не делал?
Для чего это делать? Специфическая задача. Мало кому пригодиться.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Март 2017, 19:50:46
Ответ #9
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пригодится может многим. Вот, например, я решаю тем самым вопрос с сериями производителей через характеристики. Это поле мне нужно для вывода описания такой серии.
04 Апрель 2017, 00:49:26
Ответ #10
  • Пользователь
  • **
  • Сообщений: 73
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нашёл ошибку, теперь всё работает. Но осталась проблема {$value_description} не выводит эту инфу через tpl файл.  :(
04 Апрель 2017, 10:09:48
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В контроллере нужно определить переменную "value_description".