Ameli 0 Опубликовано 27 августа, 2009 Жалоба Share Опубликовано 27 августа, 2009 Подскажите пожалуйста, мне нужно, чтобы на странице корзины была кнопка "Распечатать" с открытием такой же формы печати, как и на страницах 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! Где еще и что нужно прописать? Ссылка на сообщение Поделиться на другие сайты
Ameli 0 Опубликовано 27 августа, 2009 Автор Жалоба Share Опубликовано 27 августа, 2009 Уточню - мне нужно распечатать содержимое корзины) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 27 августа, 2009 Жалоба Share Опубликовано 27 августа, 2009 Добавьте в шаблон страницы (/templates/шаблон/module/shopping_cart.html) что-то вроде: <a href="" onclick="window.print()">Распечатать</a>[/code] Ссылка на сообщение Поделиться на другие сайты
Ameli 0 Опубликовано 27 августа, 2009 Автор Жалоба Share Опубликовано 27 августа, 2009 Это то я добавила, устанавливается связь с принтером. Но мне нужно, чтобы содержимое корзины распечатывалось в такой форме, как форма печати заказа. Print_order.php Можно как-то создать или продублировать такой же модуль, только с содержимым корзины? И еще в корзине нужно наряду с названием товара выводить код товара, через какую переменную это сделать? Спасибо Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 27 августа, 2009 Жалоба Share Опубликовано 27 августа, 2009 По умолчанию нельзя, нет такого кода. Можно же через css убрать всё лишнее, и тогда например будет распечатываться только центр страницы. Вы прочитайте где-нибудь на сайте про css, то media-type = print т.е. просто создайте css файлик для печати, в котором div#left и div#right уберите, т.е. поставьт display: none; Тогда печататься будет только центральная колонка. Ссылка на сообщение Поделиться на другие сайты
Ameli 0 Опубликовано 30 августа, 2009 Автор Жалоба Share Опубликовано 30 августа, 2009 Всем привет. Выкладываю решение, которое сегодня снизошло на меня, может кому-то пригодится) Мне нужно было на странице корзины (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} Теперь на странице корзины появится кнопка "Распечатать" при нажатии на которую будет открываться окно корзины для распечатки. Причем это окно может иметь дизай, отличающийся от дизайна самой страницы корзины. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 31 августа, 2009 Жалоба Share Опубликовано 31 августа, 2009 Спасибо большое, что поделились своим решением. Пригодится и пользователям, да и мне. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения