Index: uc_attribute.admin.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/ubercart/uc_attribute/Attic/uc_attribute.admin.inc,v retrieving revision 1.1.2.24 diff -u -p -r1.1.2.24 uc_attribute.admin.inc --- uc_attribute.admin.inc 20 Oct 2009 20:58:06 -0000 1.1.2.24 +++ uc_attribute.admin.inc 30 Nov 2009 07:23:49 -0000 @@ -84,11 +84,11 @@ function uc_attribute_form($form_state, '#default_value' => empty($attribute->label) ? $attribute->name : $attribute->label, ); $form['description'] = array( - '#type' => 'textfield', + '#type' => 'textarea', + '#rows' => '3', '#title' => t('Help text'), '#description' => t('Optional. Enter the help text that will display beneath the attribute on product add to cart forms.'), '#default_value' => $attribute->description, - '#maxlength' => 255, ); $form['required'] = array( '#type' => 'checkbox', @@ -950,7 +950,6 @@ function theme_uc_product_attributes($el } $option_rows[$key] = t('@attribute: @option', array('@attribute' => $element[$key]['#attribute_name'], '@option' => $optionstr)); } - if (!empty($option_rows)) { return theme('item_list', array_values($option_rows), NULL, 'ul', array('class' => 'product-description')); } Index: uc_attribute.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/ubercart/uc_attribute/uc_attribute.module,v retrieving revision 1.12.2.36 diff -u -p -r1.12.2.36 uc_attribute.module --- uc_attribute.module 20 Oct 2009 20:58:06 -0000 1.12.2.36 +++ uc_attribute.module 30 Nov 2009 07:23:49 -0000 @@ -410,7 +410,7 @@ function uc_attribute_uc_product_models( */ function uc_attribute_add_to_cart_data($form_values) { if (isset($form_values['attributes'])) { - return array('attributes' => $form_values['attributes']); + return array('attributes' => preg_replace('/\r\n/',"\n",$form_values['attributes'])); } else { return array('attributes' => array()); @@ -649,7 +649,7 @@ function _uc_cart_product_get_options($i $attribute = $node->attributes[$aid]; $name = _uc_attribute_get_name($attribute); // Only discrete options can affect the price of an item. - if ($attribute->display && count($attribute->options)) { + if (in_array($attribute->display, array(1, 2, 3)) && count($attribute->options)) { // There may be many selected options, or just one. foreach ((array)$selected as $oid) { if ($oid > 0) { @@ -660,7 +660,7 @@ function _uc_cart_product_get_options($i } } else { - // Handle textfield attributes. + // Handle textfield and textarea attributes. $options[$index] = array( 'attribute' => $name, 'aid' => $aid, @@ -751,7 +751,7 @@ function _uc_attribute_alter_form($produ $options[$option->oid] .= $display_price; } - if (count($attribute->options) && $attribute->display > 0) { + if (count($attribute->options) && in_array($attribute->display, array(1, 2, 3))) { if ($attribute->required) { if ($attribute->display == 1) { $options = array('' => t('Please select')) + $options; @@ -779,7 +779,7 @@ function _uc_attribute_alter_form($produ } else { $form_attributes[$attribute->aid] = array( - '#type' => 'textfield', + '#type' => $attribute->display == 0 ? 'textfield' : 'textarea', '#description' => check_markup($attribute->description), '#default_value' => $attribute->required == FALSE ? $attribute->options[$attribute->default_option]->name : '', '#required' => $attribute->required, @@ -802,6 +802,7 @@ function _uc_attribute_alter_form($produ function _uc_attribute_display_types() { return array( 0 => t('Text field'), + 4 => t('Text area (multiple rows)'), 1 => t('Select box'), 2 => t('Radio buttons'), 3 => t('Checkboxes'), @@ -817,7 +818,7 @@ function _uc_attribute_display_types() { * Array of attribute ids that have price affecting options. */ function uc_attribute_priced_attributes($nid) { - $attributes = db_query("SELECT DISTINCT (pa.aid) FROM {uc_product_attributes} AS pa INNER JOIN {uc_attribute_options} AS ao ON ao.aid = pa.aid INNER JOIN {uc_product_options} AS po ON (po.oid = ao.oid AND po.nid = pa.nid) WHERE pa.nid = %d AND po.price <> 0 AND pa.display <> 0", $nid); + $attributes = db_query("SELECT DISTINCT (pa.aid) FROM {uc_product_attributes} AS pa INNER JOIN {uc_attribute_options} AS ao ON ao.aid = pa.aid INNER JOIN {uc_product_options} AS po ON (po.oid = ao.oid AND po.nid = pa.nid) WHERE pa.nid = %d AND po.price <> 0 AND pa.display IN (1,2,3)", $nid); $aids = array(); while ($attribute = db_fetch_array($attributes)) { $aids[] = $attribute['aid'];