Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

Buenas, Ayudar por favor ( soy novato con Smarty)

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: Spanish
View previous topic :: View next topic  
Author Message
Fogox
Smarty Rookie


Joined: 09 Apr 2008
Posts: 6

PostPosted: Wed Apr 09, 2008 5:21 pm    Post subject: Buenas, Ayudar por favor ( soy novato con Smarty) Reply with quote

Buenas, comienzo con smarty , donde trabajo lo usan a full y no lo entiendo mucho yo programo en php, lei los tutoriales pero me quedan algunas dudas...,

queria pedirles una referencia mas facil, yo lo que programe en PHP lo tengo q reprecentar en smarty dentro del mismo php ..?

para hacer mas facil, les muestro mi cod en PHP,
como se reprecentaria en smarty...?

gracias por su ayuda asi podre entender mas facil de que se trata esto....


Cod PHP



<?php
if (is_uploaded_file($_FILES['archivo']['tmp_name']) === TRUE)

{

$imagen = mysql_escape_string(join(@file($_FILES['archivo']['tmp_name'])));

$nombre = mysql_escape_string($_POST['nombre']);

$tipo = $_FILES['archivo']['type'];


# Configurar las dos lineas siguientes

@mysql_connect('localhost','zuneside_soporte','elchinchin') or die('No se ha podido conectar el servidor de datos');

@mysql_select_db('zuneside_eml') or die('La base de datos es inexistente');

if (isset($nombre))

{

if (@mysql_result(@mysql_query("SELECT _eml FROM cscart_images_new WHERE nombre='$nombre'"),'nombre')) die('El nombre de la imagen esta actualmente en uso');

}

@mysql_query("INSERT INTO cscart_images_new (nombre,tipo,imagen) VALUES('$nombre','$tipo','$imagen')");

$id = @mysql_insert_id();

echo '
<html>
<body>
<p align="center">Se ha subido la imagen a la base de datos</p>
<br />
<p align="center">ID: ' . $id . '</p>
<p align="center">Nombre: ' . $nombre . '</p>
<br />
<center><p>Puede verla pulsando <a href="imagen.php?id=' . $id . '">aqu&iacute;</a></p></center>
</body>
</html>
';

exit;

}

else

{

echo '
<form enctype="multipart/form-data" method="post" action="' . $_SERVER[SCRIPT_NAME] . '">
Nombre:&nbsp;<input type="text" name="nombre" maxlength="256" />&nbsp;(Opcional)
<br />
Archivo:&nbsp; <input type="file" name="archivo" />
<br />
<input type="submit" />
</form>
';

}

?>


Muchas gracias....
Dante
Back to top
View user's profile Send private message
mrtinez
Smarty Rookie


Joined: 31 Jan 2005
Posts: 26
Location: Mexico

PostPosted: Wed Apr 09, 2008 7:07 pm    Post subject: Buenas, Ayudar por favor ( soy novato con Smarty) Reply with quote

Hola, mas o menos te fabrique un ejemplo con tu codigo, no estoy seguro que funcione porque esta hecho al vuelo, pero tal vez te sirva para saber como le tienes que hacer o cuando menos una manera de hacerlo.

te comento, el PHP queda separado del TPL, abajo el ejemplo.

este el tu programa PHP

Code:

<?php
// NOta,,,,, estos paths son solo de ejemplo tienes que sustituirlos por los que estan en tu maquina
// defines el path donde tienes el smarty
define(SMARTY_DIR,"/home/httpd/includes/Smarty/libs/");
// defines donde debe buscar el smarty el php y donde esta tu document root
ini_set("include_path",".:/home/httpd/includes/Smarty/libs:/usr/local/lib/php:/home/httpd/www");
require_once  "Smarty.class.php";

