SimplePortal

Support => International Support => Spanish => Topic started by: DaRKeN on November 22, 2010, 12:40:30 PM

Title: Ayuda con bloque de la galería
Post by: DaRKeN on November 22, 2010, 12:40:30 PM
Hola, que tal. A ver si me podéis ayudar con esto.

Me gustaría que me ayudarais con un par de bloques parecidos al que viene con SP por defecto, que puede mostrar lo último añadido, o al azar de mi galería... pues me gustaría crear uno que muestre lo último añadido pero de diferentes categorías de la galería. No se si me explico.

En definitiva quiero un bloque para X categoría de la galería de Aeva Media, mostrando lo último que se añadió y que solo muestre lo de esa categoría. Y así otra más con otra categoría y que solo muestre de esa categoría especificada.

Espero que se me entienda y sobre todo que se pueda hacer jeje, gracias.

Mi página: www.darken.es (En el index muestro arriba y en el centro, el bloque de galería que muestra lo último añadido. Pero me sale de todas las categorías y no solo de una galería en concreto.)
Title: Re: Ayuda con bloque de la galería
Post by: 130860 on November 22, 2010, 01:20:01 PM
por categoria te refieres a un album en especifico?
Title: Re: Ayuda con bloque de la galería
Post by: DaRKeN on November 22, 2010, 01:20:43 PM
Exacto. Gracias por tu respuesta.  ;)
Title: Re: Ayuda con bloque de la galería
Post by: 130860 on November 22, 2010, 01:34:07 PM
copia y pega esto en un bloque php:

Code: [Select]

