Przedszkolak
Postów: 23 Ostrzeżeń: 3
v7.02.04 Data rejestracji: 28.03.2009 19:33
|
Witam
Otóż długo się naszukałem na forum i w necie, lecz nie znalazłem rzeczowej odpowiedzi na nurtujące mnie pytanie.
Zainstalowałem Fusion V6.00.03, następnie z niewielkimi problemami wtyczkę freundschaftssystem_1.0. Wszystko działa pięknie. W profilu wyświetlają się Avatary, pokazuje zaproszenia, można je przyjmować, odrzucać idt,itp...
Do linku "Poproś o dodanie do listy przyjaciół" udało mi się nawet podłączyć PW (ta też dochodzi bez problemu, a w panelu pokazuje się "Masz 1 nową wiadomość").
Problem pojawia się wówczas kiedy do treści owego PW : "Zapraszam Cię do mojej listy znajomych - user(nazwa usera)" próbuję podłączyć link.
W tej postaci wszystko działa:
Fragment pliku profile.php
if(isset($_GET['lookup'], $_GET['buddy'])){
$message = " Zapraszam Cię do listy moich przyjaciół ".$userdata['user_name']."</br></br>";
$result2 = dbquery("INSERT INTO ".$db_prefix."messages (message_to, message_from, message_subject, message_message, message_smileys, message_read, message_datestamp, message_folder) VALUES('$lookup','".$userdata['user_id']."',
'Zaproszenie do listy przyjaciół ','".$message."','0','0','".time()."','0')");
}
Po wstawieniu linku nie dochodzi PW:
Fragment pliku profile.php
if(isset($_GET['lookup'], $_GET['buddy'])){
$message = " Zapraszam Cię do listy moich przyjaciół <a href='link.php'> ".$userdata['user_name']."</a></br></br>";
$result2 = dbquery("INSERT INTO ".$db_prefix."messages (message_to, message_from, message_subject, message_message, message_smileys, message_read, message_datestamp, message_folder) VALUES('$lookup','".$userdata['user_id']."',
'Zaproszenie do listy przyjaciół ','".$message."','0','0','".time()."','0')");
}
Mój plik profile.php:
<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2006 Nick Jones
| http://www.php-fu...
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------*/
require_once "maincore.php";
require_once "subheader.php";
require_once "side_left.php";
include LOCALE.LOCALESET."members-profile.php";
include LOCALE.LOCALESET."user_fields.php";
if (!isset($group_id)) {
if (!isset($lookup) || !isNum($lookup)) fallback("index.php");
$result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_id='$lookup'");
if (dbrows($result)) { $data = dbarray($result); } else { redirect("index.php"); }
opentable($locale['420']);
echo "<table border='1' align='center' cellpadding='0' cellspacing='1' width='80%' class='tbl-border'>
<tr>
<td colspan='3'>
<table border='1' align='center' cellpadding='0' cellspacing='0' width='100%'>
<tr>
<td align='center' class='tbl2'>Użytkownik: <b><a href='".BASEDIR."profile.php?lookup=".$data['user_id']."'> ".$data['user_name']."</a></b></td>
<td align='left' class='tbl2'> Status: <b>".getuserlevel($data['user_level'])."</b></td>
<td align='center' class='tbl2'> </td>
</tr>
</table>
</td>
<tr>
<td align='center' width='30%' rowspan='5' class='tbl3'>\n";
echo ($data['user_avatar'] ? "<img src='".IMAGES."avatars/".$data['user_avatar']."' width='120' alt='".$locale['u017']."'>" : $locale['u046'])."
</td>
<td width='1%' class='tbl1' style='white-space:nowrap'><b>".$locale['u009']."</b></td>
<td class='tbl1'>".($data['user_location'] ? $data['user_location'] : $locale['u048'])."</td>
</tr>
<tr>
<td width='1%' class='tbl2' style='white-space:nowrap'><b>".$locale['u010']."</b></td>
<td class='tbl2'>";
if ($data['user_birthdate'] != "0000-00-00") {
$months = explode("|", $locale['months']);
$user_birthdate = explode("-", $data['user_birthdate']);
echo $months[number_format($user_birthdate['1'])]." ".number_format($user_birthdate['2'])." ".$user_birthdate['0'];
} else {
echo $locale['u048'];
}
echo "</td>
</tr>
<tr>
<td width='1%' class='tbl1' style='white-space:nowrap'><b>".$locale['u021']."</b></td>
<td class='tbl1'>".($data['user_aim'] ? $data['user_aim'] : $locale['u048'])."</td>
</tr>
<tr>
<td width='1%' class='tbl2' style='white-space:nowrap'><b>".$locale['u011']."</b></td>
<td class='tbl2'>".($data['user_icq'] ? $data['user_icq'] : $locale['u048'])."</td>
</tr>
<tr>
<td width='1%' class='tbl1' style='white-space:nowrap'><b>".$locale['u012']."</b></td>
<td class='tbl1'>".($data['user_msn'] ? $data['user_msn'] : $locale['u048'])."</td>
</tr>
<tr>
<td align='center' class='tbl1'>\n";
if ($data['user_hide_email'] != "1" || iADMIN) {
echo "[<a href='mailto:".str_replace("@","@",$data['user_email'])."' title='".str_replace("@","@",$data['user_email'])."'>".$locale['u051']."</a>]\n";
}
if ($data['user_web']) {
$urlprefix = !strstr($data['user_web'], "http://") ? "http://" : "";
echo "[<a href='".$urlprefix.$data['user_web']."' title='".$urlprefix.$data['user_web']."' target='_blank'>".$locale['u052']."</a>]\n";
}
if (!isset($userdata['user_id']) || $data['user_id'] != $userdata['user_id']) {
echo "[<a href='messages.php?msg_send=".$data['user_id']."' title='".$locale['u060']."'>".$locale['u053']."</a>]\n";
}
echo "</td>
<td width='1%' class='tbl2' style='white-space:nowrap'><b>".$locale['u013']."</b></td>
<td class='tbl2'>".($data['user_yahoo'] ? $data['user_yahoo'] : $locale['u048'])."</td>
</tr>
</table>\n";
tablebreak();
echo "<table align='center' cellpadding='0' cellspacing='1' width='400' class='tbl-border'>
<tr>
<td class='tbl2' colspan='2'><b>".$locale['422']."</b></td>
</tr>
<tr>
<td width='1%' class='tbl1' style='white-space:nowrap'><b>".$locale['u040']."</b></td>
<td class='tbl1'>".showdate("longdate", $data['user_joined'])."</td>
</tr>
<tr>
<td width='1%' class='tbl2' style='white-space:nowrap'><b>".$locale['u044']."</b></td>
<td class='tbl2'>".($data['user_lastvisit'] != 0 ? showdate("longdate", $data['user_lastvisit']) : $locale['u049'])."</td>
</tr>
<tr>
<td width='1%' class='tbl1' style='white-space:nowrap'><b>".$locale['u041']."</b></td>
<td class='tbl1'>".number_format(dbcount("(shout_id)", "shoutbox", "shout_name='".$data['user_id']."'"))."</td>
</tr>
<tr>
<td width='1%' class='tbl2' style='white-space:nowrap'><b>".$locale['u042']."</b></td>
<td class='tbl2'>".number_format(dbcount("(comment_id)", "comments", "comment_name='".$data['user_id']."'"))."</td>
</tr>
<tr>
<td width='1%' class='tbl1' style='white-space:nowrap'><b>".$locale['u043']."</b></td>
<td class='tbl1'>".number_format($data['user_posts'])."</td>
</tr>
</table>\n";
if ($data['user_groups']) {
tablebreak();
echo "<table align='center' cellpadding='0' cellspacing='1' width='400' class='tbl-border'>\n";
echo "<tr>\n<td class='tbl2'><b>".$locale['423']."</b></td>\n\n</tr>\n<tr>\n<td class='tbl1'>\n";
$user_groups = (strpos($data['user_groups'], ".") == 0 ? explode(".", substr($data['user_groups'], 1)) : explode(".", $data['user_groups']));
for ($i = 0;$i < count($user_groups);$i++) {
echo "<a href='".FUSION_SELF."?group_id=".$user_groups[$i]."'>".getgroupname($user_groups[$i])."</a>";
if ($i != (count($user_groups)-1)) { echo ",\n"; } else { echo "\n"; }
}
echo "</td>\n</tr>\n</table>\n";
}
} else {
if (!isNum($group_id)) fallback("index.php");
$result = dbquery("SELECT * FROM ".$db_prefix."user_groups WHERE group_id='$group_id'");
if (dbrows($result)) {
$data = dbarray($result);
$result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_groups REGEXP('^\\\.{$group_id}$|\\\.{$group_id}\\\.|\\\.{$group_id}$') ORDER BY user_level DESC, user_name");
opentable($locale['410']);
echo "<table align='center' cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>
<tr>
<td align='center' colspan='2' class='tbl1'><b>".$data['group_name']."</b> (".sprintf((dbrows($result)==1?$locale['411']:$locale['412']), dbrows($result)).")</td>
</tr>
<tr>
<td class='tbl2'><b>".$locale['401']."</b></td>
<td align='center' width='1%' class='tbl2' style='white-space:nowrap'><b>".$locale['402']."</b></td>
</tr>\n";
while ($data = dbarray($result)) {
$cell_color = ($i % 2 == 0 ? "tbl1" : "tbl2"); $i++;
echo "<tr>\n<td class='$cell_color'>\n<a href='profile.php?lookup=".$data['user_id']."'>".$data['user_name']."</a></td>\n";
echo "<td align='center' width='1%' class='$cell_color' style='white-space:nowrap'>".getuserlevel($data['user_level'])."</td>\n</tr>";
}
echo "</table>\n";
} else {
fallback(BASEDIR."index.php");
}
}
if ($userdata['user_id'] != $lookup AND $userdata['user_id'] != ''){
echo "<br>
<center>
<a href='profile.php?lookup=$lookup&buddy=I'>Popro¶ o dodanie do przyjaciół</a> | <a href='javascript:history.back()'>Wróć</a>
</center>
";
}
$datum = time();
if ($userdata['user_id'] != ""){
$result_from=dbquery("SELECT * FROM ".$db_prefix."buddys WHERE buddy_from = ".$userdata['user_id']." AND buddy_to = $lookup");
$data_from = dbarray($result_from);
}
if ($data_from['buddy_id'] == "" AND $buddy == "I"){
$result=dbquery("INSERT INTO ".$db_prefix."buddys (buddy_id, buddy_from, buddy_to, buddy_date, buddy_status) VALUES ('','".$userdata['user_id']."', '$lookup', '$datum', '1')");
if(isset($_GET['lookup'], $_GET['buddy'])){
$message = " Zapraszam Cię do listy moich przyjaciół <a href='link.php'> ".$userdata['user_name']."</a></br></br>";
$result2 = dbquery("INSERT INTO ".$db_prefix."messages (message_to, message_from, message_subject, message_message, message_smileys, message_read, message_datestamp, message_folder) VALUES('$lookup','".$userdata['user_id']."',
'Zaproszenie do listy przyjaciół ','".$message."','0','0','".time()."','0')");
}
fallback("profile.php?lookup=$lookup");
}
closetable();
opentable('Twoi znajomi');
$wynik = dbquery("SELECT tp.*, u.* FROM ".$db_prefix."buddys tp LEFT JOIN ".$db_prefix."users u ON tp.buddy_to =u.user_id WHERE buddy_from ='$lookup'");
$i = 0; echo "<img src='".THEME."images/bullet.gif' alt=''> Lista znajomych:<br>"; if(dbrows($wynik) > 0)
{ echo "
<table border='1' cellspacing='0' cellpadding='10' align='center' >
<tr>"; while($r = dbarray($wynik)) { echo ($i % 6 == 0 ? "</tr><tr>" : "");
echo "<td>";
if ($r['user_avatar'] != "") {
echo "<a href='".BASEDIR."profile.php?lookup=".$r['user_id']."'>
<img src='".IMAGES."avatars/".$r['user_avatar']."' width='80' hight='80' alt='".$data['user_name']."'></a>"; }
else { echo "<a href='".BASEDIR."profile.php?lookup=".$r['user_id']."'><img src='".IMAGES."imagenotfound.jpg' width='80' hight='80'></a>"; }
echo "<div class='pod'><a class='web' href='".BASEDIR."profile.php?lookup=".$r['user_id']."'>~ ".$r['user_name']."</a>"; echo "</div></td>"; $i++;}
echo "</tr></table>"; } else {echo "brak znajomych";}
closetable();
require_once "side_right.php";
require_once "footer.php";
?> Kliknij i zaczekaj na załadowanie kodu ...
Z góry dziękuje za pomoc
PW od moderatora:
- Przeniesienie tematu - Pieka 05.04 - 11:51
Edytowane przez Pieka dnia 05.04.2009 13:03:50
|
Przedszkolak
Postów: 23 Ostrzeżeń: 3
v7.02.04 Data rejestracji: 28.03.2009 19:33
|
O tym, że "target_blank" odpowiada za otwieranie strony w nowym oknie a "target_self" w obrębie serwisu - to wiem. Wiedzą to także Ci, którzy znają tylko podstawy html.
Rozwikłałem problem dzięki Pieka. Naprowadził mnie z tymi BBCode.
Wstawiając [url(nawias kwadratowy) link (nawias kwadratowy)/url] uruchamia się funkcja BBCode określona w manicore.php.
A tu wyraźnie stoi 4 x target_blank:
$text = preg_replace('#\[url\]([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\";\+]*?)([\r\n]*)\[/url\]#si', '<a href=\'\2\3\' target=\'_blank\'>\2\3</a>', $text);
$text = preg_replace('#\[url\]([\r\n]*)([^\s\'\";\+]*?)([\r\n]*)\[/url\]#si', '<a href=\'http://\2\' target=\'_blank\'>\2</a>', $text);
$text = preg_replace('#\[url=([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\";\+]*?)\](.*?)([\r\n]*)\[/url\]#si', '<a href=\'\2\3\' target=\'_blank\'>\4</a>', $text);
$text = preg_replace('#\[url=([\r\n]*)([^\s\'\";\+]*?)\](.*?)([\r\n]*)\[/url\]#si', '<a href=\'http://\2\' target=\'_blank\'>\3</a>', $text);
Bezpośrednio pod tym pozwoliłem sobie na dodanie dodatkowej funkcji: link
Wygląda ona tak:
$text = preg_replace('#\[link\]([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\";\+]*?)([\r\n]*)\[/link\]#si', '<a href=\'\2\3\' target=\'_self\'>\2\3</a>', $text);
$text = preg_replace('#\[link\]([\r\n]*)([^\s\'\";\+]*?)([\r\n]*)\[/link\]#si', '<a href=\'http://\2\' target=\'_self\'>\2</a>', $text);
$text = preg_replace('#\[link=([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\";\+]*?)\](.*?)([\r\n]*)\[/link\]#si', '<a href=\'\2\3\' target=\'_self\'>\4</a>', $text);
$text = preg_replace('#\[link=([\r\n]*)([^\s\'\";\+]*?)\](.*?)([\r\n]*)\[/link\]#si', '<a href=\'http://\2\' target=\'_self\'>\3</a>', $text);
Dzięki temu po kliknięciu w niżej zamieszczony link nie otwieram nowego okna a pozostaję w obrębie serwisu - problem rozwiązany.
Pytanie dodatkowe:
Co odpowiada za automatyczne wyświetlenie nazwy strony. (FUSION_SELF)?
Narazie mam tak i chcę podmienić te 127.00.01:
[link]127.00.01/infusions/freundschaftssystem_1.0/meine_freunde.php[/link]
Pomęczyłem się i znalazłem rozwiązanie:
- Aby w PW wyświetlić adres strony zamiast tego 127.00.01 (rozwiń powyższy dialekt)
należy wpisać to : $settings['siteurl']
Oto poprawiony kod:
[link]".$settings['siteurl']."".INFUSION."freundschaftssystem_1.0/meine_freunde.php[/link]
Edytowane przez luzak_4 dnia 09.05.2009 02:16:17
|