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