Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

barra lateral ultimos posts en mensajesTema Solucionado

Foros donde podréis dejar vuestras dudas sobre phpBB 3.0.x
Cerrado

0
No hay votos
 
Votos totales: 0

pacorro
Observador/a
Mensajes: 26
Registrado: 01 Ago 2014, 10:50

barra lateral ultimos posts en mensajes

#1

Mensaje por pacorro »

URL: http://audioforo.com
Versión phpBB: 3.0.11
MODs Instalados: Ninguno
Plantilla(s) usada(s): metro
Servidor: de pago
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No

Hola. He creado una barra lateral que se ve al abrir el foro. Pero cuando entras a un tema la barra ya no se ve, solo es visible en el índice.
Lo que quisiera es que la barra se viera siempre, en cualquier hilo.
A ver si me podéis decir cómo, porfa.
Gracias de antemano

Avatar de Usuario
angelismo
Administrador
Mensajes: 5707
Registrado: 20 May 2006, 02:42
Género:
Edad: 35

Re: barra lateral ultimos posts en mensajes

#2

Mensaje por angelismo »

Simplemente pon el codigo de la barra en el archivo overall_header.html de tu estilo

Antes de nada, lee las Normas de phpBB-Es y las Normas de Soporte.

Como corregir el copyright de phpbb3 - Si tu foro no tiene copyright ,lee la guia antes de pedir soporte.
No doy soporte por MP ni por MSN ,solo en los foros.


© angelismo- Webmaster de Webmastercreativo
© angelismo -Administrador de phpBB-es

pacorro
Observador/a
Mensajes: 26
Registrado: 01 Ago 2014, 10:50

Re: barra lateral ultimos posts en mensajes

#3

Mensaje por pacorro »

ya lo tengo puesto allí y no me funciona. Quizá hay una orden que impide que se vea en los hilos. Sale el espacio pero no el contenido

Según la info de la plantilla, en el overall header he de decirle que quiero sidebar. También se lo he dicho en viewtopic body y en viewforum body. Luego está el archivo sidebar donde está la info de la barra. Te pongo el código del archivo "sidebar"

Código: Seleccionar todo

<div id="sidebar">

	<!-- Sidebar block beginning -->
	<div class="sidebar-block">

		<!-- Sidebar header beginning -->		
		

		<!-- Sidebar content beginning -->	
		<div class="sidebar-block-content">
			<p>
<div class="forabg">
    <div class="inner"><span class="corners-top"><span></span></span>
        <ul class="topiclist">
            <li class="header">
                <dl class="icon">
                    <dt>Últimos Posts</dt>
                </dl>
            </li>
        </ul>
        <ul class="topiclist forums">
            <li class="row">
                <dl>
                    <dt>
                    <!-- BEGIN last_topics -->
                    <a href="{last_topics.POST_LINK}">{LAST_POST_IMG}</a> <a href="{last_topics.POST_LINK}" class="forumtitle">{last_topics.TOPIC_TITLE}</a> por {last_topics.POST_AUTHOR} - {last_topics.POST_DATE}<br />
                    <!-- END last_topics -->
                    </dt>
                </dl>
            </li>
        </ul>
    <span class="corners-bottom"><span></span></span></div>
</div>
</p>
		</div>
		<!-- Sidebar content end -->

	</div>
	<!-- Sidebar block end -->

</div>
Adjuntos
Sin título.png
Sin título.png (44.34 KiB) Visto 2174 veces
Última edición por pacorro el 10 Oct 2014, 21:36, editado 2 veces en total.

pacorro
Observador/a
Mensajes: 26
Registrado: 01 Ago 2014, 10:50

Re: barra lateral ultimos posts en mensajes

#4

Mensaje por pacorro »

Y si ya puestos me dijérais cómo hacer que salga solamente una vez cada hilo sería la hostia.
O sea, ahora me salen los últimos posts, pero si esos han sido hechos en un mismo hilo entonces sale ese hilo tropecientas veces. Me gustaría que en realidad salieran los últimos hilos con nuevos mensajes, pero solamente una vez cada hilo.
Gracias

pacorro
Observador/a
Mensajes: 26
Registrado: 01 Ago 2014, 10:50

Re: barra lateral ultimos posts en mensajes

#5

Mensaje por pacorro »

la barra de últimos posts que uso es la de Mitch, sacada de este foro.

Pego aquí la info que tengo sobre la barra en index.php

En httpdocs/ phpbb 3-1 / index.php, Buscar:

Código: Seleccionar todo

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');

display_forums('', $config['load_moderators']); 


Agregar después:

Código: Seleccionar todo

