Archive for month: July, 2010

Graficos Satisfacción 100% Garantizada

Categories: Diseño, Otros - Tags:

Hice unos gráficos vectoriales del clásico sello “Satisfacción 100% Garantizada” se los paso en formato PNG24 bits(con fondo transparente)
100% satisfaccion garantizada

Pueden bajarlos AQUI100% Garantizado (180)

Firebug: videotutorial modificando html css

Categories: CSS, html - Tags: , ,

Suelo hablar bastante de firebug, y que me parece una de las mejores herramientas para los diseñadores de páginas web, anteriormente hice una breve guia de como funciona, pero me encontré con un videotutorial muy interesante que explica como podemos usarlo para modificar los estilos de nuestra página web, teniendo la vista previa de los cambios en Firebug y luego se graban en Dreamweaver o nuestro editor favorito.

Templates PHP parte 2

Categories: PHP - Tags: , , ,

En el post anterior hablé sobre los sistemas de templates y en especial de Smarty, la idea general es que no hace falta aprender un nuevo lenguaje de programación intermedio para las plantillas sino que con PHP puro es suficiente.

Yo considero que lo más importante es ser ordenado y de esta forma podemos separar la lógica de la programación del diseño.

Usando Savant 3

Lo que me gusta de este sistema de templates es que tiene las ventajas de Smarty sin sus problemas, en primer lugar nos ofrece las ventajas del uso de cache y sobre todo no exige que aprendamos un nuevo lenguaje de programación sino que usa nuestro PHP de siempre para mantener el esquema de programación MVC, lo pueden bajar AQUI

Uso de clases

