Colocando radios em duas colunas

Estou mexendo com o Ubercart nestes dias e precisei criar um campo do tipo radios (grupo de radio button) em duas colunas para colocar as parcelas do pagamento.

A solução foi muito simples, bastou eu criar um tema para o CAMPO.

Ficou assim:

  1. //...
  2.  
  3. function uc_locaweb_visa_cart_form ($order) {
  4. // ...
  5. $parcelas = array(1 => "À Vista");
  6.  
  7. for ($i=2; $i <= $max_parcels; $i++) {
  8. $juros_msg = $i > $juros_par ? 'com juros' : 'sem juros';
  9. $parcelas[$i] = "{$i}x {$juros_msg}";
  10. }
  11.  
  12. $form['visa_parcelas'] = array(
  13. '#type' => 'radios',
  14. '#title' => 'Parcelamento',
  15. '#description' => "Quando houver pagamento com juros: {$juros}% ao mês",
  16. '#default_value' => 1,
  17. '#options' => $parcelas,
  18. '#theme' => 'uc_locaweb_visa_parcelas'
  19. );
  20.  
  21. return $form;
  22. }
  23.  
  24. function theme_uc_locaweb_visa_parcelas($element) {
  25. $col1 = $col2 = '';
  26.  
  27. $total = count($element['#options']);
  28. $metade = (int) $total / 2;
  29.  
  30. for ($i=1; $i <= $total; $i++) {
  31. if ($i <= $metade) {
  32. $col1 .= drupal_render($element[$i]);
  33. }
  34. else {
  35. $col2 .= drupal_render($element[$i]);
  36. }
  37. }
  38.  
  39. $output = '<table><tbody style="border: 0px;">';
  40. $output .= "<tr><td>{$col1}</td><td>{$col2}</td></tr>";
  41. $output .= '</tbody></table>';
  42.  
  43. return $output;
  44. }
  45.  
  46. //...

Resolvi postar aqui pois acho que é uma informação bastante válida pra todos.

flw!

Categoria: