Статья

Шаблоны счета

Шаблоны счета хранятся в sites\all\modules\ubercart\uc_order\templates

uc_order-admin.tpl.php - Шаблон для администратора
uc_order-customer.tpl.php - Шаблон который видит покупатель

 

 

Теги:

Сниппет вывода текущих скидок модуля Total Discount

<?php

  1. if (module_exists('uc_discount_total')) { 
  2. $rates_res = db_query('SELECT * FROM {uc_discount_total}');
  3. if ($rates_res->num_rows != NULL) {
  4. print t('Currently we have the following discount rates enabled');
  5. print '<table class="discount-rates">
  6. <tr>
  7. <th>'.t('Total amount range').'</th>
  8. <th>'.t('Your discount').'</th>
  9. </tr>';
  10. while($row = db_fetch_array($rates_res)) {
  11. print '<tr>
  12. <td>'.round($row['total_min']).' &#8212; '.round($row['total_max']).'</td>
  13. <td>'.round($row['total_rate']).'</td>
  14. </tr>';
  15. }
  16. print '</table>';
  17. }
  18. }
  19.  
  20. ?>

Версия с theme table

  1. if (module_exists('uc_discount_total')) {
  2. $rates_res = db_query('SELECT * FROM {uc_discount_total}');
  3. if ($rates_res->num_rows != NULL) {
  4. $header = array(t('Total amount range'), t('Your discount'));
  5. while($row = db_fetch_array($rates_res)) {
  6. 	$rows[] = array(round($row['total_min']) . ' &#8212; ' . round($row['total_max']), round($row['total_rate']));
  7. }
  8. print theme('table', $header, $rows, array('class' => 'discount-rates'), t('Currently we have the following discount rates enabled'));
  9. }
  10. }

Теги:

Устранение проблем отображения картинок ImageCache в nginx

I couldn't get the ImageCache module for Drupal to work for the longest time because I didn't realize that the module came with a .htaccess file that pushes the image load back through Drupal to calculate the caching properly. Knowing this I was able to find this magical chunk for your nginx.conf (or your virtual host config). Slip this code in near the static serve file command

Теги:

Как открыть в Fancybox любую страницу сайта

Код, по клику на элементе #fancy-contact открывает в Fancybox форму контактов расположенную по адресу /contact

Drupal 6:

  1. $(function() {
  2.   $('#fancy-contact').click(function() {
  3.     $.fancybox.showActivity();
  4.     $.get(Drupal.settings.basePath + 'contact', function(data) {
  5.       var form = $('#contact-mail-page', data);
  6.       $.fancybox({content:form});
  7.     });
  8.     return false;
  9.   });
  10. });

В Drupal 7 нужно дополнительно обернуть код в:

Теги:

tapir tables api

http://www.ubercart.org/docs/developer/7512/tapir_tables_api документация по tapir. API таблиц используемые в ubercart.

Получение массива таблицы на странице корзины

 

  1. function mymodule_tapir_table_alter(&$table, $table_id) {
  2. if ($table_id != 'uc_cart_view_table') return;
  3. }
  4. print_r($table)
Теги:

Вывод данных во views из сторонней базы данных

Перевод будет позже, взято из комментариев на drupal.org.

Теги:

Темизация Webform

Очень просто решается задача с любой веб-формой на Drupal, так как её можно решить зачастую не прибегая к написанию кода. Самостоятельно при помощи конструктора добавляются поля формы, а затем выставляются их свойства.
Но как быть в случае сложной формы, в которой принципиальное значение имеет расположение полей ввода.
К примеру, это таблица, в ячейках которой имеются поля для ввода и, кроме того, при изменении полей должен выполняться наш javascript.

Требуется скопировать из папки (директории): sites/all/modules/webform/templates
файл webform-form.tpl.php
в папку (директорию): sites/all/themes/mytheme
где mytheme — это ваша тема.

Теперь переименуйте его в webform-form-[nid].tpl.php где [nid] — id ноды, в которой будет стилизована форма.

Всё что есть в этом файле оставляем как есть, лишь добавляем в верхнюю его часть до <?php ваш html-код, а в местах где нужно вставить поле ввода помещаем такую конструкцию: <?=drupal_render($form['submitted']['test1'])?>

где test1 — это название вашего поля

В случае с таблицей выглядит так:

  1. <table>
  2. 	<tbody>
  3. 		<tr>
  4. 			<td>
  5. 				Test#1</td>
  6. 			<td>
  7. 				Test#2</td>
  8. 			<td>
  9. 				<?=drupal_render($form['submitted']['test1'])?></td>
  10. 			<td>
  11. 				<?=drupal_render($form['submitted']['test2'])?></td>
  12. 		</tr>
  13. 	</tbody>
  14. </table>

Не забудьте очистить кэш Drupal-а .

Выполнение javascript по нажатию на поле ввода.
В функцию mymodule_form_webform_client_form_[nid]_alter, где mymodule — название вашего модуля, а [nid] — как обычно id ноды добавляю аттрибуты к полям:

  1. function mymodule_form_webform_client_form_34_alter(&$form, &$form_state, $form_id) {
  2.     $form["submitted"]["servers_quantity"]["#attributes"]['onkeyup']='alert("test");';
  3. }

Сработает javascript: alert(‘test’);

 

Источник статьи

Теги:
Ленты новостей