Como dije antes ser ordenado permite separar la lógica de la programación del diseño, esto sumado al uso de clases y web modular. Veamos un ejemplo primero de lo que NO debemos hacer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$link = mysql_connect("localhost", "nobody"odigo">$link = mysql_connect("localhost", "nobody");
mysql_select_db("
mydb", $link);
$result = mysql_query("
SELECT nombre, email FROM agenda", $link);
echo "
<table border = '1'> \n";
echo "
<tr> \n";
echo "
<td><b>Nombre</b></td> \n";
echo "
<td><b>E-Mail</b></td> \n";
echo "
</tr> \n";
while ($row = mysql_fetch_row($result)){
echo "
<tr> \n";
echo "
<td>$row[0]</td> \n";
echo "
<td>$row[1]</td> \n";
echo "
</tr> \n";
}
echo "
</table> \n";
?>

Ese desastre esta bien como ejemplo o cuando recién empezamos con PHP, esa ensalada de código no le sirve de nada al diseñador, veamos como sería eso mismo pero separando la lógica del diseño:

1
2
3
4
5
6
7
8
9
10
11
12
<?php query_posts($query_string); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="post">
<h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
<div class="entry">
   <?php the_content(); ?>
</div>
<p class="postmetadata">Posted in <?php the_category(', '); ?></p>
</div>
<?php endwhile; else: ?>
<p>Sorry, no posts matched your criteria.</p>
<?php endif; ?>

En este caso copiado de WordPress, que para mi es uno de los mejores en lo que refiere al uso de MVC, si abrimos el archivo usando Dreamweaver, el diseñador podrá editarlo sin problemas basta que respete la ubicacion de las condiciones if y el bucle while (tal como ocurriría con Smarty pero sin sus complicaciones).

La conexión de base de datos se coloca en un archivo config.inc.php por ejemplo, y el manejo de la conexión en si se hace mediante una clase destinada a dicho fin, también es posible mediante clases separarlo en una cabecera PHP con la creación del objeto y luego el código html:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
///// no tocar /////
$noticia = new noticia();
if ($noticia->cuantos<=0) {
///// no tocar /////
?>
   <p><b>No se encontraron noticias</b></p>
<?php } else { for ($i=0; $i<$noticia->cuantos; $i++) { ?>
   <h2><?=$noticia->titulo?></h2>
   <p><span class="fecha"><?=$noticia->fecha?></span></p>
   <p><?=$noticia->texto?></p>
<?php } ?>

Con dejarle algunas indicaciones al diseñador que no debe tocar ciertas líneas, además de usar nombres muy claros para nuestra variables (titulo, fecha, texto, etc) le damos suficiente ayuda para que sepa que parte tocar y como organizarlo.

Templates PHP parte 1

Categories: PHP - Tags:

Antes que me lluevan las críticas por lo que voy a escribir en este post, quiero primero aclarar que estoy de acuerdo en el uso de MVC (modelo-vista-controlador) en lo que no creo es que Smarty sea la solución, ya iré desarollando la idea de a pocos.

¿Qué es una plantilla/template PHP?

Las plantillas son páginas web que muestra código PHP y que “supuestamente” pueden ser editadas por cualquier persona sin tener conocimientos de programación, por lo que serían adecuadas para diseñadores y maquetadores de páginas web. Usualmente tienen extensión .TPL

Quiero indicar que en Internet encontramos muchos sistemas que dicen ser plantillas pero que en realidad no pasan de ser simples reemplazadores de variables y aunque esto no sea exactamente una plantilla la verdad es que en sistemas simples cumplen de sobra con su cometido, por ejemplo pueden ver ESTE

¿Qué es Smarty?

Si te han dado curiosidad los sistemas de plantillas en PHP es seguro que te debes haber cruzado con explicaciones sobre Smarty que es el sistema de plantillas oficial para PHP, y además estoy seguro que habrás leído comentarios sobre lo muy rápido, eficiente y simple de implementar que es, la verdad es que para cosas simples puede parecer que si, pero ya luego te darás cuenta que no es la maravilla que te cuentan.

¿Por qué no es buena idea usar Smarty?

Los argumentos a favor los encuentras rondando por google asi que yo me dedicaré a analizar que tan ciertos son:

Separa la lógica de la presentación

Eso no es del todo cierto, ya que Smarty es todo un lenguaje de programación, veamos algunas de las supuestas ayudas que da Smarty para los diseñadores y vamos con los ejemplos para visualizar esto:
Con Smarty:

1
2
3
4
5
<table>
   <tr>
      <td>{$mivariable}</td>
   </tr>
</table>

Ahora veamos lo tremendamente dificil que es hacerlo sin Smarty

1
2
3
4
5
<table>
   <tr>
      <td><?=$mivariable?></td>
   </tr>
</table>

Seguro que algunos escépticos me dirán que en algo tan simple es lo mismo pero que en programación da muchas facilidades para los diseñadores, veamos si eso es cierto
Condiciones usando Smarty:

1
2
3
4
5
6
7
{if $name eq "Fred"}
    Welcome Sir.
{elseif $name eq "Wilma"}
    Welcome Ma'am.
{else}
    Welcome, whatever you are.
{/if}

Veamos lo complicadísimo que es hacer lo mismo usando PHP

1
2
3
4
5
6
7
<?php if ($name == "Fred"):?>
    Welcome Sir.
<?php elseif($name == "Wilma"): ?>
    Welcome Ma'am.
<?php else: ?>
    Welcome, whatever you are.
<?php endif; ?>

¿Alguién notó lo mucho que se simplificó para el diseñador? Al menos yo no, además de cambiar mis invocaciones PHP por llaves y encima complicarme con algo llamado eq cuando yo ya tenía mi archiconocido ==

Smarty es más veloz

Tal vez sea más veloz que otro sistema de plantillas sin compilar ni optimizar pero nunca más veloz que usar puro PHP como hice en los ejemplos anteriores, sumado a esto es mucho más pesado, o creen que esas miles de líneas de código que forman Smarty no van a consumir procesos en tu servidor.

Smarty incorpora una sistema de patrones de sintáxis

Eso en castellano significa que dentro de la plantilla podamos incluir manejo y manipulación de variables; es decir dentro de una plantilla de Smarty puede hacerse programación. Me parece o al inicio dijimos que el objetivo de usar plantillas es para no mezclar la programación con el diseño, si eso es cierto como se nos va a ocurrir meter programación ahi, eso desnaturaliza su uso y encima vamos a decir que eso es una ventaja….

Por esas razones considero que Smarty es mala idea ya que nos obliga a aprender un lenguaje de programación intemedio entre diseño y programación que quitará rendimiento a nuestra aplicación y al final no logra separar el diseño de la lógica.

En el próximo post indicaré cual es la solución para mi.