Dailymotion & coppermine Dailymotion & coppermine
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Dailymotion & coppermine

Started by TheKind, April 09, 2006, 08:11:09 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

TheKind

Bonjour,
je me posais une petite question:
est-il possible d'afficher des vidéos extérieures? par éxemple dailymotion permet de mettre des vidéos du site sur blogger, est-il possible de mettre ces vidéos dans coppermine?

Sa m'arrangerait beaucoup étant donné que je n'ai pas beaucoup d'espace sur mon compte hébergement.


TheKind

Oui je l'avais vu mais ça colle pas éxectement (chui chiant hein). Mais c'est vrai que si l'ont pouvait coller un code html dans la page ça poserati des pbs au niveau sécurité, je vais donc me débrouiller avec ça. Merci ! ++

TheKind

#3
Bon, j'ai enfin réussi à force de bricolage à mettre mes vidéos de dailymotion sur ma gallerie (permet de mettre les vidéos à l'extérieur).

Voilà un petit exemple: http://users.rockweb.org/startpage/anticpe/displayimage.php?album=8&pos=0

Bon, j'ai dû user quelques ruses, le système de blog de Dailymotion utilisant un code pour la vidéo et un code (clé) pour le blog. J'ai donc tout d'abord ouvert la base mysql et dans la table filetypes j'ai ajouté :

extension    mime    content    player    
[extention]   dailymotion   movie   DM

(J'ai caché mon extension par sécurité, le système ouvrant une petite faille, qui pourrait être facilement comblée avec quelques lignes de code, si quelqu'un veut le faire...)

Ensuite, j'ai modifié include/themes.inc.ini, la fonction theme_html_picture() (vers la fin)

        $players['UNK'] = array('id' => 'DefaultPlayer',
                                'clsid' => '',
                                'codebase' => '',
                                'mime' => ''
                               );
        $players['DM'] = array('id' => 'DefaultPlayer',
                                '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=explode("|", file_get_contents($picture_url));
$pic_html = "<div style=\"margin-bottom:25px;margin-top:25px;\"><div style=\"width:320px;text-align:center;\"><style type=\"text/css\"><!-- #z".$code_cle[1]."{width:320px;height:256px;border:none;margin:0px;} --></style><iframe src=\"http://www.dailymotion.com/blog/video/".$code_cle[0]."?key=".$code_cle[1]."\" style=\"width:320px;height:256px;border:none;margin:0px;\" width=\"320\" height=\"256\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" id=\"".$code_cle[1]."\">Dailymotion blogged video</iframe><br /><span style=\"margin-top:0px;\"><a href=\"http://www.dailymotion.com/video/".$code_cle[0]."\">Aller sur Dailymotion</a></span></div></div>";
}
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);
}
}  //{THEMES}


Voilà, ensuite il faut créer un fichier avec l'extension que vous avez choisi et mettre dedans:
codevidéo|clé

Exemple:
115641|a026e6vj8zr4ab2ecd4s10299j7lyb94r6izst3e

Ca marche super bien, celà permet de mettre des vidéos sur les serveurs de dailymotion pour baisser la charge sur votre propre serveur!

mij

STP pourrais juste développer la dernière partie de ton explication (en fait en clair comment fait on pour mettre en ligne la video sur coppermine) j'ai réussi à modifier la bdd et modifié le fichier include/themes.inc.ini..
merci par avance

mij

finalement j'avance, il me faudrait juste en fait la fameuse extension que je dois indiquer dans la bdd..merci par avance

StunnaBBZ

not sure if this is the correct forum to request this, but I'm looking for a translation of this mod from French to English:

http://forum.coppermine-gallery.net/index.php?topic=30214.0

what it does is allow integration of DailyMotion videos to your site.
I will be using videos that I upload to DailyMotion.

Thank You.


Joachim Müller

There has been a request on the English-spoken part of the forum to have this mod translated to English - I merged it with this thread.

mij

De toute façon , le script ne fonctionne pas..si quelqu'un pouvait y jeter un coup d'oeil ça serait super!

pbasmo

Bonsoir à tous,

Tel un archéologue, je redonne une seconde vie aux vieilles archives du forum  ;D....
Le couple Dailymotion / Coppermine fonctionne très bien grace aux travaux de TheKind.
Pour l'avoir utilisé cet après-midi je voulais apporter quelques précisions.

1) Les modifs dont parle TheKind doivent être faites dans le fichier theme.php du thème graphique et non pas dans le script original include/theme.inc.php. Il faut faire un banal copier/coller de la fonction dans le fichier theme.php du thème utilisé.

2) En visualisant le modèle de lien que propose Dailymotion, je ne trouve plus qu'un seul code (peut-être du fait que je n'ai pas de blog chez DailyMotion) . Le fichier (celui qui porte la mystérieuse extension  :) ) ne contient que ce code la et dans ce style : 45JuFr2jm| (45JuFr2jm est le code , le dernier caractère est un | ,pipe, obtenu par ALTGR et 6)
Cette mystérieuse extension que ne veut pas donner TheKind, en réalité chacun est libre de la créer à sa convenance en associant lettres et chiffres pour former 3 caractères (cela en donne des combinaisons ! ), le principal est de ne pas tomber sur une combinaison déjà connue.

3) Toujours à partir du modèle de lien de Dailymotion, j'ai changé la ligne qui construit ledit lien dans Coppermine :

$pic_html = "<object width=\"400\" height=\"316\"><param name=\"movie\" value=\"http://www.dailymotion.com/swf/".$code_cle[0]."\"></param><param name=\"allowfullscreen\" value=\"true\"></param><embed src=\"http://www.dailymotion.com/swf/".$code_cle[0]."\" type=\"application/x-shockwave-flash\" width=\"400\" height=\"316\" allowfullscreen=\"true\"></embed></object>";


le code ayant été mis en variable.

Et la vidéo fut !

Encore merci à TheKind pour ses "bidouilles" qui se sont révélées parfaites.

HollowMac

Bonjour,

Déterrage de topic, mais c'est pour la bonne cause  ;D

J'ai ajouté ces bouts de code dans theme.php de mon theme, mais ça ne marche pas : lorsque je veux visualiser la dite vidéo, il faut que j'installe un plug-in (plain/text) introuvable. De plus, la miniature de la vidéo ne correspond pas à celle de la vidéo mais de la miniature "vidéo" de coppermine.

J'ai modifié le code de pbasmo car depuis, le code html fourni par dailymotion a changé. De plus, j'ai remarqué que ya pas le bon nombre de parenthèses dans le code fourni par TheKind.

Si quelqu'un arrive à afficher des vidéos Dailymotion dans sa galerie, je suis preneur  ;)

Cordialement,
Merci.

HollowMac

Je m'auto réponds  ;D

Pour ceux que ça intéresse, j'ai trouvé 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&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 = 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
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  ::)