Автор Тема: Добавить поле товара  (Прочитано 2615 раз)

15 Октябрь 2015, 13:58:32
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Делайте как написано в http://prestashop-forum.ru/index.php/topic,2835.0.html.
Удалите все что вы делали.
1.  Добавить новое поле в таблицу
ALTER TABLE `ps_product_lang`ADD COLUMN `myvar` VARCHAR(255) NULL DEFAULT NULL
2. Добавить новое поле в класс /classes/Product.php
public $myvar;

            /* Lang fields */
            'meta_description' =>            array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
            .......................
            'available_later' =>            array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'IsGenericName', 'size' => 255),
             'myvar' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),

3.  В файле  admin/themes/default/template/controllers/products/informations.tpl там где нужно показать новое значение
<div class="form-group">
<div class="col-lg-1"><span class="pull-right">{include file="controllers/products/multishop/checkbox.tpl" field="myvar" type="default" multilang="true"}</span></div>
<label class="control-label col-lg-2 required" for="myvar_{$id_lang}">
<span class="label-tooltip" data-toggle="tooltip" title="{l s='The public myvar for this product.'} {l s='Invalid characters:'} &lt;&gt;;=#{}">
{l s='My var'}
</span>
</label>
<div class="col-lg-5">
{include file="controllers/products/input_text_lang.tpl"
languages=$languages
input_class="{$class_input_ajax}{if !$product->id || Configuration::get('PS_FORCE_FRIENDLY_PRODUCT')}copy2friendlyUrl{/if} updateCurrentText"
input_value=$product->myvar
input_name="myvar"
required=true
}
</div>
</div>

Это все что нужно сделать для показа поля в адимнке и сохранении его в бд. Поле показывает, значение сохраняет. Я проверил, сделал точно так и у меня все сохраняется.
15 Октябрь 2015, 14:12:09
Ответ #16
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, все заработало. Ошибка была в объявлении переменной в product.php

Объявлял в самом конце. И видать объявление вышло за пределы 'fields' => array(