Página 1 de 2

Temas Aleatorios?

Publicado: 27 Jul 2007, 21:29
por eportugues
URL: http://www.sapriforo.com
Plantilla(s) usuada(s): NB2
MODs instalados: File Attachment, Multiple BBCode MOD, Youtube, Unincrement User Posts, Easy_Sub-Forums, Confusa BOT
Versión de phpBB: phpBB 2.0.22
Servidor: Pago (Godaddy)

Existe algun mod que de la posibilidad de que el visitante por medio de algun vinculo, lo redireccione a un tema random (o aleatorio) ?

Encontré uno en phpbbhacks.com, pero de una versión antigua para phpbb y ya no funciona.

Alguien me podra ayudar?

Pd. No sabia que para realizar una pregunta se necesita poner los datos del foro.

Re: Temas Aleatorios?

Publicado: 11 Ago 2007, 20:51
por eportugues
Encontré este mod:

http://www.phpbbhacks.com/download/267

Pero en las instrucciones de viewtopic.php me piden buscar codigo que no encuentro... alguien me puede ubicar?

[quote]########################################################
## Mod Title: View Random Topic
## Mod Version: 1.0
## Author: Matthijs van de Water <matthijs@beryllium.net>
## Description: Totally useless feature
## Will direct you to a random topic.
##
## Installation Level: easy
## Installation Time: 5-8 Minutes
## Files To Edit: 4 (viewtopic.php, index.php,
## lang_main.php, index_body.tpl)
########################################################
## KNOWN LIMITATIONS:
## Will output an error if you don't have permission
## to view or read the topic.
## Refreshing will get you another topic
########################################################

#
#-----[ FIND in viewtopic.php ]------------------------------------------
#
if( !isset($topic_id) && !isset($post_id) )

#
#-----[ CHANGE to ]------------------------------------------
#
if( !isset($topic_id) && !isset($post_id) && $HTTP_GET_VARS['view'] != 'random' )

#
#-----[ FIND in viewtopic.php ]------------------------------------------
#
else
{
$topic_id = $row['topic_id'];
}
}

#
#-----[ ADD after ]------------------------------------------
#
else if ( $HTTP_GET_VARS['view'] == 'random' )
{
$sql = "SELECT t.topic_id
FROM " . TOPICS_TABLE . " t
ORDER BY RAND()
LIMIT 1";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Could not obtain random topic information", '', __LINE__, __FILE__, $sql);
}
if ( !($row = $db->sql_fetchrow($result)) )
{
message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
}
else
{
$topic_id = $row['topic_id'];
}
}
#
#-----[ FIND in index.php ]------------------------------------------
#
'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'],
#
#-----[ ADD after ]------------------------------------------
#
'L_VIEW_RANDOM_TOPIC' => $lang['View_random_topic'],
'U_VIEW_RANDOM_TOPIC' => append_sid("viewtopic.$phpEx?view=random"),

#
#-----[ FIND in language/lang_english/lang_main.php ]-----------------------
#
$lang['Forums_marked_read'] = "All forums have been marked read";

#
#-----[ ADD after ]------------------------------------------
#
$lang['View_random_topic'] = "View A Random Topic";

#
#-----[ FIND in templates/subSilver/index_body.tpl ]------------------------------------------
#
<a href="{U_SEARCH_UNANSWERED}" class="gensmall">{L_SEARCH_UNANSWERED}</a></td>
#
#-----[ CHANGE to ]------------------------------------------
#
<a href="{U_SEARCH_UNANSWERED}" class="gensmall">{L_SEARCH_UNANSWERED}</a><br />
<a href="{U_VIEW_RANDOM_TOPIC}" class="gensmall">{L_VIEW_RANDOM_TOPIC}</a>
</td>

#
#-----------------------------------------------
# [/quoteicy]

Mi viewtopic.php:

http://www.phpbb-es.com/pastebin/pastebin.php?show=1599

Algun alma que me ayude??

Re: Temas Aleatorios?

Publicado: 11 Ago 2007, 23:54
por esnola
Prueba esto.

En el viewtopic.php realiza solo estos cambios:

Código: Seleccionar todo

----------BUSCA------------:

$join_sql_table = (!$post_id) ? '' : ", " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 ";


-----------------ANTES DE ESO AÑADE---------------------:

if ( $_REQUEST['view'] == 'random' )
{
    $SQL = "SELECT t.topic_id
        FROM " . TOPICS_TABLE . " t
        ORDER BY RAND()
        LIMIT 1";
    if ( !($result = $DB->sql_query($SQL)) )
    {
        message_die(GENERAL_ERROR, "Could not obtain random topic information", '', __LINE__, __FILE__, $SQL);
    }
    if ( !($row = $DB->sql_fetchrow($result)) )
    {
        message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
    }
    else
    {
        $topic_id = $row['topic_id'];
    }
}

Prueba y ya contarás.

Por cierto para facilitar las cosas es mejor que pongas los datos que has suministrado arriba en tu firma y selecciones la opcion añadir mi firma a mis publicaciones o mensajes en el perfil.

¿Que tal funciona GoDady?


Un saludo

Re: Temas Aleatorios?

Publicado: 12 Ago 2007, 00:06
por eportugues
Gracias esnola!

Hice lo que me sugeriste, añadi el codigo a viewtopic... actualize los demas archivos y fui al foro.

Me aparece correctamente el link para "Ver tema random", clickeo sobre el y me dirige a:

http://www.site.com/foro/viewtopic.php?view=random

Pero me despliega:

El tema o mensaje solicitado no existe

El error creo que se da en que no llama a ningun tema.

