О проекте
Данный сайт попытка повысить коммуникацию самых активных разработчиков на CMS Drupal - блоггеров. Если Вы ведете свой блог о Друпале, значит Вы готовы делиться вашими знаниями, помочь другим. Не всегда ваши знания доходят до потребителя. Задача данного сайта агрегировать знания различных блогов в единую ленту и привести на Ваши блоги активных пользователей.
Активность пользователей на Вашем сайте будет дополнительным стимулом к дальнейшей работе.
Удачи во всех Ваших начинаниях!
Добавляем поле "Цена" на страницу корзины в Ubercart
На странице /cart в Уберкарте показываются только такие поля:
Общая сумма, и кол-во элементов.
В одном проекте мне потребовалось добавить в таблицу корзины индивидуальную цену одного элемента, вот так:
после некоторого ковыряния, решилось десятком строк.
1. Создаем свой модуль.
2. Реализовываем в нем хук вашмодуль_tapir_table_alter. Это позволяет расширять многие таблицы, созданные через вспомогательный конструктор таблиц - tapir. Как вы могли догадаться, корзина в Уберкарте сделана именно через tapir.
3. Делаем хук похожим на мой:
<?phpfunction mymodule_tapir_table_alter(&$table, $table_id) { if ($table_id != 'uc_cart_view_table') return; // "Регистрируем" новую колонку $table['#columns']['price_item'] = array( 'cell' => t('Price'), 'weight' => 2.5, ); foreach (element_children($table) as $key) { if (empty($table[$key]['nid']['#value'])) continue; // Вообще, тут можно легко избежать "дорогого" в плане нагрузки вызова node_load, и обойтись sql селектом. Но, если у вас у пользователя обычно бывает 1-5 товаров в корзине, этим можно пренебречь. $n = node_load($table[$key]['nid']['#value']); $p = uc_price($n -> sell_price, array());
// И добавляем в новую колонку данные. $table[$key]['price_item'] = array('#value' => $p, '#cell_attributes' => array('class' => 'price-item'));
}}?>
end of story :)
Blog categories: Drupal