Bonjour,
Voulant insérer mes vidéos Dailymotion dans mon site, j'ai modifié le code de Coppermine pour arriver à mes fins.
Je vous fournit la solution :
Voici le code de la fonction theme_html_picture à modifier ou à ajouter dans theme.php de votre thème :
function theme_html_picture()
{
global $CONFIG, $CURRENT_PIC_DATA, $CURRENT_ALBUM_DATA, $USER;
global $album, $comment_date_fmt, $template_display_media;
global $lang_display_image_php, $lang_picinfo;
$pid = $CURRENT_PIC_DATA['pid'];
$pic_title = '';
if (!isset($USER['liv']) || !is_array($USER['liv'])) {
$USER['liv'] = array();
}
// Add 1 to hit counter
if (!USER_IS_ADMIN && !in_array($pid, $USER['liv']) && isset($_COOKIE[$CONFIG['cookie_name'] . '_data'])) {
add_hit($pid);
if (count($USER['liv']) > 4) array_shift($USER['liv']);
array_push($USER['liv'], $pid);
}
if ($CONFIG['thumb_use'] == 'ht' && $CURRENT_PIC_DATA['pheight'] > $CONFIG['picture_width']) { // The wierd comparision is because only picture_width is stored
$condition = true;
} elseif ($CONFIG['thumb_use'] == 'wd' && $CURRENT_PIC_DATA['pwidth'] > $CONFIG['picture_width']) {
$condition = true;
} elseif ($CONFIG['thumb_use'] == 'any' && max($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight']) > $CONFIG['picture_width']) {
$condition = true;
} else {
$condition = false;
}
if ($CURRENT_PIC_DATA['title'] != '') {
$pic_title .= $CURRENT_PIC_DATA['title'] . "\n";
}
if ($CURRENT_PIC_DATA['caption'] != '') {
$pic_title .= $CURRENT_PIC_DATA['caption'] . "\n";
}
if ($CURRENT_PIC_DATA['keywords'] != '') {
$pic_title .= $lang_picinfo['Keywords'] . ": " . $CURRENT_PIC_DATA['keywords'];
}
if (!$CURRENT_PIC_DATA['title'] && !$CURRENT_PIC_DATA['caption']) {
template_extract_block($template_display_media, 'img_desc');
} else {
if (!$CURRENT_PIC_DATA['title']) {
template_extract_block($template_display_media, 'title');
}
if (!$CURRENT_PIC_DATA['caption']) {
template_extract_block($template_display_media, 'caption');
}
}
$CURRENT_PIC_DATA['menu'] = html_picture_menu(); //((USER_ADMIN_MODE && $CURRENT_ALBUM_DATA['category'] == FIRST_USER_CAT + USER_ID) || ($CONFIG['users_can_edit_pics'] && $CURRENT_PIC_DATA['owner_id'] == USER_ID && USER_ID != 0) || GALLERY_ADMIN_MODE) ? html_picture_menu($pid) : '';
if ($CONFIG['make_intermediate'] && $condition) {
$picture_url = get_pic_url($CURRENT_PIC_DATA, 'normal');
} else {
$picture_url = get_pic_url($CURRENT_PIC_DATA, 'fullsize');
}
$image_size = compute_img_size($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight'], $CONFIG['picture_width']);
$pic_title = '';
$mime_content = cpg_get_type($CURRENT_PIC_DATA['filename']);
if ($mime_content['content'] == 'movie' || $mime_content['content'] == 'audio') {
if ($CURRENT_PIC_DATA['pwidth'] == 0 || $CURRENT_PIC_DATA['pheight'] == 0) {
$CURRENT_PIC_DATA['pwidth'] = 320; // Default width
// Set default height; if file is a movie
if ($mime_content['content'] == 'movie') {
$CURRENT_PIC_DATA['pheight'] = 240; // Default height
}
}
$ctrl_offset['mov'] = 15;
$ctrl_offset['wmv'] = 45;
$ctrl_offset['swf'] = 0;
$ctrl_offset['rm'] = 0;
$ctrl_offset_default = 45;
$ctrl_height = (isset($ctrl_offset[$mime_content['extension']]))?($ctrl_offset[$mime_content['extension']]):$ctrl_offset_default;
$image_size['whole'] = 'width="' . $CURRENT_PIC_DATA['pwidth'] . '" height="' . ($CURRENT_PIC_DATA['pheight'] + $ctrl_height) . '"';
}
if ($mime_content['content'] == 'image') {
if (isset($image_size['reduced'])) {
$winsizeX = $CURRENT_PIC_DATA['pwidth'] + 5; //the +'s are the mysterious FF and IE paddings
$winsizeY = $CURRENT_PIC_DATA['pheight'] + 3; //the +'s are the mysterious FF and IE paddings
$pic_html = "<a href=\"javascript:;\" onclick=\"MM_openBrWindow('displayimage.php?pid=$pid&fullsize=1','" . uniqid(rand()) . "','scrollbars=yes,toolbar=no,status=no,resizable=yes,width=$winsizeX,height=$winsizeY')\">";
$pic_title = $lang_display_image_php['view_fs'] . "\n==============\n" . $pic_title;
$pic_html .= "<small class=\"user_thumb_infobox\">" . $lang_display_image_php['view_fs'] . "</small><br>";
$pic_html .= "<img src=\"" . $picture_url . "\" class=\"image\" border=\"0\" alt=\"{$lang_display_image_php['view_fs']}\" title=\"{$lang_display_image_php['view_fs']}\" /><br />";
$pic_html .= "</a>\n";
} else {
$pic_html = "<img src=\"" . $picture_url . "\" {$image_size['geom']} class=\"image\" border=\"0\" alt=\"\" /><br />\n";
}
} elseif ($mime_content['content'] == 'document') {
$pic_thumb_url = get_pic_url($CURRENT_PIC_DATA, 'thumb');
$pic_html = "<a href=\"{$picture_url}\" target=\"_blank\" class=\"document_link\"><img src=\"" . $pic_thumb_url . "\" border=\"0\" class=\"image\" /></a>\n<br />";
} else {
$autostart = ($CONFIG['media_autostart']) ? ('true'):('false');
$players['WMP'] = array('id' => 'MediaPlayer',
'clsid' => 'classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" ',
'codebase' => 'codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112" ',
'mime' => 'type="application/x-mplayer2" ',
);
$players['RMP'] = array('id' => 'RealPlayer',
'clsid' => 'classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" ',
'codebase' => '',
'mime' => 'type="audio/x-pn-realaudio-plugin" '
);
$players['QT'] = array('id' => 'QuickTime',
'clsid' => 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" ',
'codebase' => 'codebase="http://www.apple.com/qtactivex/qtplugin.cab" ',
'mime' => 'type="video/x-quicktime" '
);
$players['SWF'] = array('id' => 'SWFlash',
'clsid' => ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ',
'codebase' => 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" ',
'mime' => 'type="application/x-shockwave-flash" '
);
$players['UNK'] = array('id' => 'DefaultPlayer',
'clsid' => '',
'codebase' => '',
'mime' => ''
);
$players['DM'] = array('id' => 'Dailymotion',
'clsid' => '',
'codebase' => '',
'mime' => 'dailymotion'
);
if (isset($_COOKIE[$CONFIG['cookie_name'] . '_' . $mime_content['extension'] . 'player'])) {
$user_player = $_COOKIE[$CONFIG['cookie_name'] . '_' . $mime_content['extension'] . 'player'];
} else {
$user_player = $mime_content['player'];
}
// There isn't a player selected or user wants client-side control
if (!$user_player) {
$user_player = 'UNK';
}
$player = $players[$user_player];
if ($player['mime'] == 'dailymotion')
{
$code_cle = mysql_real_escape_string(htmlspecialchars(file_get_contents($picture_url)));
$pic_html = "<object " . $image_size['whole'] . "><param name=\"movie\" value=\"http://www.dailymotion.com/swf/".$code_cle."&related=1\">
</param><param name=\"allowfullscreen\" value=\"true\"></param><param name=\"allowScriptAccess\" value=\"always\"></param>
<embed src=\"http://www.dailymotion.com/swf/".$code_cle."&related=1\" type=\"application/x-shockwave-flash\" " . $image_size['whole'] . " allowfullscreen=\"true\" allowScriptAccess=\"always\">
</embed></object>";
}
else
{
$pic_html = '<object id="' . $player['id'] . '" ' . $player['clsid'] . $player['codebase'] . $player['mime'] . $image_size['whole'] . '>';
$pic_html .= "<param name=\"autostart\" value=\"$autostart\" /><param name=\"src\" value=\"" . $picture_url . "\" />";
$pic_html .= '<embed ' . $image_size['whole'] . ' src="' . $picture_url . '" autostart="' . $autostart . '" ' . $player['mime'] . '></embed>';
$pic_html .= "</object><br />\n";
}
}
$CURRENT_PIC_DATA['html'] = $pic_html;
$CURRENT_PIC_DATA['header'] = '';
$CURRENT_PIC_DATA['footer'] = '';
$CURRENT_PIC_DATA = CPGPluginAPI::filter('file_data', $CURRENT_PIC_DATA);
$params = array('{CELL_HEIGHT}' => '100',
'{IMAGE}' => $CURRENT_PIC_DATA['header'] . $CURRENT_PIC_DATA['html'] . $CURRENT_PIC_DATA['footer'],
'{ADMIN_MENU}' => $CURRENT_PIC_DATA['menu'],
'{TITLE}' => bb_decode($CURRENT_PIC_DATA['title']),
'{CAPTION}' => bb_decode($CURRENT_PIC_DATA['caption']),
);
return template_eval($template_display_media, $params);
}
Ensuite, vous devez ajouter une entrée dans la table pictures de votre base de données :
extension : cequevousvoulez
mime : dailymotion
content : movie
player : DM
Une fois ceci fait, pour envoyer une vidéo, vous devez créer un fichier :
récupérez la clé de la vidéo dailymotion à partir du code qui vous est proposé pour les lecteurs exportables. Exemple : k6we110Kc1pGDcNETT
Créez un fichier avec le bloc notes, collez y votre clé, et enregistrez le tout sous l'extension cequevousvoulez. Exemple : k6we110Kc1pGDcNETT.cequevousvoulez
L'extension doit être de 3 caractères et non utilisée par une extension déjà existante sur Coppermine.
N'oubliez pas de sélectionner dans la fenêtre d'enregistrement Type = Tous les fichiers.
Il ne vous reste plus qu'à envoyer ce fichier comme si vous envoyez une image.
Il vous sera donné la possibilité de donner une largeur et hauteur à la vidéo : récupérez les à partir du code du lecteur exportable de Dailymotion. Si vous ne remplissez pas ces champs, alors votre vidéo aura la taille standard d'une vidéo sous Coppermine : 320 x 240.
Mais il reste un truc qui me tracasse : les vignettes des vidéos sont la vignette standard d'une vidéo sous Coppermine. Pour personnaliser la vignette, récupérez une miniature de votre vidéo sur Dailymotion, et mettez la dans le dossier où a été envoyé le fichier précédent : albums

userpics

numéro, et sous la forme thumb_clé ; exemple : thumb_k6we110Kc1pGDcNETT. Et c'est là que ça se complique : il faut savoir où a été envoyé le fichier précédent ! Si c'est vous qui avez envoyé le fichier, pas de problème, vous n'avez qu'à connaitre votre numéro d'userpics, mais si c'est un autre utilisateur ............... Il faut connaitre son numéro !!!!!!!!!
Il faudrait donc corriger ce problèm de vignette, mais je ne vois pas de solutions : il n'y a aucun rapport dans les clés des miniatures Dailymotion et leur vidéos. On pourrait remplacer les vignettes par un mini-player de 160 x 160px par exemple, mais il faudrait dans ce cas que en plus de la vignette qui peut être "cliquable", il faudrait aussi que le titre en dessous soit cliquable, car on ne peut pas cliquer sur un player : on serait redirigé sur le site de Dailymotion !
Voilà, si des âmes courageuses se sentent l'envie de m'aider :

-------------------
En ce qui concerne les blocs Coppermine, utilisant seulement le bloc Gallery-Last_pictures_thumb, je l'ai également modifié, et je vous fournit le code :
<?php
/**
* pragmaMx Content Management System
* Copyright (c) 2005-2007 pragmaMx Dev Team - http://pragmaMx.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3
* as published by the Free Software Foundation.
*
* $Revision: 1.3 $
* $Author: tora60 $
* $Date: 2008/04/16 10:50:00 $
*
* this file based on:
* Coppermine Photo Gallery
* Copyright (c) 2003-2005 Coppermine Dev Team
* v1.1 originally written by Gregory DEMAR
* required version: >= 1.4.18
*/
defined('mxMainFileLoaded') or die('access denied');
// //// Beginn Blockkonfiguration //////////////////////////
// der Name/Pfad des Gallerymoduls
$cpg_name = 'Gallery';
// Anzahl der Thumbnails
$limit = 3;
// Länge des Bildtitels unter dem Bild
$title_length = 17;
// Liste der Alben, aus denen keine Bilder angezeigt werden sollen. Die ID's durch Komma trennen.
$exluded_albums = '';
// //// Ende Blockkonfiguration ////////////////////////////
if (@file_exists('modules/' . $cpg_name . '/blocks.inc.php')) {
include('modules/' . $cpg_name . '/blocks.inc.php');
} else {
if (MX_IS_ADMIN) {
$content = 'The module "' . $cpg_name . '" doesn\'t exist or is not correctly installed. Please install this module or change the Variable $cpg_name in file blocks/' . basename(__file__) . '.';
}
return;
}
// Abfragebedingung für versteckte Alben erstellen
$exluded_albums = preg_split('#\s*,\s*#', trim($exluded_albums));
foreach($exluded_albums as $ex) {
$excluded[] = intval($ex);
}
$exluded_albums = '';
if (isset($excluded)) {
$exluded_albums = ' AND p.aid NOT IN (' . implode(',', $excluded) . ')';
}
$result = sql_query("
SELECT p.pid, p.url_prefix, p.filepath, p.filename, p.aid, p.title
FROM $CONFIG[TABLE_PICTURES] AS p INNER JOIN $CONFIG[TABLE_ALBUMS] AS a ON (p.aid = a.aid)
WHERE p.approved='YES' AND " . $vis_groups . " " . $exluded_albums . "
ORDER BY p.pid DESC
LIMIT $limit");
$pic = 0;
$output = '';
while ($row = sql_fetch_array($result)) {
$point = explode(".", $row['filename']);
foreach ($point as $element)
{
$extension = $element;
}
$row = mxCpgBlocksPrepareData($row);
if ($extension == 'extensionquevousvoulez')
{
$output .= "<p align=\"center\">
<object width=\"160\" height=\"160\"><param name=\"movie\" value=\"http://www.dailymotion.com/swf/" . $point[0] . "&related=1\"></param>
<param name=\"allowfullscreen\" value=\"true\"></param><param name=\"allowScriptAccess\" value=\"always\"></param>
<embed src=\"http://www.dailymotion.com/swf/" . $point[0] . "&related=1\" type=\"application/x-shockwave-flash\" width=\"160\" height=\"160\" allowfullscreen=\"true\" allowScriptAccess=\"always\">
</embed></object>
<a href=\"modules.php?name=" . $cpg_name . "&act=displayimage&album=lastup&cat=0&pos=" . $pic . "\">
<br />" . mxCutString($row['title'], $title_length) . "
</a></p>";
$pic++;
}
else
{
$output .= '<p align="center"><a href="modules.php?name=' . $cpg_name . '&act=displayimage&album=lastup&cat=0&pos=' . $pic . '"><img src="' . get_pic_url($row, 'thumb') . '" border="0" alt="' . $row['title'] . '" title="' . $row['title'] . '"/><br />' . mxCutString($row['title'], $title_length) . '</a></p>';
$pic++;
}
}
if ($output) {
$content = $output . '<p align="center"><a href="modules.php?name=' . $cpg_name . '">' . $CONFIG['gallery_name'] . '</a></p>';
}
?>
Vous devez modifier le passage "extensionquevousvoulez" par l'extension choisie pour vos fichiers contenant la clé de la vidéo Dailymotion.
Les vignettes pour les vidéos sont en fait des mini players. On peut directement voir une vidéo sur le portail de son site par exemple

-----
Voili voilou