Alguna forma de solucionarlo?
Por cierto para facilitar las cosas es mejor que pongas los datos que has suministrado arriba en tu firma y selecciones la opcion añadir mi firma a mis publicaciones o mensajes en el perfil. Lo que pasa es que tengo varios foros y doy soporte a todos. :)

[quoteicy user="esnola"]¿Que tal funciona GoDady?[/quoteicy]
Bastante bien, no tengo queja alguna, creo que da muchas facilidades y en precio es muy accesible. Siempre que puedo lo recomiendo.

Gracias, saludos.

Re: Temas Aleatorios?

Publicado: 12 Ago 2007, 00:11
por esnola
A ver hombre, ¿CUAL ES LA URL DE TU FORO?

Re: Temas Aleatorios?

Publicado: 12 Ago 2007, 00:13
por eportugues
Epa epa :shock:

http://www.chavodel8.com/foro/

Por lo general los mods que no me funcionan correctamente no los dejo activos hasta hallar el problema, pero hare la exepcion con éste, para que lo veas tu mismo.

Saludos! :shock:

Re: Temas Aleatorios?

Publicado: 12 Ago 2007, 00:34
por esnola
Vamos a poner el mismo código pero en otro lado.

Deshaz los cambios anteriores y

Código: Seleccionar todo

----------BUSCA ------------------

$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;

-------------------- AÑADE ANTES -----------------------
#El mismo código anterior o sea ------

if ( $_REQUEST['view'] == 'random' )
{
    $SQL = "SELECT t.topic_id
        FROM " . TOPICS_TABLE . " t
        ORDER BY RAND()
        LIMIT 1";
    if ( !($result = $DB->sql_query($SQL)) )
    {
        message_die(GENERAL_ERROR, "Could not obtain random topic information", '', __LINE__, __FILE__, $SQL);
    }
    if ( !($row = $DB->sql_fetchrow($result)) )
    {
        message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
    }
    else
    {
        $topic_id = $row['topic_id'];
    }
}



Ya contarás,

¿Que tal te va con GODADY ?

Re: Temas Aleatorios?

Publicado: 12 Ago 2007, 00:42
por eportugues
Realize los cambios, pero...

Fatal error: Call to a member function on a non-object in /html/foro/viewtopic.php on line 54

line 54 de viewtopic.php:

[quote] if ( !($result = $DB->sql_query($SQL)) ) [/quoteicy]

:(

Con godaddy, como te comente anteriormente, me va bien, me ha trabajado muy bien y no le veo desventajas, quizas debes saber un poco ingles para manejar su interfaz, pero fuera de eso es simple. No he tenido problemas de hosting desde que lo utilizo.

Re: Temas Aleatorios?

Publicado: 12 Ago 2007, 01:02
por esnola
Realize los cambios, pero...

Fatal error: Call to a member function on a non-object in /html/foro/viewtopic.php on line 54

line 54 de viewtopic.php:

[quote] if ( !($result = $DB->sql_query($SQL)) ) :(

Con godaddy, como te comente anteriormente, me va bien, me ha trabajado muy bien y no le veo desventajas, quizas debes saber un poco ingles para manejar su interfaz, pero fuera de eso es simple. No he tenido problemas de hosting desde que lo utilizo.[/quoteicy]


¿Como que línea 54 si nosotros hemos empezado a editar en la línea 92 o 93 ?
Has editado bien ?

De cualquier manera, en el código que has pegado tienes algunas variables que estan en mayúsculas como 2 --$DB y 2 - $SQL pon las letras "DB" y "SQL" en minúsculas.

Y probando probando (no me quites el enlace de View Random para poder comprobar yo en caso de fallo)

Re: Temas Aleatorios?

Publicado: 12 Ago 2007, 01:09
por eportugues
Si, he editado bien y el # de linea está correcto.

Realize los cambios (de mayuscula a minuscula) y el "Fatal error" no me aparece, pero me despliega una pagina con: "El tema o mensaje solicitado no existe"

Gracias por tu paciencia esnola

Re: Temas Aleatorios?

Publicado: 12 Ago 2007, 01:24
por esnola
Vamos a hacer una comprobación
En el código que has añadido cambia:
message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
por
message_die(GENERAL_MESSAGE, 'Falla aqui');


Me avisas por PM cuando lo tengas para ir yo a verlo.

Re: Temas Aleatorios?

Publicado: 17 Ago 2007, 01:10
por eportugues
Por medio de esnola, realizamos algunos cambios con el fin de poder poner a funcionar el mod, pero no hubo resultados favorables.

Aun continua la duda, si alguien me da la mano se lo agradeceré.

Re: Temas Aleatorios?

Publicado: 17 Ago 2007, 01:28
por esnola
Pero ¿te pone algo donde debería poner el logo?
Para eso te dí ese código, para que me diese un indicio de donde está el fallo.

Re: Temas Aleatorios?

Publicado: 17 Ago 2007, 01:33
por eportugues
Si, todos los pasos que me dijiste por mp los hice, pero aun no se ha resuelto.

A la hora de dar click en "Ver topic random", aparece:

[quote]Could not obtain topic information

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND f.forum_id = t.forum_id' at line 4

SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments FROM phpbb_topics t, phpbb_forums f WHERE t.topic_id = AND f.forum_id = t.forum_id

Line : 176
File : viewtopic.php[/quoteicy]

Re: Temas Aleatorios?

Publicado: 17 Ago 2007, 01:40
por esnola
Ostras, perdona, me confundí de tema, esa respuesta no era para ti. :oops:
Cosas que pasan al tener muchas ventanas abiertas. :lol: