Forum pragmaMx France 11 Février 2012 à 15:39:23 *
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.


Connexion avec identifiant et mot de passe
 
Accueil Aide Rechercher
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Dailymotion & Coppermine  (Lu 7030 fois)
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« le: 03 Février 2009 à 20:04:51 »

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 :

Code:
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&amp;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 fleche userpics fleche 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  :Sourire

-------------------

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 :

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&#228;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&#252;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 "&amp;act=displayimage&amp;album=lastup&amp;cat=0&amp;pos=" $pic "\">
<br />" 
mxCutString($row['title'], $title_length) . "
</a></p>"
;
$pic++;
}
else
{
$output .= '<p align="center"><a href="modules.php?name=' $cpg_name '&amp;act=displayimage&amp;album=lastup&amp;cat=0&amp;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 Sourire

-----

Voili voilou

 respect
« Dernière édition: 01 Juin 2009 à 15:29:00 par HollowMac » Journalisée

Youkoulélé !
kryslug
Membre Junior Mx
**
Hors ligne Hors ligne

Messages: 47



« Répondre #1 le: 26 Mai 2009 à 23:13:59 »

salut sympa cette modif!
Est ce que ca ne rend pas plus vulnerable ton site via coopermine? (failles de securités)
as tu un lien de ton site pour voir ce que ca donne?
thinks Clin d'oeil
Journalisée

[AR83] -- Club Aquarium Recifal 83 --
Aquariophilie d'eau de mer région PACA Sud France
www.AquariumRecifal.fr
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #2 le: 27 Mai 2009 à 19:14:18 »

salut sympa cette modif!
Merci  Clin d'oeil

Voici un aperçu : http://www.fourmis-passion.fr/modules.php?name=Gallery&act=displayimage&album=random&cat=2&pos=rnd65

Quant à savoir si ça rend plus vulnérable mon site, je ne sais pas bof
Journalisée

Youkoulélé !
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #3 le: 01 Juin 2009 à 15:27:17 »

En fait niveau sécurité, pour qu'il n'y ait aucun problème, au moment de la récupération du code clé, au lieu de mettre
Code:
$code_cle = file_get_contents($picture_url);
il faut mettre
Code:
$code_cle = mysql_real_escape_string(htmlspecialchars(file_get_contents($picture_url)));

 Clin d'oeil
Journalisée

Youkoulélé !
Pages: [1]   Haut de page
Imprimer
Forum pragmaMx France  |  Modules spécifiques & Blocs  |  Mx-Coppermine (Modérateurs: Diabolo, kroms, phi56360)  |  Fil de discussion: Dailymotion & Coppermine
 
Aller à:  

Powered by SMF 1.1.15 | SMF © 2006-2009, Simple Machines

Plus