[Решено] Дополнительные вкладки на ocStore 1.5.5.1.2

Тема в разделе "OpenCart", создана пользователем avtostopshik, 10 июл 2014.

Статус темы:
Закрыта.
  1. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    168
    Симпатии:
    13
    Скажите пожалуйста, кому-нибудь удалось прикрутить модуль "Дополнительные вкладки" к ocStore? Как вы это сделали? Не первую неделю уже ломаю голову над этим, но нечего не выходит. Это тот модуль, у которого xml файлы называются extra_product_tab_catalog.XML и extra_product_tab_admin.XML. У меня он выдаёт ошибки. Шаблон не стандартный. В файле путь к папке прописал правильный. Что ему ещё нужно, не понимаю...
     
  2. asusdemo

    asusdemo Веб-архитектор ocDesign.ru

    Регистрация:
    11 фев 2013
    Сообщения:
    135
    Симпатии:
    26
    А где логи? Все ваши ошибки мы должны с воздуха вылавливать?
     
  3. deltaman

    deltaman

    Регистрация:
    2 май 2014
    Сообщения:
    7
    Симпатии:
    3
    Если не стандартный шаблон, то скорее всего xml файлы "не попадают" в разметку, в этом модуле данные должны очень тонко "попасть" в нужное место, иначе не будет работать, сталкивался было такое. Ну и посмотрите логи vqmoda, все ли он нашел.
     
  4. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    168
    Симпатии:
    13
    При установленном моде невозможно попасть на сайт, выдаёт ошибку:
    Parse error: syntax error, unexpected T_PUBLIC in E:\OpenServer\domains\hitch.ru\vqmod\vqcache\vq2-catalog_model_catalog_product.php on line 752
    А в самом файле vq2-catalog_model_catalog_product.php заметил дублирование функции:
    public function getProductTabs($product_id) {

    $product_tab_data = array();

    $product_tab_query = $this->db->query("SELECT t.tab_id, td.name, pt.text, t.position, t.show_empty FROM " . DB_PREFIX . "product_tab pt LEFT JOIN " . DB_PREFIX . "tab t ON (pt.tab_id = t.tab_id) LEFT JOIN " . DB_PREFIX . "tab_description td ON (t.tab_id = td.tab_id) WHERE pt.product_id = '" . (int)$product_id . "' AND td.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pt.language_id = '" . (int)$this->config->get('config_language_id') . "' AND t.status = '1' AND ( t.show_empty = '1' OR NOT pt.text REGEXP '^[[:space:]]*$' ) ORDER BY t.position, t.sort_order, td.name");

    foreach ($product_tab_query->rows as $product_tab) {

    $product_tab_data[] = array(
    'tab_id' => $product_tab['tab_id'],
    'name' => $product_tab['name'],
    'text' => $product_tab['text'],
    'position' => $product_tab['position']
    );
    }

    return $product_tab_data;
    Повторение этой функции начинается как раз на строке 752. Что заставляет дублироваться, понять не могу. Может быть, такая же функция в другом xml файле прописана другого мода. В этом файле эту функцию удалил, на сайт попал, однако вверху сайта появилась надпись:
    Notice: Undefined index: category_id in E:\OpenServer\domains\hitch.ru\vqmod\vqcache\vq2-catalog_controller_product_category.php on line 282Notice: Undefined index: category_id in
    Также в логах vqmod'a появились первые записи об этом моде:
    VQModObject::parseMods - Could not resolve path for [catalog/controller/checkout/quick_confirm.php] (SKIPPED)
    Судя по записям в логах, ...не может разрешить вносить изменения... А вот дальше я не понимаю, что не разрешает и как с этим бороться?
     
  5. deltaman

    deltaman

    Регистрация:
    2 май 2014
    Сообщения:
    7
    Симпатии:
    3
    убери её из xml и добавь просто эту функцию непосредственно в конец файла catalog/model/catalog/product.php
    должно выглядеть так:

    ................
    if (isset($query->row['total'])) {
    return $query->row['total'];
    } else {
    return 0;
    }
    }

    public function getProductTabs($product_id) {

    $product_tab_data = array();

    $product_tab_query = $this->db->query("SELECT t.tab_id, td.name, pt.text, t.position, t.show_empty FROM " . DB_PREFIX . "product_tab pt LEFT JOIN " . DB_PREFIX . "tab t ON (pt.tab_id = t.tab_id) LEFT JOIN " . DB_PREFIX . "tab_description td ON (t.tab_id = td.tab_id) WHERE pt.product_id = '" . (int)$product_id . "' AND td.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pt.language_id = '" . (int)$this->config->get('config_language_id') . "' AND t.status = '1' AND ( t.show_empty = '1' OR NOT pt.text REGEXP '^[[:space:]]*$' ) ORDER BY t.position, t.sort_order, td.name");

    foreach ($product_tab_query->rows as $product_tab) {

    $product_tab_data[] = array(
    'tab_id' => $product_tab['tab_id'],
    'name' => $product_tab['name'],
    'text' => $product_tab['text'],
    'position' => $product_tab['position']
    );
    }

    return $product_tab_data;
    }
    }
    ?>
     
  6. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    168
    Симпатии:
    13
    Сделал, но результат криво выводит, в логе нечего больше не пишет. Скрин результата https://yadi.sk/i/TMKJg-2eWMUGK
     
  7. Pant

    Pant

    Регистрация:
    6 фев 2013
    Сообщения:
    122
    Симпатии:
    17
    Хочу поддержать эту тему, проблема с этим модом похожая, вкладка не отображается, а отображается сверху описания.
     
  8. deltaman

    deltaman

    Регистрация:
    2 май 2014
    Сообщения:
    7
    Симпатии:
    3
    Это уже хорошо, значит контроллер работает, осталось лиш побороть нюанс о котором я писал:
    Если не стандартный шаблон, то скорее всего xml файлы "не попадают" в разметку, в этом модуле данные должны очень тонко "попасть" в нужное место
    Причина в том, что xml vqmoda не попадает в секцию таба, в файле extra_product_tab_catalog.xml нужно подкорректировать данные, чтобы в итоге в вашем файле product.tpl получилось примерно вот так:

     
    olenik и avtostopshik нравится это.
  9. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    168
    Симпатии:
    13
    Отлично! Спасибо большое, подкорректировал файл xml, но нечего не вышло. А потом просто вставил код, что вы написали, в product.tpl, и всё сразу встало на свои места)) спасибо большое!
     
    olenik нравится это.
Статус темы:
Закрыта.