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

Statut
N'est pas ouverte pour d'autres réponses.

Carambar

Elite
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>
 
N

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
 
1er
OP
Carambar

Carambar

Elite
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 ;) ).
 

D0GMA

p0rn c4t
niafron a dit:
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

tu rates quelque chose mon garçon :cool:
 
N

niafron

ex membre
Fearless a dit:
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 ;) ).
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)
 
1er
OP
Carambar

Carambar

Elite
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
 

Tigrou

Touriste
Fearless a dit:
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 ;) ).
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... :-(
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut