Página 1 de 2

Top5 sur l'index y respuestas de foro privado

Publicado: 09 Ago 2011, 16:19
por vlr1976
Muy buenas!!

Tengo instalado el Top5 sur l'index y todo funciona bien.

El problema es que en las respuestas también me aparecen las de un foro privado y todo el mundo las ve.

Habría alguna manera de que los temas y respuestas del foro privado no aparecieran en el Top5 sur l'index?.

Gracias de antemano y os PIDO DISCULPAS por duplicar el post. He intentado borrarlo pero no se puede o yo no encuentro la forma de hacerlo.

P.d.: He mirado en posts anteriores si existía referencia a mi consulta, pero no hay nada al respecto.

A continuación os dejo los datos:

Plantilla: Black Diamond
Ver Phpbb3: 3.0.8
Hosting: LaPrimera. net
Mods instalados: Top5 sur l'index // Advertisement 1.0.10 // Centro de anuncios 1.2.4 // Medal System 0.11.1
Actualización desde otro foro: No
Conversión desde otro sistema de foros: No

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 09 Ago 2011, 16:31
por memoadian
Hola vlr1976 repetiste el tema varias veces, parece que fue un accidente pero ten cuidado, podrías dejar un link al mod que usaste?

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 09 Ago 2011, 16:43
por vlr1976
Muy buenas!!

Gracias por responder tan rápido.

Siento haber duplicado el post, pero no se como borrarlo.

URL de descarga: http://www.ivemfinity.com/foro/download/file.php?id=227

Un saludo y Gracias de nuevo

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 09 Ago 2011, 17:31
por Juanla
Parece que ese mod no tiene panel de administración, sabes la ids de los foros que son privados? y cuando son privados te refieres a que usas contraseña para entrar o algunos usuarios si tienen acceso y otro no (mediante permisos?)

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 09 Ago 2011, 17:42
por vlr1976
Buenas de nuevo!!

Pues el id es el 26.

Es un foro a los que sólo algunos usuarios tienen acceso mediante permisos.

Un saludo

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 11 Ago 2011, 23:53
por vlr1976
Alguna idea compañeros de como podría resolver el tema?

Un saludo y Gracias

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 12 Ago 2011, 00:19
por Juanla
La clave sería modificar el includes/top5_index.php (Ábrelo y cambia su contenido por el siguiente):

Código: Seleccionar todo

<?php

/***************************************************************************
*
* @name top5_index.php
* @package phpBB3 Portal
* @copyright (c) sjpphpbb _ Ariv
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

if ( !defined('IN_PHPBB') )
{
    die("Hacking attempt");
}

$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
$user->add_lang('mods/top5_index_lang');
$user->session_begin();
$auth->acl($user->data);

define('POST_FORUM_URL', 'f');
define('FORUM_URL', 'f');

    global $user, $forum_id, $phpbb_root_path, $phpEx, $template, $userdata, $config, $db ;

//line 
    $top_posting_users_sql="SELECT user_id, username, user_posts, user_colour
            FROM " . USERS_TABLE . " where user_id > 0 
            ORDER BY user_posts DESC LIMIT 5"; 
            $top_posting_users = $db->sql_query($top_posting_users_sql);
//line2
    $sql = "SELECT * 
        FROM ". FORUMS_TABLE . " 
        WHERE forum_id <> 26
        ORDER BY forum_id";
    if (!$result1 = $db->sql_query($sql))
    {
        message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
    }

    $forum_data = array();
    
    while( $row1 = $db->sql_fetchrow($result1) )
    {
        $forum_data[] = $row1;
    }
    
    if ( ($auth->acl_get('f_read', $row1['forum_id'])) || ($row1['forum_id'] == '0') )    
    {            
                   $last_replies = $row1;    
    }    
            
    $last_topic_replies_sql="SELECT topic_id, topic_title, topic_views, topic_last_poster_name, topic_last_poster_colour, topic_last_poster_id,  topic_last_post_id 
            FROM " . TOPICS_TABLE . "
            WHERE topic_id > 0 and forum_id <> 26
            ORDER BY topic_last_post_id  DESC LIMIT 5"; 
            $last_replies = $db->sql_query($last_topic_replies_sql);

//line3            
    $new_mb_sql="SELECT user_id, username, user_regdate , user_colour
            FROM " . USERS_TABLE . " WHERE user_type <> 2
            AND user_inactive_time = 0
            ORDER BY user_regdate DESC LIMIT 5"; 
            $new_mb = $db->sql_query($new_mb_sql);
 
// préparation de l'affichage (top5 ) 
    while 
    ($line = $db->sql_fetchrow($top_posting_users) 
        AND $line2 = $db->sql_fetchrow($last_replies) 
        AND $line3 = $db->sql_fetchrow($new_mb))
    { 
    $usertop5 = append_sid("memberlist.php?mode=viewprofile&u=".$line['user_id']); 
    $newmb = append_sid("memberlist.php?mode=viewprofile&u=".$line3['user_id']); 

    $poster_id = append_sid("memberlist.php?mode=viewprofile&u=".$line2['topic_last_poster_id']);

    $topic = append_sid("viewtopic.php?t=".$line2['topic_id']); 

    $sql = "SELECT poster_id, COUNT(*) AS real_user_posts 
    FROM ".POSTS_TABLE. " 
    WHERE poster_id = ".$line['user_id']." and forum_id <> 26
    GROUP BY poster_id"; 
    $result = $db->sql_query($sql); 
    $rowuserposts = $db->sql_fetchrow($result); 
    $db->sql_freeresult($result); 
    $posts_per_day = $rowuserposts['real_user_posts']; 

    $sql = "SELECT poster_id, COUNT(*) AS real_user_posts 
    FROM " . POSTS_TABLE . " 
    WHERE poster_id = ".$line3['user_id']." and forum_id <> 26
    GROUP BY poster_id"; 
    $result = $db->sql_query($sql); 
    $rowuserposts = $db->sql_fetchrow($result); 
    $db->sql_freeresult($result); 
    $posts_per_day2 = $rowuserposts['real_user_posts']; 
    
    $template->assign_block_vars('mini', array( 
        'NEWMB'             => $newmb, 
        'NBNAME'             => $line3['username'],
        'USERNAME_COLOR2'    => $line3['user_colour'],                
        'USERNAME_COLOR'    => $line['user_colour'],        
        'POST'                 => $posts_per_day2, 
        'POSTER'             => $usertop5, 
        'POSTERA'             => $line['username'], 
        'NBPOSTS'             => $line['user_posts'],  
        'TOPIC'             => $topic,
        'POSTER_ID'            => $poster_id,
        'ID_COLOR'            => $line2['topic_last_poster_colour'], 
        'ID'                 => $line2['topic_last_poster_name'],
        'JOINED'             => $user->format_date($line3['user_regdate'], $format = 'd M Y'),        
        'NOM'                 => $line2['topic_title'])
        );
}; 
// fin du top 5 utilisateurs 
// 
//sujet le plus populaire 
// 
    $topic_views_sql="SELECT topic_title,topic_views,topic_id 
        FROM " . TOPICS_TABLE . " 
        Where forum_id <> 26
        ORDER BY topic_views DESC LIMIT 1"; 
        $more_views = $db->sql_query($topic_views_sql); 
    while ($line = $db->sql_fetchrow($more_views)) 
        { 
            $topic = append_sid("viewtopic.php?t=".$line['topic_id']); 

    $template->assign_block_vars('pop', array( 
        'TOPIC' => $topic, 
        'POST' => $line['topic_title'], 
        'NB' => $line['topic_views'])); 
    }; 
// fin du sujet le plus populaire

?>
PD: Antes de hacer los cambios haz una copia de seguridad del archivo, por si hay algún error.

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 12 Ago 2011, 00:23
por memoadian
Supongo que el problema vendría si son dos foros pues en tu sentencia sql, dices que seleccione los foros cuyo id no sea 26, pero no existe algun campo que indique si el foro es privado? de ese modo al hacer una sola consulta añadiendo ese campo se podría evitar a todos los foros privados.

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 12 Ago 2011, 00:34
por canidev
Hola

Yo lo que te recomendaría principalmente, es quitar ese mod e instalar otro más actualizado, ya que según el archivo de instalación, ese mod es para phpbb 3.0.4 ademas de que, viendo el código me da la sensación de que tiene muchos errores.
Creo que te sale más rentable instalar otro mod que intentar arreglar los problemas de ese.

Este mod http://www.phpbb.com/customise/db/mod/top_five/ creo que hace las mismas funciones y esta bastante mejor.

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 12 Ago 2011, 01:29
por Juanla
memoadian escribió:Supongo que el problema vendría si son dos foros pues en tu sentencia sql, dices que seleccione los foros cuyo id no sea 26, pero no existe algun campo que indique si el foro es privado? de ese modo al hacer una sola consulta añadiendo ese campo se podría evitar a todos los foros privados.
Por eso le pregunte qué foro y qué tipo de privacidad usa (si es por password o permisos), el mod se puede adaptar a cualquiera de los 2 métodos, aunque no soy experto en su caso debería funcionarle ( a no ser que haya pasado algo por alto). No soy el autor del mod ni pretendía hacer una "versión nueva". :roll:
canidev escribió:Hola

Yo lo que te recomendaría principalmente, es quitar ese mod e instalar otro más actualizado, ya que según el archivo de instalación, ese mod es para phpbb 3.0.4 ademas de que, viendo el código me da la sensación de que tiene muchos errores.
Creo que te sale más rentable instalar otro mod que intentar arreglar los problemas de ese.

Este mod http://www.phpbb.com/customise/db/mod/top_five/ creo que hace las mismas funciones y esta bastante mejor.
Si ese mod controla la parte de foros privados se lo recomiendo :) Gracias por el comentario!

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 12 Ago 2011, 02:16
por memoadian
Bueno tampoco me refería a que hicieras una nueva versión, ni nada por el estilo, opiné, por que no le explicaste el funcionamiento de la modificación, y en algún momento al poner otro foro privado pasaría lo mismo, para lo cual es una solución muy a medida y nada previsoria. y a la larga sería peor.

:roll:

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 12 Ago 2011, 05:30
por Alorse
Si se le está dando soporte a este usuario era porque hace un rato en su firma tenia los datos de soporte, ya que no veo la URL de su foro por ningún lugar.

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 12 Ago 2011, 13:19
por Juanla
Alorse escribió:Si se le está dando soporte a este usuario era porque hace un rato en su firma tenia los datos de soporte, ya que no veo la URL de su foro por ningún lugar.
Sigue todo en orden, el usuario es http://www.phpbb-es.com/foro/usuario/vlr1976/ quizás lo confundiste con otro usuario que posteó en el mimo tema.

Re: Top5 sur l'index y respuestas de foro privado

Publicado: 12 Ago 2011, 14:39
por vlr1976
Gracias a todos por vuestras respuestas.

He probado sustituyendo el código que me has facilitado pero nada.

No obstante, desinstalaré éste mod y utilizaré el indicado en el hilo.

Voy a probarlo y os cuento.

Muchas gracias a todos por vuestra ayuda.

Un saludo

Re: Top5 sur l'index y respuestas de foro privado  Tema Solucionado

Publicado: 12 Ago 2011, 17:00
por vlr1976
Bueno pues, os cuento!

He desinstalado el mod Top5 sur l'index y en su lugar he instalado el Top five. Ahora, todo funciona OK.

Respeta los foros privados, no incluyendo los temas nuevos creados en los mismos en el listado de los más recientes.

En fin, Gracias a todos por vuestra ayuda.

Un saludo