Posted by PedroMiguel on February 9, 2012 at 1:16pm
Olá a todos,
Tenho uma dúvida que talvez seja simples de me responderem, mas como ando aqui imerso em código ás vezes o simples torna-se complicado.
Tenho várias views onde preciso listar os valores dos multiple fields como texto no entanto no views aquilo só tem opção para escolher o separador "," (ou outro) para todos e não tem (que eu saiba) forma de se escolher o dilimitador antes do último valor.
Exemplo: Batatas, feijão, arroz, cenouras.
Eu quero: Batatas, feijão, arroz e cenouras.
Será que alguem me pode dar uma mãozinha nisto?
Obrigado.
Comments
Usa a opção rewrite output
Aí podes construir a sintaxe como queres.
Obrigado mas...
Não encontro o rewrite output, se estás a tentar dizer "rewrite results" não tenho nenhuma opção para me dar cada field como delta ou algo que se pareça.
Os únicos campos que tenho lá são:
[field_software] == Conteúdos: Software
[field_software-value] == Raw value
Ou seja, tb não o posso separar ai.
Esse field_software é que tem múltiplos valores e não a view em si.
Por exemplo (deltas da view):
Delta 0 = windows,mac
Delta 1 = windows, mac, linux
Eu preciso é de separar dentro desses deltas, como por exemplo obter no delta 1: windows, mac e linux
template
Boas,
Penso que a melhor opção será usares um template do views para esse field especifico e depois fazeres uma coisa do tipo:
(em pseudo code)
verificar o número de items no array
caso igual a 1 > não fazer nada
caso igual a 2 > separar com "e"
caso superior a 2 > separar com "," e no ultimo separar com "e"
só fiz isso uma vez num taxonomy field, mas deve funcionar na mesma.
Boa sorte!
Pois, lá vai ter de ser...
É uma pena, porque no views já lá está tudo para separar a lista, incluindo o separador e o número de valores a mostrar. Vou abrir um pedido no views, de certeza não devo ser a única pessoa a querer fazer isto.
Se entretanto ninguem responder por lá, eu vou tentar criar um patch ou um modulo e depois coloco aqui tambem.
Porque é que o dia não tem 32h? ;)
Já agora para quem precisar para o d6
Eu sabia que tinha feito algo para o d6 no ano passado, não é bem isto que quero agora, mas.. fica aqui para quem precisar...
Isto é para meter num tpl.php mas pode ser usado noutros lado
<?php
$puntuacion = ""; $i = 0;
foreach ((array)$field_meios_de_pagamento as $item) { $i = $i+1;
if ($i < (count($field_meios_de_pagamento)-1)) { $puntuacion = ", "; }
elseif ($i == (count($field_meios_de_pagamento)-1))
{ $puntuacion = " e "; }
else
{ $puntuacion = ". "; }
print $item['view'].''.$puntuacion.' '; };
?>