function show_aeva_media_block()
{
   global $sourcedir;
// Set amount visible
$visible = "4";
   // Load the language file
   loadLanguage('Aeva');

   // Grab the file.
   if (file_exists($sourcedir . '/Aeva-Subs.php'))
      require_once($sourcedir . '/Aeva-Subs.php');
   // If it doesn't exist, tell them this and stop running.
   else
   {
      echo '<b>You don\'t have Aeva installed! Unable to continue!</b>';
      return;
   }

// Use aeva functions to show the media.
$images = aeva_listItems(aeva_getMediaItems(0, $limit, $type ? 'RAND()' : 'm.id_media DESC', true, array(), 'a.id_album IN (1, 2, 3)');
$show = '<center><div id="aeva_pics" style="width: 75%;" overflow="visible" >'. $images. '</div></center>';
echo $show;
return;
}   
// show the contents
show_aeva_media_block();
 

donde 1,2,3   son los id de los albums que quieres mostrar, este bloque msotrara 4 imagenes de los albums que tu especifiques.
Title: Re: Ayuda con bloque de la galería
Post by: DaRKeN on November 22, 2010, 01:48:47 PM
Hola! Muchas gracias por tu ayuda, te comento:

Me da este error: Parse error: syntax error, unexpected ';' in /homepages/38/d283347434/htdocs/enlaces/Sources/PortalBlocks.php(3474) : eval()'d code on line 20
y bueno me hiciste recordar que había probado una cosa y es de este código que no recuerdo ahora de donde lo saque :(

El código es:
Code: [Select]
function show_aeva_media_block()
{
   global $sourcedir;
// Set amount visible
$visible = "7";
   // Load the language file
   loadLanguage('Aeva');

   // Grab the file.
   if (file_exists($sourcedir . '/Aeva-Subs.php'))
      require_once($sourcedir . '/Aeva-Subs.php');
   // If it doesn't exist, tell them this and stop running.
   else
   {
      echo '<b>No tienes instalado Aeva Media! No se puede mostrar!</b>';
      return;
   }

   // Use aeva functions to show the media.
   $images = aeva_listItems(aeva_getMediaItems(0, $visible, 'RAND()'), true, '',1);
$show = '<div id="aeva_pics" style="width: 100%;" overflow="visible">'. $images. '</div>';
echo $show;
return;
}   
// show the contents
show_aeva_media_block();


Pues bien, este funciona y puedo configurar los ítems a mostrar pero los muestra en vertical y al azar, yo quiero en horizontal y de álbumes específicos jeje, se puede hacer?

EDITO: También me los muestra encerrados con un marco, y me muestra las opciones del tipo, veces visto, etc, me gustaría dejarlo como la modificación que le hice al bloque por defecto de SP, que es el que uso en el index de mi página. Que muestra arriba la caratula y debajo el nombre y sin los marcos. Se me había olvidado decirlo, lo siento.

Saludos.

EDITO 2: Ehm... los códigos son los mismos :S Dios me estoy quedando loco, el tuyo no me funciona y el otro no, voy a comprobar :S ahora lo comento.

EDITO 3: Confirmado, el que puse si funciona y el otro no. Que raro, los veo iguales :S
Title: Re: Ayuda con bloque de la galería
Post by: 130860 on November 22, 2010, 01:57:17 PM
a tu bloque cambia esto:

aeva_listItems(aeva_getMediaItems(0, $visible, 'RAND()'), true, '',1);

por esto:

aeva_listItems(aeva_getMediaItems(0, $visible, '', false, array(1,2,3)), true, '',1);



ahora no pudo probarlo, mas tarde me fijare si funciona  o no.
Title: Re: Ayuda con bloque de la galería
Post by: DaRKeN on November 22, 2010, 02:33:18 PM
El bloque se muestra vació, parecía que ya jeje pero nada, y como te comente, si también quita ese recuadro que lo cubre y se muestra tan simple como el que se ve en el index osea, arriba caratula, abajo nombre  :)

Saludos.


EDITO:

Mira, he creado el bloque así:
Code: [Select]
global $db_prefix, $context, $modSettings, $scripturl;
global $sourcedir, $txt, $settings, $boardurl, $galurl;
static $mod, $GD_Installed;

$block_parameters = array(
'limit' => 'int',
'type' => 'select',
'direction' => 'select',
);

if ($return_parameters)
return $block_parameters;

$limit = empty($parameters['limit']) ? 3 : (int) $parameters['limit'];
$type = empty($parameters['type']) ? 0 : 1;
$direction = empty($parameters['direction']) ? 1 : 1;

if (!isset($mod))
{
if (file_exists($sourcedir . '/Aeva-Media.php'))
$mod = 'aeva_media';
elseif (file_exists($sourcedir . '/MGallery.php'))
$mod = 'smf_media_gallery';
elseif (file_exists($sourcedir . '/Gallery.php'))
$mod = 'smf_gallery';
}

if (empty($mod))
{
echo '
', $txt['error_sp_no_gallery_found'];
return;
}
elseif ($mod == 'aeva_media')
{
require_once($sourcedir . '/Aeva-Subs.php');

$items = aeva_getMediaItems(0, $limit, $type ? 'RAND()' : 'm.id_media DESC');
}
elseif ($mod == 'smf_media_gallery')
{
require_once($sourcedir . '/Subs-MGallery.php');

loadMGal_Settings();
if (loadLanguage('MGallery', '', false) === false)
loadLanguage('MGallery', 'english', false);

$items = getMediaItems(0, $limit, $type ? 'RAND()' : 'm.id_media DESC');
}
elseif ($mod == 'smf_gallery')
{
if (loadLanguage('Gallery', '', false) === false)
loadLanguage('Gallery', 'english', false);

if (!isset($GD_Installed))
$GD_Installed = function_exists('imagecreate');

if (empty($modSettings['gallery_url']))
$modSettings['gallery_url'] = $boardurl . '/gallery/';

$request = db_query("
SELECT
p.ID_PICTURE, p.commenttotal, p.filesize, p.views, p.thumbfilename,
p.filename, p.height, p.width, p.title, p.ID_MEMBER, m.memberName,
m.realName, p.date, p.description
FROM {$db_prefix}gallery_pic AS p
LEFT JOIN {$db_prefix}members AS m ON (m.ID_MEMBER = p.ID_MEMBER)
WHERE p.approved = 1
ORDER BY " . ($type ? 'RAND()' : 'p.ID_PICTURE DESC') . "
LIMIT $limit", __FILE__, __LINE__);
$items = array();
while ($row = mysql_fetch_assoc($request))
{
$items[] = array(
'id' => $row['ID_PICTURE'],
'title' => $row['title'],
'views' => $row['views'],
'poster_id' => $row['ID_MEMBER'],
'poster_name' => $row['realName'],
'poster_link' => empty($row['ID_MEMBER']) ? $txt['gallery_guest'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['ID_MEMBER'] . '">' . $row['realName'] . '</a>',
'thumbfilename' => $row['thumbfilename'],
'filename' => $row['filename'],
'src' => $modSettings['gallery_url'] . ($GD_Installed ? $row['thumbfilename'] : $row['filename'] . '" width="120'),
);
}
mysql_free_result($request);
}

if (empty($items))
{
echo '
', $txt['error_sp_no_pictures_found'];
return;
}

echo '
<table class="sp_auto_align">', $direction ? '
<tr>' : '';

foreach ($items as $item)
{
  echo !$direction ? '
<tr>' : '', '
<td>
<div class="sp_image smalltext">';

if ($mod == 'aeva_media')
{
echo '
<a href="', $galurl, 'sa=item;id=', $item['id'], '"><img src="', $galurl, 'sa=media;id=', $item['id'], ';thumb" alt="" /></a><br />
                                                <a href="', $galurl, 'sa=item;id=', $item['id'], '">', $item['title'], '</a><br />
', $item['is_new'] ?
'<br /><img alt="" src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" border="0" />' : '';
}
elseif ($mod == 'smf_media_gallery')
{
echo '
<a href="', $galurl, 'sa=item;id=', $item['id'], '">', $item['title'], '</a><br />
<a href="', $galurl, 'sa=item;id=', $item['id'], '"><img src="', $galurl, 'sa=media;id=', $item['id'], ';thumb" alt="" /></a><br />
', $txt['mgallery_views'], ': ', $item['views'], '<br />
', $txt['mgallery_posted_by'], ': <a href="', $scripturl, '?action=profile;u=', $item['poster_id'], '">', $item['poster_name'], '</a><br />
', $txt['mgallery_in_album'], ': <a href="', $galurl, 'sa=album;id=', $item['id_album'], '">', $item['album_name'], '</a>', $item['is_new'] ?
'<br /><img alt="" src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" border="0" />' : '';
}
elseif ($mod == 'smf_gallery')
{
echo '
<a href="', $scripturl, '?action=gallery;sa=view;id=', $item['id'], '">', $item['title'], '</a><br />
<a href="', $scripturl, '?action=gallery;sa=view;id=', $item['id'], '"><img src="', $item['src'], '" alt="" /></a><br />
', $txt['gallery_text_views'], $item['views'], '<br />
', $txt['gallery_text_by'], ' ', $item['poster_link'], '<br />';
}

echo '
</div>
</td>', !$direction ? '
</tr>' : '';
}

echo $direction ? '
</tr>' : '', '
</table>';


Resulta que saque el código del /Sources/PortalBlocks.php y funciona, se ve sin marco y sin ninguna información extra, la caratula arriba, el nombre abajo, hasta ahí perfecto... jeje el problema está en que sigue mostrando los artículos al azar. Se podría dar algún cambio para quitar código que sobre y que muestre Albúmes específicos?

Perdonad las molestias, gracias de antemano.
Title: Re: Ayuda con bloque de la galería
Post by: DaRKeN on November 24, 2010, 12:58:17 PM
Up!  :)
Title: Re: Ayuda con bloque de la galería
Post by: 130860 on November 24, 2010, 01:03:21 PM
no he tenido tiempo de probar ese bloque, mi prioridad es mi foro y la documentación de simplePortal en español, lo siento, tendrás que esperar o rpeguntar en el foro de soporte de ese mod.
Title: Re: Ayuda con bloque de la galería
Post by: DaRKeN on November 24, 2010, 01:49:39 PM
No te preocupes, era por sí algún otro se tomaba las molestias de ayudarme con esto.  A ver si con suerte aparece alguien, igualmente seguiré indagando y preguntaré donde me has dicho a ver si hay suerte.

Saludos y gracias por todo.  ;)
Title: Re: Ayuda con bloque de la galería
Post by: davidjms on November 26, 2010, 06:36:35 PM
copia y pega esto en un bloque php:

Code: [Select]

function show_aeva_media_block()
{
   global $sourcedir;
// Set amount visible
$visible = "4";
   // Load the language file
   loadLanguage('Aeva');

   // Grab the file.
   if (file_exists($sourcedir . '/Aeva-Subs.php'))
      require_once($sourcedir . '/Aeva-Subs.php');
   // If it doesn't exist, tell them this and stop running.
   else
   {
      echo '<b>You don\'t have Aeva installed! Unable to continue!</b>';
      return;
   }

// Use aeva functions to show the media.
$images = aeva_listItems(aeva_getMediaItems(0, $limit, $type ? 'RAND()' : 'm.id_media DESC', true, array(), 'a.id_album IN (1, 2, 3)');
$show = '<center><div id="aeva_pics" style="width: 75%;" overflow="visible" >'. $images. '</div></center>';
echo $show;
return;
}   
// show the contents
show_aeva_media_block();
 

donde 1,2,3   son los id de los albums que quieres mostrar, este bloque msotrara 4 imagenes de los albums que tu especifiques.

Ami tambien me da error

Parse error: syntax error, unexpected ';' in
/public_html/Sources/PortalBlocks.php(3351) : eval()'d code on line 20

He intentado tratar de corregirlo, pero la verdad no logro ke funcione de antemano les agreadesco si alguien pudiera ayudar.

Title: Re: Ayuda con bloque de la galería
Post by: AngelinaBelle on January 30, 2014, 05:59:02 PM
Code: [Select]
function show_aeva_media_block()
{
   global $sourcedir;
// Set amount visible
$visible = "4";
   // Load the language file
   loadLanguage('Aeva');

   // Grab the file.
   if (file_exists($sourcedir . '/Aeva-Subs.php'))
      require_once($sourcedir . '/Aeva-Subs.php');
   // If it doesn't exist, tell them this and stop running.
   else
   {
      echo '<b>You don\'t have Aeva installed! Unable to continue!</b>';
      return;
   }

// Use aeva functions to show the media.
$images = aeva_listItems(aeva_getMediaItems(0, $limit, $type ? 'RAND()' : 'm.id_media DESC', true, array(), 'a.id_album IN (1, 2, 3)'));
$show = '<center><div id="aeva_pics" style="width: 75%;" overflow="visible" >'. $images. '</div></center>';
echo $show;
return;
}   
// show the contents
show_aeva_media_block();
 
SimplePortal 2.3.8 © 2008-2024, SimplePortal