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(
'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=""
'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=""
'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(
'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="" 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=""
'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]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
_______________________________________________
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
__________ 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
__________ Information from ESET Smart Security, version of virus signature database 2835 (20080130) __________
The message was checked by ESET Smart Security.
http://www.eset.com
|