|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
Fogox Smarty Rookie
Joined: 09 Apr 2008 Posts: 6
|
Posted: Wed Apr 09, 2008 5:21 pm Post subject: Buenas, Ayudar por favor ( soy novato con Smarty) |
|
|
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í</a></p></center>
</body>
</html>
';
exit;
}
else
{
echo '
<form enctype="multipart/form-data" method="post" action="' . $_SERVER[SCRIPT_NAME] . '">
Nombre: <input type="text" name="nombre" maxlength="256" /> (Opcional)
<br />
Archivo: <input type="file" name="archivo" />
<br />
<input type="submit" />
</form>
';
}
?>
Muchas gracias....
Dante |
|
Back to top |
|
mrtinez Smarty Rookie
Joined: 31 Jan 2005 Posts: 26 Location: Mexico
|
Posted: Wed Apr 09, 2008 7:07 pm Post subject: Buenas, Ayudar por favor ( soy novato con Smarty) |
|
|
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í</a></p></center>
{else}
<form enctype="multipart/form-data" method="post" action="{$smarty.server.PHP_SELF}">
Nombre: <input type="text" name="nombre" maxlength="256" /> (Opcional)
<br />
Archivo: <input type="file" name="archivo" />
<br />
<input type="submit" />
</form>
{/if}
</body>
</html>
|
espero que esto te de una luz....
saludos |
|
Back to top |
|
Fogox Smarty Rookie
Joined: 09 Apr 2008 Posts: 6
|
Posted: Wed Apr 09, 2008 7:26 pm Post subject: |
|
|
MUCHAS GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
super super agradecido me despejaste muchas dudas!!!!!!!
Salu2!!! |
|
Back to top |
|
Fogox Smarty Rookie
Joined: 09 Apr 2008 Posts: 6
|
Posted: Wed Apr 09, 2008 7:45 pm Post subject: |
|
|
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 |
|
mrtinez Smarty Rookie
Joined: 31 Jan 2005 Posts: 26 Location: Mexico
|
Posted: Thu Apr 10, 2008 1:19 pm Post subject: Buenas, Ayudar por favor ( soy novato con Smarty) |
|
|
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 |
|
|
|
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
|
|