Prestashop 1.6.1.X проблемы и решения.

Твой выбор Prestashop

  • 1.5

  • 1.6.0.Х

  • 1.6.1.Х

  • 1.7


Результаты будут видны только после голосования.
Пару слов о скорости исправления багов в Престашопе
Оставлял на фордже баг (Для просмотра ссылки Войди или Зарегистрируйся), найденный в 1.6.1.2 в ноябре 2015 года. Оказывается, в 1.6.1.16 он до сих пор не пофикшен. Сегодня поменяли статус на "ToDo".
Моя радость не знает границ :lol:
 

Вложения

  • FireShot Capture 123.png
    FireShot Capture 123.png
    39,5 KB · Просмотры: 24
  • (207).png
    (207).png
    65,9 KB · Просмотры: 24
Привествую!
Возникла необходимость в карточке товара вывести товары со схожими характеристиками в виде слайдера, по типу Другие товары из этой категории, другие товары этого производителя...
Т.е. к примеру есть товар, имеет характеристику: Высота: 1500, так вот чтобы в его карточке товара, так же слайдером показывались товары имеющие такие же характеристики "Высота" из этой же категории...
На форуме и в сети пока ничего похожего не нашел...

Может кто подскажет есть ли модули дающие такой функционал, или как решить такую задачу?
И второй вариант:
В идеале задача такая: чтобы в карточке товара показывались похожие товары из этой же категории, имеющие характеристику "Высота" +/- 300 (т.е. заходим в товар с высотой 1500мм, а нам внизу показываются товары 1200, 1300,1400, 1500, 1600, 1700, 1800... - готов оплатить такую доработку...;)
Presta 1.6.1.16 Warehouse 3.8.2
 
Приветствую.
В админке есть описание категорий и когда оно забито уж очень не удобно просматривать, как сократить его вывод?
xOSjc_dVRGW3ukJUVudbAA.jpeg
 
Приветствую.
В админке есть описание категорий и когда оно забито уж очень не удобно просматривать, как сократить его вывод?
xOSjc_dVRGW3ukJUVudbAA.jpeg


для престы 1.5/1.6:

'description' => array(
'title' => $this->l('Description'),
'maxlength' => 80,
'callback' => 'getDescriptionClean',
'orderby' => false
),



создать файл оверрадов
/override/controllers/admin/AdminCategoriesController.php
или дописать в него функцию, если уже такой есть (если файл и в нём функция уже есть, то по тексту функции просто правим/добавляем параметр 'maxlength' => 80,)

с содержанием:
Код:
<?php

class AdminCategoriesController extends AdminCategoriesControllerCore
{
  
    public function __construct()
    {
        $this->bootstrap = true;
        $this->table = 'category';
        $this->className = 'Category';
        $this->lang = true;
        $this->deleted = false;
        $this->explicitSelect = true;
        $this->_defaultOrderBy = 'position';
        $this->allow_export = true;

        $this->context = Context::getContext();

         $this->fieldImageSettings = array(
             'name' => 'image',
             'dir' => 'c'
         );

        $this->fields_list = array(
            'id_category' => array(
                'title' => $this->l('ID'),
                'align' => 'center',
                'class' => 'fixed-width-xs'
            ),
            'name' => array(
                'title' => $this->l('Name')
            ),
            'description' => array(
                'title' => $this->l('Description'),
'maxlength' => 80,
                'callback' => 'getDescriptionClean',
                'orderby' => false
            ),  
            'position' => array(
                'title' => $this->l('Position'),
                'filter_key' => 'sa!position',
                'position' => 'position',
                'align' => 'center'
            ),
            'active' => array(
                'title' => $this->l('Displayed'),
                'active' => 'status',
                'type' => 'bool',
                'class' => 'fixed-width-xs',
                'align' => 'center',
                'ajax' => true,
                'orderby' => false
            )
        );

        $this->bulk_actions = array(
            'delete' => array(
                'text' => $this->l('Delete selected'),
                'icon' => 'icon-trash',
                'confirm' => $this->l('Delete selected items?')
            )
        );
        $this->specificConfirmDelete = false;

        AdminController::__construct();
    }
}


получится типа такого:

upload_2017-8-30_14-41-32.png
 
День добрый.
Имеем модуль blockcategories в дефолте в тайтл кидает дескрипшен, а мне нужно чтоб кидал реально заданный тайтл уже кручу 3 день ни как не могу подобраться, прошу помощи.
 
День добрый.
Имеем модуль blockcategories в дефолте в тайтл кидает дескрипшен, а мне нужно чтоб кидал реально заданный тайтл уже кручу 3 день ни как не могу подобраться, прошу помощи.

пишите поточнее и конретнее вопросы - непонятно, что и куда и почему кидает :)

нужно в файле
/themes/default-bootstrap/modules/blockcategories/category-tree-branch.tpl

заменить
Код:
title="{$node.desc|strip_tags|trim|escape:'html':'UTF-8'}"
на
Код:
title="{$node.name|strip_tags|trim|escape:'html':'UTF-8'}"
 
пишите поточнее и конретнее вопросы - непонятно, что и куда и почему кидает :)

нужно в файле
/themes/default-bootstrap/modules/blockcategories/category-tree-branch.tpl

