Bom ponto Vinicius,

Realmente a idéia é essa mesmo. Eu queria trabalhar no parser pra fazer algo tipo, e evitar a programação no controller mesmo pra quando não tem a tag.
Não sei se é um bom approach, nem se fica claro pra qq. designer ...

{has:noticias}
<ul>
{noticias}
<li><a href="/noticias/abrir{id}">{titulo}</a></li>
{/noticias}
</ul>
{/has:noticias}
{hasnt:noticias}
<p>Não há biscoitos</p>
{/hasnt:noticias}

Assim o cara abre essa pagina como html e continua conseguindo ver a página em ambos os casos, quando tem e quando não tem dados. Nesse caso acima, tanto o designer quanto o programador conseguem trabalhar tranquilamente.

O que vcs acham ?

Em 21/07/2010 10:18, Vinicius Cruz escreveu:
Um detalhe do exemplo do Roberto, que faz com que eu evite ao máximo colocar tag html no php (o mínimo que seja), é o fato de facilitar para o designer.

Por exemplo: no último caso, onde ele passa do controller o valor para {naotemnoticia}, se o designer quiser colocar um class na tag p, teria que ir até o controller. E isso, pelo menos pra mim, é um risco. Além de ele dificilmente saber de onde vem esse {naotemnoticia}, ainda corre o risco de alterar o código =/

Por isso uso a primeira opção, evitando até o anchor do Code Igniter:

<ul>

<?php foreach ( $noticias->result() as $n ) : ?>

<li><a href="<?php echo site_url('noticias/abrir/' . $n->id); ?>

"><?php echo $n->titulo; ?></li>

<?php endforeach; ?>

</ul>


Facilita até pra o designer saber o que é código php, pela tag <?php, diferente do parser {} e nem pensar em mexer. Será que é por isso que no dreanweaver a tag php é vermelho, de sinal de alerta? heehehehehehe


Att,
Vinicius Cruz
http://twitter.com/vinaocruz
http://www.zime.com.br/


