je souhaiterais transformer quelque peu cette fonction pour me permettre de pouvoir choisir moi-même le thumbnails associé à l'image que j'importe. Mais étant débutant je ne sais pas par ou commencer, dans l'interface d'administration j'ai donc déjà créer un "form" de type "file" associé à une id permettant de reconnaitre qu'il s'agit du thumbnail et non de l'image (en taille réelle) !!! J'espère avoir été aussi clair que possible.
Donc si une âme charitable passe sur le fofo , pouvez vous me venir en aide ?
Ahh j'oubliais j'ai aussi un autre petit problème, la lightBox que j'utilise pour cette galerie me permet uniquement de gérer les fichiers image .gif, .jpg, et .png et je voudrais aussi pouvoir mettre des fichiers .mov, wmv, .mp3... etc et j'ai donc été fouiner sur le sourceforge de jQuery afin de trouver la solution à ce problème et j'ai trouver un petit plug à rajouter à l'aide d'un simple petit javascript pour pouvoir gérer ce type de fichiers dans ma galerie, mais je souhaiterais intégrer à ma fonction ce type de fichiers (d'extensions de fichiers plutôt) !!!
PS: J'ai voulu me présenter mais je n'ai pas trouver de topic dédier la présentation, j'ai aussi lu les règles d'utilisation du fofo et j'ai aussi utiliser la fonction recherche, certes mon problème se divise en deux partie mais rectifier moi si je me trompe les deux problèmes sont liés
Pouvez vous m'aider s'il vous plait ?
Je vous joint le code complet de ma fonction
Code : Tout sélectionner
<?php
require_once '../config.inc.php';
$action = isset($_GET['view']) ? $_GET['view'] : '';
switch ($action) {
case 'add' :
add_image();
break;
case 'delete' :
delete_image();
break;
default :
// if action is not defined or unknown
header('Location: index.php?view=main');
}
function add_image(){
$name = $_POST['name'];
$alt = $_POST['alt'];
$images = uploadImage('image', '../images/gallery/');
$mainImage = $images['image'];
$thumbnail = $images['thumbnail'];
$sql = script_db_query("INSERT INTO gallery (pict_name, pict_alt, pict_path, pict_thumb) values ('$name','$alt','$mainImage','$thumbnail')");
if($sql){
header('Location: index.php');
} else {
echo 'Error: could not make the querry';
}
}
function delete_image(){
$id = $_GET['id'];
// get the image name and thumbnail
$sql = "SELECT pict_path, pict_thumb
FROM gallery
WHERE pict_id = $id";
$result = script_db_query($sql);
$row = script_db_fetch_array($result);
// remove the image and thumbnail
if ($row['pict_path']) {
unlink(SRV_ROOT . 'images/gallery/' . $row['pict_path']);
unlink(SRV_ROOT . 'images/gallery/' . $row['pict_thumb']);
}
// remove the image from database;
$sql = "DELETE FROM gallery
WHERE pict_id = $id";
script_db_query($sql);
header('Location: index.php');
}
/*
Create a thumbnail of $srcFile and save it to $destFile.
The thumbnail will be $width pixels.
*/
function createThumbnail($srcFile, $destFile, $width, $quality = 75)
{
$thumbnail = '';
if (file_exists($srcFile) && isset($destFile))
{
$size = getimagesize($srcFile);
$w = number_format($width, 0, ',', '');
$h = number_format(($size[1] / $size[0]) * $width, 0, ',', '');
$thumbnail = copyImage($srcFile, $destFile, $w, $h, $quality);
}
// return the thumbnail file name on sucess or blank on fail
return basename($thumbnail);
}
/*
Copy an image to a destination file. The destination
image size will be $w X $h pixels
*/
function copyImage($srcFile, $destFile, $w, $h, $quality = 75)
{
$tmpSrc = pathinfo(strtolower($srcFile));
$tmpDest = pathinfo(strtolower($destFile));
$size = getimagesize($srcFile);
if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg")
{
$destFile = substr_replace($destFile, 'jpg', -3);
$dest = imagecreatetruecolor($w, $h);
imageantialias($dest, TRUE);
} elseif ($tmpDest['extension'] == "png") {
$dest = imagecreatetruecolor($w, $h);
imageantialias($dest, TRUE);
} else {
return false;
}
switch($size[2])
{
case 1: //GIF
$src = imagecreatefromgif($srcFile);
break;
case 2: //JPEG
$src = imagecreatefromjpeg($srcFile);
break;
case 3: //PNG
$src = imagecreatefrompng($srcFile);
break;
default:
return false;
break;
}
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);
switch($size[2])
{
case 1:
case 2:
imagejpeg($dest,$destFile, $quality);
break;
case 3:
imagepng($dest,$destFile);
}
return $destFile;
}
function uploadimage($inputName, $uploadDir)
{
$image = $_FILES[$inputName];
$imagePath = '';
$thumbnailPath = '';
// if a file is given
if (trim($image['tmp_name']) != '') {
$ext = substr(strrchr($image['name'], "."), 1); //$extensions[$image['type']];
// generate a random new file name to avoid name conflict
$imagePath = md5(rand() * time()) . ".$ext";
list($width, $height, $type, $attr) = getimagesize($image['tmp_name']);
// make sure the image width does not exceed the
// maximum allowed width
if (LIMIT_WIDTH && $width > MAX_IMAGE_WIDTH) {
$result = createThumbnail($image['tmp_name'], $uploadDir . $imagePath, MAX_IMAGE_WIDTH);
$imagePath = $result;
} else {
$result = move_uploaded_file($image['tmp_name'], $uploadDir . $imagePath);
}
if ($result) {
// create thumbnail
$thumbnailPath = md5(rand() * time()) . ".$ext";
$result = createThumbnail($uploadDir . $imagePath, $uploadDir . $thumbnailPath, THUMBNAIL_WIDTH);
// create thumbnail failed, delete the image
if (!$result) {
unlink($uploadDir . $imagePath);
$imagePath = $thumbnailPath = '';
} else {
$thumbnailPath = $result;
}
} else {
// the product cannot be upload / resized
$imagePath = $thumbnailPath = '';
}
}
return array('image' => $imagePath, 'thumbnail' => $thumbnailPath);
}
?>
Petit up !!! de l'aide svp
j'ai donc inclu le ficheir javascript jQueryembedquicktime.js pour avoir les extensions .mov, wmv... et j'ai suivi les instructions du site pour le mettre comme ceci
Code : Tout sélectionner
<script type="text/javascript"
src="http://example.com/jquery-1.2.3.pack.js"></script>
<script type="text/javascript"
src="http://example.com/jquery.embedquicktime.js"></script>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function() {
jQuery.embedquicktime({
jquery: 'http://example.com/jquery-1.2.3.pack.js',
plugin: 'http://example.com/jquery.embedquicktime.js'
});
});
</script>
mais je crois qu'il est en conflit avec le fichier qui gere ma lightbox (et qui est en fait un lightbox clone)
prettyPhoto.js
MAJ :::
Bon je me suis rabattu sur le plug in javascript Shadowbox qui gére la plupart des types de fichiers que je souhaite, donc il me reste plus qu'as recoder tout mon php, mais un peu ne serais pas de refus !!!
Jusqu'a présent j'en suis :
- J'ai créer l'interface d'administration (avec le design, css...)
- j'ai créer toute la structure de la galerie php.
- J'ai créer le login pour accéder à l'interface (je pense qu'elle est plus ou moins secure)
- le paramétrage de l'installation est quasiment fini (reste évidement ces quelques fonctions ci dessous a faire) , j'ai créer des tables dans la bdd mysql pour
- media_id
- media_thumb
-media_path
-media_name
-media_alt
il faudrait je pense créer aussi
- media_desc (pour la description)
- media_info (pour le reste)
Qu'en pensez vous ???
Maintenant il me faudrait créer un truc ou trouver un exemple de code pour une genre d'interface avec un "form file" pour importer un vidéo venant de mon PC, un ""form file" pour importer le thumbnails étant associé à ma videos, un "form text" pour le titre de la vidéo, un "form text" pour sa description et voila !!!!
Donc je repart dans mon code !!!
PS: j'oubliais, biensur ma galerie vidéo, image seras une fois terminer mis en OpenSource !!!