Laatste forum berichten op homepage

Hulp nodig bij een modificaties of op zoek naar een MOD?
Forumregels

LEES: Richtlijnen voor Support. Vul de support template in!
phpBB3.0.x
Verschaf iemand geen servertoegang tenzij het niet anders kan. Maak altijd eerst een volledige backup en verander de inloggevens na afloop. Eigen risico.
Plaats reactie
gjhvs
Berichten: 17
Lid geworden op: 27 aug 2009, 07:28

Laatste forum berichten op homepage

Bericht door gjhvs » 01 sep 2009, 13:38

  • 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?
Laatst gewijzigd door Jim op 01 sep 2009, 15:35, 1 keer totaal gewijzigd.
Reden: Verplaatst naar Modificaties forum.

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Laatste forum berichten op homepage

Bericht door Ger » 01 sep 2009, 15:02

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;
?>
Laatst gewijzigd door Ger op 01 sep 2009, 15:09, 1 keer totaal gewijzigd.

gjhvs
Berichten: 17
Lid geworden op: 27 aug 2009, 07:28

Re: Laatste forum berichten op homepage

Bericht door gjhvs » 01 sep 2009, 15:04

Ger schreef: Ik zal eens kijken hoe ik dat bij mijn site ook alweer geregeld heb...
Hel graag! :)
Kom er zelf niet uit.

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Laatste forum berichten op homepage

Bericht door Ger » 01 sep 2009, 15:09

Oeps, je was er alweer snel bij. Heb mijn vorige bericht geëdit, zie aldaar.

gjhvs
Berichten: 17
Lid geworden op: 27 aug 2009, 07:28

Re: Laatste forum berichten op homepage

Bericht door gjhvs » 02 sep 2009, 10:02

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 :)

gjhvs
Berichten: 17
Lid geworden op: 27 aug 2009, 07:28

Re: Laatste forum berichten op homepage

Bericht door gjhvs » 02 sep 2009, 12:41

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?

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Laatste forum berichten op homepage

Bericht door Ger » 02 sep 2009, 13:03

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.

gjhvs
Berichten: 17
Lid geworden op: 27 aug 2009, 07:28

Re: Laatste forum berichten op homepage

Bericht door gjhvs » 02 sep 2009, 13:18

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

Gebruikersavatar
Ger
Berichten: 4864
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Laatste forum berichten op homepage

Bericht door Ger » 02 sep 2009, 14:17

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. :)

Plaats reactie