заменить
Код:
title="{$node.desc|strip_tags|trim|escape:'html':'UTF-8'}"
на
Код:
title="{$node.name|strip_tags|trim|escape:'html':'UTF-8'}"

Смотрите - при создании категории в админке доступны поля - Название категории ( $node.name ) , Описание ( $node.desc ), Мета Заголовок, так вот мне нужен мета заголовок $node.?????? который будет там где ему и положено быть title=" $node.??????
 
Смотрите - при создании категории в админке доступны поля - Название категории ( $node.name ) , Описание ( $node.desc ), Мета Заголовок, так вот мне нужен мета заголовок $node.?????? который будет там где ему и положено быть title=" $node.??????

ну поймите наконец, тут не телепаты
непонятно, зачем это вообще делать? и куда выводить?
так как сейчас в престе достаточно всё уже есть и на своих местах


если нужно добавить в tpl ещё поля, то нужно при выводе в хук просто это поле из базы и тянуть, например
добавить в:
public function hookLeftColumn($params)
{
...
SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite

чтобы так было:
SELECT c.id_parent, c.id_category, cl.name, cl.meta_title, cl.description, cl.link_rewrite
 
ну поймите наконец, тут не телепаты
непонятно, зачем это вообще делать? и куда выводить?
так как сейчас в престе достаточно всё уже есть и на своих местах


если нужно добавить в tpl ещё поля, то нужно при выводе в хук просто это поле из базы и тянуть, например
добавить в:
public function hookLeftColumn($params)
{
...
SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite

чтобы так было:
SELECT c.id_parent, c.id_category, cl.name, cl.meta_title, cl.description, cl.link_rewrite

У меня проставлено в category-tree-branch.tpl
title="{$node.meta_title|escape:'html':'UTF-8'}"

в blockcategories.php вот такой код

....
if (isset($resultIds[$id_category]))
{
$link = $this->context->link->getCategoryLink($id_category, $resultIds[$id_category]['link_rewrite']);
$name = $resultIds[$id_category]['name'];
$desc = $resultIds[$id_category]['description'];
$title = $resultIds[$id_category]['meta_title'];
$thumb = ImageManager::thumbnail(_PS_CAT_IMG_DIR_.(int)$id_category.'-'.'0'.'_thumb.jpg', $this->context->controller->table.'_'.(int)$id_category.'-'.'0'.'_thumb.jpg', 40, 'jpg', true, true);
}
else
$link = $name = $desc = $meta_title = $thumb = '';

$return = array(
'id' => $id_category,
'link' => $link,
'name' => $name,
'desc' => $desc,
'meta_title' => $meta_title,
'thumb' => $thumb,
'children' => $children
);

....

$resultIds = array();
$resultParents = array();
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.meta_title, cl.link_rewrite
FROM `'._DB_PREFIX_.'category` c

....

public function hookFooter($params)
{
$this->setLastVisitedCategory();
if (!$this->isCached('blockcategories_footer.tpl', $this->getCacheId()))
{
$maxdepth = Configuration::get('BLOCK_CATEG_MAX_DEPTH');
// Get all groups for this customer and concatenate them as a string: "1,2,3..."
$groups = implode(', ', Customer::getGroupsStatic((int)$this->context->customer->id));
if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT DISTINCT c.id_parent, c.id_category, cl.name, cl.description, cl.meta_title, cl.link_rewrite


отметил где ставил, но блин не фурычит
 
У меня проставлено в category-tree-branch.tpl
title="{$node.meta_title|escape:'html':'UTF-8'}"

в blockcategories.php вот такой код

....
if (isset($resultIds[$id_category]))
{
$link = $this->context->link->getCategoryLink($id_category, $resultIds[$id_category]['link_rewrite']);
$name = $resultIds[$id_category]['name'];
$desc = $resultIds[$id_category]['description'];
$title = $resultIds[$id_category]['meta_title'];
$thumb = ImageManager::thumbnail(_PS_CAT_IMG_DIR_.(int)$id_category.'-'.'0'.'_thumb.jpg', $this->context->controller->table.'_'.(int)$id_category.'-'.'0'.'_thumb.jpg', 40, 'jpg', true, true);
}
else
$link = $name = $desc = $meta_title = $thumb = '';

$return = array(
'id' => $id_category,
'link' => $link,
'name' => $name,
'desc' => $desc,
'meta_title' => $meta_title,
'thumb' => $thumb,
'children' => $children
);

....

$resultIds = array();
$resultParents = array();
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.meta_title, cl.link_rewrite
FROM `'._DB_PREFIX_.'category` c

....

public function hookFooter($params)
{
$this->setLastVisitedCategory();
if (!$this->isCached('blockcategories_footer.tpl', $this->getCacheId()))
{
$maxdepth = Configuration::get('BLOCK_CATEG_MAX_DEPTH');
// Get all groups for this customer and concatenate them as a string: "1,2,3..."
$groups = implode(', ', Customer::getGroupsStatic((int)$this->context->customer->id));
if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT DISTINCT c.id_parent, c.id_category, cl.name, cl.description, cl.meta_title, cl.link_rewrite


отметил где ставил, но блин не фурычит

как определили, что не работает?
в футере ж выводятся категории только главного уровня

а если здесь подправить аналогично и в колонке проверить вывод титла?
public function hookLeftColumn($params)
{
 
Назад
Сверху