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

[Решено] Вывести из БД данные в продукт


Recommended Posts

Добрый день!

 

Не силен в php.

 

Вообщем я создал в админке вкладку и в ней заношу специфические данные, которые потом будут выводиться в карточке товара

 

В бд создал таблицу

 

oc_product_example

- product_example_id

- product_id

- example

- sord_order

 

Прописал как смог для админки controller и model, данные добавляются, обновляются, в бд заносятся.

 

Но вот вывести их в карточку товара почему-то не получается, что нужно прописать для их вывода?

 

Помогите пожалуйста, 2 день ничего не выходит :( 

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


Перефразирую... Как делали вывод на мордп и что именно не получилось?

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


Перефразирую... Как делали вывод на мордп и что именно не получилось?

 

Данные добавляю пути до картинок

 

admin/model/product/product.php

 

public function getProductexamples($product_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_example WHERE product_id = '" . (int)$product_id . "'");
 
return $query->rows;
}
 

admin/controller/product/product_form.php

 

if (isset($this->request->post['product_example'])) {
$product_examples = $this->request->post['product_example'];
} elseif (isset($this->request->get['product_id'])) {
$product_examples = $this->model_catalog_product->getProductexamples($this->request->get['product_id']);
} else {
$product_examples = array();
}
 
$this->data['product_examples'] = array();
 
foreach ($product_examples as $product_example) {
if ($product_example['example'] && file_exists(DIR_IMAGE . $product_example['example'])) {
$example = $product_example['example'];
} else {
$example = 'no_image.jpg';
}
 
$this->data['product_examples'][] = array(
'example'      => $example,
'exampleThumb'      => $this->model_tool_image->resize($example, 100, 100),
'sort_order' => $product_example['sort_order']
);
}
 
$this->data['no_example'] = $this->model_tool_image->resize('no_image.jpg', 100, 100);
 
admin/view/template/catalog/product.php
 
<?php foreach ($product_examples as $product_example) { ?>
<?php echo $product_example['example']; ?>
<?php echo $product_example['exampleThumb']; ?>
<?php } ?>
Змінено користувачем smmaxim
Надіслати
Поділитися на інших сайтах


Так для каталога (витрины) отдельные контролеры и модели. Они находятся в папке catalog. Вам нужно:

  1. Добавить в модели получение данных из бд. catalog/model/catalog/product.php
  2. В контроллере товара получить данные из модели catalog/controller/product/product.php и добавить их в массив $this->data либо $data для версии 2.x чтобы они были доступны в шаблоне
  3. В шаблоне вывести эти данные catalog/view/theme/название-темы/template/product/product.tpl

 К примеру:

  1. В модель добавили новую функцию getProductexamples($product_id) 
  2. В контроллере получаем данные из модели $this->data['product_examples] = $this->model_catalog_product->getProductexamples($product_id); (код я привел для примера)
  3. В шаблоне выводим var_dump($product_examples);
Змінено користувачем halfhope
Надіслати
Поділитися на інших сайтах

 

Так для каталога (витрины) отдельные контролеры и модели. Они находятся в папке catalog. Вам нужно:

  1. Добавить в модели получение данных из бд. catalog/model/catalog/product.php
  2. В контроллере товара получить данные из модели catalog/controller/product/product.php и добавить их в массив $this->data либо $data для версии 2.x чтобы они были доступны в шаблоне
  3. В шаблоне вывести эти данные catalog/view/theme/название-темы/template/product/product.tpl

 К примеру:

  1. В модель добавили новую функцию getProductexamples($product_id) 
  2. В контроллере получаем данные из модели $this->data['product_examples] = $this->model_catalog_product->getProductexamples($product_id); (код я привел для примера)
  3. В шаблоне выводим var_dump($product_examples);

 

 

Спасибо, попробую и отпишусь!

 

Это в админке, у вас же там работает?

 

В админке да работает, но не могу вывести в карточку товара, туплю! )) 

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


halfhope

 

Огромное человеческое спасибо!   :eek:

 

Заработало, удалось вывести)))

 

