Vous n'êtes pas identifié.
Annonce
Annonce 1 : Le Codex en français a besoin de vous pour avancer !
Annonce 2 : Avant de poster, n'oubliez pas de faire une petite Recherche et de lire les règles de ce forum.
Annonce 3 : Lisez notre blog, il regorge de bonnes informations.
Annonce 4 : Rejoignez-nous sur Facebook et sur Twitter
#1 15-11-2009 23:27:07
- bad_morning
- Membre WP
- Date d'inscription: 15-11-2009
- Messages: 7
Ajouter images dans apercu extrait...
Bonjour,
Ma configuration WP actuelle
- Version de WordPress : 2.8.6
- Thème utilisé : Mystique
- Extensions en place : aucune
- Nom de l'hebergeur : dedibox(dédié)
- Adresse du site : pas encore en ligne
Problème(s) rencontré(s) :
Voila en fait j'ai choisis d'afficher mes article en mode "extrait" mais j'aimerai que l'image lié a l'article s'affiche comme en mode "totalité", j'ai déjà fouillé dans les fichier php du thème visiblement c'est lié au mode "Excerpts", mais je sèche...quelqu'un peu m'aider?
merci d'avance.
Dernière modification par bad_morning (16-11-2009 00:10:03)
Hors ligne
#2 16-11-2009 10:09:58
Re: Ajouter images dans apercu extrait...
Bonjour,
il faudrait peut être voir du côté des thumbnails ?
http://www.li-an.fr/blog/gerer-les-imag … ress/3835/
essaie d'aider les autres c'est tout.
Absent à partir du 13/02/10,retour ? déménagement.
Hors ligne
#3 16-11-2009 10:18:25
Re: Ajouter images dans apercu extrait...
Hello
Ce comportement des "excerpts" est une "feature' de WP : c'est fait pour.
Il y a un plugin qui te permet de règler ceci au petit poil : Advanced excerpt (si je ne m'abuse). Et si tu es un codeur endurci, tu peux faire un petit tout du côté des "hooks & filters" pour modifier le comportement par défaut à partir de ton fichier functions.php…
Bien cordialement… Pierre
Hors ligne
#4 16-11-2009 14:32:20
- bad_morning
- Membre WP
- Date d'inscription: 15-11-2009
- Messages: 7
Re: Ajouter images dans apercu extrait...
Merci pour vos réponses rapides, Lupi j'ai lu ce que tu me propose mais cela semble etre différent de ce que je veut faire ou j'ai mal compris, moi je voudrait juste trouver les lignes de code qui définissent ce qui va apparaitre suivant le mode d'affichage afin d'y ajouter les images...
piekes, ce que tu dit a l'air intéressent, cependant pourrais tu me donner le nom et l'emplacement des fichiers? je vient de joomla et le changement est assez conséquent...
merci a vous deux.
Hors ligne
#5 16-11-2009 16:50:02
Re: Ajouter images dans apercu extrait...
Les excerpts ne gèrent que le texte (en attendant WP 2.9 qui devrait changer la donne). Si tu veux afficher en plus une image il faut que tu passes par un plugin/fonction. Lupi t'a montré la voie.
Sur mon blog: traductions de plugins pour Wordpress, liste de plugins consacrés à l'image et aux miniatures
- mon blog BD en ligne: http://www.li-an.fr/bd
- mon blog tout court: http://www.li-an.fr/blog
Hors ligne
#6 16-11-2009 22:54:21
- bad_morning
- Membre WP
- Date d'inscription: 15-11-2009
- Messages: 7
Re: Ajouter images dans apercu extrait...
il n'y a pas un page php avec pour "integralité" j'affiche ca....et pour "extrait" ca...du coup je modif a ma guise et c'est torché...?
Edit: Ok en effet j'ai trouvé un plugin qui semble faire ce que je veut grasse a cette page:
http://innovablog.com/inside-innovablog … ree-tools/
seulement problème, je doit éditer le script avec mon répertoire de thumb?.....qu'est-ce ou ce trouve t-il, la j'ai "$destinationDir="/mat/thumb/";" mais ca marche pas...?
Dernière modification par bad_morning (16-11-2009 23:14:41)
Hors ligne
#7 17-11-2009 09:30:58
Re: Ajouter images dans apercu extrait...
Hum, je soupçonne plutôt un chemin complet genre /home/... Ou essaie un chemin genre http://www.../monrepertoire
Sur mon blog: traductions de plugins pour Wordpress, liste de plugins consacrés à l'image et aux miniatures
- mon blog BD en ligne: http://www.li-an.fr/bd
- mon blog tout court: http://www.li-an.fr/blog
Hors ligne
#8 17-11-2009 17:50:56
- bad_morning
- Membre WP
- Date d'inscription: 15-11-2009
- Messages: 7
Re: Ajouter images dans apercu extrait...
j'ai essayé avec /var/www/cache/, mon serveur étant sous linux mais rien, j'ai aussi essayé avec http://....mais toujours rien...je comprend pas comment marche le script...j'ai aucun messages d'erreurs...c'est comme si je faisait rien!
est-ce quelqu'un connait ce script?
pourtant conseillé par wordpress: http://wordpress.org/extend/plugins/image-extractor/
Dernière modification par bad_morning (17-11-2009 17:52:00)
Hors ligne
#9 17-11-2009 19:45:59
Re: Ajouter images dans apercu extrait...
Oulala, il est indiqué comme ne fonctionnant pas sous WP 2.8.6 et la dernière mise à jour date de 2007 ! Tu devrais essayer une solution plus récente.
Sur mon blog: traductions de plugins pour Wordpress, liste de plugins consacrés à l'image et aux miniatures
- mon blog BD en ligne: http://www.li-an.fr/bd
- mon blog tout court: http://www.li-an.fr/blog
Hors ligne
#10 17-11-2009 21:29:06
- bad_morning
- Membre WP
- Date d'inscription: 15-11-2009
- Messages: 7
Re: Ajouter images dans apercu extrait...
je m'en suis juste inspiré et codé suivant ma config 
Hors ligne
#11 17-11-2009 22:26:27
- bad_morning
- Membre WP
- Date d'inscription: 15-11-2009
- Messages: 7
Re: Ajouter images dans apercu extrait...
ha petit soucis ca marche parfaitement sur la page d'accueil apres avoir bidouillé le fichier index.php mais pas sue mes pages ?cat=XX, y a t'il une autre page pour que j'applique ma modification?
Hors ligne
#12 17-11-2009 22:46:37
- bad_morning
- Membre WP
- Date d'inscription: 15-11-2009
- Messages: 7
Re: Ajouter images dans apercu extrait...
OK trouvé c'est dans archive.php
Hors ligne
#13 18-11-2009 15:00:44
- nekikool
- Membre WP
- Date d'inscription: 31-10-2008
- Messages: 3
Re: Ajouter images dans apercu extrait...
Hello, je suis justement en train d'essayer de mettre une image moi aussi, ça m'intéresse donc pas mal de savoir quelles modifs tu as pu faire par rapport au plugin d'origine.
Hors ligne
#14 18-11-2009 17:46:30
- nekikool
- Membre WP
- Date d'inscription: 31-10-2008
- Messages: 3
Re: Ajouter images dans apercu extrait...
Bon je précise, j'ai aussi installé le plugin et il me récupère les images qu'il peut afficher en taille originale, par contre le redimensionnement puis stockage ne fonctionne pas, donc soit il y'a un problème dans les fonctions soit dans le chemin relatif ou absolu du dossier de stockage. Le dossier a tous les droits donc pas de problème à ce niveau.
Hors ligne
#15 19-11-2009 10:43:02
Re: Ajouter images dans apercu extrait...
Arthemia utilise tinthumb ,Li-An rectifie si je trompe,s'il te plait.
Du coup dans "Archives" ,il y a ce code
Code:
- <?php $values = get_post_custom_values("Image");
- if (isset($values[0])) { ?>
Dans Arthemia,on a un dossier "scripts" et dedans dossier "cache " plus ce fichier tinthumb.php
<?php
// TimThumb script created by Tim McDaniels and Darren Hoyt with tweaks by Ben Gillbanks
// http://code.google.com/p/timthumb/
// MIT License: http://www.opensource.org/licenses/mit-license.php
/* Parameters allowed: */
// w: width
// h: height
// zc: zoom crop (0 or 1)
// q: quality (default is 75 and max is 100)
// HTML example: <img src="/scripts/timthumb.php?src=/images/whatever.jpg&w=150&h=200&zc=1" alt="" />
if( !isset( $_REQUEST[ "src" ] ) ) {
die( "no image specified" );
}
// clean params before use
$src = clean_source( $_REQUEST[ "src" ] );
// set document root
$doc_root = get_document_root($src);
// get path to image on file system
$src = $doc_root . '/' . $src;
$new_width = preg_replace( "/[^0-9]+/", "", get_request( 'w', 100 ) );
$new_height = preg_replace( "/[^0-9]+/", "", get_request( 'h', 100 ) );
$zoom_crop = preg_replace( "/[^0-9]+/", "", get_request( 'zc', 1 ) );
$quality = preg_replace( "/[^0-9]+/", "", get_request( 'q', 80 ) );
// set path to cache directory (default is ./cache)
// this can be changed to a different location
$cache_dir = './cache';
// get mime type of src
$mime_type = mime_type( $src );
// check to see if this image is in the cache already
check_cache( $cache_dir, $mime_type );
// make sure that the src is gif/jpg/png
if( !valid_src_mime_type( $mime_type ) ) {
$error = "Invalid src mime type: $mime_type";
die( $error );
}
// check to see if GD function exist
if(!function_exists('imagecreatetruecolor')) {
$error = "GD Library Error: imagecreatetruecolor does not exist";
die( $error );
}
if(strlen($src) && file_exists( $src ) ) {
// open the existing image
$image = open_image( $mime_type, $src );
if( $image === false ) { die( 'Unable to open image : ' . $src ); }
// Get original width and height
$width = imagesx( $image );
$height = imagesy( $image );
// don't allow new width or height to be greater than the original
if( $new_width > $width ) { $new_width = $width; }
if( $new_height > $height ) { $new_height = $height; }
// generate new w/h if not provided
if( $new_width && !$new_height ) {
$new_height = $height * ( $new_width / $width );
}
elseif($new_height && !$new_width) {
$new_width = $width * ( $new_height / $height );
}
elseif(!$new_width && !$new_height) {
$new_width = $width;
$new_height = $height;
}
// create a new true color image
$canvas = imagecreatetruecolor( $new_width, $new_height );
if( $zoom_crop ) {
$src_x = $src_y = 0;
$src_w = $width;
$src_h = $height;
$cmp_x = $width / $new_width;
$cmp_y = $height / $new_height;
// calculate x or y coordinate and width or height of source
if ( $cmp_x > $cmp_y ) {
$src_w = round( ( $width / $cmp_x * $cmp_y ) );
$src_x = round( ( $width - ( $width / $cmp_x * $cmp_y ) ) / 2 );
}
elseif ( $cmp_y > $cmp_x ) {
$src_h = round( ( $height / $cmp_y * $cmp_x ) );
$src_y = round( ( $height - ( $height / $cmp_y * $cmp_x ) ) / 2 );
}
imagecopyresampled( $canvas, $image, 0, 0, $src_x, $src_y, $new_width, $new_height, $src_w, $src_h );
}
else {
// copy and resize part of an image with resampling
imagecopyresampled( $canvas, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
}
// output image to browser based on mime type
show_image( $mime_type, $canvas, $quality, $cache_dir );
// remove image from memory
imagedestroy( $canvas );
} else {
if( strlen( $src ) ) {
echo $src . ' not found.';
} else {
echo 'no source specified.';
}
}
function show_image ( $mime_type, $image_resized, $quality, $cache_dir ) {
// check to see if we can write to the cache directory
$is_writable = 0;
$cache_file_name = $cache_dir . '/' . get_cache_file();
if( touch( $cache_file_name ) ) {
// give 666 permissions so that the developer
// can overwrite web server user
chmod( $cache_file_name, 0666 );
$is_writable = 1;
}
else {
$cache_file_name = NULL;
header( 'Content-type: ' . $mime_type );
}
if( stristr( $mime_type, 'gif' ) ) {
imagegif( $image_resized, $cache_file_name );
} elseif( stristr( $mime_type, 'jpeg' ) ) {
imagejpeg( $image_resized, $cache_file_name, $quality );
} elseif( stristr( $mime_type, 'png' ) ) {
$quality = $quality / 10;
if($quality == 10) {
$quality = 9;
}
imagepng( $image_resized, $cache_file_name, $quality );
}
if( $is_writable ) {
show_cache_file( $cache_dir, $mime_type );
}
exit;
}
function get_request( $property, $default = 0 ) {
if( isset($_REQUEST[$property]) ) {
return $_REQUEST[$property];
} else {
return $default;
}
}
function open_image ( $mime_type, $src ) {
if( stristr( $mime_type, 'gif' ) ) {
$image = imagecreatefromgif( $src );
} elseif( stristr( $mime_type, 'jpeg' ) ) {
@ini_set('gd.jpeg_ignore_warning', 1);
$image = imagecreatefromjpeg( $src );
} elseif( stristr( $mime_type, 'png' ) ) {
$image = imagecreatefrompng( $src );
}
return $image;
}
function mime_type ( $file ) {
$os = strtolower(php_uname());
$mime_type = '';
// use PECL fileinfo to determine mime type
if( function_exists( 'finfo_open' ) ) {
$finfo = finfo_open( FILEINFO_MIME );
$mime_type = finfo_file( $finfo, $file );
finfo_close( $finfo );
}
// try to determine mime type by using unix file command
// this should not be executed on windows
if( !valid_src_mime_type( $mime_type ) && !(eregi('windows', php_uname()))) {
if( preg_match( "/freebsd|linux/", $os ) ) {
$mime_type = trim ( @shell_exec( 'file -bi $file' ) );
}
}
// use file's extension to determine mime type
if( !valid_src_mime_type( $mime_type ) ) {
$frags = split( "\.", $file );
$ext = strtolower( $frags[ count( $frags ) - 1 ] );
$types = array(
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'png' => 'image/png',
'gif' => 'image/gif'
);
if( strlen( $ext ) && strlen( $types[$ext] ) ) {
$mime_type = $types[ $ext ];
}
// if no extension provided, default to jpg
if( !strlen( $ext ) && !valid_src_mime_type( $mime_type ) ) {
$mime_type = 'image/jpeg';
}
}
return $mime_type;
}
function valid_src_mime_type ( $mime_type ) {
if( preg_match( "/jpg|jpeg|gif|png/i", $mime_type ) ) { return 1; }
return 0;
}
function check_cache ( $cache_dir, $mime_type ) {
// make sure cache dir exists
if( !file_exists( $cache_dir ) ) {
// give 777 permissions so that developer can overwrite
// files created by web server user
mkdir( $cache_dir );
chmod( $cache_dir, 0777 );
}
show_cache_file( $cache_dir, $mime_type );
}
function show_cache_file ( $cache_dir, $mime_type ) {
$cache_file = $cache_dir . '/' . get_cache_file();
if( file_exists( $cache_file ) ) {
if( isset( $_SERVER[ "HTTP_IF_MODIFIED_SINCE" ] ) ) {
// check for updates
$if_modified_since = preg_replace( '/;.*$/', '', $_SERVER[ "HTTP_IF_MODIFIED_SINCE" ] );
$gmdate_mod = gmdate( 'D, d M Y H:i:s', filemtime( $cache_file ) );
if( strstr( $gmdate_mod, 'GMT' ) ) {
$gmdate_mod .= " GMT";
}
if ( $if_modified_since == $gmdate_mod ) {
header( "HTTP/1.1 304 Not Modified" );
exit;
}
}
$fileSize = filesize( $cache_file );
// send headers then display image
header( "Content-Type: " . $mime_type );
header( "Accept-Ranges: bytes" );
header( "Last-Modified: " . gmdate( 'D, d M Y H:i:s', filemtime( $cache_file ) ) . " GMT" );
header( "Content-Length: " . $fileSize );
header( "Cache-Control: max-age=9999, must-revalidate" );
header( "Etag: " . md5($fileSize . $gmdate_mod) );
header( "Expires: " . gmdate( "D, d M Y H:i:s", time() + 9999 ) . "GMT" );
readfile( $cache_file );
exit;
}
}
function get_cache_file () {
global $quality;
static $cache_file;
if(!$cache_file) {
$frags = split( "\.", $_REQUEST['src'] );
$ext = strtolower( $frags[ count( $frags ) - 1 ] );
if(!valid_extension($ext)) { $ext = 'jpg'; }
$cachename = get_request( 'src', 'timthumb' ) . get_request( 'w', 100 ) . get_request( 'h', 100 ) . get_request( 'zc', 1 ) . get_request( 'q', 80 );
$cache_file = md5( $cachename ) . '.' . $ext;
}
return $cache_file;
}
function valid_extension ($ext) {
if( preg_match( "/jpg|jpeg|png|gif/i", $ext ) ) return 1;
return 0;
}
function clean_source ( $src ) {
// remove http/ https/ ftp
$src = preg_replace("/^((ht|f)tp(s|):\/\/)/i", "", $src);
// remove domain name from the source url
$host = $_SERVER["HTTP_HOST"];
$src = str_replace($host, "", $src);
$host = str_replace("www.", "", $host);
$src = str_replace($host, "", $src);
//$src = preg_replace( "/(?:^\/+|\.{2,}\/+?)/", "", $src );
//$src = preg_replace( '/^\w+:\/\/[^\/]+/', '', $src );
// don't allow users the ability to use '../'
// in order to gain access to files below document root
// src should be specified relative to document root like:
// src=images/img.jpg or src=/images/img.jpg
// not like:
// src=../images/img.jpg
$src = preg_replace( "/\.\.+\//", "", $src );
return $src;
}
function get_document_root ($src) {
if( @file_exists( $_SERVER['DOCUMENT_ROOT'] . '/' . $src ) ) {
return $_SERVER['DOCUMENT_ROOT'];
}
// the relative paths below are useful if timthumb is moved outside of document root
// specifically if installed in wordpress themes like mimbo pro:
// /wp-content/themes/mimbopro/scripts/timthumb.php
$paths = array( '..', '../..', '../../..', '../../../..' );
foreach( $paths as $path ) {
if( @file_exists( $path . '/' . $src ) ) {
return $path;
}
}
}
?>
essaie d'aider les autres c'est tout.
Absent à partir du 13/02/10,retour ? déménagement.
Hors ligne
#16 19-11-2009 11:46:30
Re: Ajouter images dans apercu extrait...
C'est exact: Arthemia gère TimThumb (mais pas sur mon blog :-))
Sur mon blog: traductions de plugins pour Wordpress, liste de plugins consacrés à l'image et aux miniatures
- mon blog BD en ligne: http://www.li-an.fr/bd
- mon blog tout court: http://www.li-an.fr/blog
Hors ligne
#18 19-11-2009 13:32:26
Re: Ajouter images dans apercu extrait...
Comme j'ai testé tout ce que j'ai pu, j'ai aussi testé le plugin payant Viva Thumbs. Et comme je l'ai payé, je l'ai gardé :-) (il fonctionne bien, je ne vais pas me plaindre).
Sur mon blog: traductions de plugins pour Wordpress, liste de plugins consacrés à l'image et aux miniatures
- mon blog BD en ligne: http://www.li-an.fr/bd
- mon blog tout court: http://www.li-an.fr/blog
Hors ligne
#20 20-11-2009 11:46:37
- nekikool
- Membre WP
- Date d'inscription: 31-10-2008
- Messages: 3
Re: Ajouter images dans apercu extrait...
Hello, j'ai finalement réussi à obtenir ce que je voulais en modifiant le code source du plugin "Image Extractor".
Le problème est qu'il parse le html d'un article pour y récupérer le lien vers l'image, hors ce lien est symbolique et réutilisé tel quel côté serveur, ça ne marche pas.
Je précise que je suis sous Wordpress Mu aussi, donc j'ai des arborescences différentes dûes à la gestion de multiples blogs.
Donc j'ai fait un preg_replace pour remettre la bonne arborescence de dossier pour faire les tests et modifications d'image et remis le lien symbolique pour la génération du code HTML.
imageExtractor.php : En GRAS les modifs/ajouts
$destinationDir="/ICI LE VRAI CHEMIN VERS LE DOSSIER DE DESTINATION/";
$destinationDirSymbolique="/ICI LE LIEN SYMBOLIQUE VERS LE DOSSIER DE DESTINATION/";
$srcDir="/ICI LE VRAI CHEMIN VERS LE DOSSIER SOURCE/";
// do not touch this lines...
include_once ("htmlParser.php");
include_once ("class.ImageToolbox.php");
function wp_image_extractor($args='') {
parse_str($args);
if(!isset($width)) $width = '';
if(!isset($height)) $height = '';
if(!isset($resize)) $resize = false;
if(!isset($resize_type)) $resize_type = 1;
if(!isset($class)) $class = '';
if(!isset($id)) $id = '';
if(!isset($prefix)) $prefix = '';
if(!isset($suffix)) $suffix = '';
return image_extractor($resize, $resize_type, $width, $height, $class, $id, $prefix, $suffix);
}
function image_extractor($resize=false, $resize_type=1, $width='', $height='', $class='', $id='', $prefix='', $suffix='') {
echo get_image_extractor($resize, $resize_type, $width, $height, $class, $id, $prefix, $suffix);
}
function get_image_extractor($resize, $resize_type, $width, $height, $class, $id, $prefix, $suffix) {
global $post, $destinationDir, $destinationDirSymbolique;
if (!empty($post->post_password)) { // if there's a password
if ($_COOKIE['wp-postpass_'.COOKIEHASH] != $post->post_password) { // and it doesn't match cookie
if(is_feed()) { // if this runs in a feed
$output = __('There is no excerpt because this is a protected post.');
} else {
$output = get_the_password_form();
}
}
return $output;
}
$text = $post->post_content;
// Create the parser
$parser = new htmlparser_class;
// Set the html code
$ret=$parser->InsertHTML($text);
if ($ret===false) return;
$parser->Parse();
$result=$parser->GetElements($htmlCode);
$attribArr=$parser->getTagResource("img");
if ($attribArr==false) return;
if ($resize===true) {
$src=$parser->linkAnalyzer($attribArr[0]["src"]);
/* Modif H.P. pour retrouver le bon dossier pour les images au lieu de l'url symbolique --> Rend le plugin propre a 1 blog */
$patterns[0] = '/LIEN SYMBOLIQUE/';
$replacements[0] = 'BONNE ARBORESCENCE';
$srcDir = preg_replace($patterns, $replacements, $src["path"]);
if (!file_exists(getenv("DOCUMENT_ROOT").$srcDir)) return;
$dest=$destinationDir.$width."x".$height."-".basename($srcDir);
$destSymbolique = $destinationDirSymbolique.$width."x".$height."-".basename($srcDir);
$dest=preg_replace ('/\.(gif|jpg|png)/', '', $dest).".png";
$destSymbolique=preg_replace ('/\.(gif|jpg|png)/', '', $destSymbolique).".png";
if (!file_exists(getenv("DOCUMENT_ROOT").$dest)) {
list($w, $h, $t, $a) = getimagesize(getenv("DOCUMENT_ROOT").$srcDir);
$thumbnail=new Image_Toolbox(getenv("DOCUMENT_ROOT").$srcDir);
$thumbnail->setResizeMethod('workaround');
$thumbnail->newOutputSize($width,$height,$resize_type,false,'#FFFFFF');
// $thumbnail->addImage('./img/logo.png');
// $thumbnail->blend('right','bottom');
$thumbnail->save(getenv("DOCUMENT_ROOT").$dest,"png24");
}
//Modif H.P. remet le lien symbolique pour affichage html
$attribArr[0]["src"]=$destSymbolique;
}
$ret="";
if (is_array($attribArr[0]))
foreach ($attribArr[0] as $k=>$v) {
if ($k=="width" and $width!="") continue;
if ($k=="height" and $height!="") continue;
if ($k=="class" and $class!="") continue;
if ($k=="id" and $id!="") continue;
$ret.=" ".$k."=\"".$v."\"";
}
if ($width!="") $ret.=" width=\"".$width."\"";
if ($height!="") $ret.=" height=\"".$height."\"";
if ($class!="") $ret.=" class=\"".$class."\"";
if ($id!="") $ret.=" id=\"".$id."\"";
$output=$prefix."<img ".$ret."/>".$suffix;
$output = apply_filters($filter_type, $output);
return $output;
}
Il y'a sûrement plus simple/propre, mais je suis allé droit au but pour avoir le plus vite possible quelque chose qui fonctionne...
@+
Dernière modification par nekikool (20-11-2009 11:47:48)
Hors ligne