Pagina 1 van 1
Laatste forum berichten op homepage
Geplaatst: 01 sep 2009, 13:38
door gjhvs
- Adres van je forum: http://www.madonna.nl/site/forum/
Event. modificaties op je forum:
Wanneer ontstond het probleem?
phpBB versie: 3.0.5
Heb je onlangs iets veranderd aan je forum? nee
Wat is het probleem?
Ik heb een Joomla site en gebruik PHPbb3 met een bridge. Werkt toppie
Ik heb een php scriptje gevonden zodat ik de laatste berichten van het forum om mijn homepage kan weer geven. Zie hier het scriptje:
Code: Selecteer alles
<?php
// Aanpassen!!!
$forum_locatie = '../forum/'; // De map waar je forum staat (bijvoorbeeld de map forum 'forum/')
include $forum_locatie . 'config.php';
$connection = mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Connection failed');
mysql_select_db($dbname, $connection) or die('Selecting database failed');
unset($dbpasswd); // Just to be safe
$query = "SELECT t.topic_id, t.forum_id, p.post_subject
FROM {$table_prefix}topics t,
{$table_prefix}posts p
WHERE t.topic_id = p.topic_id
ORDER BY p.post_id DESC
LIMIT 10";
$result = mysql_query($query, $connection) or die('Query failed');
$topics = array();
while ($data = mysql_fetch_assoc($result))
{
if (!in_array($data['topic_id'], $topics))
{
$topics[] = $data['topic_id'];
$data['post_subject'] = str_replace('Re: ', '', $data['post_subject']);
echo '<font class="normaltext"><a target="_top" href="../forum/viewtopic.php?f=' . $data['forum_id'] . '&t=' . $data['topic_id'] . '&view=unread#unread">' . $data['post_subject'] . '</a></font><br>';
}
}
mysql_free_result($result);
?>
Wij als team van de site hebben ook een apart gedeelte en deze topics verschijnen er dan ook bij. Dat wil ik niet.. Leden hoeven onze berichten niet op de homepage te zien. Ik zou willen aangeven dat een bepaald aantal forum gevuld moeten worden bij de 10 berichten. Is dat mogelijk? Weet iemand dat?
Re: Laatste forum berichten op homepage
Geplaatst: 01 sep 2009, 15:02
door Ger
Je zou even een check op autorisatie moeten toevoegen aan het script. Dan krijg je alleen de berichten te zien waar de bekijker voor gemachtigd is. Ben je niet ingelogd, dan krijg je dus alleen de berichten te zien waarvoor gasten gemachtigd zijn.
Ik zal eens kijken hoe ik dat bij mijn site ook alweer geregeld heb...
Edit: gevonden. Onderstaand script kun je in principe gebruiken, wel ff je eigen gegevens invullen natuurlijk.
Code: Selecteer alles
<?php
/*****************************************************************************************************************
* Dit script wordt gebruikt voor de linkerzijbalk van de hoofdpagina op Sword Facts Benelux (www.swordfactsbenelux.nl),
* Het haalt gegevens op uit de phpBB database (inloggen, laatste topics, autorisatie) en schrijft
* echoot dat.
* Wat je met de echo doet moet je zelf bepalen, is afhankelijk van je verdere systeem
* Controleer ook even de root_path en dingen als styledefinities, die zijn nu gebaseerd op die van SFB.
* Bezoek ook eens www.swordfactsbenelux.nl en www.addednotes.com!
*****************************************************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : 'forums/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start sessie management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
// Header problemen voorkomen
$echo = "<?php
header('Content-Type: text/html; charset=utf-8');
header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
?>
";
if($user->data['is_registered']) {
$echo = $echo. '<div id="login">';
$echo = $echo. "<h3>Welkom " . $user->data['username']."</h3>"; //let op extra spatie
$echo = $echo. ' (<a href="#" onClick="load(\''.$phpbb_root_path .'ucp.php?mode=logout&sid='.$user->data['session_id'].'\', \'none\'); window.location.reload();">Uitloggen</a>)';
if($auth->acl_get('f_read', 15)){
$echo = $echo. '<div style="margin-top: 10px;"><p><a href="manager/index.php" class="managerlink">Manager</a></p></div>';
}
$echo = $echo.'</div>';
}
else{
$echo = $echo. '<div id="login"><h3>Inloggen op het forum:</h3><br />
<form method="post" action="'.$phpbb_root_path .'ucp.php?mode=login">
<p>Gebruikersnaam: <input type="text" name="username" size="14" /><br />
Wachtwoord: <input type="password" name="password" size="14" /><br />
Onthouden?: <input type="checkbox" name="autologin" /><br />
<input type="submit" class="btnmain" value="Inloggen" name="login" /></p>
<p><input type="hidden" name="redirect" value="index.php" /></p>
</form>
</div>';
}
//Nieuwste topics
// Instellen aantal topics en permissies
$topic_limit = request_var('topic_limit', 5);
$forums = array_unique(array_keys($auth->acl_getf('f_read', true)));
// Ophalen gegevens
$sql = 'SELECT t.topic_id, t.forum_id, t.topic_title, t.topic_time, u.username
FROM ' . TOPICS_TABLE . ' t , ' . USERS_TABLE . ' u
WHERE topic_approved = 1
AND ' . $db->sql_in_set('forum_id', $forums) . '
AND u.user_id = t.topic_poster
ORDER BY topic_time DESC
LIMIT 0,' . $topic_limit;
$result = $db->sql_query($sql);
// uitprinten op scherm
$echo = $echo. '<div id="topiclijst"><hr />
<h3>Recente topics</h3><br />
<ul class="lt">';
while ($row = $db->sql_fetchrow($result)) {
$url = generate_board_url() . "/viewtopic.{$phpEx}?f={$row['forum_id']}&t={$row['topic_id']}&view=unread#unread";
$echo = $echo. '<li class="lt"><a href="' . $url . '">' . $row['topic_title'] . '</a> </li>';
}
$echo = $echo. '</ul>
</div>';
//Stats
$total_users = $config['num_users'];
$newest_user_id = $config['newest_user_id'];
$newest_username = $config['newest_username'];
$newest_user = '<a href="/forums/memberlist.php?mode=viewprofile&u='. $newest_user_id.'" style="color:#000000;">'.$newest_username.'</a>';
$whosonline = obtain_users_online_string($online_users);
$aantal_online_users = $online_users;
$onlinearray = obtain_users_online();
$onusers = $onlinearray[online_users];
$echo = $echo. '<div id="stats"><hr />
<h3>Statistieken</h3><br />
<p>Er zijn '.$onlinearray[visible_online].' geregistreerde gebruikers online.<br />
<a href="/forums/viewonline.php" style="color:#000000; font-weight: normal; text-decoration: underline">Online gebruikers</a>:</p>
<ul class="stats">';
foreach ($onusers as $userid) {
$sql = 'SELECT `username`, `user_colour` , `user_id`
FROM ' . USERS_TABLE . '
WHERE user_id ='.$userid;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
if ($row[user_colour]!= "9E8DA7" ){
$echo = $echo. '<li><a href="/forums/memberlist.php?mode=viewprofile&u='.$row[user_id].'"><span style="color:#'.$row[user_colour].';">' . $row[username] . '</span></a></li>';
}
else {
$echo = $echo. '<li><span style="color:#'.$row[user_colour].';">' . $row[username] . '</span></li>';
}
}
$echo = $echo. '</ul>
<p>Totaal aantal leden: ' . $total_users. ' <br />
Ons nieuwste lid is <br /> '.$newest_user.'</p></div>';
echo $echo;
?>
Re: Laatste forum berichten op homepage
Geplaatst: 01 sep 2009, 15:04
door gjhvs
Ger schreef:
Ik zal eens kijken hoe ik dat bij mijn site ook alweer geregeld heb...
Hel graag!

Kom er zelf niet uit.
Re: Laatste forum berichten op homepage
Geplaatst: 01 sep 2009, 15:09
door Ger
Oeps, je was er alweer snel bij. Heb mijn vorige bericht geëdit, zie aldaar.
Re: Laatste forum berichten op homepage
Geplaatst: 02 sep 2009, 10:02
door gjhvs
Ger schreef:Oeps, je was er alweer snel bij. Heb mijn vorige bericht geëdit, zie aldaar.
Super!
Ik ga er mee aan de slag en laat je zeker even weten of het werkt

Re: Laatste forum berichten op homepage
Geplaatst: 02 sep 2009, 12:41
door gjhvs
Het werkt volgens mij!
Alleen... hij laat de laatste 10 topics zien...
Dus als er in een ouder topic gereageerd is zie je dat niet..
Dat zou ik dus liever willen...
De laatste 10 reacties laten zien...
Weet je hoe de code er dan uit moet zien?
Re: Laatste forum berichten op homepage
Geplaatst: 02 sep 2009, 13:03
door Ger
Bij het ophalen van de gegevens zul je het een en ander moeten aanpassen, ik denk dat het er dan zo uit moet zien:
Code: Selecteer alles
//Ophalen gegevens
$sql = 'SELECT p.post_id, p.topic_id, p.forum_id, p.post_subject, p.post_time, u.username
FROM ' . POSTS_TABLE . ' p , ' . USERS_TABLE . ' u
WHERE post_approved = 1
AND ' . $db->sql_in_set('forum_id', $forums) . '
AND u.user_id = p.poster_id
ORDER BY post_time DESC
LIMIT 0,' . $topic_limit;
$result = $db->sql_query($sql);
Dat zal er wel in resulteren dat als er bij de laatste 10 posts meerdere posts in hetzelfde topic gemaakt zijn, dit topic 2x te zien is in de recente topics-lijst. Zelf vind ik dat een beetje storend, maar als je dat niet erg vind, zou dit een goede oplossing zijn denk ik.
Re: Laatste forum berichten op homepage
Geplaatst: 02 sep 2009, 13:18
door gjhvs
Aha... nee dat vind ik ook niet zo mooi...
Danlaat ik het lekker zo want het werkt

THANKS!
Ik zou alleen nog graag ook de verjaardagen op de homepage willen... (hih je bent niet zo van me af

)
Weet jij daar ook nog iets voor?
Alvast bedankt! Gr's
Re: Laatste forum berichten op homepage
Geplaatst: 02 sep 2009, 14:17
door Ger
Pfoei, verjaardagen ben ik nooit ingedoken, dus daar weet ik ook zo gauw niets over. Zou ik echt in moeten duiken, en tussen ons (en de rest die dit leest

): daar heb ik nu geen zin in. Maar er zijn hier zat andere mensen met verstand van zaken.