Возможно потом если не поленюсь, оформлю в виде vqmod модуля и выложу на форум!

 

Всем хорошего дня и отличного настроения  ;)

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


Еще одна неразбериха осталась

 

У меня модуль для отображения категорий не совсем снандартный (bosshomefilter)

 

у него нет модуля, есть контроллер 

 

catalog/controller/module/boss_homefilter.php

 

class ControllerModuleBossHomefilter extends Controller {

protected function index($setting) {
static $module = 0;

$this->document->addScript('catalog/view/javascript/jquery/tabs.js');
$this->document->addScript('catalog/view/javascript/jquery/jquery.myjcarousel.js');
if (file_exists('catalog/view/theme/' . $this->config->get('config_template') . '/stylesheet/boss_homefilter.css')) {
$this->document->addStyle('catalog/view/theme/' . $this->config->get('config_template') . '/stylesheet/boss_homefilter.css');
} else {
$this->document->addStyle('catalog/view/theme/default/stylesheet/boss_homefilter.css');
}

$this->data['scroll'] = $setting['scroll'];
$this->data['use_scrolling_panel'] = $setting['use_scrolling_panel'];
$this->data['use_tab'] = $setting['use_tab'];
$this->data['button_cart'] = $this->language->get('button_cart');
$this->data['template'] = $this->config->get('config_template');
$this->data['button_wishlist'] = $this->language->get('button_wishlist');
$this->data['button_compare'] = $this->language->get('button_compare');


// tab
$this->load->model('catalog/product');

$this->load->model('tool/image');

$this->data['tabs'] = array();

$tabs = array();
$tabs = $this->config->get('boss_homefilter_tab');
if (isset($tabs)) {
foreach ($tabs as $tab) {
$results = array();
if ($tab['filter_type'] == "popular") {
$results = $this->model_catalog_product->getPopularProducts($setting['limit']);
}
if ($tab['filter_type'] == "special") {
$data = array(
'sort' => 'pd.name',
'order' => 'ASC',
'start' => 0,
'limit' => $setting['limit']
);
$results = $this->model_catalog_product->getProductSpecials($data);
}
if ($tab['filter_type'] == "bestseller") {
$results = $this->model_catalog_product->getBestSellerProducts($setting['limit']);
}
if ($tab['filter_type'] == "lastest") {
$results = $this->model_catalog_product->getLatestProducts($setting['limit']);
}
if ($tab['filter_type'] == "category") {
$data = array(
'filter_category_id' => $tab['filter_type_category'],
'sort' => 'pd.name',
'order' => 'ASC',
'start' => 0,
'limit' => $setting['limit']
);
$results = $this->model_catalog_product->getProducts($data);
}

$products = array();

foreach ($results as $result) {
if ($result['image']) {
$image = $this->model_tool_image->resize($result['image'], $setting['image_width'], $setting['image_height']);
} else {
$image = false;
}

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$price = false;
}

if ((float)$result['special']) {
$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$special = false;
}

if ($this->config->get('config_review_status')) {
$rating = $result['rating'];
} else {
$rating = false;
}

$products[] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
'weight' => round($result['weight'], 2),
'weight_class_id' => $result['weight_class_id'],
'price' => $price,
'special' => $special,
'rating' => $rating,
'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']),
);
}

$this->data['tabs'][] = array(
'title' => $tab['title'][$this->config->get('config_language_id')],
'products' => $products
);
}
}
// end tab

$this->data['module'] = $module++;

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/boss_homefilter.tpl')) {
$this->template = $this->config->get('config_template') . '/template/module/boss_homefilter.tpl';
} else {
$this->template = 'default/template/module/boss_homefilter.tpl';
}

$this->render();
}
}
?>

 

Что мне прописать в контроллере, что бы в категории отображалась моя запись?

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


Гість
Ця тема закрита для публікації повідомлень.
  • Зараз на сторінці   0 користувачів

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

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

Important Information

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