Fetch All - Script d'affichage de forum sur page web

Discussion dans 'Web, design' créé par Carambar, 28 Janvier 2004.

Statut de la discussion:
Fermée.
  1. Offline
    Carambar He once forgot how to cry
    Voici un script que j'ai réalisé qui fonctionne grâce à Fetch All (fetch all est à placer dans ./mods dans le répertoire phpBB). Son but est d'afficher le contenu d'un forum sur une page web. En soi, c'est un moyen facile d'ajouter du contenu à son site à partir de phpBB.

    Je voudrais votre avis sur ce script et je voudrais aussi savoir s'il y a moyen de le réécrire autrement pour qu'il soit plus optimisé ou plus correcte.

    Exploration hierarchique de forums

    hierarchyexplore.php
    Code:
    <?php 
    $phpbb_root_path = './'; 
    
    define ('IN_PHPBB', true); 
    
    if (!file_exists($phpbb_root_path . 'extension.inc')) 
    { 
        die ('<tt><b>phpBB Fetch All:</b> 
              $phpbb_root_path is wrong and does not point to your forum.</tt>'); 
    } 
    
    // 
    // phpBB related files 
    // 
    
    include_once ($phpbb_root_path . 'extension.inc'); 
    include_once ($phpbb_root_path . 'common.' . $phpEx); 
    include_once ($phpbb_root_path . 'includes/bbcode.' . $phpEx); 
    
    // 
    // Fetch All related files - we do need all these because the portal is a 
    // huge example 
    // 
    
    include_once ($phpbb_root_path . 'mods/phpbb_fetch_all/common.' . $phpEx); 
    include_once ($phpbb_root_path . 'mods/phpbb_fetch_all/posts.' . $phpEx); 
    include_once ($phpbb_root_path . 'mods/phpbb_fetch_all/forums.' . $phpEx); 
    
    // 
    // start session management 
    // 
    
    $userdata = session_pagestart($user_ip, PAGE_INDEX, $session_length); 
    init_userprefs($userdata); 
    ?> 
    
    <html> 
    <head> 
    <title>phpBB Fetch All - Hierchical Forum Exploration</title> 
    </head> 
    
    <?php
    $listforums = $_GET['listforums'];
    ?> 
    
    <!-- FORUMS -->
    <? if(($listforums != null) AND ($_GET['listposts'] == null) AND ($_GET['listcontents'] == null)){
    	$forums = phpbb_fetch_forums($listforums);
    	if ($forums) { 
    		$last_cat = -1; 
    		for ($i = 0; $i < count($forums); $i++) { 
    			if ($last_cat != $forums[$i]['cat_id']) { 
                			$last_cat = $forums[$i]['cat_id']; 
    			}
    			?>
    			<a href="
    			<?php $CFG['auth_check'] = false;
    			echo '?listposts='.$forums[$i]['forum_id'];
    			$CFG['auth_check'] = true; ?>
    			"><?php echo $forums[$i]['forum_name']; ?></a><br /> 
    			<?
    		} 
    	}
    }
    ?> 
    <!-- FORUMS --> 
    
    <?php 
    $listposts = $_GET['listposts']; 
    ?> 
    
    <!-- POSTS -->
    <?php
    if(($listposts > 0) AND ($_GET['listcontents'] == null)){ 
    	// fetch postings 
    	$CFG['posts_limit'] = 0; 
    	$CFG['posts_trim_topic_number'] = 0; 
    	$CFG['posts_span_pages']        = false; 
    	$posts = phpbb_fetch_posts($listposts);
    	for ($i = 0; $i < count($posts); $i++) { ?>
    		<a href="
    		<?php $CFG['auth_check'] = false;
    		echo '?listcontents='.$posts[$i]['topic_id'];
    		$CFG['auth_check'] = true;?>
    		"><?php echo $posts[$i]['topic_title']; ?></a><br /> 
    		<?
    	}
    } ?> 
    <!-- POSTS --> 
    
    <?php
    $listcontents = $_GET['listcontents'];
    ?>
    
    <!-- POSTCONTENTS -->
    <?php if($listcontents > 0){
    	$topic = phpbb_fetch_topics($listcontents);
    	$CFG['auth_check'] = false;
    	echo $topic[0]['post_text'];
    	$CFG['auth_check'] = true;
    	$listcontents= null;
    }
    ?>
    <!-- POSTCONTENTS -->
    
    <?php
    //
    // disconnect from the database
    //
    
    phpbb_disconnect();
    
    ?>
    </body>
    </html>
    Carambar, 28 Janvier 2004
    #1
  2. Offline
    niafron ex membre
    connais pas phpbb et je ne veux pas le connaitre :D
    (je ne suis pas ouvert d esprit je c je c :'( )

    sinon ben heu rien a dire sauf que c une bonne idee
    niafron, 30 Janvier 2004
    #2
  3. Offline
    Carambar He once forgot how to cry
    Tu utilise quoi comme script de forum ? Invision ? Je posterais un exemple en ligne du script juste à titre d'exemple. Sinon, la page principal du site de mon clan est animé par Fetch All (phpNuke Outside ;) ).
    Carambar, 30 Janvier 2004
    #3
  4. Offline
    D0GMA p0rn c4t

    tu rates quelque chose mon garçon :cool:
    D0GMA, 30 Janvier 2004
    #4
  5. Offline
    niafron ex membre
    qd je devrais en utiliser je le ferais a la main (la je viens de cloturer un beau systeme de news, je c je reinvente la roue mais je prefere garder toutes les choses en mains)
    niafron, 30 Janvier 2004
    #5
  6. Offline
    Carambar He once forgot how to cry
    Ben, tu as peut être raison. J'ai suivi quelques discussions d'un auteur de mods phpBB francais et il affirme qu'il y a beaucoup de code inutile. On se demande à quoi ca sert :p .

    Soit, voici une démo de ce script :

    http://www.clan-uk.com/smiley/explore.php
    Carambar, 1 Février 2004
    #6
  7. Offline
    Tigrou Touriste
    Voila le code que j utilise pour invision board, ca permet d afficher en page principale les derniers posts du forum. Il est denude de toute mise en page speciale comme ca tu pourras l ajuster a ton site

    Code:
    <?php
    // Please fill in the following values //
    
    $ibf_sql_host = "host";
    $ibf_sql_user = "user";       // DB username
    $ibf_sql_password = "pass";   // DB password
    $ibf_sql_dbname = "db_name";     // DB name
    $ibf_path = "path/index.php";      // (path to your IBF's index.php FROM ROOT)
    $ibf_table_prefix = "ibf_";   // you may change ibf_ to match the rest of the table names
    $limit = "10";                // How many topics would you like to display?
    
    
    $ibf_connect = mysql_connect($ibf_sql_host, $ibf_sql_user, $ibf_sql_password);
    if(!$ibf_connect)
    {
    $content .= "<div style=\"font-color:#ff0000; font-weight:bold;\">Error: Could not connect to database server</div>";
    }
    else
    {
    $ibf_db = mysql_select_db($ibf_sql_dbname, $ibf_connect);
    if(!ibf_db)
    {
     $content .= "<div style=\"color:#ff0000; font-weight:bold;\">Error: Could not select database</div>";
    }
    else
    {
     $ibf_query = mysql_query("SELECT DISTINCT tid, title, last_poster_name, last_poster_id, forum_id FROM ".$ibf_table_prefix."topics ORDER BY last_post DESC LIMIT ".$limit, $ibf_connect);
     if(!$ibf_query)
     {
      $content .= "<div style=\"color:#ff0000; font-weight:bold;\">Error: Could not execute query</div>";
     }
     else
     {
      while($ibf_result = mysql_fetch_row($ibf_query) )
      {
    
                                  $content .= "<br><b><a href=\"/".$ibf_path."?act=ST&f=".$ibf_result[4]."&t=".$ibf_result[0]."&view=getnewpost\">".$ibf_result[1]."</a></b> <i>by ";
       if($ibf_result[3] != 0)
       {
        $content .= "<a href=\"".$ibf_path."?act=Profile&CODE=03&MID=".$ibf_result[3]."\">".$ibf_result[2]."</a></i>\n";
       }
       else
       {
        $content .= $ibf_result[2]."</i></p>\n";
       }
    
      }
      mysql_free_result($ibf_query);
     }
    
    }
    mysql_close($ibf_connect);
    }
    
    
    ?>
    Pour ce qui est de phpbb c est vrai qu il est bien de part sa facilite et du nombre de mods disponnible etc ... mais il est egalement vrai qu il est assez lourd pour un serveur. Il commence a se faire un peu vieux et le nombre de requete sql par page est un peu exagéré, d ailleurs certains hebergeurs previennent leurs utilisateurs de ce probleme... :-(
    Tigrou, 17 Février 2004
    #7
  8. Offline
    zoheir cvm.mangaleet()
    ah ouais pas mal !
    zoheir, 17 Février 2004
    #8
Statut de la discussion:
Fermée.