// bloque últimos posts - mitch - phpBB-Es
    include($phpbb_root_path . 'includes/bbcode.' . $phpEx);

    function create_where_clauses($gen_id, $type)
    {
    global $db, $auth;

    $size_gen_id = sizeof($gen_id);

    switch($type)
    {
    case 'forum':
    $type = 'forum_id';
    break;
    case 'topic':
    $type = 'topic_id';
    break;
    default:
    trigger_error('No type defined');
    }

    $out_where = '';

    if ($size_gen_id > 0)
    {
    $auth_f_read = array_keys($auth->acl_getf('f_read', true));

    if ($type == 'topic_id')
    {
    $sql = 'SELECT topic_id FROM ' . TOPICS_TABLE . '
    WHERE ' . $db->sql_in_set('topic_id', $gen_id) . '
    AND ' . $db->sql_in_set('forum_id', $auth_f_read);

    $result = $db->sql_query($sql);

    while ($row = $db->sql_fetchrow($result))
    {
    $topic_id_list[] = $row['topic_id'];
    }

    unset($gen_id);

    $gen_id = $topic_id_list;
    $size_gen_id = sizeof($gen_id);
    }

    $j = 0;

    for ($i = 0; $i < $size_gen_id; $i++)
    {
    $id_check = (int) $gen_id[$i]; // If the type is topic, all checks have been made and the query can start to be built if( $type == 'topic_id' ) { $out_where .= ($j == 0) ? 'WHERE ' . $type . ' = ' . $id_check . ' ' : 'OR ' . $type . ' = ' . $id_check . ' '; } // If the type is forum, do the check to make sure the user has read permissions else if( $type == 'forum_id' && $auth->acl_get('f_read', $id_check) )
    {
    $out_where .= ($j == 0) ? 'WHERE ' . $type . ' = ' . $id_check . ' ' : 'OR ' . $type . ' = ' . $id_check . ' ';
    }

    $j++;
    }
    }

    if ($out_where == '' && $size_gen_id > 0)
    {
    trigger_error('A list of topics/forums has not been created');
    }

    return $out_where;
    }


    // Número de últimos posts a mostrar (editar el 5 si así lo deseas):
    $search_limit = 10;


    $posts_ary = array(
    'SELECT' => 'p.*, t.*, u.username, u.user_colour',

    'FROM' => array(
    POSTS_TABLE => 'p',
    ),

    'LEFT_JOIN' => array(
    array(
    'FROM' => array(USERS_TABLE => 'u'),
    'ON' => 'u.user_id = p.poster_id'
    ),
    array(
    'FROM' => array(TOPICS_TABLE => 't'),
    'ON' => 'p.topic_id = t.topic_id'
    ),
    ),

    'WHERE' => $db->sql_in_set('t.forum_id', array_keys($auth->acl_getf('f_read', true))) . '
    AND t.topic_status <> ' . ITEM_MOVED . '
    AND t.topic_approved = 1',

    'ORDER_BY' => 'p.post_id DESC',
    );

    $posts = $db->sql_build_query('SELECT', $posts_ary);

    $posts_result = $db->sql_query_limit($posts, $search_limit);

    while ($posts_row = $db->sql_fetchrow($posts_result))
    {
    $topic_title = $posts_row['topic_title'];
    $topic_title = censor_text($topic_title);
    $post_author = get_username_string('full', $posts_row['poster_id'], $posts_row['username'], $posts_row['user_colour']);
    $post_date = $user->format_date($posts_row['post_time']);
    $post_link = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "p=" . $posts_row['post_id'] . "#p" . $posts_row['post_id']);

    $post_text = nl2br($posts_row['post_text']);

    $bbcode = new bbcode(base64_encode($bbcode_bitfield));
    $bbcode->bbcode_second_pass($post_text, $posts_row['bbcode_uid'], $posts_row['bbcode_bitfield']);

    $post_text = smiley_text($post_text);

    $template->assign_block_vars('last_topics', array(
    'TOPIC_TITLE' => censor_text($topic_title),
    'POST_AUTHOR' => $post_author,
    'POST_DATE' => $post_date,
    'POST_LINK' => $post_link,
    'POST_TEXT' => censor_text($post_text),
    ));
    }

    // Fin bloque últimos posts - mitch - phpBB-Es 

pacorro
Observador/a
Mensajes: 26
Registrado: 01 Ago 2014, 10:50

Re: barra lateral ultimos posts en mensajes

#6

Mensaje por pacorro »

Acabo de cambiar la barra de Mitch por la de Alorse
http://www.phpbb-es.com/foro/soporte-ph ... e&iaddlist


Salen los últimos hilos en vez de los últimos post, y es CASI lo que busco.
El problema es que los ordena por fecha de apertura del hilo, y es poco práctico. Quisiera que los ordenara por fecha de último post en dicho hilo.

¿me echáis un cable, porfa?

Pego el código:

En el index.php va esto...

Código: Seleccionar todo

