To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

Mod. Gotowe < [ 1.9.5 ] - Jak umiescic informacje z forum na stronie glownej

Przemo - 28-10-2003, 18:39
Temat postu: Jak umiescic informacje z forum na stronie glownej
Jezeli forum jest dodatkiem do strony glownej a chcemy na niej dac jakies informacje z forum, to musimy stworzyc plik *.php ktory bedzie wygladal tak:
Kod:
<?php

// Definiujemy ze ta strona nalezy do forum
// Osoby przegladajace ta strone beda akceptowane przez forum jako osoby ktore sa na forum
define('IN_PHPBB', true);

$phpbb_root_path = './forum/';
// Tutaj podajemy katalog forum w tym przypadku mamy katalog np. "strona"
// w nim plik w ktorym wklejamy ten kod a forum mamy w katalogu "forum"

include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);



//----- Poczatek modulu 1
// Pobieramy licznk wizyt z forum (wartosc pojedyncza)

// Ponizej podajemy nazwe tabeli
// w tym przypadku jest to: "config" (phpbb_config przedrostek jest wykrywany samoczynnie)
$sql = "SELECT * FROM " . $table_prefix . "config

WHERE config_name = 'visitors'";
// Powyzej podajemy ktore pole chcemy odczytac w tym przypadku "visitors" z kolumny "config_name" licznik wejsc

if ( !($result = $db->sql_query($sql)) )
{
    message_die(GENERAL_ERROR, 'Blad odczytu pola', $sql);
}
$get_sql = $db->sql_fetchrow($result);


$wynik = $get_sql['config_value'];
// Odczyt wartosci z kolumny "config_value"
echo "$wynik";

//----- Koniec modulu 1



//----- Poczatek modulu 2
// Pobieramy liste 10-ciu ostatnich tematow napisanych na forum (wiele wartosci wiec zrobimy petle)
// Uwaga, pokaze tez tematy z ukrytych for.

$ilosc_tematow = '10';

// Ponizej podajemy nazwe tabeli
// w tym przypadku jest to: "topics" (phpbb_topics przedrostek jest wykrywany samoczynnie)
$sql = "SELECT topic_title FROM " . $table_prefix . "topics
    ORDER BY topic_time DESC
    LIMIT $ilosc_tematow";
if ( !($result = $db->sql_query($sql)) )
{
    message_die(GENERAL_ERROR, 'Blad odczytu pola2', $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
    $i = 0;
    do
    {
        $wynik = $row['topic_title'];
        echo "<br>$wynik<br>";
        // Wyswietlamy wynik $i razy
        $i++;
    }
    while ( $row = $db->sql_fetchrow($result) );
}
// Dodatkowo jezeli chcieli bysmy zeby tytuly tematow byly linkami do tematow to musimy:
// 1. zamienic: SELECT topic_title na: SELECT topic_title, topic_id
// 2. zamienic: echo "<br>$wynik<br>"; na: echo "<br><a href=\"http://adres.forum.pl/viewtopic.php?t=$row[topic_id]\">$wynik</a><br>";

//----- Koniec modulu 2

?>
Przed znakiem <?php i za znakiem ?> może byc kod html reszty strony. a w: echo"tych miejscach tez może byc dowolny kod html ale " musimy zamienic na \" koniec";
Tym sposobem możemy umiescic na stronie dowolne informacje z forum

koptus - 30-10-2003, 16:40

Kurde ja nic z tego nie czaje. Może mi ktoś to dobrze wytłumaczy??
koptus - 02-11-2003, 09:36

To co pomoże mi ktoś wgrać ten mod?
McBoss - 02-11-2003, 10:31

czego nierozumiesz? :?
uspokoj sie, przeczytaj dwa razy to co Przemo napisal to zrozumiesz, przeciez w jezyku polskim jest napisane...

Kreator - 02-11-2003, 19:14

Witam serdecznie.
Jedno pytanko, chociaz nie wiem czy nie będzie więcej :)
Mam jednak nadzieję, że jakoś dalej to poleci.
Jeżeli forum jest na tym samym serwerze co strona, jednak na innym koncie.
To jak odnie?? sie do katalogu w którym znajduje sie forum.
By? może to proste, jednak prosićbym o wyjasnienie.

Przemo - 02-11-2003, 19:23

hehe co chcialo by sie hackowac kolege? :) Jest taka mozliwosc ale nie wszedzie to zadzaiala, na lepszych serwerach nie da sie hackowac i jezeli jest tak:
/home/stronywww/userzy/przemo
/home/stronywww/userzy/tomek/forum
ja mam w katalogu przemo ten plik to podaje sciezke $phpbb_root_path = '../tomek/forum/';
Przez ftp jezt blokada wyjscie z glownego katalogu natomiast "gorsze" serwery nie blokuja serwera www zeby wychodzil katalog wyzej i wtedy bedzie taka mozliwosc

Dzievmin - 04-11-2003, 12:49

Witam
To nie o hakowanie idzie Kreator to mój przyjaciel faktycznie mamy dwa konta a chcemy zintegrowa? stroną z forum. Na stronce są już skiny kolorystycznie dobrane do tych z forum a taki bajer to byłoby co?...
Pozdrawiam
Dziev

LeX - 03-01-2004, 07:21

Jeżeli jesteście w tej samej grupie userów, to wystarczy plikom dać atrybuty odczytu dla osób z grupy. Wtedy include powinno zadziałał bezproblemowo ;)
uOkO - 03-01-2004, 11:55

Hmm.... Wybaczcie za głupie pytanie, ale...

Czy do umieszczania informacji z forum na stronce (news i ostatnie tematy) konieczna jest modyfikacja Przema?
Problem w tym że mam cienkiego serva i co chwila co? wysiada (nie mówięc już o czasie generowania - czasami nawet 80 sek)... ^^

Pozdrawiam.

LeX - 04-01-2004, 22:11

Nie, do tego nie trzeba modyfikacji Przema. Takie pliki znaleźć możesz na stronie www.phpbb2.pl
1UNAtic - 08-03-2004, 20:53

a chce dowalic takei same okno ja w smartorze 'ostatnie tematy'
z tym ze by pobieral tematy tylko z jednego forum ?
jak to zrobic ?

chce dodoac modul do portalu

azazello - 09-03-2004, 12:15

a może można by to udoskonali? tak by wyswietlane tematy byly linkie do danego tematu, a jeszcze lepiej do ostatniego posta w tym temacie . :wink:
1UNAtic - 09-03-2004, 19:18

Kod:

$recent_topics_menu = '';
if ( $portal_config['value_recent_topics'] > 0 )
{
    $sql = "SELECT * FROM ". FORUMS_TABLE . " ORDER BY forum_id";
    if (!$result = $db->sql_query($sql))
    {
        message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
    }
    $forum_data = array();
    while( $row = $db->sql_fetchrow($result) )
    {
        $forum_data[] = $row;
    }

    $is_auth_ary = array();
    $is_auth_ary = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata, $forum_data);

    $except_forum_id = ( $portal_config['except_forum'] == '' ) ? '\'start\'' : $portal_config['except_forum'];
    for ($i = 0; $i < count($forum_data); $i++)
    {
        if ((!$is_auth_ary[$forum_data[$i]['forum_id']]['auth_read']) or (!$is_auth_ary[$forum_data[$i]['forum_id']]['auth_view']))
        {
            if ($except_forum_id == '\'start\'')
            {
                $except_forum_id = $forum_data[$i]['forum_id'];
            }
            else
            {
                $except_forum_id .= ',' . $forum_data[$i]['forum_id'];
            }
        }
    }

    $sql = "SELECT topic_id, topic_title
            FROM " . TOPICS_TABLE . "
            WHERE forum_id NOT IN (" . $except_forum_id . ")
                AND topic_status <> 2
            ORDER BY topic_time DESC
            LIMIT " . $portal_config['value_recent_topics'] . "";
    if (!$result = $db->sql_query($sql))
    {
        message_die(GENERAL_ERROR, 'Could not query recent topics information', '', __LINE__, __FILE__, $sql);
    }

    $recent_topic_row = array();
    if ( $portal_config['scroll_recent_topics'] )
    {
        $recent_topics_menu = '<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline"><tr><td align="'.$portal_config['recent_topics_a'].'" class="catHead" height="25"><span class="genmed"><b>' .$lang['Recent_topics']. '</b></span></td></tr><tr><td class="row1"><span align="right"class="gensmall"><marquee id="recent_topics" behavior="scroll" direction="up" height="200" scrolldelay="100" scrollamount="2">';
        while ($row = $db->sql_fetchrow($result))
        {
            $recent_topics_menu .= '&raquo; <a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $row['topic_id']) . '" " class="mainmenu" onMouseOver="document.all.recent_topics.stop()" onMouseOut="document.all.recent_topics.start()">' . $row['topic_title'] . '</a><br /><br />';
        }
    }
    else
    {
        $recent_topics_menu = '<table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline"><tr><td align="'.$portal_config['recent_topics_a'].'" class="catHead" height="25"><span class="genmed"><b>' .$lang['Recent_topics']. '</b></span></td></tr>';
        while ($row = $db->sql_fetchrow($result))
        {
            $recent_topic_row[] = $row;
            $recent_topics_menu .= '<tr><td class="row1" align="' . $portal_config['recent_topics_a'] . '"><span class="gensmall">&raquo; <a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $row['topic_id']) . '" " class="mainmenu">' . $row['topic_title'] . '</a></span></td></tr>';
        }
    }
    $recent_topics_menu .= '</marquee></span></td></tr></table><br />';
}


i jak to teraz zmienic [ albo co ]
by pokazywal dane tylko z 1 forum ?

Przemo - 09-03-2004, 19:56

$sql = "SELECT * FROM ". FORUMS_TABLE . " ORDER BY forum_id";
zamien na:
$sql = "SELECT * FROM ". FORUMS_TABLE . " WHERE forum_id=9 ORDER BY forum_id";
9 to ID forum

1UNAtic - 09-03-2004, 22:22

juz sobie z tym poradzilem ale
ezportal jest troche zmodyfikowany
chodzi mi o to ze nie jest to ciagla skladnia tylko podzial na moduly
i pytanie gdzie znajde .tpl portalu bo gdzies musze dodac to nowe okno :]



Powered by phpBB modified by Przemo © 2003 phpBB Group