Модуль ocmod для вывода описания производителя?

Привет всем! Такой вопрос, сражу сразу, это первый проект на opencart, прошу сразу не закидывать ссаными тряпками)): значит требуется на странице товара вывести описание производителя в таб, нашел вроде как годный модуль, добавляющий в админке описание к производителям, и выводящий это описание на странице производителя, но мне нужно выходит немного другое. Собственно код модуля вот:
<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>Manufacturer description</name>
    <code>default</code>
    <version>1.0</version>
    <author></author>
    <link></link>
    <!-- код админки -->
    <file path="admin/view/template/catalog/manufacturer_form.tpl">
	<operation>
	    <search index="0"><![CDATA[<div class="form-group">]]></search>
	    <add position="before"><![CDATA[
          <div class="form-group required">
            <label class="col-sm-2 control-label" for="input-description">Описание</label>
            <div class="col-sm-10">
              <textarea name="description" rows="5" placeholder="Описание" id="input-description" class="form-control"><?php echo isset($description) ? $description : ''; ?></textarea>
             </div>
          </div>
     
         <script type="text/javascript">
            $('#input-description').summernote({height: 100});
        </script>
            ]]></add>
	</operation>
    </file>
    <file path="admin/controller/catalog/manufacturer.php">
	<operation>
	    <search><![CDATA[$this->load->model('setting/store');]]></search>
	    <add position="before"><![CDATA[
        if (isset($this->request->post['description'])) {
            $data['description'] = $this->request->post['description'];
        } elseif (!empty($manufacturer_info)) {
            $data['description'] = $manufacturer_info['descriptionm'];
        } else {
            $data['description'] = '';
        }
            ]]></add>
	</operation>
    </file>
    <file path="admin/model/catalog/manufacturer.php">
	<operation>
	    <search><![CDATA[if (isset($data['image'])) {]]></search>
	    <add position="before"><![CDATA[
        if (isset($data['description'])) {
            $this->db->query("UPDATE " . DB_PREFIX . "manufacturer SET descriptionm = '" . $this->db->escape($data['description']) . "' WHERE manufacturer_id = '" . (int)$manufacturer_id . "'");
        }
            ]]></add>
	</operation>
    </file>
    <!-- код админки -->

    <!-- код вывода -->
    <file path="catalog/controller/product/manufacturer.php">
	<operation>
	    <search><![CDATA[$data['heading_title'] = $manufacturer_info['name'];]]></search>
	    <add position="before"><![CDATA[
            $data['description'] = html_entity_decode($manufacturer_info['descriptionm'], ENT_QUOTES, 'UTF-8');
       
            if ($manufacturer_info['image']) {
                $data['thumb'] = $this->model_tool_image->resize($manufacturer_info['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height'));
            } else {
                $data['thumb'] = '';
            }
            ]]></add>
	</operation>
    </file>
    <file path="catalog/view/theme/*/template/product/manufacturer_info.tpl">
	<operation>
	    <search><![CDATA[<h2><?php echo $heading_title; ?></h2>]]></search>
	    <add position="before"><![CDATA[
     <?php if ($description) { ?>
        <div class="row">
        <div class="col-sm-2"><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" title="<?php echo $heading_title; ?>" class="img-thumbnail" /></div>
        <div class="col-sm-10"><?php echo $description; ?></div>
      </div>
      &nbsp;<br/>&nbsp;
        <?php } ?>
            ]]></add>
	</operation>
    </file>
    <!-- код вывода -->
</modification>


Сам попытался безуспешно вывести в product.tpl, но понимаю что не до конца все правильно делаю, значит при добавлении <?php echo $description; ?> в product.tpl вылазит ошибка: Notice: Use of undefined constant manufacturer - assumed 'manufacturer' in domain\system\storage\modification\catalog\view\theme\THEMENAME\template\product\product.tpl on line 880
Так понял что проблема что не обозначил переменную, да и видимо переименовать придется $description т.к. это уже есть описание товара?! И еще правильно ли понимаю что нужно ее обозначить в catalog\controller\product\product.php ??
ps: допом еще создал колонку descriptionm тип данных: TEXT в таблице oc_manufacturer
  • Вопрос задан
  • 805 просмотров
Решения вопроса 1
zoozag
@zoozag
Opencart
Основной файл отвечающий за вывод страницы карточки товара - контроллер catalog\controller\product\product.php
Переменные, которые отображаются в шаблоне хранятся внутри объекта $data.
Т.е. если в шаблоне выводится $description в контроллере должно быть задано значение $data['description']

<file path="catalog/controller/product/product.php">
    <operation>
        <search><![CDATA[$data['heading_title'] = $product_info['name'];]]></search>
        <add position="after"><![CDATA[
            $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($product_info['manufacturer_id']);
            $data['descriptionmanufacturer'] = html_entity_decode($manufacturer_info['descriptionm'], ENT_QUOTES, 'UTF-8');
            ]]></add>
    </operation>
    </file>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы