Автор Тема: Редктирование "Мои любимые товары"  (Прочитано 869 раз)

24 Июня 2013, 23:12:36
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!

Подскажите пожалуйста, как реализовать в любимых товарах, вывод цены и длинного описания.

За ранее спасибо!
25 Июня 2013, 11:55:42
Ответ #1
  • Фрилансер
  • *
  • Сообщений: 198
  • Репутация: +4/-0
  • Разработка и программирование сайтов
    • Просмотр профиля
    • Разработка и программирование сайтов
Добрый день!

Подскажите пожалуйста, как реализовать в любимых товарах, вывод цены и длинного описания.

За ранее спасибо!
А что вы подразумеваете под любимыми товарами?
26 Июня 2013, 00:45:35
Ответ #2
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!

Подскажите пожалуйста, как реализовать в любимых товарах, вывод цены и длинного описания.

За ранее спасибо!
А что вы подразумеваете под любимыми товарами?

Добрый день!

В личном кабинете есть раздел "любимые товары" (отложенные товары) и на данной странице отображается фото и наименования товара, хотелось бы добавить еще длинное описание и цену.
26 Июня 2013, 13:43:06
Ответ #3
  • Фрилансер
  • *
  • Сообщений: 198
  • Репутация: +4/-0
  • Разработка и программирование сайтов
    • Просмотр профиля
    • Разработка и программирование сайтов
Для этого нужно вносить изменения в модуль favoriteproducts а также в его файл шаблона вывода
26 Июня 2013, 17:49:18
Ответ #4
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для этого нужно вносить изменения в модуль favoriteproducts а также в его файл шаблона вывода

Спасибо за ответ"

Я понимаю, что изменения нужно вносить в файлы данного модуля, добавив значения вывода цены и описания.
Нужно определить значения, отвечающие за вывод данной информации и добавить их в модуль.
Предполагаю что значение:
Цитировать
  "our_price_display"
отвечает за вывод цены.

Значение, отвечающее за длинное описание:
Цитировать
more_info_tab_more_info
но могу ошибаться.

Но корректно вставить их в шаблон модуля не получается.

За ранее спасибо!
26 Июня 2013, 18:27:00
Ответ #5
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33026
  • Репутация: +26761/-0
    • Просмотр профиля
Не все так просто. В этом модуле нет возможности выводить полное описание и цену. Так как эти переменные не определены в классе FavoriteProduct (файл FavoriteProduct.php) и не могут использоваться в шаблоне favoriteproducts-account.tpl.
Нужно переопределить это класс или изменить. Так для описания товара заменить поле краткого на полное.
pl.description_shortна
pl.descriptionменять и в классе и шаблоне. Для цены добавить функцию получения цены.
26 Июня 2013, 21:48:09
Ответ #6
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не все так просто. В этом модуле нет возможности выводить полное описание и цену. Так как эти переменные не определены в классе FavoriteProduct (файл FavoriteProduct.php) и не могут использоваться в шаблоне favoriteproducts-account.tpl.
Нужно переопределить это класс или изменить. Так для описания товара заменить поле краткого на полное.
pl.description_shortна
pl.descriptionменять и в классе и шаблоне. Для цены добавить функцию получения цены.

Спасибо, с длинным описанием получилось, заменой
pl.description_shortна
pl.description
но почему то это работает только заменой файлов модуля в корне, а заменой в модуле темы не получается.
27 Июня 2013, 11:05:08
Ответ #7
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102473
  • Репутация: +34218/-0
    • Просмотр профиля
Цитировать
но почему то это работает только заменой файлов модуля в корне, а заменой в модуле темы не получается.
Для шаблонов модулей (файлы TPL), для файлов стилей (CSS) и js фукций, которые используются в вашей теме.
PrestaShop 1.4
  • /themes/my_theme/modules/my_module/my_module.tpl
  • /themes/my_theme/css/modules/my_modules/my_module.css
  • /themes/my_theme/js/modules/my_modules/my_module.js

PrestaShop 1.5
  • /themes/my_theme/modules/my_module/views/templates/front/my_module.tpl
  • /themes/my_theme/css/modules/my_modules/views/templates/front/my_module.css
  • /themes/my_theme/js/modules/my_modules/views/templates/front/my_module.js

Для переопределения классов и контроллеров
  • /override/classes/Class.php
  • /modules/my_module/override/classes/Class.php
  • /override/controllers/front/Controller.php
  • /modules/my_module/override/controllers/front/Controller.php
01 Июля 2013, 23:40:02
Ответ #8
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
но почему то это работает только заменой файлов модуля в корне, а заменой в модуле темы не получается.
Для шаблонов модулей (файлы TPL), для файлов стилей (CSS) и js фукций, которые используются в вашей теме.
PrestaShop 1.4
  • /themes/my_theme/modules/my_module/my_module.tpl
  • /themes/my_theme/css/modules/my_modules/my_module.css
  • /themes/my_theme/js/modules/my_modules/my_module.js

PrestaShop 1.5
  • /themes/my_theme/modules/my_module/views/templates/front/my_module.tpl
  • /themes/my_theme/css/modules/my_modules/views/templates/front/my_module.css
  • /themes/my_theme/js/modules/my_modules/views/templates/front/my_module.js

Для переопределения классов и контроллеров
  • /override/classes/Class.php
  • /modules/my_module/override/classes/Class.php
  • /override/controllers/front/Controller.php
  • /modules/my_module/override/controllers/front/Controller.php

Спасибо за развернутый ответ.

Подскажите пожалуйста в:

  • /themes/my_theme/modules/favoriteproducts/views/templates/front/favoriteproducts-account.tpl.
  • /themes/my_theme/modules/favoriteproducts/FavoriteProduct.php.

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

  • /themes/my_theme/modules/favoriteproducts/FavoriteProduct.php.

результата не приносят, а изменения в

  • /modules/favoriteproducts/FavoriteProduct.php.


дают желаемый результат.

Просто хотелось бы менять только файлы темы, не трогая корневые.
Возможно ли это?
За ранее спасибо!
02 Июля 2013, 10:21:40
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 105584
  • Репутация: +39547/-0
    • Просмотр профиля
    • Webstudio UwK
Цитировать
Подскажите пожалуйста в:
    /themes/my_theme/modules/favoriteproducts/views/templates/front/favoriteproducts-account.tpl.
    /themes/my_theme/modules/favoriteproducts/FavoriteProduct.php.
находятся оба файла требующие изменений, но как вы и писали выше изменения в
    /themes/my_theme/modules/favoriteproducts/FavoriteProduct.php.
результата не приносят, а изменения в
    /modules/favoriteproducts/FavoriteProduct.php.
дают желаемый результат.

Вы не правильно поняли, что написал Виктор Демидов.

1. /themes/my_theme/
Менять файлы с расширением TPL,CSS,JS
В этой папке нельзя заменить файлы PHP.

2. /override/
Менять файлы PHP. Или же в самом модуле
/modules/my_modules/...php
Cоздание интернет сайтов Webstudio UwK
02 Июля 2013, 17:51:27
Ответ #10
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Подскажите пожалуйста в:
    /themes/my_theme/modules/favoriteproducts/views/templates/front/favoriteproducts-account.tpl.
    /themes/my_theme/modules/favoriteproducts/FavoriteProduct.php.
находятся оба файла требующие изменений, но как вы и писали выше изменения в
    /themes/my_theme/modules/favoriteproducts/FavoriteProduct.php.
результата не приносят, а изменения в
    /modules/favoriteproducts/FavoriteProduct.php.
дают желаемый результат.

Вы не правильно поняли, что написал Виктор Демидов.

1. /themes/my_theme/
Менять файлы с расширением TPL,CSS,JS
В этой папке нельзя заменить файлы PHP.

2. /override/
Менять файлы PHP. Или же в самом модуле
/modules/my_modules/...php

Виталий спасибо за ответ!

Виктора Демидова, я наверное поняла правильно, а именно что измененять php файлы надо  непосредственно в

  • modules/my_modules/...php
а не в
  • /themes/my_theme/modules/...php

И просто хотела уточнить вожможно ли как то не трогать  modules/my_modules/...php, что бы тема не была зависима от модулей в корневой директории.
02 Июля 2013, 18:01:20
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 20885
  • Репутация: +25279/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Цитировать
