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

MarX - 03-06-2005, 06:39

Przyłanczam się do pytania Gaw-a, da się wyciągnąć ankietę z phpbb ??? bardzo i to bardzo mi na tym zalezy ;)

Pozdrawiam...

KlonAdam - 08-07-2005, 20:43

probuję coś z tym zrobić ale nic mi nei wyświtala na stronie, co mozę być przyczyną tego ?? na stronę dodałem :
Kod:
<?php

$recent_topics_menu = '';
if ( $portal_config['value_recent_topics'] > 0 )
{
$sql = "SELECT * FROM ". FORUMS_TABLE . " WHERE forum_id=25 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 />';
}
 ?>

Anonymous - 09-07-2005, 15:47

Witam
zastosowalem na swojej stronie kod ktory byl podany na poczatku tego tematu. Wszystko fajnie sie wyswietla tylko zamiast litery ś wyswietlaja sie krzaczki. Czy ktos z Was wie moze jak sie tego pozbyc?

Pozdrawiam

Crack - 10-07-2005, 14:38

Na stronie musisz mieć takie samo kodowanie znaków jak na forum (znacznik META Content-Type w HEAD). Na 99% prawidłowe kodowanie to iso-8859-2.
KlonAdam - 10-07-2005, 17:37

a co z tymi newsami ??? wie ktoś ??
irekk - 10-07-2005, 19:56

KlonAdam, ty w tym swoim skrypcie nawet nie masz funckji laczacej z baza danych forum :| pozatym nawet nie zaincludeowales lang'a w ten sposob ci to nie pojdzie.
KlonAdam - 10-07-2005, 20:00

qbs napisał/a:
KlonAdam, ty w tym swoim skrypcie nawet nie masz funckji laczacej z baza danych forum :| pozatym nawet nie zaincludeowales lang'a w ten sposob ci to nie pojdzie.
ale to nie mój skrypt tylko skrypt z kilku postów wstecz, ja szukam porządnego skryptu który będzie działać, próbowałem wszystkich ale coś mi ni działają :D może byś zapodał prawidłowy ??? :D
irekk - 10-07-2005, 20:05

looknij w pierwszy post tamten powinien dzialac wkoncu przemo go pisal ;)
KlonAdam - 10-07-2005, 20:37

ale mi chodzi o newsy a nie o ostatnie tematy :D
art182 - 10-07-2005, 22:44

mam prosbe ...
czy mógłby ktos zapodac kod do wyświetlenia liczby gosci oraz nicków na stronie ?
czyli zeby wyswietlic kto jest online na oddzielnej stronie ...

( nie interesuje mnie mod js_online )

vegetagt - 10-07-2005, 22:46

art182, jutro bo dziś późno a ja siły nie mam. Jak coś wykombinuje jutro to podrzuce Ci kod

[ Dodano: 11-07-2005, 10:48 ]
choć kompletnie nie mam na to pomysłu.. ale popróbuje

[ Dodano: 11-07-2005, 11:30 ]
dobra... cośtam zrobiłem :D
masz tu prosty skrypcik który pokazuje m in ile zarejestrowanych userów przegląda forum. Na reszte nie mam pomysłu :(

http://szczury.info/skrypt.txt

jakby coś to między pierwszym <? a ?> wrzucamy na sam początek pliku w którym ma to być, a drugie <? i ?> w miejsce gdzie ma pisać ile userów itp

art182 - 11-07-2005, 10:54

dzieki za probe pomocy ale troche nie o to chodzilo ...
tzn. o to ale juz mam cos takiego ... mam własnie skrypt js_online ( przerobiony na php )
problem w tym ze nie pasuje on do forum przema ... pokazuje inną liczbe gosci niz na forum
bo jak mniemam w przemie nie zliczane sa sesje z tym samym ip a js_online liczy wszystkie ...
no i dlatego zawyzona liczba na stronie ....

Kod:
// ONLINE
$is_auth_ary = array();
$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);
// Get user list
$sql = "SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_level, u.user_rank, u.user_posts, s.session_logged_in, s.session_time, s.session_page, s.session_ip
    FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
    WHERE u.user_id = s.session_user_id
        AND s.session_time >= ".( time() - 300 ) . "
    ORDER BY u.user_level ASC, u.username ASC, s.session_ip ASC";
if ( !($result = $db->sql_query($sql)) )
{
    message_die(GENERAL_ERROR, 'Could not obtain regd user/online information', '', __LINE__, __FILE__, $sql);
}
$guest_users = 0;
$registered_users = 0;
$hidden_users = 0;
$online='';
$prev_ip = '';
while ( $row = $db->sql_fetchrow($result) )
{
    $view_online = false;
    if ( $row['session_logged_in'] )
    {
        $user_id = $row['user_id'];
        if ( $user_id != $prev_user )
        {
            $username = color_username($user_id,$row['username'],$row['user_rank'],$row['user_posts'],USERNAME_STATIC);
            if ( !$row['user_allow_viewonline'] )
            {
                $view_online = ( $userdata['user_level'] == ADMIN ) ? true : false;
                $hidden_users++;
                $username = '<i>' . $username . '</i>';
            }
            else
            {
                $view_online = true;
                $registered_users++;
            }
            $prev_user = $user_id;
        }
    }
    else
    {
        if ( $row['session_ip'] != $prev_ip )
        {   
            $guest_users++;
        }
    }
    if ( $view_online )
    {
           $online.= '&nbsp;&nbsp; <a href="'.append_sid($path."profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $user_id).'">'.$username.'</a><BR>';
    }
}

$all = $registered_users + $hidden_users + $guest_users;

// koniec phpbb



moze ktos umiałby cos tu zmienic / dorobic tak aby skrypt nie zliczał sesji z tym samym IP ...

medard - 15-08-2005, 15:22

zainstalowałem wszystkie pliki, a topics_anywhere nadal nie chodzi dlaczego ???????
tujek - 16-08-2005, 11:17

JAk nie?
http://www.ameryka.only.p...cs_anywhere.php

ematys - 19-08-2005, 06:57
Temat postu: Re: Jak umiescic informacje z forum na stronie glownej
Oto cytat Przema odnośnie dodawania modów do stron dodatkowych. Ale dla mnie to zamało!!!
Chciałbym skorzysać jeszcze z modów jakie są na stronie portal.php Takich jak Kto jest na forum, statsystyki, szybka rejestracja, dzisiaj (!), naj aktywniejsi, oraz loguj... Proszę o szybką pomoc...

Przemo napisał/a:
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



Powered by phpBB modified by Przemo © 2003 phpBB Group