Em 21 de julho de 2010 08:53, Roberto Almeida Quilice Longhi <[email protected] <mailto:[email protected]>> escreveu:

    Opa,

    Então, o problema não é ter o PHP misturado com o HTML, e sim ter
    o PHP MUITO misturado com o html.
    Vou dar um exemplo:


    <?php if ( $noticias->num_rows() > 0 ) : ?>

    <ul>

    <?php foreach ( $noticias->result() as $n ) : ?>

    <li><?php echo anchor(‘noticias/abrir/’.$n->id, $n->titulo,
    ‘class=”titulo_item”); ?></li>

    <?php endforeach; ?>

    </ul>

    <?php else : ?>

    <p>Não há biscoitos</p>

    <?php endif; ?>

    *6 tags php*

    Eu faria da seguinte forma:

    <?php
        $list = array();
        foreach ( $noticias->result() as $n ) {
            $list[] = anchor(‘noticias/abrir/’.$n->id, $n->titulo,
    ‘class=”titulo_item”);
        }
    if (count($list) > 0) {
            $result = '<p>Não há biscoitos</p>';
    } else {
            $result = ul($list);
    }
    ?>

    <?php echo $result ?>

    *2 tags php*

    Mas não costumo trabalhar dessa forma.
    Estou somente adaptando o que você fez, pra abordar o ponto de
    abrir e fechar as tags html e php.
    Misturar os 2 códigos pra mim além da perda de desempenho,
    dificulta a manutenção.
    Eu particularmente gosto muito do parser.
    E nesse seu html o parser teria uma aparencia bem agradavel e
    facil de manter ...

    <ul>
    {noticias}
    <li><a href="/noticias/abrir{id}">{titulo}</a></li>
    {/noticias}
    </ul>
    {naotemnoticia}

    No controller eu preencho o item naotemnoticia com "<p>Não há
    biscoitos</p>" quando não tem dados.
    Não sei se é a melhor forma, mas se uso o parser, procuro extrair
    o máximo que posso dele.
    E no caso anterior, com o uso dos helpers, sigo a mesma abordagem.

    Em 20/07/2010 12:16, Rafael V. de Oliveira escreveu:

    Robertom

    É quase impossível não usar por partes.

    Um caso bem simplório é este

    Controller : noticias.php

    function lista()

    {

         $data[‘noticias’] = $this->db->get(‘noticias’);

         $this->load->view(‘noticias_view’, $data);

    }

    View: noticias_view.php

    <?php if ( $noticias->num_rows() > 0 ) : ?>

    <ul>

    <?php foreach ( $noticias->result() as $n ) : ?>

    <li><?php echo anchor(‘noticias/abrir/’.$n->id, $n->titulo,
    ‘class=”titulo_item”); ?></li>

    <?php endforeach; ?>

    </ul>

    <?php else : ?>

    <p>Não há biscoitos</p>

    <?php endif; ?>

    Pronto, já tenho o PHP misturado com HTML. E acho que não dá pra
    fugir muito disso. A não ser que use assim

    <?php

    echo ‘<ul>’;

    foreach ( $noticias->result() as $n )

    {

         echo ‘<li>’.anchor(....).’</li>’;

    }

    echo ‘</ul>’;

    O que sinceramente eu acho bem pior.

    Leve ainda em conta que TODOS os arquivos do codeigniter são .php

    Nosso colega Bruno Barros perguntou do index.php no base_url().
    Não há problema nenhum, uma vez que o base_url() retorna o que
    estiver dentro da variável $config[‘index_page’];

    Logo, se eu for migrar para um servidor que não tem mod_rewrite
    basta setar assim

    $config[‘index_page’] = ‘index.php’;

    Abraços ;P

    *De:* [email protected]
    <mailto:[email protected]>
    [mailto:[email protected]] *Em nome de *Roberto
    Almeida Quilice Longhi
    *Enviada em:* terça-feira, 20 de julho de 2010 15:36
    *Para:* CodeIgniter Brasil
    *Assunto:* Re: [CodeIgniter] RES: Duvida qto ao uso de base_url

    Salve Rafael,

    Lí em algum lugar falando que o php perde performance se
    interpretado em partes, ou seja, se vc tem um arquivo com html /
    php / html / php / html.
    Então eu crio um domínio para os meus apps, sites, etc e deixo
    tudo o mais próximo do resultado final possível.
    Realmente o caso da subpasta acontece, mas dependendo da
    hospedagem prefiro criar um prefixo no dns (app.dominio.com
    <http://app.dominio.com>).

    ;)

    Em 20/07/2010 11:10, Rafael V. de Oliveira escreveu:

    Eu também fazia assim ( com o ./) até o dia que tive que migrar
    um site para uma subpasta, que não tinha nada em comum com a
    raiz. É raro, mas aconteceu comigo.

    Como os finalmente sempre ficam comigo, eu não me importo em
    abrir e fechar código php.

    *De:* [email protected]
    <mailto:[email protected]>
    [mailto:[email protected]] *Em nome de *Roberto
    Almeida Quilice Longhi
    *Enviada em:* terça-feira, 20 de julho de 2010 14:46
    *Para:* CodeIgniter Brasil
    *Assunto:* Re: [CodeIgniter] Duvida qto ao uso de base_url

    Começo todos os links com /.
    Assim não fico abrindo e fechando código php.

    Em 20/07/2010 00:46, Cleyverson Costa escreveu:

    Pessoal,

    Eu faço uso do base_url() em todos o s links do meu site, existe
    algum problema em relação ao google qto a isso?

    por exemplo:

    <a href="<?php echo base_url(); ?>controller/function">conteúdo</a>

    é igual a

    <a href="controller/function">conteúdo</a>

    mas existe alguma diferença em usar um ou outro?? Qual a
    experiência de vcs?

    []s


-- Cleyverson Pereira Costa


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



-- Roberto Almeida Quilice Longhi
    Time Orion
    Contmatic
    (11) 2942 6700 Ramal 1404
    (11) 8599 9022
    www.contmatic.com.br  <http://www.contmatic.com.br>
_______________________________________________
    Lista mailing list
    [email protected]  <mailto:[email protected]>
    http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br


-- Roberto Almeida Quilice Longhi
    Time Orion
    Contmatic
    (11) 2942 6700 Ramal 1404
    (11) 8599 9022
    www.contmatic.com.br  <http://www.contmatic.com.br>


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

-- Roberto Almeida Quilice Longhi
    Time Orion
    Contmatic
    (11) 2942 6700 Ramal 1404
    (11) 8599 9022
    www.contmatic.com.br  <http://www.contmatic.com.br>


    _______________________________________________
    Lista mailing list
    [email protected] <mailto:[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

--
Roberto Almeida Quilice Longhi
Time Orion
Contmatic
(11) 2942 6700 Ramal 1404
(11) 8599 9022
www.contmatic.com.br

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

Responder a