function last_topics_on_index($limit = 10) {

    global $db, $template, $user, $auth;
    global $phpbb_root_path, $phpEx;

    $topics_ary = array(
        'SELECT' => 'f.*, t.*, u.username, u.user_colour',
        'FROM' => array(
            TOPICS_TABLE => 't',
        ),
        'LEFT_JOIN' => array(
            array(
                'FROM' => array(USERS_TABLE => 'u'),
                'ON' => 'u.user_id = t.topic_poster'
            ),
            array(
                'FROM' => array(FORUMS_TABLE => 'f'),
                'ON' => 't.forum_id = f.forum_id'
            ),
        ),
        'WHERE' => $db->sql_in_set('t.forum_id', array_keys($auth->acl_getf('f_read', true))) . '
        AND t.topic_status <> ' . ITEM_MOVED . '
        AND t.topic_approved = 1
        OR t.forum_id = 0', //OR t.forum_id = 0, esta linea es para que muestre tambien los globales ya que el id del foro de estos es 0
        'ORDER_BY' => 't.topic_id DESC',
    );

    $topics = $db->sql_build_query('SELECT', $topics_ary);

    $topics_result = $db->sql_query_limit($topics, $limit);

    while ($topics_row = $db->sql_fetchrow($topics_result)) {
        $forum_id = $topics_row['forum_id'];
        $topic_title = $topics_row['topic_title'];
        $topic_title = censor_text($topic_title);
        // add-on - number of replies on topic title
        $topic_replies = $topics_row['topic_replies'];
        $topic_replies = $topic_replies == 1 ? "(".$topics_row['topic_replies']." respuesta)" : "(".$topics_row['topic_replies']." respuestas)";
        $topic_replies = $topic_replies == '(0 respuestas)' ? '' : $topic_replies;
        $topic_author = get_username_string('full', $topics_row['topic_last_poster_id'], $topics_row['topic_first_poster_name'], $topics_row['topic_first_poster_colour']);
        $topic_date = $user->format_date($topics_row['topic_time']);
        $topic_link = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $topics_row['forum_id'] . '&t=' . $topics_row['topic_id']);

        $template->assign_block_vars('last_topics', array(
            'TOPIC_TITLE' => censor_text($topic_title),
            'TOPIC_AUTHOR' => $topic_author,
            'TOPIC_DATE' => $topic_date,
            'TOPIC_LINK' => $topic_link,
            'TOPIC_REPLIES' => $topic_replies,
        ));
    }
}

last_topics_on_index(10);// donde 10 es el número de mensajes a mostrar 


En el en el archivo sidebar del template va esto otro:

Código: Seleccionar todo

<!-- // inicio ultimos mensajes by Alorse -->
    <!-- IF not S_IS_BOT -->
    <div class="panel bg3">
        <div class="inner">
            <span class="corners-top"><span></span></span>
            <h3>&Uacute;ltimos mensajes</h3>
            <div class="content">
                <p>
                    <!-- BEGIN last_topics -->
                    <strong>{L_POST_SUBJECT}:</strong> <a href="{last_topics.TOPIC_LINK}">{last_topics.TOPIC_TITLE}</a> {last_topics.TOPIC_REPLIES}<br />
                    <strong>{L_AUTHOR}:</strong> {last_topics.TOPIC_AUTHOR}<br />
                    <strong>{L_FILEDATE}:</strong> {last_topics.TOPIC_DATE}<br /><br />
                    <!-- END last_post -->
                </p>
            </div>
            <span class="corners-bottom"><span></span></span>
        </div>
    </div>
    <!-- ENDIF -->
    <!-- // fin ultimos mensajes by Alorse -->

Me podríais decir qué cambiar para que salga como quiero?
Saludos

pacorro
Observador/a
Mensajes: 26
Registrado: 01 Ago 2014, 10:50

Re: barra lateral ultimos posts en mensajes

#7

Mensaje por pacorro »

ofrezco pagar una hora de curro al que me lo solucione.
Una barra lateral, que salgan los últimos post pero solamente una vez cada uno, con el número de respuestas al lado.
A ver si así, que llevo 3 meses con esto. Entiendo que vuestro tiempo os cuesta, así que si hace falta lo compenso con pasta.
Última edición por pacorro el 14 Oct 2014, 07:09, editado 2 veces en total.

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: barra lateral ultimos posts en mensajes  Tema Solucionado

#8

Mensaje por Alorse »

 ! 
Mensaje del Equipo por: Alorse
parroco me ha contactado por email solicitando ayuda directa, el tema ya fue solucionado.
Para resumir un poco lo hecho, lo primero es que para que aparezca en todo lugar el foro el código PHP no puede ser colocado en el index.php, sino en un archivo aparte y luego globalizarlo o ponerlo directamente en el includes/functions.php
Por otro lado ya no es recomendable usar el plugin que Mitch compartió hace unos años, esta desactualizado e incluye métodos como el create_where_clauses() que no son necesarios y solo ocupa espacio en los archivos.
Para logar que no se repitieran los temas en la barra fue necesario modificar la consulta SQL y así excluir los repetidos.

Cerrado

Volver a “Foros de Soporte 3.0.x”