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

_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a