PHP faire un lien popup

Fermé
anastra Messages postés 36 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 12 mai 2009 - 2 juin 2007 à 11:51
 multicite - 2 juin 2007 à 17:27
Bonjour,
Je voudrais savoir comment on fait un lien popup en PHP.

Mon fichier PHP crée des miniatures automatiquement et les affiche en créent un lien vers chaque image source

Dans la prog suivent les action sont:
Iexploreur s'ouvre dans une nouvel page et sous firefox c'est un nouvel onglet

Voilà la partie qui pose problème

..
....
.....

// Crée le lien dans le tableau global
function ajoute_lien($chemin_image, $chemin_miniature, $file) {
// Récupère la taille de la miniature sous forme HTML (width="xxx" height="yyy")
$taille_html_miniature = getimagesize($chemin_miniature);
$taille_html_miniature = $taille_html_miniature[3];

// Rajoute le lien vers l'image au tableau global $GLOBALS['tabl_liens']
.........................................................................................
$lien = '<a href="'.$chemin_image.'" target=" _blank">';
.........................................................................................
$lien .= '<img src="'.$chemin_miniature.'" '.$taille_html_miniature.' alt="'.$file.'">';
$lien .= '</a>'."\n";

array_push($GLOBALS['tabl_liens'], $lien);
}

....
...
..
.

Merci d'avance...

3 réponses

anastra Messages postés 36 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 12 mai 2009 1
2 juin 2007 à 15:15
oui mais j'ai tout testé et ca ne veux pas marché

voila mon script

<?php
// error_reporting(E_ALL | E_STRICT);

define ("NBRE_COLONNES", 5);

$types_ok = array ('image/jpeg', 'image/gif', 'image/png');
$tabl_exclus = array ('.', '..', 'miniature');
$tabl_liens = array();

// Parcours le répertoire courant et tout ses sous-répertoires récursivement.
function liste_repertoire($dir) {
if ($handle = opendir($dir)) {
while (($file = readdir($handle)) !== false) {
$chemin_fichier = $dir.'/'.$file;
if (is_dir($chemin_fichier)) {
if (!in_array($file, $GLOBALS['tabl_exclus'])) {
liste_repertoire($dir.'/'.$file);
}
} else {
if (est_image($chemin_fichier)) {
$chemin_miniature = $dir.'/miniature/'.$file;
if (!file_exists($chemin_miniature)) {
genere_miniature($dir, $chemin_fichier, $chemin_miniature);
}
ajoute_lien($chemin_fichier, $chemin_miniature, $file);
}
}
}
closedir($handle);
}
}

// Teste si le fichier passé en paramètre correspond à l'un des trois type d'image défini
function est_image($chemin_fichier) {
if (list($GLOBALS['largeur'], $GLOBALS['hauteur'], $type) = getimagesize($chemin_fichier)) {
$type = image_type_to_mime_type($type);
if (in_array($type, $GLOBALS['types_ok'])) {
$ext = explode("/", $type);
$GLOBALS['extension'] = $ext[1];
return true;
}
}
return false;
}

// Génère la miniature de l'image dans le sous-répertoire 'miniature' si celle-ci n'existe pas déjà
function genere_miniature($dir, $chemin_image, $chemin_miniature) {
// Calcul du ratio entre la grande image et la miniature
$taille_max = 100;
if ($GLOBALS['largeur'] <= $GLOBALS['hauteur']) {
$ratio = $GLOBALS['hauteur'] / $taille_max;
} else {
$ratio = $GLOBALS['largeur'] / $taille_max;
}

// Définition des dimensions de la miniature
$larg_miniature = $GLOBALS['largeur'] / $ratio;
$haut_miniature = $GLOBALS['hauteur'] / $ratio;

// Crée la ressource image pour la miniature
$destination = imagecreatetruecolor($larg_miniature, $haut_miniature);

// Retourne un identifiant d'image jpeg, gif ou png
$source = call_user_func('imagecreatefrom'.$GLOBALS['extension'], $chemin_image);

// Redimensionne la grande image
imagecopyresampled( $destination,
$source,
0, 0, 0, 0,
$larg_miniature,
$haut_miniature,
$GLOBALS['largeur'],
$GLOBALS['hauteur']);

// Si le répertoire de miniature n'existe pas, on le crée
if (!is_dir($dir.'/miniature')) {
mkdir ($dir.'/miniature', 0700);
}

// Ecriture physique de l'image
call_user_func('image'.$GLOBALS['extension'], $destination, $chemin_miniature);

// Détruit les ressources temporaires crées
imagedestroy($destination);
imagedestroy($source);
}

// Crée le lien dans le tableau global
function ajoute_lien($chemin_image, $chemin_miniature, $file) {
// Récupère la taille de la miniature sous forme HTML (width="xxx" height="yyy")
$taille_html_miniature = getimagesize($chemin_miniature);
$taille_html_miniature = $taille_html_miniature[3];

// Rajoute le lien vers l'image au tableau global $GLOBALS['tabl_liens']

$lien = '<a href="'.$chemin_image.'" target="dynamic">';
// ici j'ai tout testé mais je trouve pas la soluce
//$lien = '<a href="'.$chemin_image.'" onclick="window.open(popup.htm)">';

$lien .= '<img src="'.$chemin_miniature.'" '.$taille_html_miniature.' alt="'.$file.'">';
$lien .= '</a>'."\n";

array_push($GLOBALS['tabl_liens'], $lien);
}

// Gère l'affichage du tableau $GLOBALS['tabl_liens']
function affichage() {
$compteur = 1;
foreach ($GLOBALS['tabl_liens'] as $val_lien) {
if ($compteur % NBRE_COLONNES == 1) {
echo '<br>';
}
echo $val_lien;
$compteur++;
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Affichage images</title>
<style type="text/css">
<!--
a img {
border-color:transparent;
}
-->
</style>
</head>

<body background="/imagesconstruction/bkg.gif" style="background-attachment: fixed">

<p align="left">
<a style="text-decoration: none; font-weight:700" target="_self" href="http://mon_site.ge.html">
<font color="#3399FF">Back</font></a><br>

<?php
print"Il est ";
echo date("H:i:s");
printf("\n");
liste_repertoire('.');
affichage();
print"Il est ";
echo date("H:i:s");
?>
<p align="left">
<a style="text-decoration: none; font-weight:700" target="_self" href="http://mon_site.ge.html">
<font color="#3399FF">Back</font></a><br>

</body>
</html>
0
Salut

Remplace
// ici j'ai tout testé mais je trouve pas la soluce
//$lien = '<a href="'.$chemin_image.'" onclick="window.open(popup.htm)">'; 


par
// ici j'ai tout testé mais je trouve pas la soluce
//$lien = '<a href="#" onclick="window.open('.$chemin_image.')">'; 


ec
0