Hola,
Acabo de hacer esto, y lo pongo aquí por si le interesa a alguien. Se trata de un MOD para que los usuarios puedan agregar vídeos de youTube (aunque puede servir para otras webs de vídeos siguiendo los mismos pasos con pocos cambios). Hay un MOD parecido (
aquí), pero no es igual.
Bueno, ahí vamos, perdón si no me explico bien...
0.-
HACER COPIAS DE SEGURIDAD DE TODO LO QUE SE MODIFIQUE1.- Creamos un nuevo campo en la tabla IMAGES: image_youtube_url, VARCHAR, 255, not_null.
2.- Creamos el mismo campo en la tabla IMAGES_TEMP.
Para los pasos 1 y 2 se puede utilizar el instalador del otro MOD (¡ojo, yo no lo he probado por este método!), pero con el código modificado así:
<?php
error_reporting(E_ALL);
define('ROOT_PATH', './');
include(ROOT_PATH.'config.php');
include(ROOT_PATH.'includes/constants.php');
include(ROOT_PATH.'includes/db_mysql.php');
$site_db = new Db($db_host, $db_user, $db_password, $db_name);
$sql = 'ALTER TABLE `'.IMAGES_TABLE.'` ADD `image_youtube_url` VARCHAR( 255 ) not_null';
$sql2 = 'ALTER TABLE `'.IMAGES_TEMP_TABLE.'` ADD `image_youtube_url` VARCHAR( 255 ) not_null';
$site_db->query($sql);
$site_db->query($sql2);
echo "<br /><br /><br /><center><b>ADDED FIELD <font color=\"#FF9900\">google_id y youtube_id </font> TO TABLE: <font color=\"#FF9900\">".IMAGES_TABLE." </font>OK</b><BR>YOU CAN DELETE <b>INSTALL_GOOGLE_YOUTUBE.PHP</b> NOW</center>";
echo "<br /><br /><center><b>SE A�ADI� <font color=\"#FF9900\">google_id y youtube_id </font> A LA TABLA: <font color=\"#FF9900\">".IMAGES_TABLE." </font>CORRECTAMENTE :)</b><BR>PUEDES BORRAR <b>INSTALL_INSTALL_GOOGLE_YOUTUBE.PHP</b> AHORA</center>";
?>
Copiar el código a un nuevo archivo, por ejemplo mod_youtube.php y ponerlo en el directorio raiz y abrir el archivo en el navegador (tusitio.com/mod_youtube.php).
3.- En includes/db_field_definitions.php añadimos esto al final (¡pero siempre antes del cierre de php!):
$additional_image_fields['image_youtube_url'] = array($lang['image_youtube_url'], "text", 0);
4.- En el archivo de idioma (lang/tu_idioma/main.php) añadimos esto (donde se quiera):
$lang['image_youtube_url'] = "URL del vídeo en youTube";
5.- Para que los usuarios puedan añadir el vídeo, hay que modificar el formulario así que abrimos templates/tu_template/member_uploadform.html; añadimos esta fila donde mejor nos venga:
<tr>
<td class="row2" valign="top">
<b>{lang_image_youtube_url}</b>
</td><td class="row2">
<input type="text" name="image_youtube_url" size="30" value="{image_youtube_url}" class="input" />
</td>
</tr>
Según donde lo pongas, tendrás que cambiar lo de row2 por row1 o el estilo que quieras para que los colores de las filas queden bien.
6.- Ahora abrimos details.php (está en el directorio raiz) y buscamos esto:
//-----------------------------------------------------
//--- Show Image --------------------------------------
//-----------------------------------------------------
Justo encima (es decir, antes), ponemos esto:
//-----------------------------------------------------
if ($image_row['image_youtube_url']) {
$youtube = $image_row['image_youtube_url'];
if (preg_match("/http:\/\/www.youtube.com\/watch\?v=([0-9a-zA-Z\-_]*)(.*)/i", $youtube, $matches) || preg_match("/http:\/\/youtube.com\/watch\?v=([0-9a-zA-Z\-_]*)(.*)/i", $youtube, $matches))
{
$youtube = '<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/'.$matches[1].'"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/'.$matches[1].'" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>';
}
} else {
$youtube = 'No hay vídeo...';
}
$site_template->register_vars("youtube", $youtube);
//-----------------------------------------------------
7.- Ya está. Ahora en details.html (en /templates/tu_template/) podemos poner esto donde queramos:
{image_youtube_url}
Y esto otro:
{youtube}
8.- EXPLICACION
La diferencia de este MOD y el otro, es que con este método los usuarios pueden añadir los vídeos ellos mismos y no tienen que poner el identificativo del vídeo, lo único que deben hacer es copiar la url del vídeo: en youTube, junto a los vídeos hay dos campos con códigos, uno es el de la URL y el otro es el código para poner el vídeo en otras webs (Embed); lo que el usuario debe hacer es copiar esa URL y cuando suba la imagen la añade al campo
URL del vídeo en youTube de nuestro formulario y ya está.
Ahora supongamos que la URL es esta:
http://www.youtube.com/watch?v=U7FxB3ELsS4
Con {image_youtube_url} en details.html se mostrará la URL al vídeo, pero ya formateada, es decir, con el código HTML completo, así:
<a href="http://www.youtube.com/watch?v=U7FxB3ELsS4" target="_blank" rel="nofollow">http://www.youtube.com/watch?v=U7FxB3ELsS4</a>
Con {youtube} en details.html se mostrará el reproductor con el vídeo (con el código que pusimos en details.php se modifica la URL automaticamente para que el reproductor funcione, fijaos que es distinta):
<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/U7FxB3ELsS4"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/U7FxB3ELsS4" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>
Bueno, pués eso es todo, si alguien tiene dudas que pregunte.
El código puede modificarse y utilizarse también para que los usuarios puedan poner vídeos de youTube en los comentarios (con BBCode), pero esa es otra historia...
Por cierto, que con este método se supone que se los usuarios deben subir una imagen, yo tengo 4images modificado para que una categoría, en la que se suben los vídeos, no sea necesario subir una imagen, pero es bastante más complicado.
Y ya que estamos, alguien me hecha una mano con
esta duda...
Gracias y un saludo.