Página 1 de 1

No leídos en header con contador

Publicado: 13 Feb 2013, 01:14
por merlet
URL: http://www.pasionreef.com
Versión phpBB: 3.0.11
MODs Instalados: Blockgets
Registro por invitación
Tapatalk
Recent topics
Antidouble post
Tengo más instalados
Plantilla(s) usada(s): Prosilver
Servidor: De pago
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Buenas.,

He buscado en el foro pero no lo he encontrado.

Es posible poner en el header "no leídos" igual que aquí pero con contador igual que en "mensajes nuevos".

He encontrado como poner la pestaña "mensajes nuevos" con contador, pero no he encontrado la misma operación para poner "no leídos".

Saludos.
Oscar.

http://www.pasionreef.com

Re: No leídos en header con contador

Publicado: 13 Feb 2013, 01:55
por Alorse
Por favor, ya no eres un usuarios nuevo Oscar, debes dejar tus datos de soporte completos, si quieres ponlos en la firma, recuerda que ese es un motivo para enviar el tema a la pepelera.
Abre el archivo includes/functions.php y busca:

Código: Seleccionar todo

    $template->assign_vars(array( 
Antes agrega:

Código: Seleccionar todo

function check_post_unread_count($forum_ids = array())
{
    global $db, $auth, $user;

    if (!$forum_ids)
    {
        // $forum_ids was not passed to the function, so include forum_id 0 (globals)
        // in the list and then look up and include all other forums the user is authorized to read
        $forum_ids[] = 0;

        $sql = 'SELECT forum_id
            FROM ' . FORUMS_TABLE;
        $result = $db->sql_query($sql);
        while ($row = $db->sql_fetchrow($result))
        {
            if ($auth->acl_get('f_read', $row['forum_id']))
            {
                $forum_ids[] = $row['forum_id'];
            }
        }
        $db->sql_freeresult($result);
    }

    // now count the posts with post time after each of the relevant times
    $sql = 'SELECT COUNT(p.post_id) as count
        FROM ' . POSTS_TABLE . ' p
            LEFT JOIN ' . FORUMS_TRACK_TABLE . ' ft ON (p.forum_id = ft.forum_id AND ft.user_id = ' . $user->data['user_id'] . ')
            LEFT JOIN ' . TOPICS_TRACK_TABLE . ' tt ON (p.topic_id = tt.topic_id AND tt.user_id = ' . $user->data['user_id'] . ')
                WHERE
                (
                    p.post_time > tt.mark_time
                    OR (tt.mark_time IS NULL AND p.post_time > ft.mark_time)
                    OR (ft.mark_time IS NULL AND p.post_time > ' . $user->data['user_lastmark'] . ')
                )
                AND ' . $db->sql_in_set('p.forum_id', $forum_ids);

    $result = $db->sql_query($sql);
    $unread_post_count = $db->sql_fetchfield('count', false, $result);
    $db->sql_freeresult($result);

    return $unread_post_count;
} 
Busca:

Código: Seleccionar todo

        'U_SEARCH_UNREAD'        => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unreadposts'), 
Después agrega:

Código: Seleccionar todo

        'U_UNREAD_POSTS_COUNT'    => check_post_unread_count(), 
Y luego usa la variable {U_UNREAD_POSTS_COUNT} en cualquier lugar de la plantilla, donde sea que quieras mostrar el número de mensajes sin leer.

Re: No leídos en header con contador

Publicado: 13 Feb 2013, 03:09
por towen
o si quieres el número de temas sin leer abre includes/functions.php
Busca

Código: Seleccionar todo

'S_NEW_PM'                => ($s_privmsg_new) ? 1 : 0, 

Después agrega

Código: Seleccionar todo

        'S_UNREAD_TOPIC_COUNT'                => count(get_unread_topics($user->data['user_id'])), 
Luego puedes poner la variable {S_UNREAD_TOPICS_COUNT} donde quieras en tu estilo.

Re: No leídos en header con contador

Publicado: 13 Feb 2013, 07:56
por merlet
Buenas.,

Gracias a los dos por las respuestas, hoy me pongo.


P.D Perdón por los datos de soporte, ya los he añadido.

Re: No leídos en header con contador

Publicado: 13 Feb 2013, 20:13
por merlet
Buenas.,

El último paso:

Y luego usa la variable {U_UNREAD_POSTS_COUNT} en cualquier lugar de la plantilla, donde sea que quieras mostrar el número de mensajes sin leer.

Luego puedes poner la variable {S_UNREAD_TOPICS_COUNT} donde quieras en tu estilo.



Es esto????
Abrir: styles/prosilver/template/overall_header.html

Buscar:

<a href="{U_SEARCH_SELF}">{L_SEARCH_SELF}</a>
<!-- ENDIF -->

Agregar antes:

<a href="{U_SEARCH_NEW}">Mensajes Nuevos ({NEW_POST_COUNT})</a> &bull;

Cambiando {U_SEARCH_NEW} por {U_UNREAD_POSTS_COUNT} o por {S_UNREAD_TOPICS_COUNT}
cambiando Mensajes Nuevos por "No leído" por ejemplo

Saludos
Gracias

Re: No leídos en header con contador

Publicado: 13 Feb 2013, 20:40
por Alorse
Cuando escribas código en el foro recuerdas hacerlo con el BBCode [code].
Si cambias {U_SEARCH_NEW} por lo que mencionas, se dañará el enlace, así que no lo puedes hacerlo, lo único que hace el código que hemos puesto más arriba, es poner un número, por ejemplo: 23, es todo, lo que debes hacer es ponerlo donde quieras que salga ese número, ya sea en el texto del enlace de Mensajes no leídos o donde quieras.

Re: No leídos en header con contador

Publicado: 13 Feb 2013, 21:46
por merlet
Buenas Fredo.,

Disculpa, pero no lo he entendido.

Sobre no cambiar el {U_SEARCH_NEW}, perfecto, pero nada más.


Sigo sin entender donde colocar y como la variable {U_UNREAD_POSTS_COUNT}



Gracias y disculpa las molestias.

Re: No leídos en header con contador  Tema Solucionado

Publicado: 13 Feb 2013, 22:30
por Alorse
No hay problema, para eso estamos, en el archivo index_body.html de tu plantilla esta {L_SEARCH_UNREAD}, solo es que lo reemplaces por {L_SEARCH_UNREAD} ({U_UNREAD_POSTS_COUNT})
Y si quieres que se vea en todo el foro y no solo en el índice lo pones en el overall_header.html al lado de los mensajes nuevos.