Ciao,
ho trovato questa mod/hack sul forum di coppermine per inserire i collegamenti ai propri file su youtube.
pensavo di esserci riuscito ma invece non capisco alcuni punti.
qualcuno è cosi gentile da tradurre o fare un help su come si fa questo mod??
ecco il link in questione
http://forum.coppermine-gallery.net/index.php?topic=37962.0 (http://forum.coppermine-gallery.net/index.php?topic=37962.0)
grazie
elvis
Quote from: Nibbler on October 31, 2006, 03:42:27 AM
Questa MOD ti permetterà di incorporare i video di Youtube nella tua galleria Coppermine. Una nuova sezione apparirà nella pagine di upload dove inserirai l'URL del video. Coppermine userà miniature, titolo, didascalia e parole chiave prendendole da Youtube durante la fase di upload del video.
Demo: http://gelipo.com/members/Nibbler/pictures/61993
Per poter utilizzare questa MOD sono necesserie alcune cose:
- Youtube dev API ID (http://www.youtube.com/dev)
- PHP URL fopen abilitto
- devi assicurarti che gli URI funzionino correttamente, giusti permessi, ect.
File che necessitano una modifica: upload.php, theme.php
upload.php, aggiungi questo codice all'inizio del file appena dopo i commenti (puoi saltare questo punto se possiedi PHP5)
if (!function_exists('file_put_contents')) {
function file_put_contents($n,$d) {
$f=@fopen($n,"w");
if (!$f) {
return false;
} else {
fwrite($f,$d);
fclose($f);
return true;
}
}
}
Quindi trova
// Add the control device.
$form_array[] = array('control', 'phase_1', 4);
Prima Aggiungi
// Youtube
if (USER_ID) {
$form_array[] = 'Youtube uploads';
$form_array[] = array('', 'YT_array[]', 0, 256, 3);
$form_array[] = 'Note: YouTube videos must be added in the form http://www.youtube.com/watch?v=xxxxxxxxxxx';
}
Cerca
//Now we must prepare the inital form for adding the pictures to the database, and we must move them to their final location.
Prima aggiungi
// youtube
$YT_array = count($_POST['YT_array']);
if ($YT_array) {
$YT_failure_array = array();
for ($counter = 0; $counter < $YT_array; $counter++) {
// Create the failure ordinal for ordering the report of failed uploads.
$failure_cardinal = $counter + 1;
$failure_ordinal = ''.$failure_cardinal.'. ';
$YT_URI = $_POST['YT_array'][$counter];
if (!$YT_URI) continue;
if (preg_match('/youtube\.com\/watch\?v=(.*)/', $YT_URI, $matches)){
$vid = $matches[1];
$xurl = "http://www.youtube.com/api2_rest?method=youtube.videos.get_details&dev_id=xxxxxxxxxxx&video_id=$vid";
$xdata = file_get_contents($xurl);
file_put_contents($CONFIG['fullpath'] . "edit/yt_$vid.xml", $xdata);
// todo: parse the xml properly
if (preg_match('/<thumbnail_url>(.*)<\/thumbnail_url>/', $xdata, $xmatches)){
$thumbnail = $xmatches[1];
$rh = fopen($thumbnail, 'rb');
$wh = fopen($CONFIG['fullpath'] . "edit/yt_$vid.jpg", 'wb');
while (!feof($rh)) fwrite($wh, fread($rh, 1024));
fclose($rh);
fclose($wh);
$escrow_array[] = array('actual_name'=>"youtube_$vid.jpg", 'temporary_name'=> "yt_$vid.jpg");
} else {
$YT_failure_array[] = array( 'failure_ordinal'=>$failure_ordinal, 'URI_name'=> $YT_URI, 'error_code'=> $xdata);
}
} else {
$YT_failure_array[] = array( 'failure_ordinal'=>$failure_ordinal, 'URI_name'=> $YT_URI, 'error_code'=> 'Failed to find video');
}
}
}
Nel blocco di codice precedente, devi cambiare xxxxxxxxxxx con il tuo youtube id.
Cerca
$zip_error_count = count($zip_failure_array);
Dopo aggiungi
$YT_error_count = count($YT_failure_array);
Cerca
// Create error report if we have errors.
if (($file_error_count + $URI_error_count + $zip_error_count) > 0) {
Cambia in
// Create error report if we have errors.
if (($file_error_count + $URI_error_count + $zip_error_count + $YT_error_count) > 0) {
Cerca
// Close the error report table.
endtable()
Prima aggiungi
// Look for YT upload errors.
if ($YT_error_count > 0) {
// There are URI upload errors. Generate the section label.
form_label("YT errors:");
echo "<tr><td>URI</td><td>Error message</td></tr>";
// Cycle through the file upload errors.
for ($i=0; $i < $YT_error_count; $i++) {
// Print the error ordinal, file name, and error code.
echo "<tr><td>{$YT_failure_array[$i]['failure_ordinal']} {$YT_failure_array[$i]['URI_name']}</td><td>{$YT_failure_array[$i]['error_code']}</td></tr>";
}
}
Cerca
$form_array = array(
sprintf($lang_upload_php['max_fsize'], $CONFIG['max_upl_size']),
array($lang_upload_php['album'], 'album', 2),
array('MAX_FILE_SIZE', $max_file_size, 4),
array($lang_upload_php['picture'], 'userpicture', 1, 1),
array($lang_upload_php['pic_title'], 'title', 0, 255, 1),
array($captionLabel, 'caption', 3, $CONFIG['max_img_desc_length']),
array($lang_upload_php['keywords'], 'keywords', 0, 255, 1),
array('event', 'picture', 4)
);
Cambia in
if (preg_match('/^youtube_(.*)\.jpg$/', $file_set[0], $ytmatches)){
$vid = $ytmatches[1];
$xdata = file_get_contents($CONFIG['fullpath'] . "edit/yt_$vid.xml");
// todo: parse the xml properly
preg_match('/<description>(.*)<\/description>/', $xdata, $xmatches);
$description = substr($xmatches[1], 0, $CONFIG['max_img_desc_length']);
// todo: parse the xml properly
preg_match('/<tags>(.*)<\/tags>/', $xdata, $xmatches);
$keywords = $xmatches[1];
// todo: parse the xml properly
preg_match('/<title>(.*)<\/title>/', $xdata, $xmatches);
$title = substr($xmatches[1], 0, 255);
$form_array = array(
array($lang_upload_php['album'], 'album', 2),
array($lang_upload_php['pic_title'], 'title', 0, 255, 1, $title),
array($captionLabel, 'caption', 3, $CONFIG['max_img_desc_length'], $description),
array($lang_upload_php['keywords'], 'keywords', 0, 255, 1, $keywords),
array('control', 'phase_2', 4),
array('unique_ID', $_POST['unique_ID'], 4),
);
} else {
$form_array = array(
sprintf($lang_upload_php['max_fsize'], $CONFIG['max_upl_size']),
array($lang_upload_php['album'], 'album', 2),
array('MAX_FILE_SIZE', $max_file_size, 4),
array($lang_upload_php['picture'], 'userpicture', 1, 1),
array($lang_upload_php['pic_title'], 'title', 0, 255, 1),
array($captionLabel, 'caption', 3, $CONFIG['max_img_desc_length']),
array($lang_upload_php['keywords'], 'keywords', 0, 255, 1),
array('event', 'picture', 4)
);
}
theme.php (Se non trovi questo pezzo di codice, copia la funzione theme_html_picture() dal theme sample e applica le modifiche seguenti)
Find
if (isset($image_size['reduced'])) {
Change to
if (preg_match('/^youtube_(.*)\.jpg$/', $CURRENT_PIC_DATA['filename'], $ytmatches)){
$vid = $ytmatches[1];
$pic_html = '<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/'. $vid . '"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/'. $vid . '" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><br />';
} elseif (isset($image_size['reduced'])) {
Se ottieni questo errore durante l'upload:
Quote
YouTube internal error. Please report this issue -- including the exact method of producing this error -- to YouTube.
Probabilmente il tuo dev_id è errato.
Ecco, ora dovrebbe essere più chiaro no? ;)
Ottimo twist ;-)
Tutorial aggiunto alle FAQ in italiano (http://forum.coppermine-gallery.net/index.php?topic=43605.msg207301#msg207301)
Scusa ma il file theme.php lo trovo sotto la cartella themes?
devo modificare tutti i theme.php se lascio la possibilità di cambiarlo vero??
elvis
Devi modificare il file theme.php del tuo tema in uso; devi modificare il file del tema che usi o che intendi utilizzare
ahaha più che altro scusate l'ortografia e la sintassi. domani correggo ;)
L'ho fatta di fretta senza rileggere.
notte :)
scusate ma bisogna copiare solo questo?
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 (preg_match('/^youtube_(.*)\.jpg$/', $CURRENT_PIC_DATA['filename'], $ytmatches)){
$vid = $ytmatches[1];
$pic_html = '<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/'. $vid . '"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/'. $vid . '" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><br /><table align=\"center\">';
} elseif (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 .= "<img src=\"" . $picture_url . "\" class=\"image\" border=\"0\" alt=\"{$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:6BF52A52-394A-11d3-B153-00C04F79FAA6" ',
'codebase' => 'codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" ',
'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' => ''
);
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];
$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);
}
RIUSCITO!!!
funziona grazie
domanda ma per quelli di google video come si fa??
grazie
elvis
Sinceramente non ne ho idea, ma molto probabilmente no.
Prova a vedere nei gruppi gestiti da google se ne parlano
Quote from: elvisq on November 01, 2007, 07:58:57 AM
RIUSCITO!!!
funziona grazie
domanda ma per quelli di google video come si fa??
grazie
elvis
UNA DOMANDA PER THREADPerbacco, un po' di rispetto. C'è scritto nella policy che hai confermato all'iscrizione, c'è scritto nelle regole del forum in bell'evidenza in questa sezione, te l'ho ripetuto già in due altre occasioni.
Usa la funziona RICERCA, scoprirai che non, al momento, non esiste nulla in merito.
Non ho capito una cosa:
QuotePer poter utilizzare questa MOD sono necesserie alcune cose:
* Youtube dev API ID (http://www.youtube.com/dev)
Con questo che devo fare?
E poi quando te hai scritto:
QuoteNel blocco di codice precedente, devi cambiare xxxxxxxxxxx con il tuo youtube id.
al posto delle xxxx devo mettere l'id con cui mi loggo su youtube?
GRazie per la disponibilità :)
Riuscito: allora direi di integrare nella guida questo link diretto per crearsi il dev_id da mettere al posto delle xxxx http://www.youtube.com/my_profile_dev (http://www.youtube.com/my_profile_dev)
ciao a tutti, ho eseguito alla lettera il tutto e sembra funzionare, solo che alla fine della procedura di upload mi esce
QuoteIl file precedente non può essere inserito.
Tutti i files inseriti con successo.
e non carica niente >:(
che puo' essere??
grazie
ho risolto il problema di cui sopra,
avevo fatto un errore nella modifica del file upload.php
però adesso, mi carica il video ma si apre la pagina come se fosse una immagine e non si vede il player di you tube...
la gallery è http://www.djghost.it/motogallery/
accesso
user: mimmo
psw: mimmo
il video di test è in questa categoria
http://www.djghost.it/motogallery/index.php?cat=36
qualcuno mi puo' aiutare?? :-[
ragazzi, ho risolto, magari puo' servire a qualcuno, praticamente...
per provare caricavo sempre lo stesso video e lo cancellavo dall'area amministrazione, ma nella cartella
albums/userpics/
rimaneva sempre l'anteprima creata e quindi avendo sempre lo stesso nome aggiungeva un nomero alla fine per distinguerla dalle altre...
di conseguenza questo cambiare il nome all'anteprima lo cambiava anche al link che andava a recuperare il video quindi non lo caricava...
spero di essere stato chiaro.
saluti :D
Salve ho un piccolo problema con il discorso del dev_id. io sono iscritto già da tempo ma non ho mai visto sto dev_id. ho provato ad inserire il nome utente, l'indirizzo email, mi sono registrato nuovamente con una nuova email, ma niente da fare, non mi viene visualizzato nessun dev_id. dove lo devo andare a prendere?
come scritto nel tutorial, devi farti fornire un dev_id da questo indirizzo:
http://www.youtube.com/dev
ok recentemente hanno cambiato, dovresti poterlo ottenere qua invece:
http://code.google.com/apis/youtube/dashboard/
si anche con quello ho provato ma niente da fare. non riesco a capire cosa possa essere successo.
Ma qualcuno di voi ha provato ad usare quel dev? è talmente lungo...io non riesco a capire dove sbaglio i file sono stati modificati come da esempio, poi ho cambiato tema e rifatto le modifiche, inserito nel file upload.php il dev che ho ottenuto ma mi da sempre lo stesso errore:
YT errors:
URI Error message
1. http://www.youtube.com/watch?v=yVA-xTBeHyM
Io sto usando attualmente il tema classico ed ho notato che all'interno del file theme.php non c'è alcuna parte di codice quindi ho copiato solo quella che mi interessava. magari ho sbagliato proprio quella procedura, dimenticando qualceh pezzo di codice. qualcuno che sappia aiutarmi?
anche io stesso problema:
Home :: Galleria personale :: Modalità utente :: Carica file :: Logout [zippoadmin]
Torna al sito :: Lista album :: Ultimi arrivi :: Ultimi commenti :: File più visti :: File più votati :: Preferiti :: Cerca
Configurazione Categorie Album Gruppi Utenti Estrometti utenti Mostra commenti Ordina immagini Aggiunta cumulativa Strumenti di amministrazione Profilo Documentazione
Informazione
0 caricamenti sono andati a buon fine.
CONTINUA
Errore
I seguenti caricamenti hanno creato errori:
YT errors:
URI Error message
1. http://www.youtube.com/watch?v=ha_E0UfTeZk