Pesquisa no site
Itens ativos
Posts mais lidos hoje
Login do usuário
Assine o RSS do Drupal-BR
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:
//...
function uc_locaweb_visa_cart_form ($order) {
// ...
$parcelas = array(1 => "À Vista");
for ($i=2; $i <= $max_parcels; $i++) {
$juros_msg = $i > $juros_par ? 'com juros' : 'sem juros';
$parcelas[$i] = "{$i}x {$juros_msg}";
}
$form['visa_parcelas'] = array(
'#type' => 'radios',
'#title' => 'Parcelamento',
'#description' => "Quando houver pagamento com juros: {$juros}% ao mês",
'#default_value' => 1,
'#options' => $parcelas,
'#theme' => 'uc_locaweb_visa_parcelas'
);
return $form;
}
function theme_uc_locaweb_visa_parcelas($element) {
$col1 = $col2 = '';
$total = count($element['#options']);
$metade = (int) $total / 2;
for ($i=1; $i <= $total; $i++) {
if ($i <= $metade) {
$col1 .= drupal_render($element[$i]);
}
else {
$col2 .= drupal_render($element[$i]);
}
}
$output = '<table><tbody style="border: 0px;">';
$output .= "<tr><td>{$col1}</td><td>{$col2}</td></tr>";
$output .= '</tbody></table>';
return $output;
}
//...
function uc_locaweb_visa_cart_form ($order) {
// ...
$parcelas = array(1 => "À Vista");
for ($i=2; $i <= $max_parcels; $i++) {
$juros_msg = $i > $juros_par ? 'com juros' : 'sem juros';
$parcelas[$i] = "{$i}x {$juros_msg}";
}
$form['visa_parcelas'] = array(
'#type' => 'radios',
'#title' => 'Parcelamento',
'#description' => "Quando houver pagamento com juros: {$juros}% ao mês",
'#default_value' => 1,
'#options' => $parcelas,
'#theme' => 'uc_locaweb_visa_parcelas'
);
return $form;
}
function theme_uc_locaweb_visa_parcelas($element) {
$col1 = $col2 = '';
$total = count($element['#options']);
$metade = (int) $total / 2;
for ($i=1; $i <= $total; $i++) {
if ($i <= $metade) {
$col1 .= drupal_render($element[$i]);
}
else {
$col2 .= drupal_render($element[$i]);
}
}
$output = '<table><tbody style="border: 0px;">';
$output .= "<tr><td>{$col1}</td><td>{$col2}</td></tr>";
$output .= '</tbody></table>';
return $output;
}
//...
Resolvi postar aqui pois acho que é uma informação bastante válida pra todos.
flw!
Enviado por pedrofaria em 28/10/2008 - 10:30
- Se logue ou se registre para poder enviar comentários
- 473 leituras


Vc está fazendo um gateway para usar os pagamentos da Locaweb? Quais deles vc está abordando além do Visa (ou todos)?
Sobre as colunas: Uma possibilidade também é "falsear" colunas com o uso do CSS (colocando display:inline para estes form-items).
Abraço!
--

Inventive...tempo de ser