Script derniers messages du forum

Support et discussions sur les différentes téchniques de réécriture d'url (url rewriting) pour phpBB3 - Olympus.

Modérateur: Modérateurs

Script derniers messages du forum

Messagede Mrt91 » Ven Nov 20, 2009 2:50 pm

Bonjour,

J'ai installé phpBB SEO en mode Avancé - 0.6.0.

Mon besoin serait d'afficher les derniers messages du forum sur n'importe quelle page du site (pages statiques par exemple)
les url ont le format suivant forum/titre-forum/titre-sujet-txx.html

Qui peut m'aider ?

D'avance merci pour vos réponses.
Michaël
Mrt91
 
Messages: 6
Inscription: Jeu Nov 19, 2009 9:08 pm

Publicité

Re: Script derniers messages du furum

Messagede dcz » Lun Nov 23, 2009 9:50 am

Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21407
Inscription: Ven Avr 28, 2006 9:03 pm

Re: Script derniers messages du furum

Messagede Mrt91 » Lun Nov 23, 2009 11:04 am

Bonjour,

Merci pour votre réponse.
Je suis perdu avec ces deux liens car je ne sais pas ou je dois faire les modifications pour appliquer le patch phpbb SEO.

Voici mon code :
Code: Tout sélectionner
<?php
/*
* home.php
* Description: example file for displaying latest posts and topics
* by battye (for phpBB.com MOD Team)
* September 29, 2009
*/

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
/* create_where_clauses( int[] gen_id, String type )
* This function outputs an SQL WHERE statement for use when grabbing
* posts and topics */

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');
        }

    // Set $out_where to nothing, this will be used of the gen_id
    // size is empty, in other words "grab from anywhere" with
    // no restrictions
    $out_where = '';

    if( $size_gen_id > 0 )
    {
    // Get a list of all forums the user has permissions to read
    $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) )
                {
                        // Create an array with all acceptable topic ids
                        $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;
}
$search_limit = 5;

    $forum_id = '';
    $forum_id_where = create_where_clauses($forum_id, 'forum');

    $topic_id = '';
    $topic_id_where = create_where_clauses($topic_id, 'topic');
$posts_ary = array(
        'SELECT'    => 'p.*, t.*',
   
        'FROM'      => array(
            POSTS_TABLE     => 'p',
        ),
   
        'LEFT_JOIN' => array(
            array(
                'FROM'  => array(TOPICS_TABLE => 't'),
                'ON'    => 't.topic_first_post_id = p.post_id'
            )
        ),
   
        'WHERE'     => str_replace( array('WHERE ', 'forum_id'), array('', 't.forum_id'), $forum_id_where) . '
                        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_author       = get_username_string('full', $posts_row['topic_poster'], $posts_row['topic_first_poster_name'], $posts_row['topic_first_poster_colour']);
         $topic_date       = $user->format_date($posts_row['topic_time']);
         $topic_link       = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $posts_row['forum_id'] . '&amp;t=' . $posts_row['topic_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('announcements', array(
         'TOPIC_TITLE'       => censor_text($topic_title),
         'TOPIC_AUTHOR'       => $topic_author,
         'TOPIC_DATE'       => $topic_date,
         'TOPIC_LINK'       => $topic_link,
         'POST_TEXT'         => censor_text($post_text),
         ));
      }
?>


Je reçois un message d'information : A list of topics/forums has not been created

Help !
Michaël
Mrt91
 
Messages: 6
Inscription: Jeu Nov 19, 2009 9:08 pm

Re: Script derniers messages du furum

Messagede dcz » Lun Nov 23, 2009 12:11 pm

Le patch doit être appliqué dans le code donné sur le wiki de phpBB.com, à l'endroit ou tu le mets.
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21407
Inscription: Ven Avr 28, 2006 9:03 pm

Re: Script derniers messages du furum

Messagede Mrt91 » Lun Nov 23, 2009 12:44 pm

Merci, j'avais mal lu le message pour appliquer le patch.
J'ai vraiment du mal...
Je souhaiterai afficher les derniers messages du forum.
Il est dit By leaving the array "$forum_id" empty, it will mean there are no restrictions and it will take the latest posts/topics from the entire forum instead of any particular area.
Pourrais-tu me dire comment rendre cette variable vide ?
Dans l'exemple, il est positionné ainsi :
$forum_id = array(2, 5);
$forum_id_where = create_where_clauses($forum_id, 'forum');

$topic_id = array(20, 50);
$topic_id_where = create_where_clauses($topic_id, 'topic');
Mrt91
 
Messages: 6
Inscription: Jeu Nov 19, 2009 9:08 pm

Re: Script derniers messages du furum

Messagede dcz » Lun Nov 23, 2009 1:43 pm

Code: Tout sélectionner
$forum_id = 0;

ou
Code: Tout sélectionner
$forum_id = null;


je dirais.
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21407
Inscription: Ven Avr 28, 2006 9:03 pm

Re: Script derniers messages du forum

Messagede pavero » Lun Avr 12, 2010 4:58 pm

Salut

Aurait il moyen d'avoir un peut plus de détail sur le fonctionnement de ce principe , le patch va donner la colonne des 15 derniers sujets actifs http://www.phpbb-seo.com/ :?:

dcz a écrit:http://wiki.phpbb.com/Displaying_posts_and_topics_on_external_pages

Et puis le patch : http://www.phpbb-seo.com/en/advanced-se ... tml#p31409

++


Merci a bientôt
pavero
PR3
PR3
 
Messages: 304
Inscription: Dim Sep 02, 2007 11:57 am

Re: Script derniers messages du forum

Messagede pavero » Dim Jan 30, 2011 7:42 pm

pavero a écrit:Salut

Aurait il moyen d'avoir un peut plus de détail sur le fonctionnement de ce principe , le patch va donner la colonne des 15 derniers sujets actifs http://www.phpbb-seo.com/ :?:

dcz a écrit:http://wiki.phpbb.com/Displaying_posts_and_topics_on_external_pages

Et puis le patch : http://www.phpbb-seo.com/en/advanced-se ... tml#p31409

++


Merci a bientôt


Je remonte le sujet :?:

A bientot
pavero
PR3
PR3
 
Messages: 304
Inscription: Dim Sep 02, 2007 11:57 am

Re: Script derniers messages du forum

Messagede mt » Lun Déc 24, 2012 4:48 pm

Bonjour,
J'ai installé à la racine de mon forum un fichier home.php avec le code donné sur le wiki de phpBB.com https://wiki.phpbb.com/Displaying_posts ... rnal_pages puis le patch phpBBSEO
J'obtiens 2 erreurs php:
FILE: [ROOT]/includes/session.php
LINE: 1667
CALL: trigger_error()

FILE: [ROOT]/index.php
LINE: 26
CALL: user->setup()

Pour la première erreur à la ligne 1667 j'ai dans includes :
trigger_error('Could not get style data', E_USER_ERROR);

Pour le seconde erreur à la ligne 26 j'ai dans index :
$user->setup('viewforum');

Comment corriger ces 2 erreurs ?

Merci pour votre réponse
mt
PR0
PR0
 
Messages: 58
Inscription: Lun Fév 25, 2008 4:32 am


Retourner vers mod Rewrite phpBB

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités