Перейти к содержанию
ravlex

Вывод описания производителя на странице manufacturer_list

Рекомендуемые сообщения

Не получается вывести описание на manufacturer_list. На странице manufacturer_info у меня получилось вывести их таким образом файл ocmode:
 

<modification>
<id>Manufacturer Description</id>
        <code>Manufacturer-Description</code>
        <name>Manufacturer Description Extension</name>
<author><![CDATA[tabook]]></author>
<version>0.1.0</version>
    <file path="admin/language/english/catalog/manufacturer.php">
        <operation>
            <search><![CDATA[<?php]]></search>
            <add position="after"><![CDATA[$_['entry_description']  = 'Description';]]></add>
        </operation>
    </file>
    <file path="admin/language/russian/catalog/manufacturer.php">
        <operation>
            <search><![CDATA[<?php]]></search>
            <add position="after"><![CDATA[$_['entry_description']  = 'Описание';]]></add>
        </operation>
    </file>
    <file path="admin/controller/catalog/manufacturer.php">
        <operation>
            <search><![CDATA[$data['entry_name'] = $this->language->get('entry_name');]]></search>
            <add position="after"><![CDATA[$data['entry_description'] = $this->language->get('entry_description');]]></add>
        </operation>
        <operation>
            <search><![CDATA[$this->load->model('setting/store');]]></search>
            <add position="before"><![CDATA[
        $this->load->model('localisation/language');


        $data['languages'] = $this->model_localisation_language->getLanguages();


        if (isset($this->request->post['manufacturer_description'])) {
            $data['manufacturer_description'] = $this->request->post['manufacturer_description'];
        } elseif (!empty($manufacturer_info)) {
            $data['manufacturer_description'] = $this->model_catalog_manufacturer->getManufacturerDescriptions($this->request->get['manufacturer_id']);
        } else {
            $data['manufacturer_description'] = array();
        }]]></add>
        </operation>
    </file>
    <file path="admin/model/catalog/manufacturer.php">
        <operation>
            <search><![CDATA[public function getTotalManufacturers() {]]></search>
            <add position="before"><![CDATA[
public function getManufacturerDescriptions($manufacturer_id) {
        $manufacturer_description_data = array();


        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer_description WHERE manufacturer_id = '" . (int)$manufacturer_id . "'");


        foreach ($query->rows as $result) {
            $manufacturer_description_data[$result['language_id']] = array(
                'description'      => $result['description']
            );
        }


        return $manufacturer_description_data;
    }
        ]]></add>
        </operation>
        <operation>
            <search><![CDATA[$manufacturer_id = $this->db->getLastId();]]></search>
            <add position="after"><![CDATA[
        foreach ($data['manufacturer_description'] as $language_id => $value) {
            $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer_description SET manufacturer_id = '" . (int)$manufacturer_id . "', language_id = '" . (int)$language_id . "', description = '" . $this->db->escape($value['description']). "'");
        }
        ]]></add>
        </operation>
        <operation>
            <search><![CDATA[$this->event->trigger('pre.admin.manufacturer.edit', $data);]]></search>
            <add position="after"><![CDATA[
        $this->db->query("DELETE FROM " . DB_PREFIX . "manufacturer_description WHERE manufacturer_id = '" . (int)$manufacturer_id . "'");


        foreach ($data['manufacturer_description'] as $language_id => $value) {
            $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer_description SET manufacturer_id = '" . (int)$manufacturer_id . "', language_id = '" . (int)$language_id . "', description = '" . $this->db->escape($value['description']). "'");
        }
        ]]></add>
        </operation>
        <operation>
            <search><![CDATA[$this->event->trigger('pre.admin.manufacturer.delete', $manufacturer_id);]]></search>
            <add position="after"><![CDATA[
$this->db->query("DELETE FROM " . DB_PREFIX . "manufacturer_description WHERE manufacturer_id = '" . (int)$manufacturer_id . "'");
        ]]></add>
        </operation>
    </file>
    <file path="admin/view/template/catalog/manufacturer_form.tpl">
        <operation>
            <search><![CDATA[</form>]]></search>
            <add position="before"><![CDATA[
                    <div class="form-group">
                        <label class="col-sm-2 control-label"><?php echo $entry_description; ?></label>
                        <div class="col-sm-10">
                            <ul class="nav nav-tabs" id="language">
                                <?php foreach ($languages as $language) { ?>
                                <li><a href="#language<?php echo $language['language_id']; ?>" data-toggle="tab"><img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /> <?php echo $language['name']; ?></a></li>
                                <?php } ?>
                            </ul><div class="tab-content">
                            <?php foreach ($languages as $language) { ?>
                            <div class="tab-pane" id="language<?php echo $language['language_id']; ?>">
                                <textarea name="manufacturer_description[<?php echo $language['language_id']; ?>][description]" rows="5" id="input-manufacturer-description<?php echo $language['language_id']; ?>" class="form-control"><?php echo isset($manufacturer_description[$language['language_id']]) ? $manufacturer_description[$language['language_id']]['description'] : ''; ?></textarea>
                            </div>
                            <?php } ?></div>
                        </div>
                    </div>
]]></add>
        </operation>
        <operation>
            <search><![CDATA[<?php echo $footer; ?>]]></search>
            <add position="before"><![CDATA[
<script type="text/javascript"><!--
    <?php foreach ($languages as $language) { ?>
        $('#input-manufacturer-description<?php echo $language['language_id']; ?>').summernote({height: 300});
    <?php } ?>
$('#language a:first').tab('show');
    //--></script>
        ]]></add>
        </operation>
    </file>z
    <file path="catalog/controller/product/manufacturer.php">
        <operation>
            <search><![CDATA[$results = $this->model_catalog_product->getProducts($filter_data);]]></search>
            <add position="after"><![CDATA[$data['description'] = html_entity_decode($manufacturer_info['description'], ENT_QUOTES, 'UTF-8');]]></add>
        </operation>
    </file>
    <file path="catalog/model/catalog/manufacturer.php">
        <operation>
            <search><![CDATA[$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");]]></search>
            <add position="replace"><![CDATA[$query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id AND md.language_id = '" . (int)$this->config->get('config_language_id') . "') LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");]]></add>
        </operation>
        <operation>
            <search><![CDATA[$sql = "SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";]]></search>
            <add position="replace"><![CDATA[$sql = "SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id AND md.language_id = '" . (int)$this->config->get('config_language_id') . "') LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') ."'";]]></add>
        </operation>
        <operation>
            <search><![CDATA[$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY name");]]></search>
            <add position="replace"><![CDATA[$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id AND md.language_id = '" . (int)$this->config->get('config_language_id') . "') LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY name");]]></add>
        </operation>
    </file>
    <file path="catalog/view/theme/default/template/product/manufacturer_info.tpl">
        <operation>
            <search><![CDATA[<h2><?php echo $heading_title; ?></h2>]]></search>
            <add position="after"><![CDATA[
<?php if ($description) { ?>
            <div class="manufacturer-info"><?php echo $description; ?></div>
            <?php } ?>
]]></add>
        </operation>
    </file>
</modification>
 
И добавлением в БД нескольких полей:
CREATE TABLE `oc_manufacturer_description` (
  `manufacturer_id` int(11) NOT NULL default '0',
  `language_id` int(11) NOT NULL default '0',
  `description` text NOT NULL,
  PRIMARY KEY  (`manufacturer_id`,`language_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Но на странице всех брендов код
<?php if ($description) { ?>
            <div class="manufacturer-info"><?php echo $description; ?></div>
<?php } ?>
ничего не выводит. Помогите решить эту проблему, пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно как будет выглядеть страница с алфавитом первых букв брендов,для более удобного поиска,если туда запихать описания...... Можно узнать зачем?

http://demo.myopencart.com/brands/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно как будет выглядеть страница с алфавитом первых букв брендов,для более удобного поиска,если туда запихать описания...... Можно узнать зачем?

http://demo.myopencart.com/brands/

Есть магазин одежды, в нем есть коллекции одежды. Я переделал список производителей (manufacturer) в коллекции. На странице списка производителей сделал вывод изображений и ссылок (алфавитный список переделал). Но теперь у меня две проблемы: вывод описания производителя и пагинация на странице брендов(коллекций). 

Подскажите пожалуйста, как её решить? Или проще использовать категории для вывода коллекций (в таком случае нужна будет страница с выводом определённых категорий, что пока тоже не знаю, как реализовать) ?

Изменено пользователем ravlex

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Примерно так.В контроллер там где название и ссылка (после  'name' =>  ....)  добавляем

'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 200) . '..',

в шаблон

<?php echo $manufacturer['description']; ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Примерно так.В контроллер там где название и ссылка (после  'name' =>  ....)  добавляем

'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 200) . '..',

в шаблон

<?php echo $manufacturer['description']; ?>

Не помогает, Notice: Undefined variable: manufacturer in /var/www/www-root/data/www/www.mactedesign.com/catalog/view/theme/default/template/product/manufacturer_list.tpl on line 8

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Более внимательно вникнуть в то что я написал и всё получится .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Более внимательно вникнуть в то что я написал и всё получится .

Спасибо! Получилось. А не подскажите ещё, пожалуйста, как сделать пагинацию на этой странице? 

Изменено пользователем ravlex

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотреть как организована пагинация для категорий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотреть как организована пагинация для категорий.

Смотрел, пытался сделать но не генерирует новые страницы.

Изменено пользователем ravlex

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Более внимательно вникнуть в то что я написал и всё получится .

А не подскажите, ограничить количество выводимых позиций брендов? Допустим, мне нужно только первые 3.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.