Перейти к содержанию
Форум поддержки пользователей VamShop

Добавление кнопки "Распечатать" на страницу корзины


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

Подскажите пожалуйста, мне нужно, чтобы на странице корзины была кнопка "Распечатать" с открытием такой же формы печати, как и на страницах account_history_info.php или checout_success.php

Я в shopping_cart.html вставила кнопку {$BUTTON_PRINT}  и подключила {config_load file="$language/lang_$language.conf" section="print_order"}

А в shopping_cart.php вставила следующий код -

$vamTemplate->assign('BUTTON_PRINT', '<img src="'.'templates/'.CURRENT_TEMPLATE.'/buttons/'.$_SESSION['language'].'/button_print.gif" style=cursor:hand" onclick="window.open(\''.vam_href_link(FILENAME_PRINT_ORDER, 'oID='.$orders['orders_id]).'\', \'popup\', \'toolbar=0, scrollbars=yes, width=640, height=600\')" />');

Но когда я нажимаю на "Распечатать" мне вылазит такая ошибка - Warning: Smarty error: unable to read resource: "/lang_.conf" in /usr/share/ameli/includes/external/smarty/Smarty.class.php on line 1112  и  ниже - You are not allowed to view this order!

Где еще и что нужно прописать?

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

Добавьте в шаблон страницы (/templates/шаблон/module/shopping_cart.html) что-то вроде:


<a href="" onclick="window.print()">Распечатать</a>
[/code]

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

Это то я добавила, устанавливается связь с принтером. Но мне нужно, чтобы содержимое корзины распечатывалось в такой форме, как форма печати заказа. Print_order.php

Можно как-то создать или продублировать такой же модуль, только с содержимым корзины? И еще в корзине нужно наряду с названием товара выводить код товара, через какую переменную это сделать?

Спасибо

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

По умолчанию нельзя, нет такого кода.

Можно же через css убрать всё лишнее, и тогда например будет распечатываться только центр страницы.

Вы прочитайте где-нибудь на сайте про css, то media-type = print

т.е. просто создайте css файлик для печати, в котором div#left и div#right уберите, т.е. поставьт display: none;

Тогда печататься будет только центральная колонка.

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

Всем привет. Выкладываю решение, которое сегодня снизошло на меня, может кому-то пригодится)

Мне нужно было на странице корзины (shopping_cart.php) сделать возможность распечатать эту страницу по примеру распечатки заказов в истории заказов (account_history_info.php) или в процессе оформления (checkout_success.php). Т.е. при нажатии на кнопку "Распечатать" должно открываться отдельное окно с формой страницы для печати.

1. создаем файл в темплайтах print_cart.html с дизайном страницы распечатки. (как index.html)

2. в папке modules создаем файл shopping_cart_1.html по примеру shopping_cart.html, который будет вставляться через main_content в print_cart.html

3. создаем файл order_details_1.html, как order_details.html, с выборкой товаров для формы печати, который вставляется в shopping_cart_1.html

Все созданные выше файлы могут по дизайну отличаться от оригинальных.

4. создаем в корне сайта файл shopping_cart_1.php (аналогичный shopping_cart.php)

5. в includes/modules создаем файл  order_details_cart_1.php, аналогичный файлу order_details_cart.php

6. в файле includes/filenames.php вставляем строку - define('FILENAME_SHOP_CART_1', 'shopping_cart_1.php');

7. в файле order_details_cart_1.php строки

  $module = $module->fetch(CURRENT_TEMPLATE.'/module/order_details.html');

  $vamTemplate->assign('MODULE_order_details', $module);

  меняем на строки

  $module = $module->fetch(CURRENT_TEMPLATE.'/module/order_details_1.html');

  $vamTemplate->assign('MODULE_order_details_1', $module);

8. в файле shopping_cart_1.php

  строку

  require (DIR_WS_MODULES.'order_details_cart.php');

 

  меняем на

  require (DIR_WS_MODULES.'order_details_cart_1.php');

  там же строку

  $template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_SHOPPING_CART.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_SHOPPING_CART.'.html' : CURRENT_TEMPLATE.'/index.html');

  меняем на

  $template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_SHOP_CART_1.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_SHOPPING_CART.'.html' : CURRENT_TEMPLATE.'/print_cart.html');

9. в файле shopping_cart.php вставим строку

  $vamTemplate->assign('BUTTON_PRINT', '<img src="'.'templates/'.CURRENT_TEMPLATE.'/buttons/'.$_SESSION['language'].'/button_print.gif" style=cursor:hand" onclick="window.open(\''.vam_href_link(FILENAME_SHOP_CART_1, 'oID='.$orders['orders_id]).'\', \'popup\', \'toolbar=0, scrollbars=yes, width=640, height=600\')" />');

10.В темплайтах в shopping_cart.html вставим кнопку {$BUTTON_PRINT}

11.В темплайтах в shopping_cart_1.html 

    заключим весь код в

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml"><head><title>{#title#} {$oID}</title><meta http-equiv="Content-Type" content="text/html; charset={$charset}" /></head>

  <body onload="window.print()">

  ...

  </body>

  </html>

    и заменим {$MODULE_order_details} на {$MODULE_order_details_1}

 

Теперь на странице корзины появится кнопка "Распечатать" при нажатии на которую будет открываться окно корзины для распечатки. Причем это окно может иметь дизай, отличающийся от дизайна самой страницы корзины.

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

Спасибо большое, что поделились своим решением.

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

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