2010-08-18 4 views
1

Я работаю над установкой Ubercart на сайте Drupal, который мы производим. Все идет гладко, но теперь я пытаюсь настроить шаблон страницы заказа (модуль uc_order), чтобы разработчики frontend могли его подгонять.Theming Ubercart Order Panes

Страница является той, которую вы просматриваете, когда вы идете к пользователю/[UID]/order/[ORDER-ID].

Я понимаю, как использовать крючки, препроцесс, тематические и шаблонные функции в Drupal, но в настоящее время я не вижу способа изменить какую-либо разметку на «панели заказов», составляющие страницу. Само собой разумеется, что я не хочу касаться кода модуля.

Таким образом, одна из страниц является «Билла To» адрес панели:

<div class="order-pane pos-left"> 
    <div class="order-pane-title">Bill to: </div> 
    Name<br> 
    Address<br> 
    Town<br> 
    Postcode<br> 
</div> 

По существу я хотел бы поставить класс в DIV, так что это выглядит следующим образом:

<div class="order-pane pos-left bill-to">...</div> 
<div class="order-pane pos-left ship-to">...</div> 
<div class="order-pane pos-left payment">...</div> 
<div class="order-pane pos-left comments">...</div> 
... 

Я просто не вижу способа сделать это.

Любая помощь будет высоко оценена.

ответ

1

Вы проверили последнюю версию UC? В примечании к выпуску указано:

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

... и если я не ошибаюсь (прошло несколько месяцев, так как я работал с UC), счет-фактура - это страница, отображаемая по указанному вами URL-адресу.

Если моя память потерпела неудачу (у меня нет установки UC, удобной для проверки себя), возможное обходное решение (по общему признанию, далекое от элегантности, но все же позволяющее вам не изменять код модуля) было бы изменить HTML с помощью jQuery после загрузки страницы.

Обходное решение hack-ish будет поддерживать ваш собственный обратный вызов страницы для этого URL-адреса и просто изменить определение меню в UC-коде [да, он все еще взламывает код, но в этом случае вам просто нужно изменить одна строка в UC-коде и может поддерживать ваш код в отдельном модуле].

HTH, Mac.

+0

Спасибо, я думал о jQuery, но мы были не очень рады этому. Я также подумал о создании обратного вызова для каждой панели заказов, но я не уверен, как мы сможем это поддерживать. Я рассмотрю это немного дальше, я как бы надеялся, что я просто что-то упустил. – JonB

1

Вы можете создавать собственные панели или отдельные панели для всего, искать hook_pane или вставлять классы с помощью jquery.