Konwersje, przenoszenie, łączenie forów, integracje - Integracja ze stron? by Misiuu
Misiuu - 29-08-2009, 14:40 Temat postu: Integracja ze stroną by Misiuu Witajcie,
Przeszukiwałem całe forum i znalazłem kilka przydatnych skryptów do integracji forum i własnej strony www.
Więc tak ..
Logowanie się z poziomu Strony.
Jednocześnie na stronie jak i forum...
Cytat: | <?php
define('IN_PHPBB', true);
$phpbb_root_path = 'forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX, $session_length);
init_userprefs($userdata);
?>
<?php
//link pierwszy LOGIN
if( $userdata['session_logged_in'] )
{
//powitanie
echo '<center><b>Witaj '.$userdata['username'].'</b></center><br>';
//edytuj profil
echo ' | <A HREF="'.append_sid($phpbb_root_path.'profile.php?mode=editprofile').'">Edytuj profil</A><br>';
//kod odpowiadajšcy za prywatne wiadomosci
if ( ($userdata['session_logged_in']) && (empty($gen_simple_header)) )
{
if ( $userdata['user_new_privmsg'] )
{
$l_message_new = ( $userdata['user_new_privmsg'] == 1 ) ? $lang['New_pm'] : $lang['New_pms'];
$l_privmsgs_text = sprintf($l_message_new, $userdata['user_new_privmsg']);
if ( $userdata['user_last_privmsg'] > $userdata['user_lastvisit'] )
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_last_privmsg = " . $userdata['user_lastvisit'] . "
WHERE user_id = " . $userdata['user_id'];
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update private message new/read time for user', '', __LINE__, __FILE__, $sql);
}
$s_privmsg_new = 1;
$icon_pm = $images['pm_new_msg'];
}
else
{
$s_privmsg_new = 0;
$icon_pm = $images['pm_new_msg'];
}
}
else
{
$l_privmsgs_text = $lang['No_new_pm'];
$s_privmsg_new = 0;
$icon_pm = $images['pm_no_new_msg'];
}
if ( $userdata['user_unread_privmsg'] )
{
$l_message_unread = ( $userdata['user_unread_privmsg'] == 1 ) ? $lang['Unread_pm'] : $lang['Unread_pms'];
$l_privmsgs_text_unread = sprintf($l_message_unread, $userdata['user_unread_privmsg']);
}
else
{
$l_privmsgs_text_unread = $lang['No_unread_pm'];
}
}
else
{
$icon_pm = $images['pm_no_new_msg'];
$l_privmsgs_text = $lang['Login_check_pm'];
$l_privmsgs_text_unread = '';
$s_privmsg_new = 0;
}
//link Prywatne Wiadomoµci
echo ' | Prywatne wiadomości - <a href="'.append_sid("forum/privmsg.".$phpEx."?folder=inbox") . '" onclick="jump_to_inbox();return false;" target="_new">'.$userdata['user_new_privmsg'].'</a><br>';
//link wyloguj
echo ' | <a href="'.append_sid('forum/login.php?logout=true&redirect=
'.$redir.'&sid='.$userdata['session_id']).'">Wyloguj</a><br>';
}
//to wszystko jak jesteµmy zalogowani, pokazuje opcje
else
//to wszystko jak nie jesteµmy zalogowni, pokazujš sie formularze
{
echo '<center>
<form method="post" action="forum/login.php" STYLE="display: inline" name="login">
Login : <input width="100" height="16" type="text" name="username"><br>
Hasło : <input width="100" height="16" type="password" name="password"><br>
<input type="hidden" name="redirect" value="../">
<input type=hidden name=login value="login">
<input class="text" type="checkbox" name="autologin"> Zamiętaj mnie<br>
<input width="53" height="14" type="submit" value="Zaloguj"><br>
</form>';
//link zarejestruj
echo '<A HREF="'.append_sid($phpbb_root_path.'profile.php?mode=register').'" class=l>Rejestracja</a><br> ';
//link zapomniałem hasła
echo '<A HREF="'.append_sid($phpbb_root_path.'profile.php?mode=sendpassword').'" class=l>Zapomniałem hasła</a>';
}
?> |
Skrypt który pokazuje najnowsze tematy na Forum
Można ustawić ilość pokazywanych liter oraz ilość tematów...
Cytat: | <?
// informacje dotyczace bazy danych
$sql['host'] = 'localhost'; //host
$sql['login'] = 'Login do bazy danych'; //login do bazy
$sql['password'] = 'Hasło do bazy'; //haslo do bazy
$sql['db'] = 'Nazwa bazy danych'; //nazwa bazy danych
// polaczenie z baza danych
mysql_connect($sql['host'],$sql['login'],$sql['password']);
mysql_select_db($sql['db']);
// nazwa tabeli w ktorej znajduja się tematy
$tab['forum_topics'] = "phpbb_topics";
$limit['forum_topics'] = 10; // ilosc wyswietlanych tematow
$limit['forum_signs'] = 20; // dopuszczalna ilosc liter
$path['forum'] = "http://strona.pl/forum/"; // lokalizacja katalogu z forum (do linkow)
// zapytanie do bazy
$sql_query = "SELECT topic_id, topic_title FROM ".$tab['forum_topics']." ORDER BY topic_id DESC LIMIT ".$limit['forum_topics']."" or die ("Nie można wykonać zapytania");
$result = mysql_query($sql_query) or die ("Nie można wykonać wyniku");
// wyswietlanie rekordow
while($row = mysql_fetch_array($result))
{
$length = strlen($row['topic_title']); // sprawdzanie dlugosci tytulu
$row['topic_title'] = substr ($row['topic_title'], 0, $limit['forum_signs']); // obcinanie
?>
<stong>-</strong> <a href="<?php echo $path['forum']; ?>viewtopic.php?t=<?php echo $row['topic_id']; ?>"><?php echo $row['topic_title']; if($length > $limit['forum_signs']) { echo "..."; } ?></a><br>
<?
}
?> |
Skrypt pokazuje ilość zarejestrowanych osób ilość postów i tematów
Cytat: | <?php
$uchwyt=mysql_connect('Localhost','użytkownik','hasło')
or die('Nieudane połączenie z bazą danych...');
mysql_select_db('nazwa bazy danych')
or die('Nie udało się wybrać bazy danych...');
$post = mysql_num_rows(mysql_query("SELECT * FROM phpbb_posts") ); //posty
$topics = mysql_num_rows(mysql_query("SELECT * FROM phpbb_topics") ); //tematy
$user = mysql_num_rows(mysql_query("SELECT * FROM phpbb_users where `username`!='Anonymous'") ); //uzytkownicy
echo '<b>Zarejestrowanych jest '.$user.' <br>użytkowników,<br>napisali oni '.$post.' postów<br>a w tym '.$topics.' tematów.</b>';
?> |
Jeśli zrobiliśmy już logowanie z poziomu strony i chcemy zabezpieczyć jakąś podstronę tylko za zalogowanych
Cytat: | <?php
define('IN_PHPBB', true);
$phpbb_root_path = '../';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
if(!$userdata['session_logged_in'])
{
print"Nie jesteś zalogowany!";
}
else {
?>
TREŚĆ STRONY
<?php
};
?> |
Jeśli już mamy rozpoczętą sesję w tedy usuwamy
Cytat: | "include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);" |
A teraz jeśli chcemy żeby admin mógł wejść
Cytat: | <?php
define('IN_PHPBB', true);
$phpbb_root_path = '../';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
if($userdata['user_level'] != ADMIN)
{
print"Tylko dla adminow!";
}
else {
?>
TREŚĆ STRONY
<?php
};
?> |
Na razie to tyle jak znajdę jakieś nowe dodatki dam edit'a
No i Edit
Skrypt na "szukarkę"
Cytat: | <?php
@mysql_connect("localhost", "user", "password");
@mysql_select_db("nazwa bazy");
echo '<form action="http://www.twojastrona.pl/search.php?mode=results" method="post">
<input type="text" style="width: 100px" class="post" name="search_keywords" size="30" />
<input type="submit" class="button" value="Szukaj" /></form>';
?> |
How high - 03-09-2009, 15:59
Bardzo przydatne, ale napisze errate. Jeśli skrypt do nowych tematów wam wywala krzaka o bazie mysql usuncie ABSOLUTNIE pierwsze linijki z mysql. W ten sposób kod będzie się prezentował następująco:
Kod: | <?
// nazwa tabeli w ktorej znajduja się tematy
$tab['forum_topics'] = "phpbb_topics";
$limit['forum_topics'] = 10; // ilosc wyswietlanych tematow
$limit['forum_signs'] = 20; // dopuszczalna ilosc liter
$path['forum'] = "http://strona.pl/forum/"; // lokalizacja katalogu z forum (do linkow)
// zapytanie do bazy
$sql_query = "SELECT topic_id, topic_title FROM ".$tab['forum_topics']." ORDER BY topic_id DESC LIMIT ".$limit['forum_topics']."" or die ("Nie można wykonać zapytania");
$result = mysql_query($sql_query) or die ("Nie można wykonać wyniku");
// wyswietlanie rekordow
while($row = mysql_fetch_array($result))
{
$length = strlen($row['topic_title']); // sprawdzanie dlugosci tytulu
$row['topic_title'] = substr ($row['topic_title'], 0, $limit['forum_signs']); // obcinanie
?>
<stong>-</strong> <a href="<?php echo $path['forum']; ?>viewtopic.php?t=<?php echo $row['topic_id']; ?>"><?php echo $row['topic_title']; if($length > $limit['forum_signs']) { echo "..."; } ?></a><br>
<?
}
?> |
Dlaczego wywala ? Bo najwidoczniej macie już coś innego odwołującego się do bazy mysql.
Archon-Shigeru - 15-11-2009, 21:01
Wszystko jest w porządku jeśli forum jest w formacie http://strona.pl/forum/ . Nie mogę integrować strony głównej z forum jeśli jest ono w formacie http://forum.strona.pl.
Zmiana
Kod: | $phpbb_root_path = 'forum/'; |
na adres http://forum.strona.pl nie da rady.
Czy jest jakiś sposób, aby zintegrować stronę główną z forum w takim formacie? Jak to zrobić?
Misiuu - 13-12-2009, 15:13 Temat postu: ... Hmm subdomena powinna być zapisana na jakiś folder... czyli..
jak masz stronę to subdomena przypisana jest do folderu np. forum ..
inaczej...
główna domena zapisana jest do głównego katalogu np. strona.pl
a subdomena powinna być dopisana do jakiegoś podkatalogu w katalogu głównym czyli np. /forum
w tedy subdomena moze wyglądać tak forum.strona.pl jednak powinno tez działać jak wpiszesz strona.pl/forum/
znajdz do jakiego katalogu jest przypisana subdomena i powinno pomóc xD
Marecki - 30-04-2010, 13:19
Witam, mam pewne pytanie odnośnie tej integracji. A mianowicie czy to działa pod PHP-Fusion v7.00 ?
Misiuu - 27-06-2010, 17:47 Temat postu: .. Jest to integracja z własną stroną a nie do juz gotowych skryptów typu CMS
mkroszka1984 - 22-07-2010, 17:36
Witam.
A jak wygląda sprawa jak serwis jest na innym servie niż forum ?
Misiuu - 11-08-2012, 17:01
Skrypt Newsów na stronie
Cytat: | <?php
mysql_connect('host', 'user', 'password') or
die('Nie można się połączyć: ' . mysql_error());
mysql_select_db('nazwa bazy danych');
$result = mysql_query("SELECT bbcode_uid, post_time, user_id, username, b.post_id, post_subject, b.post_text
FROM phpbb_users, phpbb_posts AS a, phpbb_posts_text AS b, phpbb_topics AS t
WHERE poster_id = user_id AND a.forum_id = 1
AND a.post_id = b.post_id
AND a.post_id = t.topic_first_post_id
ORDER BY a.post_id DESC
LIMIT 3");
if(mysql_num_rows($result) > 0) {
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
while($row123 = mysql_fetch_assoc($result))
{
$bbcode_uid = $row123['bbcode_uid'];
if ( $bbcode_uid != '' )
{
$message = ($board_config['allow_bbcode']) ? bbencode_second_pass($row123['post_text'], $bbcode_uid,
$userdata['username']) : preg_replace("/\:$bbcode_uid/si", '', $row123['post_text']);
}
$time = date("d-m-Y H:i:s", $row123['post_time']);
echo nl2br('<h1><a href=forum/viewtopic.php?p='.$row123['post_id'].'>'.$row123['post_subject'].'</a></h1><code>Post napisany : <b>'.$time.'</b></code><p>'.$message.'</p><br><br>Post napisany przez:<font color=blue> <a href=forum/profile.php?mode=viewprofile&u='.$row123[user_id].'>'.$row123['username'].'</a></font>
<br><hr><br>');
}
}
?> |
Mamy tutaj skrypt wyświetlający newsy z danego forum na własnej stronie
Cyferka oznaczona kolorem czerwonym oznacza id forum, z tabeli phpbb_posts, takowy temat, możemy zablokować i tylko admini i moderatorzy mogą wpisywać nowe wiadomości które pojawią się na stronie głównej.
Zaś cyferka oznaczona kolorem czerwonym pokazuje ile newsów ma się pojawiać aktualnie na stronie.
echo nl2br sprawia, że enter traktowany jest jako <br> czyli modyfikując tekst wyświetlający trzeba pamiętać o tym by nie załamywać linii.
dziękuję mam nadzieję że komuś skrypt sie przyda.
|
|
|