Добрый день всем,
Сейчас переделываю один модуль для Opencart и встала задача подключения к базе данных.
Есть идеи, почему не работает?
Информация, которую вытаскиваю из базы лежит в
category_description>type_prefix .
Вот изначальный код:
public function getProducts($allowed_categories, $vendor_required = false) {
$query = $this->db->query("SELECT p.*, pd.name, pd.description, m.name AS manufacturer, p2c.category_id, IFNULL(ps.price, p.price) AS price, ps.price AS special, wcd.unit AS weight_unit,
GROUP_CONCAT(DISTINCT CAST(pr.related_id AS CHAR) SEPARATOR ',') AS rel
FROM " . DB_PREFIX . "product p JOIN " . DB_PREFIX . "product_to_category AS p2c ON (p.product_id = p2c.product_id)
" . ($vendor_required ? '' : 'LEFT ') . "JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id)
LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)
...
GROUP BY p.product_id");
return $query->rows;
}
Вот изменённый:
public function getProducts($allowed_categories, $vendor_required = false) {
$query = $this->db->query("SELECT p.*, pd.name, pd.description, pd.type_prefix, m.name AS manufacturer, p2c.category_id, IFNULL(ps.price, p.price) AS price, ps.price AS special, wcd.unit AS weight_unit,
GROUP_CONCAT(DISTINCT CAST(pr.related_id AS CHAR) SEPARATOR ',') AS rel
FROM " . DB_PREFIX . "product p JOIN " . DB_PREFIX . "product_to_category AS p2c ON (p.product_id = p2c.product_id)
" . ($vendor_required ? '' : 'LEFT ') . "JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id)
LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)
LEFT JOIN " . DB_PREFIX . "category_description pd ON (p.type_prefix = pd.type_prefix)
...
GROUP BY p.product_id");
return $query->rows;
}
Буду признателен за вашу помощь!
Upd
Заметил, что неплохо бы добавить в модуль атрибут typePrefix, а то ругается поддержка Яндекса без него. Было принято решение это исправить. Так вот, добавил в базу данных новый столбец, добавил поле для категорий, в общем, теперь можно записать своё значение typePrefix в базу через менюшку категорий админки. С этим ок всё.
Однако, нужно же и вывести это значение в YML список.
В начале добавил typePrefix в разрешённые поля(изменял файл catalog/controller/feed/yamarket.php):
$allowed = array('url', 'price', 'currencyId', 'categoryId', 'picture', 'store', 'pickup', 'delivery', 'name', 'typePrefix', 'vendor', 'vendorCode', ‘model’...
Окей, работает. И теперь - момент истинны: нужно вывести информацию, которая хранится в базе по адресу category_description>type_prefix вот сюда:
$data['currencyId'] = $currency_default['code'];
$data['categoryId'] = $product['category_id'];
$data['typePrefix'] = $oc_category_description['type_prefix’]; //Вот сюда. Здесь пытался вывести значение.
$data['vendor'] = $product['manufacturer'];
$data['vendorCode'] = $product['model'];
Ну и всё. Не могу получить, хоть убейся. Разные делал варианты кода. Также пытался делать изменения в /catalog/model/yamodel.php, где идёт подключение к бд(насколько я понимаю). Тогда вообще часть с offer пропадала.
Оба файла:
12