Добавих поле "mystock" в продуктовата таблица на базата данни на prestashop. Сега искам да покажа/редактирам това поле в страницата за редактиране на продукта. Също така се актуализира, когато продуктът се актуализира.
добавете поле в страницата за редактиране на продукта на prestashop admin
Отговори (5)
Този процес изисква известна работа на стъпки. По-долу съм ги изброил.
1) Отворете класове/Product.php. Поставете public $mystock; в списъка със свойства на класа, който можете да видите след стартирането на класа.
2) Надолу във файла намерете public static $definition = array(, това ще бъде дълъг масив. Намерете 'fields' => array() в него и там ще видите всички полета на базата данни, поставени с валидиране, типове данни и т.н. Поставете вашия mystock там в този масив като друг елемент и поставете правилните валидации и типове данни, както са поставени за други полета.
3) Сега отворете adminFolder/themes/default/template/controllers/products/informations.tpl и поставете вашето поле с правилното име и id на подходящото място. Моля, обърнете внимание, че името/идентификационният номер на полето трябва да е същото като името на db полето и това, което добавихме в класа Products.php.
Това е, надявам се, че разбирате процеса и ще го накарате да работи.
Благодаря ти
това работи за мен на prestashop 1.5.4
добавете файл Product.php към \override\classes, съдържащ:
<?php
Product::$definition['fields']['mystock'] = array('type' => ObjectModel::TYPE_INT, 'validate' => 'isUnsignedInt');
class Product extends ProductCore
{
public $mystock;
}
...да предположим, че имате нужда от поле за въвеждане на число.
след това 3) от отговора на altafhussain
не забравяйте да добавите вашето поле към DB, за числово поле:
ALTER TABLE ps_product
ADD mystock
INT NOT NULL;
ps v1.5.6.1
- person Smash; 18.01.2014
Попаднах на тази статия и създадох своя компонент въз основа на нея и изглежда, че е най-чистото решение: http://nemops.com/prestashop-products-new-tabs-fields/ основно описва как да направите модул, който добавя многоезично поле в потребителски панел на страницата за редактиране на продукт.
НЯМА нужда да редактирате шаблони, основни файлове или да добавяте заместващи файлове.
Благодаря altafhussain. Трябва да добавите вашето поле към двете таблици „products_shop“ и „products“.
ALTER TABLE ps_product_shop ADD `mystock` int NOT NULL DEFAULT 0;
ALTER TABLE ps_product ADD `mystock` int NOT NULL DEFAULT 0;
Използвам ps 1.6.0.6
Най-доброто комплексно решение в четири стъпки е:
1) добавете файл Product.php към \override\classes, съдържащ:
<?php
Product::$definition['fields']['mystock'] = array('type' => ObjectModel::TYPE_INT, 'validate' => 'isUnsignedInt');
class Product extends ProductCore
{
public $mystock;
}
2) отворете adminFolder/themes/default/template/controllers/products/informations.tpl и поставете вашето поле с правилното име и id на подходящото място.
3) изтрийте файла cache/class_index.php
4) добавете вашето поле към DB, за числово поле:
ALTER TABLE ps_product ADD mystock INT NOT NULL;
[Благодаря на Bell418 за 1) и 4) и на Алтаф Хюсеин за 2)]