Ainda bem q tudo foi resolvido ne? :D Acho q cabe uma dica pra os que não conhecem, o php dbug, é o mesmo que um vardump, porem com cores, o que facilita muito na hora de debugar as coisas.
abraixo o link: http://dbug.ospinto.com/ Abraços a todos! 2008/4/4 Mike Maciel <[EMAIL PROTECTED]>: > Salve a todos! > > "A sorte está do nosso lado, Luke!" ;-) > > Acho que encontrei o problema... os vários arrays concatenados acabaram me > confundindo bastante. No último exemplo que eu enviei, onde dupliquei os > valores, precisei adicionar um outro array para armazenar aqueles arrays que > ja existiam e incrementar os outros. Tudo funcionou normalmente após excluir > a duplicata, e manter o array que eu havia criado. > > A forma correta é: > > $this->data=array( > array( > 'chamada' => $do->get('chamada'), > 'titulo' => $do->get('titulo'), > 'descricao' => $do->get('resenha'), > 'link' => site_url( > 'noticia/id/'.$do->get('noticia_id') ), > 'foto' => '/uploads/Images/'.$do->get('foto') ) > ); > > E eu estava fazendo assim: > > $this->data=array( > 'chamada' => $do->get('chamada'), > 'titulo' => $do->get('titulo'), > 'descricao' => $do->get('resenha'), > 'link' => site_url('noticia/id/'.$do->get('noticia_id') ), > 'foto' => '/uploads/Images/'.$do->get('foto') > ); > > Faltava um outro array. Agora está funcionando tudo corretamente. > > Abraços! > > Mike > > > > > Mike Maciel escreveu: > > É, parece que vamos msm precisar de toda essa sorte... rs > > Dei o var_dump. O resultado é esse: > > array(1) { ["noticia"]=> array(5) { ["chamada"]=> string(13) "De cara > nova!" ["titulo"]=> string(43) "Bionobres comemora 3 anos em grande estilo!" > ["descricao"]=> string(87) "Novo layout do site e novos serviços: Neste > aniversário, quem ganha o presennte é você!" ["link"]=> string(23) > "/index.php/noticia/id/1" ["foto"]=> string(41) > "/uploads/Images/foto_3_anos_bionobres.jpg" } } > > Em primeira vista, não parece nada incorreto. > > Agora quer ver algo interessante? > > Resolvi duplicar a array gerada no model. Onde estava: > > $this->data=array( > 'chamada' => $do->get('chamada'), > 'titulo' => $do->get('titulo'), > 'descricao' => $do->get('resenha'), > 'link' => site_url('noticia/id/'.$do->get('noticia_id') ), > 'foto' => '/uploads/Images/'.$do->get('foto') > ); > > > > Eu coloquei: > > $this->data=array( > array( > 'chamada' => $do->get('chamada'), > 'titulo' => $do->get('titulo'), > 'descricao' => $do->get('resenha'), > 'link' => site_url( > 'noticia/id/'.$do->get('noticia_id') ), > 'foto' => '/uploads/Images/'.$do->get('foto') ), > > array( > 'chamada' => $do->get('chamada'), > 'titulo' => $do->get('titulo'), > 'descricao' => $do->get('resenha'), > 'link' => site_url( > 'noticia/id/'.$do->get('noticia_id') ), > 'foto' => '/uploads/Images/'.$do->get('foto') ) > ); > > Adivinha o que aconteceu? O template parser funcionou normalmente. Abaixo > segue o var_dump do segundo código, com informações duplicadas: > > array(1) { ["noticia"]=> array(2) { [0]=> array(5) { ["chamada"]=> > string(13) "De cara nova!" ["titulo"]=> string(43) "Bionobres comemora 3 > anos em grande estilo!" ["descricao"]=> string(87) "Novo layout do site e > novos serviços: Neste aniversário, quem ganha o presennte é você!" > ["link"]=> string(23) "/index.php/noticia/id/1" ["foto"]=> string(41) > "/uploads/Images/foto_3_anos_bionobres.jpg" } [1]=> array(5) { ["chamada"]=> > string(13) "De cara nova!" ["titulo"]=> string(43) "Bionobres comemora 3 > anos em grande estilo!" ["descricao"]=> string(87) "Novo layout do site e > novos serviços: Neste aniversário, quem ganha o presennte é você!" > ["link"]=> string(23) "/index.php/noticia/id/1" ["foto"]=> string(41) > "/uploads/Images/foto_3_anos_bionobres.jpg" } } } > > > Muuuuita sorte pra nós! > > Mike > > Marco Telles escreveu: > > Provavelmente isso é porque o foreach está recebendo um valor nulo. Já > deu um var_dump na variável que está usando no foreach ? > > Muita sorte para nós! > > Marco Telles > > > > Mike Maciel escreveu: > > > Olá a todos! > > Estou usando o Template Parser do CI para gerar a pagina inicial de um > site. No código abaixo, enquanto a array "noticia" contiver 2 ou mais > elementos, ele processa corretamente. Porém, se a array noticia > contiver apenas 1 elemento, ele gera erro. Ese é o código do template. > > {noticia} > <h5>{chamada}</h5> > <h6>{titulo}</h6> > <div id="capa-noticia-foto"> > <img src="{foto}" alt="{titulo}" border="0" /> > <span>{descricao}</span> > </div> > {/noticia} > > > Este é o código do model que gera a array. > > > function selecionar_noticia_capa(){ > $this->rapyd->load("dataobject"); > $do=new DataObject('noticias'); > $do->load(1); > > $this->data=array( > 'chamada' => $do->get('chamada'), > 'titulo' => $do->get('titulo'), > 'descricao' => $do->get('resenha'), > 'link' => site_url( > 'noticia/id/'.$do->get('noticia_id') ), > 'foto' => '/uploads/Images/'.$do->get('foto') > ); > > return $this->data; > > > E abaixo o código que chama a função do model e processa o template: > > > function index() > { > $this->load->model('home_model','home'); > > $data['noticia']=$this->home->selecionar_noticia_capa(); > $this->parser->parse('capa',$data); > } > > > Este é o erro que está sendo gerado. > > > A PHP Error was encountered > > Severity: Warning > > Message: Invalid argument supplied for foreach() > > Filename: libraries/Parser.php > > Line Number: 131 > > > Já tem algum tempo q ando quebrando a cabeça, e até agora não achei > solução. Alguém já passou por isso ou sabe como resolver essa questão? > > Abraços a todos! > > Mike > ------------------------------------------------------------------------ > > _______________________________________________ > Lista mailing [EMAIL > PROTECTED]://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > _______________________________________________ > Lista mailing [EMAIL > PROTECTED]://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > __________ Information from ESET Smart Security, version of virus signature > database 2835 (20080130) __________ > > The message was checked by ESET Smart Security. > http://www.eset.com > > > > > > > __________ Information from ESET Smart Security, version of virus > signature database 2835 (20080130) __________ > > The message was checked by ESET Smart Security. > > http://www.eset.com > > ------------------------------ > > _______________________________________________ > Lista mailing [EMAIL > PROTECTED]://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > __________ Information from ESET Smart Security, version of virus signature > database 2835 (20080130) __________ > > The message was checked by ESET Smart Security. > http://www.eset.com > > > > _______________________________________________ > Lista mailing list > [email protected] > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > -- - - - - - - - - - - - - - - - - - - - - - Luiz Alberto S. Ribeiro [ Beto ] http://beto.euqueroserummacaco.com
_______________________________________________ Lista mailing list [email protected] http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