//crear tu objeto smarty
$sm = new Smarty();
$var_paso=0;
if (is_uploaded_file($_FILES['archivo']['tmp_name']) === TRUE)
{
   $imagen = mysql_escape_string(join(@file($_FILES['archivo']['tmp_name'])));
   $nombre = mysql_escape_string($_POST['nombre']);
   $tipo = $_FILES['archivo']['type'];

   # Configurar las dos lineas siguientes
   @mysql_connect('localhost','zuneside_soporte','elchinchin') or die('No se ha podido conectar el servidor de datos');
   @mysql_select_db('zuneside_eml') or die('La base de datos es inexistente');

   if (isset($nombre))
   {

      if (@mysql_result(@mysql_query("SELECT _eml FROM cscart_images_new WHERE nombre='$nombre'"),'nombre')) die('El nombre de la imagen esta actualmente en uso');

   }
   @mysql_query("INSERT INTO cscart_images_new (nombre,tipo,imagen) VALUES('$nombre','$tipo','$imagen')");
   $id = @mysql_insert_id();
   $var_paso = 1;
}
//asignas las variables que pasaras al template
$sm->assign("var_paso",$var_paso); // esta variable la use para que el tempate sepa que debe de mostrar primero
$sm->assign("nombre",$nombre);
$sm->assign("id",$id);
// despliegas el template
$sm->display("elnombredetuplantilla.tpl");
?>



este el TPL
Code:

<html>
<body>
<p align="center">Se ha subido la imagen a la base de datos</p>
<br/>
{if $var_paso == 1}
    <p align="center">ID: {$id}</p>
    <p align="center">Nombre: {$nombre}</p>
    <br />
    <center><p>Puede verla pulsando <a href="imagen.php?id={$id}">aqu&iacute;</a></p></center>

{else}

   <form enctype="multipart/form-data" method="post" action="{$smarty.server.PHP_SELF}">
   Nombre:&nbsp;<input type="text" name="nombre" maxlength="256" />&nbsp;(Opcional)
   <br />
   Archivo:&nbsp; <input type="file" name="archivo" />
   <br />
   <input type="submit" />
   </form>
{/if}
</body>
</html>


espero que esto te de una luz....

saludos
Back to top
View user's profile Send private message Visit poster's website
Fogox
Smarty Rookie


Joined: 09 Apr 2008
Posts: 6

PostPosted: Wed Apr 09, 2008 7:26 pm    Post subject: Reply with quote

MUCHAS GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


super super agradecido me despejaste muchas dudas!!!!!!!



Salu2!!!
Back to top
View user's profile Send private message
Fogox
Smarty Rookie


Joined: 09 Apr 2008
Posts: 6

PostPosted: Wed Apr 09, 2008 7:45 pm    Post subject: Reply with quote

que tal mario te hago una segunda consulta....

tengo q asignarle el mismo array q pusiste para cagargar para q me lo muestre?

<?php


@mysql_connect('localhost','zuneside_soporte','elchinchin') or die('No se puede conectar con el servidor mysql');

@mysql_select_db('zuneside_eml') or die('No se puede seleccionar la base de datos especificada');

$datos = ($_GET['id']) ? 'id=' . mysql_escape_string($_GET['id']) : "nombre='" . mysql_escape_string($_GET['nombre']) . "'";

$resultado = @mysql_query("SELECT imagen,tipo FROM cscart_images_new WHERE " . $datos);

$imagen = @mysql_fetch_assoc($resultado) or die('Imagen inexistente');

header("Content-type: $imagen[tipo]");

print $imagen['imagen'];

?>

ese es mi codigo..., ya es abuso consultarte esto?

gracias de todos modos

Saludos Dante
Back to top
View user's profile Send private message
mrtinez
Smarty Rookie


Joined: 31 Jan 2005
Posts: 26
Location: Mexico

PostPosted: Thu Apr 10, 2008 1:19 pm    Post subject: Buenas, Ayudar por favor ( soy novato con Smarty) Reply with quote

Hola de nuevo, mira todas las variables, ya sean escalares o arreglos que necesites que sean mostradas en el template deben se asignadas.

una variable $sm->assign("id",$id);

un arreglo $sm->assign( array("imagen"=>$imagen) );

la manera en la debes explotarlos dentro el template tambien cambia, mientras una variable de tipo escalar la puedes mostrar simplemente asi {$is} el arreglo lo tendras que explotar mediante una "section" o un foreach .... etc.


{section name=reng loop=$imagen}
{$imagen[reng]}
{/section}

a grandes razgos...

saludos
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: Spanish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP