Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

[SOLUCIONADO] problemas con el return de una funcion

Estas en el tema de problemas con el return de una funcion en el foro de WordPress en Foros del Web. no llego a entender donde esta el problema... o mejor dicho porque me devuelve NULL cuando hago $metadatase = serialize("$metadata); $metadata es NULL y el ...
  #1 (permalink)  
Antiguo 06/02/2013, 08:40
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años, 6 meses
Puntos: 28
problemas con el return de una funcion

no llego a entender donde esta el problema... o mejor dicho porque me devuelve NULL

cuando hago $metadatase = serialize("$metadata); $metadata es NULL

y el problema deberia ser que foto_thumbnail() me devuelve NULL


Gracias de antemano...


Código PHP:
$metadata upload_foto($_FILES['foto']['size'], $new_foto$nome_foto$part_new_foto);
            
$querymeta mysql_query("INSERT INTO wp_4_postmeta (post_id, meta_key, meta_value)
                VALUES('"
$id_post_foto['ID'] ."', '_wp_attachment_metadata', '$metadata')");
            if(!
$querymeta) die('error querymeta serialize: ' mysql_error()); 

upload_foto (function.php):
Código PHP:
function upload_foto($file_size null,$temp_foto null$nome_foto$part_new_foto){
    
    
$size_bytes "5242880"//5MB
    
    
if ($file_size $size_bytes){ die("The file is too large"); }
    if (
$file_size == "0"){ die("The file can't have 0Kb"); }
    
    
$misure = array(
            
'small-square' => array(
                
'width' => 50,
                
'height' => 50,
                
//'mime-type' => 'image/jpeg',
            
),
            
'mini-ec' => Array ( 
                
'width' => 135
                
'height' => 80,
                
//'mime-type' => 'image/jpeg',
            
),
            
'thumbnail' => Array ( 
                
'width' => 150
                
'height' => 150
                
//'mime-type' => 'image/jpeg',
            
),
            
'gallery-links' => array(
                
'width' => 186,
                
'height' => 186,
                
//'mime-type' => 'image/jpeg',
            
),
            
'half-landscape' => array(
                
'width' => 290,
                
'height' => 166,
                
//'mime-type' => 'image/jpeg',
            
),
            
'medium' => Array ( 
                
'width' => 300,
                
'height' => 169,
                
//'mime-type' => 'image/jpeg',
            
),
            
'blog-one' => array(
                
'width' => 300,
                
'height' => 300,
                
//'mime-type' => 'image/jpeg',
            
),
            
'blog-three' => array(
                
'width' => 620,
                
'height' => 220,
                
//'mime-type' => 'image/jpeg',
            
),
            
'blog-full-width' => array(
                
'width' => 620,
                
'height' => 310,
                
//'mime-type' => 'image/jpeg',
            
),
            
'featured-image' => array(
                
'width' => 620,
                
'height' => 350,
                
//'mime-type' => 'image/jpeg',
            
),
            
'featured' => array(
                
'width' => 700,
                
'height' => 426,
                
//'mime-type' => 'image/jpeg',
            
),
    );
    
    
$metadata foto_thumbnail($misure,$temp_foto$nome_foto$part_new_foto);
    
    
$metadatase serialize($metadata);
    return 
$metadatase;


foto_thumbnail (function.php):
Código PHP:
function foto_thumbnail($misure,$temp_foto$nome_foto$part_new_foto){
    
$image imagecreatefromjpeg($temp_foto);
    
$lar imagesx($image);
    
$alt imagesy($image);
    
    
$metadata['width'] = $lar;
    
$metadata['height'] = $alt;
    
$metadata['file'] = date('Y').'/'.date('m').'/'.$nome_foto.'jpg';
    
    foreach(
$misure as $m=>$k){
        
$thumb imagecreatetruecolor($k['width'],$k['height']);
        
imagecopyresampled($thumb,$image,0,0,0,0,$k['width'],$k['height'],$lar,$alt);
        
imagejpeg($thumb$part_new_foto.$nome_foto.'-'.$k['width'].'x'.$k['height'].'.jpg',90);
        
$metadata['size'][$k]['file'] = $nome_foto.'-'.$k['width'].'x'.$k['height'].'.jpg';
        
$metadata['size'][$k]['width'] = $k['width'];
        
$metadata['size'][$k]['height'] = $k['height'];
        
$metadata['size'][$k]['mime-type'] = 'image/jpeg';
    }
    
    
$metadata['image_meta']['aperture'] = 0;
    
$metadata['image_meta']['credit'] = '';
    
$metadata['image_meta']['camera'] = '';
    
$metadata['image_meta']['caption'] = '';
    
$metadata['image_meta']['created_timestamp'] = 0;
    
$metadata['image_meta']['copyright'] = '';
    
$metadata['image_meta']['focal_length'] = 0;
    
$metadata['image_meta']['iso'] = 0;
    
$metadata['image_meta']['shutter_speed'] = 0;
    
$metadata['image_meta']['title'] = '';

    return 
$metadata;

  #2 (permalink)  
Antiguo 06/02/2013, 13:50
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 2 meses
Puntos: 297
Respuesta: problemas con el return de una funcion

¿Porqué creas thumbnails y no usas los propios de Wordpress?
__________________
Freelance Developer — www.rubenmartin.me PHP, SQL, Wordpress, Prestashop, Codeigniter, Laravel
RegaloConsolas — www.regaloconsolas.com Sorteo juegos, consolas y accesorios
  #3 (permalink)  
Antiguo 07/02/2013, 00:57
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años, 6 meses
Puntos: 28
Respuesta: problemas con el return de una funcion

Lo qua pasa es qua cargo los datos desde blog2 pero los guardo en blog4 (wordpress MU)... y si huso las funciones de wordpress me guardaria los datos en blg2
  #4 (permalink)  
Antiguo 07/02/2013, 01:55
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 2 meses
Puntos: 297
Respuesta: problemas con el return de una funcion

¿Y no puedes usar un Action para cuando se guarde los post editar la pertenencia del mismo?

Mirando el codex en busca de una API de imágenes, he encontrado esto WP_Image_Editor, pero en la documentación dice que no puede ser llamado directamente y que se debe usar otras clases como WP_Image_Editor_GD. El problema es que no viene documentada en el Codex. No te quedará otra solución que abrir el archivo en sí y mirar los comentarios docblock.

Última edición por hasdpk; 07/02/2013 a las 02:06 Razón: Añadido más información.
  #5 (permalink)  
Antiguo 07/02/2013, 02:42
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años, 6 meses
Puntos: 28
Respuesta: problemas con el return de una funcion

a que te refieres con?...
Cita:
Iniciado por hasdpk Ver Mensaje
¿Y no puedes usar un Action para cuando se guarde los post editar la pertenencia del mismo?

...
solo para especificar, mi problema no es crear y guardar las imagenes... eso lo hago sin problemas... sino que no puedo usar la funcion thumbnail para visualizar las miniaturas... ahora, si las llamo desde el template no hay problemas, porque he creado una funcion que visualiza la miniatura deseada, pero si entro en: admin->posts... no me muestra el thumbnail sino la imagen original (osea grande)...

por eso quiero "serealizar" $metadata, para poder guardarlo en el db (postmeta), pero la funcion foto_thumbnail me devuelve NULL...
  #6 (permalink)  
Antiguo 07/02/2013, 03:43
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 2 meses
Puntos: 297
Respuesta: problemas con el return de una funcion

He copiado y pegado tu código y a mi me devuelve un array serializada.
__________________
Freelance Developer — www.rubenmartin.me PHP, SQL, Wordpress, Prestashop, Codeigniter, Laravel
RegaloConsolas — www.regaloconsolas.com Sorteo juegos, consolas y accesorios
  #7 (permalink)  
Antiguo 08/02/2013, 04:52
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años, 6 meses
Puntos: 28
Respuesta: problemas con el return de una funcion

entiendo... yo no veo ningun problema en el codigo, pero como ya lo habia revisado y revisado, pense que era yo el que no lo veia;

ya el lunes controlare y tratare de ver porque no funciona como deberia funcionar...

gracias...
  #8 (permalink)  
Antiguo 08/02/2013, 05:17
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 2 meses
Puntos: 297
Respuesta: problemas con el return de una funcion

Yo sigo pensando que deberías de usar las distintas APIs que existen en vez de estar reinventado la rueda con las imágenes.
  #9 (permalink)  
Antiguo 08/02/2013, 18:00
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años, 6 meses
Puntos: 28
Respuesta: problemas con el return de una funcion

es que no he encontrado informacion de como podria usar las funciones de wordpress en multisite, o mejor dicho, cuando llamas una funcion de wordpress los datos los guarda en la carpeta y en la tabla (db) del blog desde donde llamaste la function... y yo necesito poder elegir en que blog (en que carpeta y tabla) guardar esos datos...
  #10 (permalink)  
Antiguo 10/02/2013, 22:42
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 16 años
Puntos: 33
Respuesta: problemas con el return de una funcion

He leido un poco el tema y yo pienso igual que @hasdpk y si revisas el codex veras que puedes guardar lo que quieras en diferentes db seleccionando previamente el id del blog ( $blogid ).
Wordpress usa uploads para guardar las images para tenerlas organizadas y si quieres elegir la carpeta podrias crear un add_filter o add_action (dependera de la funcion) para cambiar la direccion de la carpeta, ahora mismo no te lo podria decir ya que el wordpress es muy extenso.
No he trabajado mucho con multisite pero en las ultimas versiones estan fusionados y facilita la programacion.
Si usases las funciones propias del wordpress podrias definir que esa imagen se muestre como una thumbnail con la opcion de imagen destacada, considerando que tu haces un post.
Lo que no he comprendido es que guardas en blog4 pero los visualizas en el blog2, porque no lo haces todo desde el blog2?
  #11 (permalink)  
Antiguo 12/02/2013, 09:25
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años, 6 meses
Puntos: 28
Respuesta: problemas con el return de una funcion

era un problema de distraccion, de gran distraccion...

por el resto el codigo me funciona bien, aunque si en lugar de size ($metadata['size'][$k]['file']) era sizes y por eso no me cogia los thumbnail en el admin, ahora desde blog_4 puedo usar tranquilamente la funcion thumbnail para llamar las fotos...
  #12 (permalink)  
Antiguo 12/02/2013, 16:45
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 16 años
Puntos: 33
Respuesta: problemas con el return de una funcion

Me alegro que te funcione...

Etiquetas: blog, funcion, php, post, return, tema
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:44.