Foros del Web » Programando para Internet » PHP »

Scrip Subir Imágenes Via Ftp, My_egallery!, Necesito ayuda con este script

Estas en el tema de Scrip Subir Imágenes Via Ftp, My_egallery!, Necesito ayuda con este script en el foro de PHP en Foros del Web. Hola saludos tengo el siguiente codigo, del archivo quickaddmedia.php del my_eGallery (PHPNUKE), ubicado en admin/modules/gallery/ ****CODIGO**** function radd($par, $path, $recursive, $submitter, $desc_pic, $desc_cat) { global ...
  #1 (permalink)  
Antiguo 23/10/2004, 09:15
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 92
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta Scrip Subir Imágenes Via Ftp, My_egallery!, Necesito ayuda con este script

Hola saludos
tengo el siguiente codigo, del archivo quickaddmedia.php del my_eGallery (PHPNUKE), ubicado en admin/modules/gallery/
****CODIGO****
function radd($par, $path, $recursive, $submitter, $desc_pic, $desc_cat) {
global $prefix, $font, $galleryvar, $gallerypath;
$c = 0;

$loc = substr($path, strlen("$gallerypath/"));
//echo "*$loc*<br>";
$result = mysql_query("SELECT gallid, galloc, gallimg FROM $prefix"._gallery_categories." where galloc='$loc'");
if(mysql_num_rows($result)>0)
$row = mysql_fetch_array($result);
//echo $row[gallid].'<br>';
if(is_dir($path)) {
$d = opendir($path);
while($f = readdir($d)) {
//echo $f."<br>";
if($f == '.' || $f == '..' || $f == 'thumb'){continue;}
$rf = "$path/$f";
$isdir = is_dir($rf);
if(!$isdir && $par !=-1) { // check if this is a sub-directory
$ext = substr($f, (strrpos($f,'.') + 1));
$sql = "select filetype from $prefix"._gallery_media_types." where extension='$ext'";
list($type) = mysql_fetch_row(mysql_query($sql));
//echo $type;
if($type && !is_in($f, $row[gallid], $row[gallimg])) {
switch($type) {
case 1:
$size[0] = 0;
$size[1] = 0;
if ($ext!="bmp" && $ext!="BMP")
$size = getimagesize($rf);
break;
case 3:
$size[0] = 320;
$size[1] = 240;
break;
default:
$size[0] = 0;
$size[1] = 0;
break;
}
$f = addslashes($f);
$sql = "INSERT INTO $prefix"._gallery_pictures." (pid, gid, img, counter, submitter, date, name, description, votes, rate, extension, width, height) VALUES (NULL, $row[gallid], '$f', 0, '$submitter', NOW(), '$f', '$desc_pic', 0, 0, '$ext', $size[0], $size[1])";
//echo $sql.'<br>';
mysql_query($sql);
print "<font size=\"1\">&nbsp;&nbsp;".sprintf(_GALFILEADDED, $f, $loc)."</font><br>";
$c++;
}
else {
}
}
elseif ($isdir) {
$isindatabase = 0;
if ($par==-1)
$galloc = $f;
else
$galloc = "$loc/$f";
$sql = "SELECT gallid, gallimg FROM $prefix"._gallery_categories." where galloc='$galloc'";
//echo $sql.'<br>';
$result = mysql_query($sql);
if (mysql_num_rows($result)>0)
$isindatabase=1;
if (!$isindatabase) {
$sql = "INSERT INTO $prefix"._gallery_categories." (gallid, gallname, gallimg, galloc, description, parent, visible, template, numcol, total, lastadd) VALUES (NULL, '$f', '".$galleryvar['GalleryPictureName']."', '$galloc', '$desc_cat', $par, 0, 2, 3, 0, NOW())";
//echo $sql.'<br>';
$c += 1;
mysql_query($sql);
print '<font class="'.$font['normal'].'"><strong>'.sprintf(_GALNEWMEDIAADDED, $f, $loc).'</strong></font><br>';
$row2 = mysql_fetch_array(mysql_query("SELECT gallid FROM $prefix"._gallery_categories." WHERE gallid=LAST_INSERT_ID()"));
}
else
$row2 = mysql_fetch_array(mysql_query("SELECT gallid FROM $prefix"._gallery_categories." WHERE galloc='$galloc'"));
if ($recursive==1)
$c += radd($row2[gallid], $rf, $recursive, $submitter, $desc_pic, $desc_cat);
}

} // while
closedir($d);
return $c;
}
}
************************************************** *****
Como deben saber esta función sirve para agregar a la base de datos los archivos subidos via FTP. Este script funciona de maravila cuando subo categorias enteras.
Por ejemplo tengo una categoria SCreenshots, a la cual subo la carpeta Doom3 (llena de imágenes) , este programilla me crea una subcategoria dentro de Screenshots con el nombre de la carpeta que meti, en este caso Doom3, y además me ingresa a la base datos todas la imágenes que tiene la carpeta, genial no?....
Bueno pues cuando subo archivos solos, por ejemplo:
Si quisiera agregar 5 archivos más a la carpeta Doom3, lo unico que tengo que hacer es subirlos via ftp a la carpeta Doom3, y el script este me las inserta en la base de datos.
Bueno, en la tabla gallery_categories hay un campo llamado lastadd, en este campo queda registrado el ultimo cambio que se hizo en la categoria. Cuando subo la categoria comleta no hay problema, el lastadd me queda con la fecha en que se agregó la categoría. PERO cuando añado imágenes a una categoría ya creada, la fecha de lastadd no cambia, queda igual.
Lo que necesito es que al agregar un archivo solo a una categoría ya creada, el lastadd cambie a un now().
Nose si me he explicado correctamente??
Ojalá alguien me pueda ayudar!!!
Saludos
__________________
Necesito Colaboradores :arriba:
Siempre aprendiendo algo :pensando:
www.gamebox.cl

Última edición por granunca; 23/10/2004 a las 09:41
  #2 (permalink)  
Antiguo 23/10/2004, 09:33
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
Lamento decirte que es poco probable que alguien se ponga a reviar el código detenidamente para ver por que no hace lo que tu deseas. Sin embargo sospecho que la forma en la que lo utilizas es incorrecta y por ello no funciona. En el código que envias, solo hay una consulta SQL donde se inserta el campo lastdd, y se inserta siempre con el valor NOW(), por lo tanto siempre que un registro nuevo es insertado, este se actualiza. Revisa que estes usandolo correctamente.

un saludo
  #3 (permalink)  
Antiguo 23/10/2004, 09:48
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 92
Antigüedad: 19 años, 6 meses
Puntos: 0
Bueno, yo solo me estoy inciando en esto de PHP, y no se mucho mucho de codigo, pero he conseguido modificar varios modulos de PHPNUKE, y me falta este pequeño detalle en este:

Les comento como entiendo yo este codigo a grandes rasgos:
Cuando detecta nuevos archivos de imágenes (solo imágenes , no carpetas) lo que hace es hacer un insert en la tabla gallery_pictures, y cuando detecta una carpeta (es decir una categoría) lo que hace es hacer un insert en la tabla gallery_categories. Lo que yo quiero es que en el primer caso (primer insert), además de insertar datos en la tabla gallery_pictures , me inserte el dato LASTADD (que no es más que un datetime) en la tabla gallery_categories . Nose si será importante , pero el campo gid (de gallery_pictures) es el mismo que el gallid (de gallery_categories), que no es más que el ID de la categoria.

Nose si queda mas o menos claro?
Saludos
__________________
Necesito Colaboradores :arriba:
Siempre aprendiendo algo :pensando:
www.gamebox.cl
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 10:33.