News:

SMF 2.1.6 has been released! Take it for a spin! Read more.

Main Menu

Peticion a NIBOGO (imagenes dinamicas)

Started by ~BeneKiD, July 07, 2009, 06:40:28 PM

Previous topic - Next topic

vicram10

abre tu Settings.php

Busca

$db_server = "localhost";
$db_user = "pepito";
$db_passwd = "no-te-la-digo";


Abri tu archivo FirmaDinamica.php

Busca:

global $scripturl, $db_prefix, $boardurl, $boarddir,$sourcedir;

Agrega Despues Esos archivos o variables que copiaste de Settings.php, quedando:

$db_server = "localhost";
$db_user = "pepito";
$db_passwd = "no-te-la-digo";


Prueba asi, salu2

PortalGamers

#41
Aver... sigue sin funcionar... mira como quedó el firmadinamica.php


<?php
/*
-----------------------------------------------------------------
Firma Dinamica
by vicram10
Support: http://www.sharedownload.org
Powered by www.CustomSmf.net
-----------------------------------------------------------------
*/
global $scripturl, $db_prefix, $boardurl, $boarddir,$sourcedir;
$db_server = 'xxxxx';
$db_name = 'xxxxx';
$db_user = 'xxxxx';
$db_passwd = 'xxxxx';
// Don't do anything if SMF is already loaded.
if (defined('SMF'))
return true;

define('SMF', 'SSI');

$user = $_GET['u'];
if(
is_numeric($user))
{
$condition = "ID_MEMBER = ".$user;
}else{
$condition = "memberName LIKE '".$user."'";
}
// Get the forum's settings for database and file paths.
require_once('Settings.php');
$scripturl = $boardurl."/index.php";

if (@
version_compare(PHP_VERSION, '4.2.3') != 1)
require_once($sourcedir . '/Subs-Compat.php');

// Connect to the MySQL database.
if (empty($db_persist))
$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
else
$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
if (
$db_connection === false)
return false;

// Add the database onto the prefix to avoid conflicts with other scripts.
if (strpos($db_prefix, '.') === false)
$db_prefix = is_numeric(substr($db_prefix, 0, 1)) ? $db_name . '.' . $db_prefix : '`' . $db_name . '`.' . $db_prefix;
else
@mysql_select_db($db_name, $db_connection);


$request = mysql_query("
SELECT *
FROM
{$db_prefix}members
WHERE "
.$condition."", $db_connection);

while (
$row = mysql_fetch_assoc($request))
{
$name = strtoupper($row['memberName']);
$posts = 'Cantidad Post: '.$row['posts'];
$karmaGood = 'Kama Positivo: '.$row['karmaGood'];
//start avatar load
if (substr($row['avatar'], 0, 7) == 'http://')
{
$avatar = $row['avatar'];
} else {
$avatar = $boardurl.'/avatars/'.$row['avatar'];
}
if (!$row['avatar']){
$avatar = '';
}
$sql_avatar = mysql_query("SELECT ID_ATTACH, filename  FROM {$db_prefix}attachments WHERE ID_MEMBER = ".$row['ID_MEMBER']."",$db_connection);
while ( $row_avatar = mysql_fetch_assoc($sql_avatar) ){
$avatar = $scripturl.'?action=dlattach;attach='.$row_avatar['ID_ATTACH'].';type=avatar';
}
//end avatar load

}
$img = "firma.png"; //imagen de fondo
$image = imagecreatefrompng($img);

//avatar
// Se obtienen las nuevas dimensiones
$newwidth = 80; //ancho
$newheight = 80; // alto

