mto boa dica, Beto! Eu já estava há algum tempo procurando algo desse tipo. Já havia tentado outras soluções, mas acabava desistindo por causa da complexidade.
Abraços a todos! Beto escreveu: > 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] > <mailto:[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 list >>>> [email protected] <mailto:[email protected]> >>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >>>> >>>> >>> _______________________________________________ >>> Lista mailing list >>> [email protected] <mailto:[email protected]> >>> http://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 >> list [email protected] <mailto:[email protected]> >> http://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] <mailto:[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 > > > > __________ 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

