Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Пишу модуль, вопрос по подключению моделей и вывода данных товара


Recommended Posts

Привет.
Пишу свой модуль, сделал 6 файлов
 

catalog\view\theme\default\template\module\mymodul.tpl
catalog\controller\module\mymodul.php
catalog\language\russian\module\mymodul.php
admin\view\template\module\mymodul.tpl
admin\controller\module\mymodul.php
admin\language\russian\module\mymodul.php
 
Вопрос состоит в использовании имеющихся моделей
В файле контроллера catalog\controller\module\mymodul.php
Есть строчки
$this->load->model('catalog/product');  
$this->load->model('catalog/category');
$data['product_info']=$this->model_catalog_product->getProduct(41);
То есть подключаются имеющиеся модели
В файле
catalog\view\theme\default\template\module\mymodul.tpl
Дампится полученный массив
print_r($product_info);
 
В результате на сайте выводится массив $product_info для товара 41, у меня вот так:

Array
(
    [product_id] => 41
    [name] => iMac
    [description] =>  тут описание, вырезано
    [meta_title] => iMac
    [meta_h1] => 
    [meta_description] => 
    [meta_keyword] => 
    [tag] => 
    [model] => ????? 14
    [sku] => 
    [upc] => 
    [ean] => 
    [jan] => 
    [isbn] => 
    [mpn] => 
    [location] => 
    [quantity] => 977
    [stock_status] => ??? ? ???????
    [image] => catalog/demo/imac_1.jpg
    [manufacturer_id] => 8
    [manufacturer] => Apple
    [price] => 100.0000
    [special] => 
    [reward] => 0
    [points] => 0
    [tax_class_id] => 9
    [date_available] => 2009-02-03
    [weight] => 5.00
    [weight_class_id] => 1
    [length] => 0.00
    [width] => 0.00
    [height] => 0.00
    [length_class_id] => 1
    [subtract] => 1
    [rating] => 0
    [reviews] => 0
    [minimum] => 1
    [sort_order] => 0
    [status] => 1
    [date_added] => 2009-02-03 21:07:26
    [date_modified] => 2011-09-30 01:06:44
    [viewed] => 0
)
 
Собственно вопрос в том, как получить ссылку на товар, обработанную ЧПУ?
В данном примере не выводится вообще никакой ссылки, ссылки нету в $product_info
Я так понимаю надо писать свою модель и там sql запросы? Или уже это есть в движке?
В идеале я хочу модуль умеющий выводить определенные товары с определенных категорий
Спасибо
Надіслати
Поділитися на інших сайтах


$product_url = $this->url->link('product/product', 'product_id={тут_твой_product_id}');
это же видно в контроллерах, из которых ты брал пример подключения моделей и запроса к ним (категория, товар, "товарные" модули).
Надіслати
Поділитися на інших сайтах

Благодарю! Написал модуль.

Сначала вызов getCategories, потом по id категории вызов getProducts, получение массива с id товаров, ну и сама ссылка

$product_href = $this->url->link('product/product', 'product_id=' . $product['product_id']);

Немного разобрался с устройством opencart. 

 

Я использую для вывода названия товара в моем моделе запись 'model', которая в админке обозначена как "Модель", вместо 'name', потому что хочу использовать сокращенные названия товара. Наверно правильнее создавать еще одно поле в базе данных и пользоваться им? Где взять подобный пример/модуль чтобы узнать как это делать?

 

Еще вопрос есть по родному модулю категорий, по передаче переменной $category_id в шаблон /template/catalog/view/theme/default/template/module/category.tpl

В этом файле есть такие строчки, выделено красным:

<?php echo '<h1>'.$category_id.'</h1>' ?>
<div class="list-group">
  <?php foreach ($categories as $category) { ?>
 <?php if ($category['category_id'] == $category_id) { ?> 
  <a href="<?php echo $category['href']; ?>" class="list-group-item active"><?php echo $category['name']; ?></a>
  <?php if ($category['children']) { ?>
  <?php foreach ($category['children'] as $child) { ?>
  <?php if ($child['category_id'] == $child_id) { ?>
  <a href="<?php echo $child['href']; ?>" class="list-group-item active">   - <?php echo $child['name']; ?></a>
  <?php } else { ?>
  <a href="<?php echo $child['href']; ?>" class="list-group-item">   - <?php echo $child['name']; ?></a>
  <?php } ?>
  <?php } ?>
  <?php } ?>
  <?php } else { ?>
  <a href="<?php echo $category['href']; ?>" class="list-group-item"><?php echo $category['name']; ?></a>
  <?php } ?>
  <?php } ?>
</div>

Как эти переменные туда передаются? В файле модуля category.php их нету. 

Я так понимаю эти условия для сворачивания/разворачивания списка в зависимости от категории.

Если я в свой шалон пишу echo($category_id); то выдает еррор.

 

Надіслати
Поділитися на інших сайтах


>> Где взять подобный пример/модуль чтобы узнать как это делать?

О_о

ну так по примеру "name" делай еще одно поле (в "описание", таблицу product_description, - чтобы мультиязычность не потерять).

Надіслати
Поділитися на інших сайтах

Так смотрите, что в массиве передаётся, а ещё может get запросом передаватся category-id.

В этом случае с модулем категорий, разворачивание списка происходит когда category-id из массива равно category-id из get запроса.

Змінено користувачем Waha
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.