Выбор invoice по условию

Главные вкладки

Аватар пользователя bob bob 6 декабря 2011 в 19:20

Как в Ubercart 2 сделать выбор инвойса по определенному условию?

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

Я уже голову сломал, думая, как сделать выбор соответствующего инвойса. Уточню, у меня есть два шаблона инвойсов, но мне непонятно куда мне нужно их кинуть, чтобы при определенном результате ф-ции variable_get отобразился тот, или иной шаблон. Пробовал в template.php в phptemplate_preprocess_page, в $vars['template_files'] изменить шаблон, закинул свои шаблоны в папку темы, ни какого эфекта, по прежнему выбирается шаблон по умолчанию из uc_order.

Комментарии

Аватар пользователя bob bob 7 декабря 2011 в 3:53
Сам п’ю, сам гуляю,
сам стелюся, сам лягяю.
(укр. нар. песня).

Что-то в последнее время я сам задаю вопросы и сам же на них отвечаю. Как говорится: тихо сам с собою я веду беседу. Smile

Ну, а теперь по существу вопроса. Я хоть и занимаюсь Drupal'oм уже четвертый месяц, но так еще в нем до конца и не освоился и на то что у человека с опытом уйдут минуты, у меня уходят часы и дни, но кто ищет, тот всегда найдет. Вся проблема, как оказалась, решается достаточно просто, хотя конечно пришлось и погуглить и в исходниках порыться...

Для того чтобы изменять шаблон invoice в зависимости от ситуации достаточно просто сделать следующее

<?php
variable_set
('uc_cust_order_invoice_template''template_name');
?>

Т.е. просто проверяем свое условие и в зависимости от него вместо template_name подставляем имя нужного нам шаблона. Сами же шаблоны создаем следуя инструкциям из документации по Ubercart

  1. Browse to the directory ubercart/uc_order/templates.
  2. Copy either customer.itpl.php or admin.itpl.php to a new file and rename it (you must keep the .itpl.php file extension).
  3. Modify the new file to your heart's content.

По русски это значит приблизительно следующее. В директории ubercart/uc_order/templates скопируйте customer.tpl.php, или admin.tpl.php в новый файл, перекорежте его по вашей надобности и разумению и сохраните под новым именем.

Поскольку дока все таки по первому Ubercart, то есть некоторый нюанс.При сохранении нового файла следует придерживаться соглашения об именах, т.е новый файл должен выглядеть следующим образом uc_order-your_name.tpl.php.

Вот собственно и все. Может кто-то скажет, что это прописные истины и незачем это все писать. Но думаю не один я такой, которому надо и дело делать и в Drupal'е разбираться, а времени нет. Так что это скорее записка на полях для самого себя, чтоб не забыть.