// Cargar la imagen
$avatar_new = imagecreatetruecolor($newwidth, $newheight);
$avatar = imagecreatefromstring(getUrlData($avatar));
$width = imagesx($avatar); //ancho del avatar original
$height = imagesy($avatar); //alto del avatar original
// Redimensionar
imagecopyresampled($avatar_new, $avatar, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
//end avatar

//Comenzamos a Hacer la Escritura
$negro  = imagecolorallocate($image, 0, 0, 0);

// El archivo ttf, escribe la ruta correctamente!!
$fuente = 'arial.TTF';

// Escribo el texto
//Primeramente el nick del user
imagettftext($image, 10/*tamaño letra*/, 0, 30 /*direccion horizonal*/ , 20 /*direccion vertical*/ , $negro, $fuente, $name);

//Ahora los datos que iran dentro - Para agregar mas la direccion vertical hay que sumarle 15 al ultimo
imagettftext($image, 10/*tamaño letra*/, 0, 20 /*direccion horizonal*/ , 50 /*direccion vertical*/ , $negro, $fuente, $posts);
imagettftext($image, 10/*tamaño letra*/, 0, 20 /*direccion horizonal*/ , 65 /*direccion vertical*/ , $negro, $fuente, $karmaGood);

//incrustar avatar en la firma
imagecopymerge($image, $avatar_new, 250/*posicion horizontal*/, 40/*posicion vertical*/, 0, 0, $newwidth, $newheight, 100);

//visualizar el resultado final
header('content-type: image/png');
imagepng($image);

/*
---------------------------------------------------------------
Function getUrlData
Es una funcion que utiliza la libreria CURL
De esta manera se hace la conversion del link de la imagen
a una imagen propiamente dicha.
---------------------------------------------------------------
*/
function getUrlData($url){
   
$ch = curl_init($url);
   
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
   
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   
$get = curl_exec($ch);
   
curl_close($ch);
   return
$get;
}
?>

PortalGamers


~BeneKiD

vicram10 desde que pusiste el archivo que contenia el avatar ya no me funciona =S

¿que puede ser?
Quote from: http://www.territoriodd.com
TERRITORIODD.com Descargas Directas de las ISOS, CSO y ROMS de PSP NDS Wii X360, PELICULAS, SERIES MUSICA y SOFTWARE... Todo lo necesario totalmente GRATIS!!

-PS3
-Playstation Portable
-Nintendo DS
-Nintendo Wii
-Xbox 360
-iOS & Android


HTTP://WWW.TERRITORIODD.COM
Quote from: Visitanos!

PortalGamers

A mi esque ni me va!! :(
PD: Bene, contesta el post ese de la publicidad porfavor :)


.LORD.

Es el tipo de cosas que siempre he estado por hacer y nunca había tenido tiempo.

Si aún les interesa para cuando lo haga, podría poner otra forma un poco más genérica de hacerlo.

PD: Sí funciona bastante bien, solo que había que colocar igual el nombre de la fuente que está diferente en el código y en el file.

Y hay que cuidar un detalle por ahí, pero lo dejo para ver quien más lo nota :P

franklinrony

Quote from: .LORD. on July 13, 2009, 12:54:18 PM
Es el tipo de cosas que siempre he estado por hacer y nunca había tenido tiempo.

Si aún les interesa para cuando lo haga, podría poner otra forma un poco más genérica de hacerlo.

PD: Sí funciona bastante bien, solo que había que colocar igual el nombre de la fuente que está diferente en el código y en el file.

Y hay que cuidar un detalle por ahí, pero lo dejo para ver quien más lo nota :P
entonces cual es la contribución..........se trata de depurar/mejorar-aportar
http://twitter.com/franklinrony

Entra y aprende a ser un webmaster
www.sv-blog.com
--Si pides ayuda al menos agradece el soporte recibido----

mariotiscar

me parece una modificacion interesantisima, sobre todo para los moderadores y administradores para promocionar diferentes secciones importantes de la web en forma de banners dinamicos, ojala se pueda crear un mod para los que empezamos...

.LORD.

#48
Quote from: frony on July 13, 2009, 02:22:51 PMentonces cual es la contribución..........se trata de depurar/mejorar-aportar

Entiendo lo de mejorar/aportar, etc; pero no sé exactamente a que te refieres que no he hecho.

Si te refieres a la forma más genérica que he dicho, eso será cuando tenga tiempo porque aún lo estoy por hacer.

Si te refieres al detalle que he mencionado, el autor ha dicho que esto es una versión "no acabada"; y hay que darle tiempo al desarrollador. Sí al final se le escapa, bien, ahí si lo diré.

Mi contribución fue haber dicho que el código sí funciona bien, solo hacía falta reparar el detalle del nombre de la fuente; que quizás esta es la razón por la que no le funciona a algunos; y además es un detalle de esos que se escapan y luego cuesta encontrarlos.




Quote from: mariotiscar on July 13, 2009, 02:40:16 PM
me parece una modificacion interesantisima, sobre todo para los moderadores y administradores para promocionar diferentes secciones importantes de la web en forma de banners dinamicos, ojala se pueda crear un mod para los que empezamos...

No es necesario como MOD, solo debes subir los tres archivos a la carpeta de tu foro. Tampoco sería necesario porque es bastante independiente del foro.

Pero aún así quedaría el problema que el usuario debe elegir un fondo que quiera, y el contenido se debe adaptar al diseño de este fondo, (adaptarse en cuanto a fuente de letra, color, posición de los elementos).

vicram10

#49
Muy a pesar que ese pequeño detalle que dices, muchos servidor de php igual lo interpretan, y dejan pasar el error y lo asumen..
Pero como dices puede ser que sea un causante de los errores de los demas.

Adjunto se encuentra el que esta arreglado.

Lo unico hecho fue

Buscar:

// El archivo ttf, escribe la ruta correctamente!!
$fuente = 'arial.ttf';

Reemplazarlo por:

// El archivo ttf, escribe la ruta correctamente!!
$fuente = 'arial.TTF';


De saber lo sabia, pero es algo que puede crear errores como no...

Y tambien le reduje el tamaño a las letras para su facil visualizacion.

salu2

Pd.: Libreria GD si o si para su buen funcionamiento
Pd.2: Libreria CURL si o si para su buen funcionamiento


Resultado:


PortalGamers

Vicram, sabes por que a mi no me funciona?

GRACIAS

vicram10

Quote from: PortalGamers on July 14, 2009, 08:48:20 AM
Vicram, sabes por que a mi no me funciona?

GRACIAS

Usando el nuevo que error ahora te da?

franklinrony

aqui esta la modifcacion que habi visto, pro si a alguien le es d eutilidad,aunq ue vic ya lo lleva  bastante encaminado y sobretodo con intrucciones en español

http://www.simplemachines.org/community/index.php?topic=46408.0%3
http://twitter.com/franklinrony

Entra y aprende a ser un webmaster
www.sv-blog.com
--Si pides ayuda al menos agradece el soporte recibido----

.LORD.

#53
Quote from: vicram10 on July 13, 2009, 06:08:19 PM
Muy a pesar que ese pequeño detalle que dices, muchos servidor de php igual lo interpretan, y dejan pasar el error y lo asumen..
Pero como dices puede ser que sea un causante de los errores de los demas.

Entonces menos mal lo mencioné, creí que había sido inconciente.

La razón verdadera está en el OS. En Windows foo.000 es igual a FOO.00, mientras que en Linux, foo.000, foO.000, fOo.000, fOO.000, Foo.000, FoO.000, FOo.000, FOO.000, serán 8 archivos diferentes con 8 nombres diferentes, porque distingue entre mayúsculas y minúsculas.

Entonces es obligatorio emplear los mismos nombres de archivos.

vicram10

@.LORD.: Si justamente por eso que dices.. en el de BeneKiD por ejemplo le anduvo, en el otro user no, seran por los diferentes hosting...
Pero es algo que era posible a como no que pase, entonces para evitar eso, es mejor poner como debe ser :D

@frony: ya me parecia que lo habia visto en algun lado pero ni me acordaba donde :D gracias, y mirandolo creo que no me fui muy por las ramas :D

lolicute

#55
Saludos, estoy teniendo problemas con la firma dinámica, lo que pasa hay ciertos usuarios que no tienen Avatar y la firma no se genera perfectamente.

Los errores comienzan:

Warning: imagecreatefromstring() [function.imagecreatefromstring]: Empty string or invalid image in /home/xxxxxxx/domains/prueba.com/public_html/foro/firma/firma.php  on line 127
Warning: imagesx(): supplied argument is not a valid Image resource in /home/xxxxxxx/domains/prueba.com/public_html/foro/firma/firma.php on line 128
Warning: imagesy(): supplied argument is not a valid Image resource in /home/xxxxxxx/domains/prueba.com/public_html/foro/firma/firma.php on line 129
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/xxxxxxx/domains/prueba.com/public_html/foro/firma/firma.php on line 131

// Cargar la imagen
$avatar_new = imagecreatetruecolor($newwidth, $newheight);
$avatar = imagecreatefromstring(getUrlData($avatar));
$width = imagesx($avatar); //ancho del avatar original
$height = imagesy($avatar); //alto del avatar original
// Redimensionar
imagecopyresampled($avatar_new, $avatar, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
//end avatar


Esos errores también aplican cuando usan los avatares locales y sólo funciona la firma si tienen un Avatar remoto.

Quisiera saber si hay otra forma de cargar el avatar.

//start avatar load
if (substr($row['avatar'], 0, 7) == 'http://')
{
$avatar = $row['avatar'];
} else {
$avatar = $boardurl.'/avatars/'.$row['avatar'];
}
if (!$row['avatar']){
$avatar = '';
}
$sql_avatar = mysql_query("SELECT ID_ATTACH, filename  FROM {$db_prefix}attachments WHERE ID_MEMBER = ".$row['ID_MEMBER']."",$db_connection);
while ( $row_avatar = mysql_fetch_assoc($sql_avatar) ){
$avatar = $scripturl.'?action=dlattach;attach='.$row_avatar['ID_ATTACH'].';type=avatar';
}
//end avatar load


Además que esta línea no le entiendo del todo:

$sql_avatar = mysql_query("SELECT ID_ATTACH, filename  FROM {$db_prefix}attachments WHERE ID_MEMBER = ".$row['ID_MEMBER']."",$db_connection);
while ( $row_avatar = mysql_fetch_assoc($sql_avatar) ){
$avatar = $scripturl.'?action=dlattach;attach='.$row_avatar['ID_ATTACH'].';type=avatar';


Saludos.

lolicute


vicram10

revisa este apartado.. como dije en el post yo no doy soporte a esto..

pero aqui tienes otro por si quieres..

http://www.simplemachines.org/community/index.php?topic=46408.0%3

salu2

Advertisement: