Ответить Новая тема Новый опрос 
Всего: 2 1 2 >
 Модуль Product Accessories
baton94
Новичок
Сообщений: 74
Регистрация: 06-04-2014


22-04-2015 03:30
Подскажите, пожалуйста, как можно добавить на последнюю страницу оформления заказа (т.е. когда уже подтвержден заказ) отображение модуля Product Accessories.
Заранее спасибо!
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


22-04-2015 13:01
Цитата:( baton94 @ 22-04-2015 04:30 Смотреть сообщение )
Подскажите, пожалуйста, как можно добавить на последнюю страницу оформления заказа (т.е. когда уже подтвержден заказ) отображение модуля Product Accessories.
Заранее спасибо!

Решения:
1. В файл модуля "Product Accessories" добавить подобный код:
Код:
function hookDisplayOrderConfirmation($params)
{
    return $this->здесьУкажитеХукСозданныйВмодуле($params);
}    

Перейти в раздел Панель управления > Модули > Позиции и добавить данный модуль в хук "DisplayOrderConfirmation"

2. В файл /themes/тема/order-confirmation.tpl добавьте:
Код:
{hook h="здесь название хука от модуля Product Accessories" mod="здесь название модуля Product Accessories"}


Если модуль не отображается - приложите код модуля.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
baton94
Новичок
Сообщений: 74
Регистрация: 06-04-2014


24-04-2015 07:18
Пробовал оба способа, не помогло.
Я так думаю проблема в том, что он не понимает от какого товара брать прикрепленные аксессуары. можно ли сделать чтобы он рандомно брал товар из заказа и его аксессуары?
P.S. Модуль приложил


Вложения:

Вложения productaccessories.rar( Размер файла: 30.23KB Скачиваний: 91 )
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


24-04-2015 14:00
1. в файл productaccessories.php добавьте:
Код:
public function hookDisplayOrderConfirmation($params)
{
    $products = $params['objOrder']->getProducts();
    if (empty($products))
        return;

    foreach($products as $product)
    {
        if (!Db::getInstance()->getValue('SELECT `id_product_2` FROM '._DB_PREFIX_.'accessory WHERE `id_product_1` = '.(int)$product['id_product']))
            continue;

        $product = new Product((int)$product['id_product']);
        $accessories = $product->getAccessories((int)$this->context->cookie->id_lang);

        $imageType = 'cart';
        $this->context->smarty->assign('pa_image', $imageType);
        $this->context->smarty->assign('pa_image', $imageType);
        $images = $product->getImages((int)$this->context->cookie->id_lang);
        $this->context->smarty->assign('pa_is_image', sizeof($images));
        $this->context->smarty->assign('pa_accessories_dir', $protocol_content.$server_host.__PS_BASE_URI__.'/modules/'.$this->name.'/');
        $this->context->smarty->assign('accessories', $accessories);
        $this->context->smarty->assign('pa_old_img', floatval(substr(_PS_VERSION_,0,3)) < 1.2?'1':'');
        return $this->display(__FILE__, 'productaccessoriesblock2.tpl');
    }
}


2. Модуль разместить в хук displayOrderConfirmation
3. Копию файла productaccessoriesblock.tpl переименуйте в productaccessoriesblock2.tpl
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
baton94
Новичок
Сообщений: 74
Регистрация: 06-04-2014


24-04-2015 19:45
Блок появился, но сбились все стили конечной страницы.
Скрин прилагаю.


Изображения:
скрин.jpg - Размер файла22.05KB, Скачиваний: 381 (Нажмите для увеличения)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


24-04-2015 20:19
Перепишите модуль:
Удалите:
Код:
require_once(_PS_MODULE_DIR_ . 'productaccessories/PrestoChangeoClasses/init.php');

Код:
class ProductAccessories extends PrestoChangeoModule

заменить на:
Код:
class ProductAccessories extends Module


Цитата:( baton94 @ 24-04-2015 20:45 Смотреть сообщение )
Блок появился, но сбились все стили конечной страницы.


По умолчанию модуль не способен выполнить подобную операцию.
Включите отображение ошибок возможно это покажет файл и ошибку.
Проверьте в коде конечной страницы наличие js и css-кода.
Проверьте возможно вы изменяли контроллеры или классы в prestashop.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
baton94
Новичок
Сообщений: 74
Регистрация: 06-04-2014


24-04-2015 21:00
Цитата:
Перепишите модуль:
Удалите:
Код:
require_once(_PS_MODULE_DIR_ . 'productaccessories/PrestoChangeoClasses/init.php');
Код:
class ProductAccessories extends PrestoChangeoModule
заменить на:
Код:
class ProductAccessories extends Module


Пробовал это сделать, вообще пустая страница. Если по старому оставить то вот какие ошибки вылезают:

Код:
Notice: Undefined variable: server_host in /lady-caprices.ru/docs/modules/productaccessories/productaccessories.php on line 71

Notice: Undefined variable: protocol_content in /lady-caprices.ru/docs/modules/productaccessories/productaccessories.php on line 71


И еще рядом с каждым аксессуаром такие ошибки:

Код:
Notice: Undefined index: pa_ps_version in /lady-caprices.ru/docs/cache/smarty/compile/bb/6f/b2/bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php on line 93

Notice: Trying to get property of non-object in /lady-caprices.ru/docs/cache/smarty/compile/bb/6f/b2/bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php on line 93
Notice: Undefined index: pa_ps_version in /lady-caprices.ru/docs/cache/smarty/compile/bb/6f/b2/bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php on line 97

Notice: Trying to get property of non-object in /lady-caprices.ru/docs/cache/smarty/compile/bb/6f/b2/bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php on line 97
rel="ajax_id_product_1068" title="Add to cart">
Notice: Undefined index: pa_ps_version in /lady-caprices.ru/docs/cache/smarty/compile/bb/6f/b2/bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php on line 101

Notice: Trying to get property of non-object in /lady-caprices.ru/docs/cache/smarty/compile/bb/6f/b2/bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php on line 101
Add
Notice: Undefined index: pa_ps_version in /lady-caprices.ru/docs/cache/smarty/compile/bb/6f/b2/bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php on line 102

Notice: Trying to get property of non-object in /lady-caprices.ru/docs/cache/smarty/compile/bb/6f/b2/bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php on line 102

Notice: Undefined index: pa_ps_version in /lady-caprices.ru/docs/cache/smarty/compile/bb/6f/b2/bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php on line 104

Notice: Trying to get property of non-object in /lady-caprices.ru/docs/cache/smarty/compile/bb/6f/b2/bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php on line 104


CSS и JS отсутствуют и более того содержимое <head> вообще пусто.
Файл bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php приложил и код страницы тоже.


Вложения:

Вложения bb6fb21523c9420e90cb0027a5cdd071b7729c7c.file.productaccessoriesblock2.tpl.php( Размер файла: 7.28KB Скачиваний: 278 )

Вложения page.html( Размер файла: 15.12KB Скачиваний: 945 )
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


24-04-2015 21:35
В файле удалите следующие строчки:
Код:
if ($url = $this->upgradeCheck('PAC'))

Код:
$this->getModuleRecommendations('PAC')

Код:
if ($this->upgradeCheck('PAC'))
    $this->warning = ...


В файле шаблона productaccessoriesblock2.tpl уберите подобные условия:
{if $pa_ps_version > 1.6} pa_b_height16{else}pa_b_height{/if}
или добавьте в метод hookDisplayOrderConfirmation
Код:
$this->context->smarty->assign('pa_ps_version', '160');


Работу модуля с правками описанными выше - проверил, блок отображается - ошибок нет.
Включите отображение ошибок и проверьте работу модуля еще раз.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
baton94
Новичок
Сообщений: 74
Регистрация: 06-04-2014


24-04-2015 22:03
Пробовал все ваши правки вносить, но ничего не поменялось, первые две ошибки те же. Остальные ошибки такие:

Код:
Notice: Undefined index: pa_ps_version in /lady-caprices.ru/docs/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 93

Notice: Trying to get property of non-object in /lady-caprices.ru/docs/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 93
Notice: Undefined index: pa_ps_version in /lady-caprices.ru/docs/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 97

Notice: Trying to get property of non-object in /lady-caprices.ru/docs/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 97
rel="ajax_id_product_1068" title="Add to cart">
Notice: Undefined index: pa_ps_version in /lady-caprices.ru/docs/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 101

Notice: Trying to get property of non-object in /lady-caprices.ru/docs/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 101
Add
Notice: Undefined index: pa_ps_version in /lady-caprices.ru/docs/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 102

Notice: Trying to get property of non-object in /lady-caprices.ru/docs/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 102

Notice: Undefined index: pa_ps_version in /lady-caprices.ru/docs/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 104

Notice: Trying to get property of non-object in /lady-caprices.ru/docs/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 104


Перекомпиляцию включал, кэш отключал. Или я что-то не так делаю или я не знаю...
Почему то шапка пустая, <head> не отображается, соответсвенно стили не подгружаются и страница вся кривая.
Файл smarty_internal_templatecompilerbase.php прилогаю...


Вложения:

Вложения smarty_internal_templatecompilerbase.php( Размер файла: 33.51KB Скачиваний: 124 )
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


24-04-2015 23:24
Цитата:( baton94 @ 24-04-2015 23:03 Смотреть сообщение )
я что-то не так делаю


Notice это не ошибки, а уведомления - на работу prestashop они не влияют.
Отключите модуль и проверьте работу магазина еще раз.
Ошибка не в модуле, подобную модификацию, удалить head, модуль выполнить не сможет.
Возможно выполнена правка контроллеров или классов.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 2 1 2 >