Темизация заказа в Ubercart

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

Комментарии

Аватар пользователя kolosnitsyn kolosnitsyn 18 октября 2010 в 8:18

1) Искать в модулях уберкарта, менять (или, если их нет, то создавать) файлы *.tpl.php, которые выводят структуру этих страниц.
2) править файлы стилей

Аватар пользователя AI AI 18 октября 2010 в 12:50

"kolosnitsyn" wrote:
Искать в модулях уберкарта, менять файлы *.tpl.php

В корне неверно.
Верным будет создавать свои файлы *.tpl.php внутри своей темы. Так нет риска потерять наработки при очередном обновлении ubercart. Ну и еще несколько плюсов, о которых умолчу.

Аватар пользователя kolosnitsyn kolosnitsyn 20 октября 2010 в 8:10

Согласен, неверно выразил свою мысль, ибо очень торопился.

Исходники любых файлов шаблонов, модулей и т.д. тьрогать не нужно.
Существует много способов всё переопределить, не трогая исходник.

Аватар пользователя Arseniy Arseniy 26 октября 2010 в 8:22

Это понятно, что в теме надо создавать свои файлы. Но какие?

В теме есть вот что:
admin.itpl.php
customer.itpl.php
uc_order-admin.tpl.php
uc_order-customer.tpl.php
uc_order.tpl.php
Но их изменение почему-то никак не отражается на работе сайта Sad

Может какая-то документация есть?

Аватар пользователя Arseniy Arseniy 26 октября 2010 в 8:43

Нащупал, что uc_order-customer.tpl.php - это печатная форма заказа, видимо админ - то что шлется админам. А где темизируются сами списки заказов и собственно форма заказа на сайте, пока не понятно Sad

Аватар пользователя moroz6600 moroz6600 11 декабря 2010 в 12:31

У меня тоже вопрос по темизации, может кто знает:
как вывести форму ввода количества товара и кнопку "Добавить в корзину" в одну строчку?

Аватар пользователя Arseniy Arseniy 11 декабря 2010 в 13:39

"moroz6600" wrote:
У меня тоже вопрос по темизации, может кто знает:
как вывести форму ввода количества товара и кнопку "Добавить в корзину" в одну строчку?

Нужно добавить стиль:

tr.odd .form-item, tr.even .form-item {
    display: inline-block;

}

А вообще, чтобы легко решать такие вопросы, поставьте Мозилу с плагином FireFox и научитесь анализировать CSS. В Друпале очень многие задачи решаются элементарной правкой стиля.

Аватар пользователя xom940k xom940k 3 июля 2011 в 20:37

Вышел на этот пост в поисковике. Понял, что решения никто не дает. Спешу поделиться увиденным:
1. В модуле uc_order нет шаблона для вывода списка заказов по поути /user/[nid]/orders
2. file uc_order.module

<?php
/*uc_order_menu*/
  
$items['user/%user/orders'] = array(
    
'title' => 'Orders',
    
'description' => 'View your order history.',
    
'page callback' => 'uc_order_history',
    
'page arguments' => array(1),
    
'access callback' => 'uc_order_can_view_order',
    
'access arguments' => array(1),
    
'type' => MENU_LOCAL_TASK,
    
'file' => 'uc_order.admin.inc',
  );
?>

3. file uc_order.admin.inc

<?php
function uc_order_history($user) {
  
drupal_set_title(t('My order history'));

  

$header = array(
    array(
'data' => t('Date'), 'field' => 'o.created''sort' => 'desc'),
    array(
'data' => t('Order #'), 'field' => 'o.order_id'),
    array(
'data' => t('Status'), 'field' => 'os.title'),
    array(
'data' => t('Products'), 'field' => 'products'),
    array(
'data' => t('Total'), 'field' => 'o.order_total')
  );

  

$rows = array();

  

$context = array(
    
'revision' => 'themed-original',
    
'type' => 'amount',
  );

  

$result pager_query("SELECT o.order_id, o.created, os.title, SUM(op.qty) AS products, o.order_total AS total FROM {uc_orders} AS o LEFT JOIN {uc_order_statuses} AS os ON o.order_status = os.order_status_id LEFT JOIN {uc_order_products} AS op ON o.order_id = op.order_id WHERE o.uid = %d AND o.order_status IN "uc_order_status_list('general'TRUE) ." GROUP BY o.order_id, o.created, os.title, o.order_total"tablesort_sql($header), 200"SELECT COUNT(*) FROM {uc_orders} WHERE uid = %d AND order_status NOT IN "uc_order_status_list('specific'TRUE), $user->uid);

  

// Build a table based on the customer's orders.
  
while ($order db_fetch_object($result)) {
    
$context['subject'] = array('order' => $order);

    

$link l($order->order_id'user/'$user->uid .'/order/'$order->order_id);

    if (

user_access('view all orders')) {
      
$link .= '<span class="order-admin-icons">'uc_order_actions($orderTRUE) .'</span>';
    }

    

$rows[] = array(
      array(
'data' => format_date($order->created'custom'variable_get('uc_date_format_default''m/d/Y'))),
      array(
'data' => $link'nowrap' => 'nowrap'),
      array(
'data' => check_plain($order->title)),
      array(
'data' => (!is_null($order->products) ? $order->products 0), 'align' => 'center'),
      array(
'data' => uc_price($order->total$context), 'align' => 'right'),
    );
  }

  if (empty(

$rows)) {
    
$rows[] = array(array('data' => t('No orders available.'), 'colspan' => 5));
  }

  return 

theme('table'$header$rows, array('class' => 'uc-order-history'))
       . 
theme('pager'NULL200);
}
?>

4. Хуков нет - это очень плохо! Варианты: править функцию колбек - не круто. При обновлении модуля - все летит нафиг; парсить в хуке preprocess_node/page и выводить в шаблон.

<?php
function phptemplate_preprocess_page(&$vars) {
_print($vars__FILE____LINE__); //PHP not supported
}
#Array
#(
#    [template_files] => Array
#        (
#            [0] => page-user
#            [1] => page-user-1
#            [2] => page-user-orders
#        )
#....
#)
?>

т.е. можно создать шаблон либо page-user.php.tpl, либо page-user-orders.php.tpl и там уже верстку впихивать...