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]> 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] <[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).
>
> ;)
>
> 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] <[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]
>
> 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
>
>
>
>
>
> --
>
> Roberto Almeida Quilice Longhi
>
> Time Orion
>
> Contmatic
>
> (11) 2942 6700 Ramal 1404
>
> (11) 8599 9022
>
> www.contmatic.com.br
>
>
> _______________________________________________
> Lista mailing
> [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 9022www.contmatic.com.br
>
>
> _______________________________________________
> 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