Ir para o conteúdo

 Voltar a OpenACS: Des...
Tela cheia

atribuindo o valor correto a variaveis num laco

22 de Junho de 2010, 18:47 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 12 vezes
Olá a todos,

Eu criei um laço para acrescentar categorias numa lista de elementos, composta por identificador e rótulo, que é usada posteriormente na página numa templatelist.

Embora ao id do elemento seja atribuído o valor correto,  ao rótulo (label) do segundo elemento não é atribuído o valor correto.

Ou seja, o category_name do segundo elemento repete o valor do category_name do primeiro elemento.

Segue abaixo a parte do código que adiciona as categorias na lista de elementos.

ns_log Notice "[videos::get_categories -package_id $package_id]"

foreach {category_id category_name } [videos::get_categories -package_id $package_id] {
lappend list_elements cat_${category_id} {
label "$category_name"
display_template { @videos.cat1@ }
}
}

ns_log Notice "ELEMENTS: $list_elements"



e o arquivo de log error.log mostra


[22/Jun/2010:18:50:56][13161.3045104528][-default:52-] Notice: 3188 | 3203 Licensa 3195 Tipo
[22/Jun/2010:18:50:56][13161.3045104528][-default:52-] Notice: ELEMENTS: image {
label " "
display_template {


}
} name {
label "MESSAGE KEY MISSING: 'videos.Name'"
display_template {

@videos.video_name@

}
} autor {
label "MESSAGE KEY MISSING: 'videos.Author'"
display_template {
@videos.autor@
}
} description {
label "MESSAGE KEY MISSING: 'videos.Description'"
display_template {
@videos.video_description@
}
} cat_3203 {
label "{$category_name}"
display_template { @videos.cat1@}
} cat_3195 {
label "${category_name}"
display_template { @videos.cat1@}
}


Como dito acima, o id dos elementos são mostrados corretamente
"cat_3203" e "cat_3195", mas os rótulos não são.

No navegador, ao invés de mostrar "Tipo" e "Licensa" como duas colunas da templatelist como temos no log
[22/Jun/2010:18:50:56][13161.3045104528][-default:52-] Notice: 3188 | 3203 Licensa 3195 Tipo

São mostradas duas colunas mas com o rótulo repetido com o valor da primeira coluna "Tipo"

Parece, que o identificador category_id segue a sequência do laço mas o rótulo category_name não segue.

Como eu conserto a variável $category_name ?

Autor: iuri sampaio


22 comentários

  • 12cf2da8b1a1753868c7e20816b7dab5?only path=false&size=50&d=404Eduardo Santos(usuário não autenticado)
    24 de Junho de 2010, 11:43

     

    Olá Iuri,O seu problema está obviamente relacionado à sintaxe da formação da lista. Repare na seguinte linha:lappend list_elements cat_${category_id} { label "$category_name" display_template { @videos.cat1@ } } }O comando lappend aceita dois switches: o primeiro o nome da lista e o segundo o valor que se deseja adicionar. No seu caso, você tenta adicionar uma lista à lista, e pode ser confusa a formação da lista dupla. Tenha sempre em mente que é mais fácil se utilizar um append por vez, e observe as etapas de formação da lista.Resumindo, eu faria da seguinte formaset cat_${category_id} {label "$category_name"display_template "@videos.cat1@}}Depois utilizaria uma segunda lista que contém os elementoslappend element_list $cat_${category_id}Tente construir algo assim e veja se funciona.Abraços 

Oportunidade de Trabalho com OpenACS

9 de Dezembro de 2011, 16:07, por Desconhecido

Domí­nio do ambiente Linux em modo Shell;



Fundamentos de desenvolvimento e criação de comunidades virtuais com o framework OpenACS

28 de Outubro de 2010, 16:51, por Desconhecido

Durante o Latinoware, que será realizado em Foz do Iguaçu entre os dias 10 e 12 de Novembro, será realizada uma oficina sobre desenvolvimento em OpenACS. A oficina é parte da iniciativa de compartilhamento do Projeto Software Público Internacional, e conta com apoio da organização.



Oficina sobre OpenACS em Belo Horizonte

19 de Novembro de 2008, 9:43, por Desconhecido

No dia 27 de novembro de 2008, será realizado durante o Encontro Mineiro de Software Livre, uma oficina para formação de desenvolvedores OpenACS. A oficina tem por objetivo introduzir a ferramenta na cidade e atender a uma demanda crescente por especialistas na área.



Treinamento em OpenACS em Brasília tem sua aula inaugural

10 de Novembro de 2008, 9:43, por Desconhecido

Fruto de uma paceria entre a Lupa Treinamento e a Secretaria de Logística e Tecnologia da Informação do Ministério do Planejamento, começou no último Sábado o terceiro treinamento em OpenACS realizado em Brasília.



Instalacao do OACS 5.3 em Debian e Ubuntu

29 de Janeiro de 2008, 16:52, por Desconhecido

Acaba http://cognovis.de/developer/ou de sair do forno...