И просто хотела уточнить вожможно ли как то не трогать  modules/my_modules/...php, что бы тема не была зависима от модулей в корневой директории.
Можно, только нужно заменить в классе Module (Module.php) метод getInstanceByName.
Копируйте Module.php из /classes/module/Module.php в /override/classes/module/Module.php и замените функцию getInstanceByName.
public static function getInstanceByName($module_name)
{
    if (!Validate::isModuleName($module_name))
        die(Tools::displayError());
    if (!isset(self::$_INSTANCE[$module_name]))
    {
        if (Tools::file_exists_cache(_PS_MODULE_DIR_.$module_name.'/'.$module_name.'.php'))
        {
    /* Начало */
    if (file_exists(_PS_THEME_DIR_.'modules/'.$module_name.'/'.$module_name.'.php'))
    {
        // include the file
include_once(_PS_THEME_DIR_.'modules/'.$module_name.'/'.$module_name.'.php');
    }
    else
    {
        include_once(_PS_MODULE_DIR_.$module_name.'/'.$module_name.'.php');
    }
    /* Конец */

    if (class_exists($module_name, false))
        return self::$_INSTANCE[$module_name] = new $module_name;
}
return false;
    }
    return self::$_INSTANCE[$module_name];
}
После этого можно менять файлы php в папке темы /themes/my_theme/modules/
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
07 Июля 2013, 19:00:21
Ответ #12
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
И просто хотела уточнить вожможно ли как то не трогать  modules/my_modules/...php, что бы тема не была зависима от модулей в корневой директории.
Можно, только нужно заменить в классе Module (Module.php) метод getInstanceByName.
Копируйте Module.php из /classes/module/Module.php в /override/classes/module/Module.php и замените функцию getInstanceByName.
public static function getInstanceByName($module_name)
{
    if (!Validate::isModuleName($module_name))
        die(Tools::displayError());
    if (!isset(self::$_INSTANCE[$module_name]))
    {
        if (Tools::file_exists_cache(_PS_MODULE_DIR_.$module_name.'/'.$module_name.'.php'))
        {
    /* Начало */
    if (file_exists(_PS_THEME_DIR_.'modules/'.$module_name.'/'.$module_name.'.php'))
    {
        // include the file
include_once(_PS_THEME_DIR_.'modules/'.$module_name.'/'.$module_name.'.php');
    }
    else
    {
        include_once(_PS_MODULE_DIR_.$module_name.'/'.$module_name.'.php');
    }
    /* Конец */

    if (class_exists($module_name, false))
        return self::$_INSTANCE[$module_name] = new $module_name;
}
return false;
    }
    return self::$_INSTANCE[$module_name];
}
После этого можно менять файлы php в папке темы /themes/my_theme/modules/

Спасибо за ответ!

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

За ранее спасибо!
08 Июля 2013, 10:59:23
Ответ #13
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33026
  • Репутация: +26761/-0
    • Просмотр профиля
Цитировать
После внесения данных изменений вся логика будет браться из модулей темы? и если да то получается что все обновления версий и изменения или оптимизация основных модулей разработчиками, не будет учитываться
Ты что хочешь все модули заменить? Все будет учитываться, модули обновяться в modules, только  изменения не проявяться у тех, которые замены в /themes/my_theme/modules/. Это же делается для защиты своих изменений. Поменяла функции в модуле, а после обновления они пропали. А с так все изменения сохраняются.
08 Июля 2013, 20:53:41
Ответ #14
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
После внесения данных изменений вся логика будет браться из модулей темы? и если да то получается что все обновления версий и изменения или оптимизация основных модулей разработчиками, не будет учитываться
Ты что хочешь все модули заменить? Все будет учитываться, модули обновяться в modules, только  изменения не проявяться у тех, которые замены в /themes/my_theme/modules/. Это же делается для защиты своих изменений. Поменяла функции в модуле, а после обновления они пропали. А с так все изменения сохраняются.

Спасибо за ответ!

Я и имела ввиду, что решение от PrestaMan повлияет ли на все модули, что они после изменения всегда  будут браться из темы.

Почему это спрашиваю: в теме есть модули с измененными шаблонами под себя, и файлами php скорее всего предыдущих версий престы, на данный момент (без изменений) файлы шаблонов беруться из темы, а файлы php беруться из основной директории с новой версии, а после изменения получается, что все php всех модулей станут браться из темы со старыми версиями.