Если вы используете Ubercart 2 с Drupal 6 и хотите добавить два элемента span к полю количества в форме «добавить в корзину», вам потребуется внести некоторые изменения в код. Далее будет представлен пример кода и объяснены важные детали для успешной реализации данной задачи.

Шаг 1: Изменение шаблона формы

Создайте новый шаблон формы, в котором будет изменено поле количества. Для этого в вашей папке темы (например, sites/all/themes/your_theme/) создайте файл uc_product_add_to_cart.tpl.php. Затем добавьте следующий код в этот файл:

<?php

// Получаем доступ к полю количества
$quantity = drupal_render($form['qty']);

// Добавляем два элемента span
$span1 = '<span class="first-span">First Span</span>';
$span2 = '<span class="second-span">Second Span</span>';

// Формируем новый HTML код поля количества с добавленными span
$quantity_with_spans = preg_replace('/(<input.*?type="text".*?)>/i', '$1>' . $span1 . $span2 . '</span>', $quantity);

// Выводим поле количества с добавленными span
print $quantity_with_spans;

?>

Шаг 2: Изменение CSS-стилей

Теперь, когда мы добавили элементы span через код, давайте добавим некоторые стили для них. В вашем файле CSS добавьте следующий код:

.first-span {
  color: blue;
  font-weight: bold;
}

.second-span {
  color: red;
}

Шаг 3: Переименование и активация шаблона

Переименуйте файл uc_product_add_to_cart.tpl.php в uc_product_add_to_cart_field.tpl.php и активируйте шаблон, зайдя на страницу «Администрирование» -> «Сайтовая конфигурация» -> «Ubercart» -> вкладка «Настройка» -> «Настройка товаров» -> «Отображение товаров» и выбрав новый шаблон «uc_product_add_to_cart_field.tpl.php» для соответствующего варианта отображения товаров.

Дополнительные сведения

Вот несколько дополнительных вопросов и ответов, связанных с изменением поля количества в форме «добавить в корзину» в Ubercart 2:

1. Как добавить атрибуты к элементу input поля количества?

Для добавления атрибутов к элементу input в поле количества необходимо использовать хук hook_form_alter(). В вашем модуле или файле темы добавьте следующий код:

<?php

function YOUR_MODULE_OR_THEME_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'uc_product_add_to_cart_form') {
    $form['qty']['#attributes']['class'][] = 'your-class';
    $form['qty']['#attributes']['data-custom-attribute'] = 'your-attribute-value';
  }
}

?>

Замените YOUR_MODULE_OR_THEME на название вашего модуля или темы. Теперь вашему полю количества будет добавлен класс your-class и атрибут данных data-custom-attribute со значением your-attribute-value.

2. Как изменить значение по умолчанию для поля количества?

Для изменения значения по умолчанию для поля количества можно использовать хук hook_form_alter(). В вашем модуле или файле темы добавьте следующий код:

<?php

function YOUR_MODULE_OR_THEME_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'uc_product_add_to_cart_form') {
    $form['qty']['#default_value'] = 5;
  }
}

?>

Замените YOUR_MODULE_OR_THEME на название вашего модуля или темы. Теперь значение по умолчанию для поля количества будет 5.

3. Как добавить валидацию для поля количества?

Для добавления валидации к полю количества можно использовать хук hook_form_alter(). В вашем модуле или файле темы добавьте следующий код:

<?php

function YOUR_MODULE_OR_THEME_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'uc_product_add_to_cart_form') {
    $form['#validate'][] = 'YOUR_MODULE_OR_THEME_quantity_validate';
  }
}

function YOUR_MODULE_OR_THEME_quantity_validate($form, &$form_state) {
  if ($form_state['values']['qty'] < 1) {
    form_set_error('qty', t('Quantity must be greater than 0.'));
  }
}

?>

Замените YOUR_MODULE_OR_THEME на название вашего модуля или темы. Теперь при попытке добавить в корзину товар с нулевым или отрицательным значением в поле количества будет выводиться сообщение об ошибке.