رد: طريقة اظهار عنوان الموضوع عند وضع الروابط من نفس المنتدى
الطريقة
تذهب الى المجلد includes
داخل المجلد ابحث عن الملف ..functions_bbcodeparse.p hp
خذ نسخة من هذا الملف لان نريد ان نعدل عليه
افتح الملف للتعديل
ابحث عن
كود:
function handle_bbcode_url($text, $link, $type = 'url')
{
global $wysiwygparse;
استبدله بالكود التالى
كود:
function handle_bbcode_url($text, $link, $type = 'url')
{
global $wysiwygparse, $DB_site, $vboptions, $bbuserinfo;
ثم ابحث عن
كود:
$rightlink = strip_smilies(str_replace('\\"', '"', $rightlink));
$rightlink = str_replace('"', '"', $rightlink);
اضف بعده مباشرة الكود التالى
كود:
$local_links = preg_replace ("~http://(www.|)~i", "", $vboptions["bburl"]);
if (preg_match("~".$local_links."[^ ]+\.php\?~",$rightlink)) {
$rightlink = preg_replace (array("~[^ ]*/([a-z]+\.php[^ ]*)~i", "~forumid~i", "~threadid~i", "~postid~i"), array("\\1", "f", "t", "p"), $rightlink);
$rtext = $rightlink;
if (preg_match("~showthread\.php|printthread\.php~", $rightlink)) {
if (preg_match("~[^a-z]p=([0-9]+)~", $rightlink, $num)) {
$check_post = $DB_site->query_first("SELECT post.postid,thread.forumid,thread.title FROM " . TABLE_PREFIX . "post AS post LEFT JOIN " . TABLE_PREFIX . "thread AS thread ON thread.threadid = post.threadid WHERE post.postid = ". intval($num[1]));
if (is_array($check_post)) {
$forumperms = fetch_permissions($check_post["forumid"]);
if (!($forumperms & CANVIEW)) {
return "<b>غير مصرح بظهور العنوان</b>";
} else {
$rtext = "-*".$check_post["title"]."*-";
}
} else {
return "<b>مشاركة غير موجود</b>";
}
}
if (preg_match("~[^a-z]t=([0-9]+)~", $rightlink, $num)) {
$check_thread = $DB_site->query_first("SELECT forumid,title FROM " . TABLE_PREFIX . "thread AS thread WHERE threadid = ". intval($num[1]));
if (is_array($check_thread)) {
$forumperms = fetch_permissions($check_thread["forumid"]);
if (!($forumperms & CANVIEW)) {
return "<b>غير مصرح بظهور العنوان</b>";
} else {
$rtext = "-=".$check_thread["title"]."=-";
}
} else {
return "<b>موضوع غير موجود</b>";
}
}
} elseif (preg_match("~forumdisplay\.php~", $rightlink)) {
if (preg_match("~[^a-z]f=([0-9]+)~", $rightlink, $num)) {
$foruminfo = verify_id('forum', $num[1], 0, 1);
if (is_array($foruminfo)) {
$forumperms = fetch_permissions($foruminfo['forumid']);
if (!($forumperms & CANVIEW)) {
return "<b>غير مصرح بظهور العنوان</b>";
} else {
$rtext = "~".$foruminfo["title"]."~";
}
} else {
return "<b>منتدى غير موجود</b>";
}
}
}
return "<a href=\"$rightlink\" target=\"_blank\"><font class=\"alt2\"><u>$rtext</u></font></a>";
}
ثم احفظ العمل وجرب
رد: طريقة اظهار عنوان الموضوع عند وضع الروابط من نفس المنتدى
ايضا طريقه الاخرى
يستبدل روابط المرفقات , الاقسام , المجموعات , المواضيع , المشاركات , الاعضاء
بعنوان الرابط
التركيب
بواسطة الاف تي بي
اذهب الي ملف class_bbcode.php الموجود داخل مجلد includes
vb/includes/class_bbcode.php
حمل الملف الي جهازك ثم اجري التعديل الاتي
ملاحظة اخد نسخه احتياطيه لاى طوارئ
ابحث في الملف عن
ضع اعلاه الكود المرفق ثم اعد رفع الملف
كود PHP:
/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ *\
|* | BY MGHOOL FOR LINKS - A | *|
\* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ */
if (@empty($link) AND @preg_match('#(' . @str_replace('www.', '', $_SERVER['HTTP_HOST']) . ')#i', $rightlink)) {
// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
if (@preg_match('#\.html#', $rightlink)) {
$rightlink = @preg_replace('#\/f\-([0-9]+)\-([0-9]+)\.html#', '/forumdisplay.php?f=$1&page=$2', $rightlink);
$rightlink = @preg_replace('#\/f\-([0-9]+)\.html#', '/forumdisplay.php?f=$1', $rightlink);
$rightlink = @preg_replace('#\/t\-([0-9]+)\-([0-9]+)\.html#', '/showthread.php?t=$1&page=$2', $rightlink);
$rightlink = @preg_replace('#\/t\-([0-9]+)\.html#', '/showthread.php?t=$1', $rightlink);
$rightlink = @preg_replace('#\/v\-([0-9]+)\.html#', '/showthread.php?p=$1#post$1', $rightlink);
$rightlink = @preg_replace('#\/s\-([0-9]+)\-([0-9]+)\.html#', '/showthread.php?p=$1&posted=$2', $rightlink);
$rightlink = @preg_replace('#\/s\-([0-9]+)\.html#', '/showthread.php?p=$1', $rightlink);
$rightlink = @preg_replace('#\/p\-([0-9]+)\-([0-9]+)\.html#', '/showpost.php?p=$1&postcount=$2', $rightlink);
$rightlink = @preg_replace('#\/p\-([0-9]+)\.html#', '/showpost.php?p=$1', $rightlink);
$rightlink = @preg_replace('#\/u\-([0-9]+)\.html#', '/member.php?u=$1', $rightlink);
}
// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
$rightlink = @preg_replace('#(|)#i', '', $rightlink);
if (@preg_match('#\/(attachment|forumdisplay|group|showthread|showpost|member)\.php\?(attachmentid|f|groupid|t|p|u)\=([0-9]+)#i', $rightlink, $i)) {
// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
if ($i[1] == 'attachment' AND $i[2] == 'attachmentid' AND @intval($i[3])) {
$Sqls = $this->registry->db->query_first_slave("SELECT filename, filesize FROM " . TABLE_PREFIX . "attachment WHERE attachmentid = '" . $i[3] . "'");
if ($Sqls['filename']) { $text = 'مرفق : ' . $Sqls['filename'] . ' - <span dir="rtl">' . @vb_number_format($Sqls['filesize'], 0, true) . '</span>'; }
}
// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
if ($i[1] == 'forumdisplay' AND $i[2] == 'f' AND @intval($i[3])) {
$Sqls = $this->registry->db->query_first_slave("SELECT title FROM " . TABLE_PREFIX . "forum WHERE forumid = '" . $i[3] . "'");
if ($Sqls['title']) { $text = 'قسم : ' . $Sqls['title']; }
}
// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
if ($i[1] == 'group' AND $i[2] == 'groupid' AND @intval($i[3])) {
$Sqls = $this->registry->db->query_first_slave("SELECT name FROM " . TABLE_PREFIX . "socialgroup WHERE groupid = '" . $i[3] . "'");
if ($Sqls['name']) { $text = 'مجموعة : ' . $Sqls['name']; }
}
// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
if ($i[1] == 'showthread' AND $i[2] == 't' AND @intval($i[3])) {
$Sqls = $this->registry->db->query_first_slave("SELECT title FROM " . TABLE_PREFIX . "thread WHERE threadid = '" . $i[3] . "'");
if ($Sqls['title']) { $text = 'موضوع : ' . $Sqls['title']; }
}
// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
if (($i[1] == 'showpost' OR $i[1] == 'showthread') AND $i[2] == 'p' AND @intval($i[3])) {
$Sqls = $this->registry->db->query_first_slave("SELECT title, threadid FROM " . TABLE_PREFIX . "post WHERE postid = '" . $i[3] . "'");
if (!$Sqls['title']) {
$Sqls = $this->registry->db->query_first_slave("SELECT title FROM " . TABLE_PREFIX . "thread WHERE threadid = '" . $Sqls['threadid'] . "'");
}
if ($Sqls['title']) { $text = 'مشاركة : ' . $Sqls['title']; }
}
// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
if ($i[1] == 'member' AND $i[2] == 'u' AND @intval($i[3])) {
$Sqls = $this->registry->db->query_first_slave("SELECT username FROM " . TABLE_PREFIX . "user WHERE userid = '" . $i[3] . "'");
if ($Sqls['username']) { $text = 'عضوية : ' . $Sqls['username']; }
}
// +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
}
}
/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ *\
|* | BY MGHOOL FOR LINKS - V | *|
\* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ */
الشرح منقول للاخ معتز
رد: طريقة اظهار عنوان الموضوع عند وضع الروابط من نفس المنتدى
مشكور اخى علوان على الاضافة الرائعة
والاهم من ذلك كله هو اخذ نسخة احتايطية من اى ملف
ليسهل استرجاعها فى حالة اى خطأ
بالتوفيق ان شاء الله
رد: طريقة اظهار عنوان الموضوع عند وضع الروابط من نفس المنتدى
مشكور اخى ابو عيسى جزاك الله خيرا
بالتأكيد هذه نقطه اساسيه اخذ نسخه احتياطية فى كل الاعمال
نسئل الله التوفيق للجميع
رد: طريقة اظهار عنوان الموضوع عند وضع الروابط من نفس المنتدى
المستخدم في المودة هو هاكي الفي بي سيو وهي التي تقوم بتحويل الروابط لعناوينها ... تحياتي .