Надоело заполнять от руки коробки и пакеты, потратил пару дней и наваял маленький "хак" (просьба сильно ногами не пинать) для автоматической генерации наклеек для "Почты России"
в архиве три файла
pr.png - класть в /images (логотип почты росcии)
zipcode.TTF - класть в /images (шрифт для генерации индекса)
postlabel.php - класть в /administrator/components/com_jshopping/views/orders/tmpl/ (собственно сам ***код)
далее прописываем в саму систему
1. Для того чтобы получить ещё одну иконку с печатью в списке заказов идем в фаил /administrator/components/com_jshopping/views/orders/tmpl/list.php, в нем находим блок
<a href = "javascript:void window.open('index.php?option=com_jshopping&controller=orders&task=printOrder&order_id=<?php echo $row->order_id?>&tmpl=component', 'win2', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=yes,resizable=yes,width=800,height=600,directories=no,location=no');">
<img border="0" src="components/com_jshopping/images/jshop_print.png" alt="printhtml" />
</a>
после него добавляем его же, с немногими изменениями.
<a href = "javascript:void window.open('index.php?option=com_jshopping&controller=orders&task=printPostlabel&order_id=<?php echo $row->order_id?>&tmpl=component', 'win2', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=yes,resizable=yes,width=600,height=440,directories=no,location=no');">
<img border="0" src="/components/com_jshopping/images/print.png" alt="printhtml" />
</a>
2. Теперь правим /administrator/components/com_jshopping/controllers/orders.php найдем функцию
function show() (у меня это строка 150) и скопируем её целиком в конец файла
в скопированном блоке поправим имя самой функции на f
unction postlabel() и
$view->setLayout("show"); на
$view->setLayout("postlabel");Вот что должно получиться:
function postlabel(){
$order_id = JRequest::getInt("order_id");
$jshopConfig = JSFactory::getConfig();
$orders = JSFactory::getModel("orders");
$order = JSFactory::getTable('order', 'jshop');
$order->load($order_id);
$order->prepareOrderPrint('order_show');
$id_vendor_cuser = getIdVendorForCUser();
$order->loadItemsNewDigitalProducts();
$order_items = $order->getAllItems();
if ($jshopConfig->admin_show_vendors){
$tmp_order_vendors = $order->getVendors();
$order_vendors = array();
foreach($tmp_order_vendors as $v){
$order_vendors[$v->id] = $v;
}
}
$lists['status'] = JHTML::_('select.genericlist', $orders->getAllOrderStatus(),'order_status','class = "inputbox" size = "1" id = "order_status"','status_id','name', $order->order_status);
$tmp_fields = $jshopConfig->getListFieldsRegister();
$config_fields = $tmp_fields["address"];
$count_filed_delivery = $jshopConfig->getEnableDeliveryFiledRegistration('address');
$display_info_only_product = 0;
if ($jshopConfig->admin_show_vendors && $id_vendor_cuser){
if ($order->vendor_id!=$id_vendor_cuser) $display_info_only_product = 1;
}
$display_block_change_order_status = $order->order_created;
if ($jshopConfig->admin_show_vendors && $id_vendor_cuser){
if ($order->vendor_id!=$id_vendor_cuser) $display_block_change_order_status = 0;
foreach($order_items as $k=>$v){
if ($v->vendor_id!=$id_vendor_cuser){
unset($order_items[$k]);
}
}
}
$stat_download = $order->getFilesStatDownloads(1);
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onBeforeDisplayOrderAdmin', array(&$order, &$order_items, &$order_history));
$print = JRequest::getInt("print");
$order->prepareOrderPrint('order_show');
$view = $this->getView("orders", 'html');
$view->setLayout("postlabel");
$view->assign('config', $jshopConfig);
$view->assign('order', $order);
$view->assign('order_history', $order->history);
$view->assign('order_items', $order_items);
$view->assign('lists', $lists);
$view->assign('print', $print);
$view->assign('config_fields', $config_fields);
$view->assign('count_filed_delivery', $count_filed_delivery);
$view->assign('display_info_only_product', $display_info_only_product);
$view->assign('current_vendor_id', $id_vendor_cuser);
$view->assign('display_block_change_order_status', $display_block_change_order_status);
$view->_tmp_ext_discount = '';
$view->_tmp_ext_shipping_package = '';
$view->assign('stat_download', $stat_download);
if ($jshopConfig->admin_show_vendors){
$view->assign('order_vendors', $order_vendors);
}
$dispatcher->trigger('onBeforeShowOrder', array(&$view));
$view->displayShow();
}
3. В том же файле /administrator/components/com_jshopping/controllers/orders.php в конец файла добавим функцию
function printPostlabel(){
JRequest::setVar("print", 1);
$this->postlabel();
}
Пару слов о параметрах
$name_f1 - первая строка "от кого"
$name_f2 - вторая строка "от кого"
$addres_f1 - первая строка "от куда"
$addres_f2 - вторая строка "от куда"
$addres_f3 - третья строка "от куда"
$index_f - индекс отправителя
$np1 - параметр на который ставиться чкбокс "наложенный платеж" и заполняется соответствующие поле прописной суммой, сравнивается с названием метода отправки
заголовок бланка берется из метода отправки
чекбоксы можно ставить перед печатью
p.s. если кто нибудь поможет оформить это в качестве плагина, буду благодарен