الدعم العربي
اضف ازرار المحرر والإبتسامات بالرد السريع - نسخة قابلة للطباعة

+- الدعم العربي (https://www.mybbarab.com)
+-- قسم : :: . + الأقسام الإدارية + . :: (https://www.mybbarab.com/forum-36.html)
+--- قسم : الأرشـيـف (https://www.mybbarab.com/forum-39.html)
+---- قسم : تطوير منتديات MyBB 1.2 (https://www.mybbarab.com/forum-86.html)
+----- قسم : منتدى الهاكات والأضافات منتديات ماى بى بى mybb (https://www.mybbarab.com/forum-3.html)
+----- الموضوع : اضف ازرار المحرر والإبتسامات بالرد السريع (/thread-1128.html)

الصفحات: 1 2 3 4 5 6 7 8


Re: اضف ازرار المحرر والإبتسامات بالرد السريع - bahaa87 - 2008-05-26

هذا هو التمبليتس الخاص بالرد السريع الذي لدي showthread_quickreply
طبعاً بدون التعديلات الخاصة بهذا الموضوع

PHP كود :
<br />
<
form method="post" action="newreply.php" name="input"{$ajaxqr_event}>
<
input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
<
input type="hidden" name="subject" value="RE: {$thread['subject']}" />
<
input type="hidden" name="action" value="do_newreply" />
<
input type="hidden" name="tid" value="{$tid}" />
<
input type="hidden" name="posthash" value="{$posthash}" /><input type="hidden" name="time" value="{$time}" />
<
input type="hidden" name="page" value="{$page}" />
<
input type="hidden" name="postcount" value="{$postcounter}" />
<
input type="hidden" name="quoted_ids" value="" />
<
table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<
thead>
<
tr>
<
td colspan="2" class="thead">
<
div class="expcolimage"><img src="{$theme['imgdir']}/collapse{$collapsedimg['quickreply']}.gif" id="quickreply_img" class="expander" alt="[-]"/></div>
<
div><strong>{$lang->quick_reply}</strong></div>
</
td>
</
tr>
</
thead>
<
tbody style="{$collapsed['quickreply_e']}" id="quickreply_e">
<
tr>
<
td class="trow1" valign="top" width="22%">
<
strong>{$lang->message}</strong><br />
<
span class="smalltext">{$lang->message_note}<br /><br />
<
label><input type="checkbox" class="checkbox" name="postoptions[signature]" value="yes" {$postoptionschecked['signature']} />&nbsp;<strong>{$lang->signature}</strong></label><br />
<
label><input type="checkbox" class="checkbox" name="postoptions[emailnotify]" value="yes" {$postoptionschecked['emailnotify']} />&nbsp;<strong>{$lang->email_notify}</strong></label><br />
<
label><input type="checkbox" class="checkbox" name="postoptions[disablesmilies]" value="yes" />&nbsp;<strong>{$lang->disable_smilies}</strong></label>{$closeoption}</span>
</
td>
<
td class="trow1">
    <
div>
        <
textarea style="width: 90%; margin: 0;" rows="8" cols="80" name="message" id="message" tabindex="1"></textarea>
    </
div>
    <
script type="text/javascript">document.write('<div class="editor_control_bar" style="width: 90%; padding: 4px; margin-top: 3px; display: none;" id="quickreply_multiquote"><span class="smalltext">{$lang->quickreply_multiquote_selected} <a href="javascript:Thread.loadMultiQuoted();">{$lang->quickreply_multiquote_now}<\/a> {$lang->or} <a href="javascript:Thread.clearMultiQuoted();">{$lang->quickreply_multiquote_deselect}<\/a>.<\/span><\/div>');</script>
</td>
</tr>
{$captcha}
<tr>
<td colspan="2" align="center" class="tfoot"><input type="submit" class="button" value="{$lang->post_reply}" tabindex="2" accesskey="s" onClick="this.form.preview = false;" /> <input type="submit" class="button" name="previewpost" value="{$lang->preview_post}" tabindex="3" onClick="this.form.preview = true;" /></td>
</tr>
</tbody>
</table>
</form> 

حتى عند استبدالها بشكل كامل بالذي قد وضعته يا اخ بيبو لم يفلح الأمر فما الحل؟؟؟


Re: اضف ازرار المحرر والإبتسامات بالرد السريع - bahaa87 - 2008-06-05

ياشباب ماهي المشكلة التي لدي
أرجو ان يقوم احد ويسعفني


Re: اضف ازرار المحرر والإبتسامات بالرد السريع - Pepo - 2008-06-05

جرب إستخدام التالى
كود :
<br />
<form method="post" action="newreply.php" name="input">
<input type="hidden" name="my_post_key" value="{$mybb->post_code}" />
<input type="hidden" name="subject" value="Re: {$thread['subject']}" />
<input type="hidden" name="action" value="do_newreply" />
<input type="hidden" name="tid" value="{$tid}" />
<input type="hidden" name="posthash" value="{$posthash}" />
<input type="hidden" name="quoted_ids" value="" />
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<thead>
<tr>
<td colspan="3" class="thead">
<div class="expcolimage"><img src="{$theme['imgdir']}/collapse{$collapsedimg['quickreply']}.gif" id="quickreply_img" class="expander" alt="[-]"/></div>
<div><strong>{$lang->quick_reply}</strong> <span style="color:#990000; size:14;">لا تنسى ان الله يراك</span></div>
</td>
</tr>
</thead>
<tbody style="{$collapsed['quickreply_e']}" id="quickreply_e">
<tr>
<td class="trow1" valign="top" width="16%">
<strong>{$lang->message}</strong><br />
<span class="smalltext">{$lang->message_note}<br /><br />
<label><input type="checkbox" class="checkbox" name="postoptions[signature]" value="yes" {$postoptionschecked['signature']} /> <strong>{$lang->signature}</strong></label><br />
<label><input type="checkbox" class="checkbox" name="postoptions[emailnotify]" value="yes" {$postoptionschecked['emailnotify']} checked="checked" /> <strong>{$lang->email_notify}</strong></label><br />
<label><input name="postoptions[disablesmilies]" type="checkbox" class="checkbox" value="yes" />
<strong>{$lang->disable_smilies}</strong></label>{$closeoption}</span>
</td>
<td class="trow1">
<div>
{$codebuttons}
<textarea id="message" name="message" rows="10" cols="80" tabindex="2" >{$message}</textarea>
</div>
<script type="text/javascript">document.write('<div class="editor_control_bar" style="width: 90%; padding: 4px; margin-top: 3px; display: none;" id="quickreply_multiquote"><span class="smalltext">{$lang->quickreply_multiquote_selected} <a href="javascript:Thread.loadMultiQuoted();">{$lang->quickreply_multiquote_now}<\/a> {$lang->or} <a href="javascript:Thread.clearMultiQuoted();">{$lang->quickreply_multiquote_deselect}<\/a>.<\/span><\/div>');</script>
</td>
</tr>
<tr>
<td colspan="3" align="center" class="tfoot"><input type="submit" class="button" value="{$lang->post_reply}" tabindex="2" accesskey="s" /> <input type="submit" class="button" name="previewpost" value="{$lang->preview_post}" tabindex="3" /></td>
</tr>
</tbody>
</table>
</form>



Re: اضف ازرار المحرر والإبتسامات بالرد السريع - bahaa87 - 2008-06-05

للأسف أخي بيبو لم تنفع معي ولا ادري ما السبب؟؟؟؟


Re: اضف ازرار المحرر والإبتسامات بالرد السريع - Pepo - 2008-06-06

اذا المشكلة ليست فى هذا التعديل.. المشكلة بقالب showthread نفسه
او بملف showthread.php و ملف global.php تأكد ان كل ماذكر يستخدم الإفتراضى..


Re: اضف ازرار المحرر والإبتسامات بالرد السريع - bahaa87 - 2008-06-06

حسنا اخي إليك كل ماطلبته وأعتذر عن التأخير

هذا ملف showthread.php:

PHP كود :
<?php
/**
 * MyBB 1.2
 * Copyright © 2006 MyBB Group, All Rights Reserved
 *
 * Website: http://www.mybboard.net
 * License: http://www.mybboard.net/eula.html
 *
 * $Id: showthread.php 3595 2008-01-09 00:10:57Z Tikitiki $
 */

define("IN_MYBB", 1);

$templatelist = "showthread,postbit,postbit_author_user,postbit_author_guest,showthread_newthread,showthread_newreply,showthread_newreply_closed,postbit_sig,showthread_newpoll,postbit_avatar,postbit_profile,postbit_find,postbit_pm,postbit_www,postbit_email,postbit_edit,postbit_quote,postbit_report,postbit_signature, postbit_online,postbit_offline,postbit_away,showthread_ratingdisplay,showthread_ratethread,showthread_moderationoptions";
$templatelist .= ",multipage_prevpage,multipage_nextpage,multipage_page_current,multipage_page,multipage_start,multipage_end,multipage";
$templatelist .= ",postbit_editedby,showthread_similarthreads,showthread_similarthreads_bit,postbit_iplogged_show,postbit_iplogged_hiden,showthread_quickreply";
$templatelist .= ",forumjump_advanced,forumjump_special,forumjump_bit,showthread_multipage,postbit_reputation,postbit_quickdelete,postbit_attachments,thumbnails_thumbnail,postbit_attachments_attachment,postbit_attachments_thumbnails,postbit_attachments_images_image,postbit_attachments_images,postbit_posturl";
$templatelist .= ",postbit_inlinecheck,showthread_inlinemoderation,postbit_attachments_thumbnails_thumbnail,postbit_quickquote,postbit_qqmessage,postbit_seperator,postbit_groupimage,postbit_multiquote";

require_once 
"./global.php";
require_once 
MYBB_ROOT."inc/functions_post.php";
require_once 
MYBB_ROOT."inc/class_parser.php";
$parser = new postParser;

// Load global language phrases
$lang->load("showthread");

// If there is no tid but a pid, trick the system into thinking there was a tid anyway.
if($mybb->input['pid'] && !$mybb->input['tid'])
{
    
$options = array(
        
"limit" => 1
    
);
    
$query = $db->simple_select(TABLE_PREFIX."posts", "tid", "pid=".$mybb->input['pid'], $options);
    
$post = $db->fetch_array($query);
    
$pid = $mybb->input['pid'];
    
$mybb->input['tid'] = $post['tid'];
}

// Get the thread details from the database.
$options = array(
    
"limit" => 1
);
$query = $db->simple_select(TABLE_PREFIX."threads", "*", "tid='".$mybb->input['tid']."' AND closed NOT LIKE 'moved|%'");
$thread = $db->fetch_array($query);
$thread['subject'] = htmlspecialchars_uni($parser->parse_badwords($thread['subject']));
$tid = $thread['tid'];
$fid = $thread['fid'];

if(!
$thread['username'])
{
    
$thread['username'] = $lang->guest;
}

// Is the currently logged in user a moderator of this forum?
if(is_moderator($fid) == "yes")
{
    
$ismod = true;
}
else
{
    
$ismod = false;
}

// Make sure we are looking at a real thread here.
if(!$thread['tid'] || ($thread['visible'] == 0 && $ismod == false) || ($thread['visible'] > 1 && $ismod == true))
{
    
error($lang->error_invalidthread);
}

$archive_url = build_archive_link("thread", $tid);

// Build the navigation.
build_forum_breadcrumb($fid);
add_breadcrumb($thread['subject'], "showthread.php?tid=$tid");

// Does the thread belong to a valid forum?
$forum = get_forum($fid);
if(!
$forum || $forum['type'] != "f")
{
    
error($lang->error_invalidforum);
}

// Does the user have permission to view this thread?
$forumpermissions = forum_permissions($forum['fid']);

if(
$forumpermissions['canview'] != "yes" || $forumpermissions['canviewthreads'] != "yes")
{
    
error_no_permission();
}

// Check if this forum is password protected and we have a valid password
check_forum_password($forum['fid']);

// If there is no specific action, we must be looking at the thread.
if(!$mybb->input['action'])
{
    
$mybb->input['action'] = "thread";
}

// Jump to the last post.
if($mybb->input['action'] == "lastpost")
{
    if(
strstr($thread['closed'], "moved|"))
    {
        
$query = $db->query("
            SELECT p.pid
            FROM "
.TABLE_PREFIX."posts p, ".TABLE_PREFIX."threads t
            WHERE t.fid='"
.$thread['fid']."' AND t.closed NOT LIKE 'moved|%' AND p.tid=t.tid
            ORDER BY p.dateline DESC
            LIMIT 0, 1
        "
);
        
$pid = $db->fetch_field($query, "pid");
    }
    else
    {
        
$options = array(
            
'order_by' => 'dateline',
            
'order_dir' => 'desc',
            
'limit_start' => 0,
            
'limit' => 1
        
);
        
$query = $db->simple_select(TABLE_PREFIX.'posts', 'pid', "tid={$tid}", $options);
        
$pid = $db->fetch_field($query, "pid");
    }
    
header("Location:showthread.php?tid={$tid}&pid={$pid}#pid{$pid}");
    exit;
}

// Jump to the next newest posts.
if($mybb->input['action'] == "nextnewest")
{
    
$options = array(
        
"limit_start" => 0,
        
"limit" => 1,
        
"order_by" => "lastpost"
    
);
    
$query = $db->simple_select(TABLE_PREFIX.'threads', '*', "fid={$thread['fid']} AND lastpost > {$thread['lastpost']} AND visible=1 AND closed NOT LIKE 'moved|%'", $options);
    
$nextthread = $db->fetch_array($query);

    
// Are there actually next newest posts?
    
if(!$nextthread['tid'])
    {
        
error($lang->error_nonextnewest);
    }
    
$options = array(
        
"limit_start" => 0,
        
"limit" => 1,
        
"order_by" => "dateline",
        
"order_dir" => "desc"
    
);
    
$query = $db->simple_select(TABLE_PREFIX.'posts', 'pid', "tid={$nextthread['tid']}");

    
// Redirect to the proper page.
    
$pid = $db->fetch_field($query, "pid");
    
header("Location:showthread.php?tid={$nextthread['tid']}&pid={$pid}#pid{$pid}");
}

// Jump to the next oldest posts.
if($mybb->input['action'] == "nextoldest")
{
    
$options = array(
        
"limit" => 1,
        
"limit_start" => 0,
        
"order_by" => "lastpost",
        
"order_dir" => "desc"
    
);
    
$query = $db->simple_select(TABLE_PREFIX."threads", "*", "fid=".$thread['fid']." AND lastpost < ".$thread['lastpost']." AND visible=1 AND closed NOT LIKE 'moved|%'", $options);
    
$nextthread = $db->fetch_array($query);

    
// Are there actually next oldest posts?
    
if(!$nextthread['tid'])
    {
        
error($lang->error_nonextoldest);
    }
    
$options = array(
        
"limit_start" => 0,
        
"limit" => 1,
        
"order_by" => "dateline",
        
"order_dir" => "desc"
    
);
    
$query = $db->simple_select(TABLE_PREFIX."posts", "pid", "tid=".$nextthread['tid']);

    
// Redirect to the proper page.
    
$pid = $db->fetch_field($query, "pid");
    
header("Location:showthread.php?tid=$nextthread[tid]&pid=$pid#pid$pid");
}

// Jump to the unread posts.
if($mybb->input['action'] == "newpost")
{
    
// First, figure out what time the thread or forum were last read
    
$query = $db->simple_select(TABLE_PREFIX."threadsread", "dateline", "uid='{$mybb->user['uid']}' AND tid='{$thread['tid']}'");
    
$thread_read = $db->fetch_field($query, "dateline");

    
// Get forum read date
    
$forumread = my_get_array_cookie("forumread", $fid);

    
// If last visit is greater than forum read, change forum read date
    
if($mybb->user['lastvisit'] > $forumread)
    {
        
$forumread = $mybb->user['lastvisit'];
    }
    if(
$mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'] && $thread['lastpost'] > $forumread)
    {
        
$cutoff = time()-$mybb->settings['threadreadcut']*60*60*24;
        if(
$thread['lastpost'] > $cutoff)
        {
            if(
$thread_read)
            {
                
$lastread = $thread_read;
            }
            else
            {
                
$lastread = 1;
            }
        }
    }
    if(!
$lastread)
    {
        
$readcookie = $threadread = my_get_array_cookie("threadread", $thread['tid']);
        if(
$readcookie > $forumread)
        {
            
$lastread = $readcookie;
        }
        else
        {
            
$lastread = $forumread;
        }
    }
    
// Next, find the proper pid to link to.
    
$options = array(
        
"limit_start" => 0,
        
"limit" => 1,
        
"order_by" => "dateline",
        
"order_dir" => "asc"
    
);
    
$query = $db->simple_select(TABLE_PREFIX."posts", "pid", "tid=".$tid." AND dateline > '{$lastread}'", $options);
    
$newpost = $db->fetch_array($query);
    if(
$newpost['pid'])
    {
        
header("Location:showthread.php?tid={$tid}&pid={$newpost['pid']}#pid{$newpost['pid']}");
    }
    else
    {
        
header("Location:showthread.php?action=lastpost&tid={$tid}");
    }
}

if(
$mybb->input['pid'])
{
    
$pid = $mybb->input['pid'];
}

$plugins->run_hooks("showthread_start");

// Show the entire thread (taking into account pagination).
if($mybb->input['action'] == "thread")
{
    if(
$thread['firstpost'] == 0)
    {
        
update_first_post($tid);
    }
    
// Does this thread have a poll?
    
if($thread['poll'])
    {
        
$options = array(
            
"limit" => 1
        
);
        
$query = $db->simple_select(TABLE_PREFIX."polls", "*", "pid='".$thread['poll']."'");
        
$poll = $db->fetch_array($query);
        
$poll['timeout'] = $poll['timeout']*60*60*24;
        
$expiretime = $poll['dateline'] + $poll['timeout'];
        
$now = time();

        
// If the poll or the thread is closed or if the poll is expired, show the results.
        
if($poll['closed'] == "yes" || $thread['closed'] == "yes" || ($expiretime < $now && $poll['timeout'] > 0))
        {
            
$showresults = 1;
        }

        
// If the user is not a guest, check if he already voted.
        
if($mybb->user['uid'] != 0)
        {
            
$query = $db->simple_select(TABLE_PREFIX."pollvotes", "*", "uid='".$mybb->user['uid']."' AND pid='".$poll['pid']."'");
            while(
$votecheck = $db->fetch_array($query))
            {
                
$alreadyvoted = 1;
                
$votedfor[$votecheck['voteoption']] = 1;
            }
        }
        else
        {
            if(
$_COOKIE['pollvotes'][$poll['pid']])
            {
                
$alreadyvoted = 1;
            }
        }
        
$optionsarray = explode("||~|~||", $poll['options']);
        
$votesarray = explode("||~|~||", $poll['votes']);
        
$poll['question'] = htmlspecialchars_uni($poll['question']);
        
$polloptions = '';
        
$totalvotes = 0;

        for(
$i = 1; $i <= $poll['numoptions']; $i++)
        {
            
$poll['totvotes'] = $poll['totvotes'] + $votesarray[$i-1];
        }

        
// Loop through the poll options.
        
for($i = 1; $i <= $poll['numoptions']; ++$i)
        {
            
// Set up the parser options.
            
$parser_options = array(
                
"allow_html" => $forum['allowhtml'],
                
"allow_mycode" => $forum['allowmycode'],
                
"allow_smilies" => $forum['allowsmilies'],
                
"allow_imgcode" => $forum['allowimgcode']
            );

            
$option = $parser->parse_message($optionsarray[$i-1], $parser_options);
            
$votes = $votesarray[$i-1];
            
$totalvotes += $votes;
            
$number = $i;

            
// Mark the option the user voted for.
            
if($votedfor[$number])
            {
                
$optionbg = "trow2";
                
$votestar = "*";
            }
            else
            {
                
$optionbg = "trow1";
                
$votestar = "";
            }

            
// If the user already voted or if the results need to be shown, do so; else show voting screen.
            
if($alreadyvoted || $showresults)
            {
                if(
intval($votes) == "0")
                {
                    
$percent = "0";
                }
                else
                {
                    
$percent = number_format($votes / $poll['totvotes'] * 100, 2);
                }
                
$imagewidth = round(($percent/3) * 5);
                eval(
"\$polloptions .= \"".$templates->get("showthread_poll_resultbit")."\";");
            }
            else
            {
                if(
$poll['multiple'] == "yes")
                {
                    eval(
"\$polloptions .= \"".$templates->get("showthread_poll_option_multiple")."\";");
                }
                else
                {
                    eval(
"\$polloptions .= \"".$templates->get("showthread_poll_option")."\";");
                }
            }
        }

        
// If there are any votes at all, all votes together will be 100%; if there are no votes, all votes together will be 0%.
        
if($poll['totvotes'])
        {
            
$totpercent = "100%";
        }
        else
        {
            
$totpercent = "0%";
        }

        
// Check if user is allowed to edit posts; if so, show "edit poll" link.
        
if(is_moderator($fid, 'caneditposts') != 'yes')
        {
            
$edit_poll = '';
        }
        else
        {
            
$edit_poll = "| <a href=\"polls.php?action=editpoll&amp;pid={$poll['pid']}\">{$lang->edit_poll}</a>";
        }

        
// Decide what poll status to show depending on the status of the poll and whether or not the user voted already.
        
if($alreadyvoted || $showresults)
        {
            if(
$alreadyvoted)
            {
                
$pollstatus = $lang->already_voted;
            }
            else
            {
                
$pollstatus = $lang->poll_closed;
            }
            
$lang->total_votes = sprintf($lang->total_votes, $totalvotes);
            eval(
"\$pollbox = \"".$templates->get("showthread_poll_results")."\";");
            
$plugins->run_hooks("showthread_poll_results");
        }
        else
        {
            
$publicnote = '&nbsp;';
            if(
$poll['public'] == "yes")
            {
                
$publicnote = $lang->public_note;
            }
            eval(
"\$pollbox = \"".$templates->get("showthread_poll")."\";");
            
$plugins->run_hooks("showthread_poll");
        }

    }
    else
    {
        
$pollbox = "";
    }

    
// Create the forum jump dropdown box.
    
if($mybb->settings['enableforumjump'] != "no")
    {
        
$forumjump = build_forum_jump("", $fid, 1);
    }

    
// Mark this thread read for the currently logged in user.
    
if($mybb->settings['threadreadcut'] && ($mybb->user['uid'] != 0))
    {
        
// For registered users, store the information in the database.
        
$db->shutdown_query("
            REPLACE INTO "
.TABLE_PREFIX."threadsread
            SET tid='
$tid', uid='".$mybb->user['uid']."', dateline='".time()."'
        "
);
    }
    else
    {
        
// For guests, store the information in a cookie.
        
my_set_array_cookie("threadread", $tid, time());
    }

    
// If the forum is not open, show closed newreply button unless the user is a moderator of this forum.
    
if($forum['open'] != "no")
    {
        eval(
"\$newthread = \"".$templates->get("showthread_newthread")."\";");

        
// Show the appropriate reply button if this thread is open or closed
        
if($thread['closed'] == "yes")
        {
            eval(
"\$newreply = \"".$templates->get("showthread_newreply_closed")."\";");
        }
        else
        {
            eval(
"\$newreply = \"".$templates->get("showthread_newreply")."\";");
        }
    }

    
// Create the admin tools dropdown box.
    
if($ismod == true)
    {
        if(
$pollbox)
        {
            
$adminpolloptions = "<option value=\"deletepoll\">".$lang->delete_poll."</option>";
        }
        if(
$thread['visible'] != 1)
        {
            
$approveunapprovethread = "<option value=\"approvethread\">".$lang->approve_thread."</option>";
        }
        else
        {
            
$approveunapprovethread = "<option value=\"unapprovethread\">".$lang->unapprove_thread."</option>";
        }
        if(
$thread['closed'] == "yes")
        {
            
$closelinkch = "checked";
        }
        if(
$thread['sticky'])
        {
            
$stickch = "checked";
        }
        
$closeoption = "<br /><label><input type=\"checkbox\" class=\"checkbox\" name=\"modoptions[closethread]\" value=\"yes\" $closelinkch />&nbsp;<strong>".$lang->close_thread."</strong></label>";
        
$closeoption .= "<br /><label><input type=\"checkbox\" class=\"checkbox\" name=\"modoptions[stickthread]\" value=\"yes\" $stickch />&nbsp;<strong>".$lang->stick_thread."</strong></label>";
        
$inlinecount = "0";
        
$inlinecookie = "inlinemod_thread".$tid;
        
$plugins->run_hooks("showthread_ismod");
    }
    else
    {
        
$adminoptions = "&nbsp;";
        
$inlinemod = "";
    }

    
// Decide whether or not to include signatures.
    
if($forumpermissions['canpostreplys'] != "no" && ($thread['closed'] != "yes" || is_moderator($fid) == "yes") && $mybb->settings['quickreply'] != "off" && $mybb->user['showquickreply'] != "no" && $forum['open'] != "no")
    {
        
// Show captcha image for guests if enabled
        
if($mybb->settings['captchaimage'] == "on" && function_exists("imagepng") && !$mybb->user['uid'])
        {
            
$randomstr = random_str(5);
            
$imagehash = md5($randomstr);
            
$imagearray = array(
                
"imagehash" => $imagehash,
                
"imagestring" => $randomstr,
                
"dateline" => time()
            );
            
$db->insert_query(TABLE_PREFIX."captcha", $imagearray);
            eval(
"\$captcha = \"".$templates->get("post_captcha")."\";");
        }
        if(
$mybb->user['signature'])
        {
            
$postoptionschecked['signature'] = "checked";
        }
        if(
$mybb->user['emailnotify'] == "yes")
        {
            
$postoptionschecked['emailnotify'] = "checked";
        }
        
mt_srand ((double) microtime() * 1000000);
        
$posthash = md5($mybb->user['uid'].mt_rand());
        
$codebuttons = build_mycode_inserter();
        
$smilieinserter = build_clickable_smilies();  
        eval(
"\$quickreply = \"".$templates->get("showthread_quickreply")."\";");
    }
    else
    {
        
$quickreply = "";
    }

    
// Increment the thread view.
    
$db->shutdown_query("UPDATE ".TABLE_PREFIX."threads SET views=views+1 WHERE tid='$tid'");
    ++
$thread['views'];

    
// Work out the thread rating for this thread.
    
if($forum['allowtratings'] != "no" && $thread['numratings'] > 0)
    {
        
$thread['averagerating'] = round(($thread['totalratings']/$thread['numratings']), 2);
        
$rateimg = intval(round($thread['averagerating']));
        
$thread['rating'] = $rateimg."stars.gif";
        
$thread['numratings'] = intval($thread['numratings']);
        
$ratingav = sprintf($lang->rating_average, $thread['numratings'], $thread['averagerating']);
        eval(
"\$rating = \"".$templates->get("showthread_ratingdisplay")."\";");
    }
    else
    {
        
$rating = "";
    }
    if(
$forum['allowtratings'] == "yes" && $forumpermissions['canratethreads'] == "yes")
    {
        eval(
"\$ratethread = \"".$templates->get("showthread_ratethread")."\";");
    }
    
// Work out if we are showing unapproved posts as well (if the user is a moderator etc.)
    
if($ismod)
    {
        
$visible = "AND (p.visible='0' OR p.visible='1')";
    }
    else
    {
        
$visible = "AND p.visible='1'";
    }

    
// Threaded or lineair display?
    
if($mybb->input['mode'] == "threaded")
    {
        
$isfirst = 1;

        
// Are we linked to a specific pid?
        
if($mybb->input['pid'])
        {
            
$where = "AND p.pid='".$mybb->input['pid']."'";
        }
        else
        {
            
$where = " ORDER BY dateline ASC LIMIT 0, 1";
        }
        
$query = $db->query("
            SELECT u.*, u.username AS userusername, p.*, f.*, eu.username AS editusername
            FROM "
.TABLE_PREFIX."posts p
            LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
            LEFT JOIN "
.TABLE_PREFIX."userfields f ON (f.ufid=u.uid)
            LEFT JOIN "
.TABLE_PREFIX."users eu ON (eu.uid=p.edituid)
            WHERE p.tid='
$tid' $visible $where
        "
);
        
$showpost = $db->fetch_array($query);

        
// Choose what pid to display.
        
if(!$mybb->input['pid'])
        {
            
$mybb->input['pid'] = $showpost['pid'];
        }

        
// Is there actually a pid to display?
        
if(!$showpost['pid'])
        {
            
error($lang->error_invalidpost);
        }

        
// Get the attachments for this post.
        
$query = $db->simple_select(TABLE_PREFIX."attachments", "*", "pid=".$mybb->input['pid']);
        while(
$attachment = $db->fetch_array($query))
        {
            
$attachcache[$attachment['pid']][$attachment['aid']] = $attachment;
        }

        
// Build the threaded post display tree.
        
$query = $db->query("
            SELECT p.username, p.uid, p.pid, p.replyto, p.subject, p.dateline
            FROM "
.TABLE_PREFIX."posts p
            WHERE p.tid='
$tid' 
            
$visible
            ORDER BY p.dateline
        "
);
        while(
$post = $db->fetch_array($query))
        {
            if(!
$postsdone[$post['pid']])
            {
                if(
$post['pid'] == $mybb->input['pid'] || ($isfirst && !$mybb->input['pid']))
                {
                    
$isfirst = 0;
                }
                
$tree[$post['replyto']][$post['pid']] = $post;
                
$postsdone[$post['pid']] = 1;
            }
        } 
        
$threadedbits = buildtree();
        
$posts = build_postbit($showpost);
        eval(
"\$threadexbox = \"".$templates->get("showthread_threadedbox")."\";");
        
$plugins->run_hooks("showthread_threaded");
    }
    else 
// Linear display
    
{
        
// Figure out if we need to display multiple pages.
        
$perpage = $mybb->settings['postsperpage'];
        if(
$mybb->input['page'] != "last")
        {
            
$page = intval($mybb->input['page']);
        }
        if(
$mybb->input['pid'])
        {
            
$query = $db->query("
                SELECT COUNT(p.pid) AS count FROM "
.TABLE_PREFIX."posts p
                WHERE p.tid='
$tid'
                AND p.pid <= '"
.$mybb->input['pid']."'
                
$visible
            "
);
            
$result = $db->fetch_field($query, "count");
            if((
$result % $perpage) == 0)
            {
                
$page = $result / $perpage;
            }
            else
            {
                
$page = intval($result / $perpage) + 1;
            }
        }
        
// Recount replies if user is a moderator to take into account unapproved posts.
        
if($ismod)
        {
            
$query = $db->simple_select(TABLE_PREFIX."posts p", "COUNT(*) AS replies", "p.tid='$tid' $visible");
            
$thread['replies'] = $db->fetch_field($query, 'replies')-1;
        }
        
$postcount = intval($thread['replies'])+1;
        
$pages = $postcount / $perpage;
        
$pages = ceil($pages);

        if(
$mybb->input['page'] == "last")
        {
            
$page = $pages;
        }

        if(
$page > $pages)
        {
            
$page = 1;
        }

        if(
$page)
        {
            
$start = ($page-1) * $perpage;
        }
        else
        {
            
$start = 0;
            
$page = 1;
        }
        
$upper = $start+$perpage;

        
$multipage = multipage($postcount, $perpage, $page, "showthread.php?tid=$tid");
        if(
$postcount > $perpage)
        {
            eval(
"\$threadpages = \"".$templates->get("showthread_multipage")."\";");
        }

        
// Lets get the pids of the posts on this page.
        
$pids = "";
        
$comma = '';
        
$query = $db->simple_select(TABLE_PREFIX."posts p", "p.pid", "p.tid='$tid' $visible", array('order_by' => 'p.dateline', 'limit_start' => $start, 'limit' => $perpage));
        while(
$getid = $db->fetch_array($query))
        {
            
$pids .= "$comma'$getid[pid]'";
            
$comma = ",";
        }
        if(
$pids)
        {
            
$pids = "pid IN($pids)";
            
// Now lets fetch all of the attachments for these posts.
            
$query = $db->simple_select(TABLE_PREFIX."attachments", "*", $pids);
            while(
$attachment = $db->fetch_array($query))
            {
                
$attachcache[$attachment['pid']][$attachment['aid']] = $attachment;
            }
        }
        else
        {
            
// If there are no pid's the thread is probably awaiting approval.
            
error($lang->error_invalidthread);
        }

        
// Get the actual posts from the database here.
        
$pfirst = true;
        
$posts = '';
        
$query = $db->query("
            SELECT u.*, u.username AS userusername, p.*, f.*, eu.username AS editusername
            FROM "
.TABLE_PREFIX."posts p
            LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
            LEFT JOIN "
.TABLE_PREFIX."userfields f ON (f.ufid=u.uid)
            LEFT JOIN "
.TABLE_PREFIX."users eu ON (eu.uid=p.edituid)
            WHERE 
$pids
            ORDER BY p.dateline
        "
);
        while(
$post = $db->fetch_array($query))
        {
            if(
$pfirst && $thread['visible'] == 0)
            {
                
$post['visible'] = 0;
            }
            
$posts .= build_postbit($post);
            
$post = '';
            
$pfirst = false;
        }
        
$plugins->run_hooks("showthread_linear");
    }

    
// Show the similar threads table if wanted.
    
if($mybb->settings['showsimilarthreads'] != "no")
    {
        
$query = $db->query("
            SELECT t.*, t.username AS threadusername, u.username, MATCH (t.subject) AGAINST ('"
.$db->escape_string($thread['subject'])."') AS relevance
            FROM "
.TABLE_PREFIX."threads t
            LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid = t.uid)
            WHERE t.fid='
{$thread['fid']}' AND t.tid!='{$thread['tid']}' AND t.visible='1' AND t.closed NOT LIKE 'moved|%' AND MATCH (t.subject) AGAINST ('".$db->escape_string($thread['subject'])."') >= '{$mybb->settings['similarityrating']}'
            ORDER BY t.lastpost DESC
            LIMIT 0, 
{$mybb->settings['similarlimit']}
        "
);
        
$count = 0;
        
$similarthreadbits = '';
        
$icon_cache = $cache->read("posticons");
        while(
$similar_thread = $db->fetch_array($query))
        {
            ++
$count;
            
$trow = alt_trow();
            if(
$similar_thread['icon'] > 0 && $icon_cache[$similar_thread['icon']])
            {
                
$icon = $icon_cache[$similar_thread['icon']];
                
$icon = "<img src=\"{$icon['path']}\" alt=\"{$icon['name']}\" />";
            }
            else
            {
                
$icon = "&nbsp;";
            }                
            if(!
$similar_thread['username'])
            {
                
$similar_thread['username'] = $similar_thread['threadusername'];
                
$similar_thread['profilelink'] = $similar_thread['threadusername'];
            }
            else
            {
                
$similar_thread['profilelink'] = build_profile_link($similar_thread['username'], $similar_thread['uid']);
            }
            
$similar_thread['subject'] = $parser->parse_badwords($similar_thread['subject']);
            
$similar_thread['subject'] = htmlspecialchars_uni($similar_thread['subject']);

            
$lastpostdate = my_date($mybb->settings['dateformat'], $similar_thread['lastpost']);
            
$lastposttime = my_date($mybb->settings['timeformat'], $similar_thread['lastpost']);
            
$lastposter = $similar_thread['lastposter'];
            
$lastposteruid = $similar_thread['lastposteruid'];

            
// Don't link to guest's profiles (they have no profile).
            
if($lastposteruid == 0)
            {
                
$lastposterlink = $lastposter;
            }
            else
            {
                
$lastposterlink = build_profile_link($lastposter, $lastposteruid);
            }
            
$similar_thread['replies'] = my_number_format($similar_thread['replies']);
            
$similar_thread['views'] = my_number_format($similar_thread['views']);
            eval(
"\$similarthreadbits .= \"".$templates->get("showthread_similarthreads_bit")."\";");
        }
        if(
$count)
        {
            eval(
"\$similarthreads = \"".$templates->get("showthread_similarthreads")."\";");
        }
    }

    
// If the user is a moderator, show the moderation tools.
    
if($ismod)
    {
        
$customthreadtools = $customposttools = '';
        
$query = $db->simple_select(TABLE_PREFIX."modtools", "tid, name, type", "CONCAT(',',forums,',') LIKE '%,$fid,%' OR CONCAT(',',forums,',') LIKE '%,-1,%'");
        while(
$tool = $db->fetch_array($query))
        {
            if(
$tool['type'] == 'p')
            {
                eval(
"\$customposttools .= \"".$templates->get("showthread_inlinemoderation_custom_tool")."\";");
            }
            else
            {
                eval(
"\$customthreadtools .= \"".$templates->get("showthread_moderationoptions_custom_tool")."\";");
            }
        }
        
// Build inline moderation dropdown
        
if(!empty($customposttools))
        {
            eval(
"\$customposttools = \"".$templates->get("showthread_inlinemoderation_custom")."\";");
        }
        eval(
"\$inlinemod = \"".$templates->get("showthread_inlinemoderation")."\";");

        
// Build thread moderation dropdown
        
if(!empty($customthreadtools))
        {
            eval(
"\$customthreadtools = \"".$templates->get("showthread_moderationoptions_custom")."\";");
        }
        eval(
"\$moderationoptions = \"".$templates->get("showthread_moderationoptions")."\";");
    }
    
$lang->newthread_in = sprintf($lang->newthread_in, $forum['name']);
    eval(
"\$showthread = \"".$templates->get("showthread")."\";");
    
$plugins->run_hooks("showthread_end");
    
output_page($showthread);
}

/**
 * Build a navigation tree for threaded display.
 *
 * @param unknown_type $replyto
 * @param unknown_type $indent
 * @return unknown
 */
function buildtree($replyto="0", $indent="0")
{
    global 
$tree, $mybb, $theme, $mybb, $pid, $tid, $templates, $parser;
    
    if(
$indent)
    {
        
$indentsize = 13 * $indent;
    }
    else
    {
        
$indentsize = 0;
    }
    
    ++
$indent;
    if(
is_array($tree[$replyto]))
    {
        foreach(
$tree[$replyto] as $key => $post)
        {
            
$postdate = my_date($mybb->settings['dateformat'], $post['dateline']);
            
$posttime = my_date($mybb->settings['timeformat'], $post['dateline']);
            
$post['subject'] = htmlspecialchars_uni($parser->parse_badwords($post['subject']));
            
            if(!
$post['subject'])
            {
                
$post['subject'] = "[".$lang->no_subject."]";
            }
            
            
$post['profilelink'] = build_profile_link($post['username'], $post['uid']);
            
            if(
$mybb->input['pid'] == $post['pid'])
            {
                eval(
"\$posts .= \"".$templates->get("showthread_threaded_bitactive")."\";");
            }
            else
            {
                eval(
"\$posts .= \"".$templates->get("showthread_threaded_bit")."\";");
            }
            
            if(
$tree[$post['pid']])
            {
                
$posts .= buildtree($post['pid'], $indent);
            }
        }
        --
$indent;
    }
    return 
$posts;
}

?>

وهذا ملف global.php:

PHP كود :
<?php
/**
 * MyBB 1.2
 * Copyright © 2006 MyBB Group, All Rights Reserved
 *
 * Website: http://www.mybboard.com
 * License: http://www.mybboard.com/eula.html
 *
 * $Id: global.php 2791 2007-02-14 02:31:03Z chris $
 */

// Load main MyBB core file which begins all of the magic
require_once dirname(__FILE__)."/inc/init.php";

$shutdown_queries = array();

// Read the usergroups cache as well as the moderators cache
$groupscache = $cache->read("usergroups");
$mcache = $cache->read("moderators");

// If the groups cache doesn't exist, update it and re-read it
if(!is_array($groupscache))
{
    
$cache->updateusergroups();
    
$groupscache = $cache->read("usergroups");
}

// Read forum permissions cache
$fpermissioncache = $cache->read("forumpermissions");

// Send page headers
send_page_headers();

// Trigger an error if the installation directory exists
if(is_dir(MYBB_ROOT."install") && !file_exists(MYBB_ROOT."install/lock"))
{
    
$mybb->trigger_generic_error("install_directory", true);
}

// Do not use session system for defined pages
if((isset($mybb->input['action']) && isset($nosession[$mybb->input['action']])) || (isset($mybb->input['thumbnail']) && strstr($_SERVER["PHP_SELF"], 'attachment.php')))
{
    
define("NO_ONLINE", 1);
}

// Create session for this user
require_once MYBB_ROOT."inc/class_session.php";
$session = new session;
$session->init();

// Set our POST validation code here
$mybb->post_code = generate_post_check();

// Set and load the language
if(!isset($mybb->settings['bblanguage']))
{
    
$mybb->settings['bblanguage'] = "english";
}

// Load language
$lang->set_language($mybb->settings['bblanguage']);
$lang->load("global");
$lang->load("messages");

if(
function_exists('mb_internal_encoding') && !empty($lang->settings['charset']))
{
    @
mb_internal_encoding($lang->settings['charset']);
}

// Which thread mode is our user using?
if(!isset($mybb->input['mode']))
{
    if(isset(
$mybb->user['threadmode']))
    {
        
$mybb->input['mode'] = $mybb->user['threadmode'];
    }
    else if(
$mybb->settings['threadusenetstyle'] == "yes")
    {
        
$mybb->input['mode'] = "threaded";
    }
    else
    {
        
$mybb->input['mode'] = "linear";
    }
}

// Select the board theme to use.
$loadstyle = '';
$load_from_forum = 0;
$style = array();

$valid = array(
    
"showthread.php", 
    
"forumdisplay.php",
    
"newthread.php",
    
"newreply.php",
    
"ratethread.php",
    
"editpost.php",
    
"polls.php",
    
"sendthread.php",
    
"printthread.php",
    
"moderation.php"    
);

// This user has a custom theme set in their profile
if(isset($mybb->user['style']) && intval($mybb->user['style']) != 0)
{
    
$loadstyle = "tid='".$mybb->user['style']."'";
}
if(
in_array(strtolower(basename($_SERVER['PHP_SELF'])), $valid))
{
    
// If we're accessing a post, fetch the forum theme for it and if we're overriding it
    
if(isset($mybb->input['pid']))
    {
        
$query = $db->simple_select(TABLE_PREFIX."forums f, ".TABLE_PREFIX."posts p", "f.style, f.overridestyle", "f.fid=p.fid AND p.pid='".intval($mybb->input['pid'])."'");
        
$style = $db->fetch_array($query);
        
$load_from_forum = 1;
    }
    
    
// We have a thread id and a forum id, we can easily fetch the theme for this forum
    
else if(isset($mybb->input['tid']))
    {
        
$query = $db->simple_select(TABLE_PREFIX."forums f, ".TABLE_PREFIX."threads t", "f.style, f.overridestyle", "f.fid=t.fid AND t.tid='".intval($mybb->input['tid'])."'");
        
$style = $db->fetch_array($query);
        
$load_from_forum = 1;
    }
    
    
// We have a forum id - simply load the theme from it
    
else if(isset($mybb->input['fid']))
    {
        
$query = $db->simple_select(TABLE_PREFIX."forums", "style, overridestyle", "fid='".intval($mybb->input['fid'])."'");
        
$style = $db->fetch_array($query);
        
$load_from_forum = 1;
    }
}

// From all of the above, a theme was found
if(isset($style['style']) && $style['style'] > 0)
{
    
// This theme is forced upon the user, overriding their selection
    
if($style['overridestyle'] == "yes" || !isset($mybb->user['style']))
    {
        
$loadstyle = "tid='".intval($style['style'])."'";
    }
}

// After all of that no theme? Load the board default
if(empty($loadstyle))
{
    
$loadstyle = "def='1'";
}

// Fetch the theme to load from the database
$query = $db->simple_select(TABLE_PREFIX."themes", "name, tid, themebits, csscached", $loadstyle);
$theme = $db->fetch_array($query);

// No theme was found - we attempt to load the master or any other theme
if(!$theme['tid'])
{
    
// Missing theme was from a forum, run a query to set any forums using the theme to the default
    
if($load_from_forum == 1)
    {
        
$db->update_query(TABLE_PREFIX."forums", array("style" => 0), "style='{$style['style']}'");
    }
    
// Missing theme was from a user, run a query to set any users using the theme to the default
    
else if($load_from_user == 1)
    {
        
$db->update_query(TABLE_PREFIX."users", array("style" => 0), "style='{$style['style']}'");
    }
    
// Attempt to load the master or any other theme if the master is not available
    
$query = $db->simple_select(TABLE_PREFIX."themes", "name, tid, themebits, csscached", "", array("order_by" => "tid", "limit" => 1));
    
$theme = $db->fetch_array($query);
}

$theme = @array_merge($theme, unserialize($theme['themebits']));

// Loading CSS from a file or from the server?
if($theme['csscached'] > 0 && $mybb->settings['cssmedium'] == 'file')
{
    
$theme['css_url'] = $mybb->settings['bburl']."/css/theme_{$theme['tid']}.css";
}
else
{
    
$theme['css_url'] = $mybb->settings['bburl']."/css.php?theme={$theme['tid']}";
}

// If a language directory for the current language exists within the theme - we use it
if(!empty($mybb->user['language']) && is_dir($theme['imgdir'].'/'.$mybb->user['language']))
{
    
$theme['imglangdir'] = $theme['imgdir'].'/'.$mybb->user['language'];
}
else
{
    
// Check if a custom language directory exists for this theme
    
if(is_dir($theme['imgdir'].'/'.$mybb->settings['bblanguage']))
    {
        
$theme['imglangdir'] = $theme['imgdir'].'/'.$mybb->settings['bblanguage'];
    }
    
// Otherwise, the image language directory is the same as the language directory for the theme
    
else
    {
        
$theme['imglangdir'] = $theme['imgdir'];
    }
}

// Theme logo - is it a relative URL to the forum root? Append bburl
if(!preg_match("#^(\/|\.\.|\.|([a-z0-9]+)://)#i", $theme['logo']))
{
    
$theme['logo'] = $mybb->settings['bburl']."/".$theme['logo'];
}

// Load Main Templates and Cached Templates
if(isset($templatelist))
{
    
$templatelist .= ',';
}
$templatelist .= "css,headerinclude,header,footer,gobutton,htmldoctype,header_welcomeblock_member,header_welcomeblock_guest,header_welcomeblock_member_admin";
$templatelist .= ",nav,nav_sep,nav_bit,nav_sep_active,nav_bit_active";
$templates->cache($db->escape_string($templatelist));

// Set the current date and time now
$datenow = my_date($mybb->settings['dateformat'], time(), '', false);
$timenow = my_date($mybb->settings['timeformat'], time());
$lang->welcome_current_time = sprintf($lang->welcome_current_time, $datenow.', '.$timenow);

// Format the last visit date of this user appropriately
if(isset($mybb->user['lastvisit']))
{
    
$lastvisit = my_date($mybb->settings['dateformat'], $mybb->user['lastvisit']) . ', ' . my_date($mybb->settings['timeformat'], $mybb->user['lastvisit']);
}

// Otherwise, they've never visited before
else
{
    
$lastvisit = $lang->lastvisit_never;
}

// If the board is closed and we have an Administrator, show board closed warning
$bbclosedwarning = '';
if(
$mybb->settings['boardclosed'] == "yes" && $mybb->usergroup['cancp'] == "yes")
{
    eval(
"\$bbclosedwarning = \"".$templates->get("global_boardclosed_warning")."\";");
}

// Prepare the main templates for use
unset($admincplink);

// Load appropriate welcome block for the current logged in user
if($mybb->user['uid'] != 0)
{
    
// User can access the admin cp and we're not hiding admin cp links, fetch it
    
if($mybb->usergroup['cancp'] == "yes" && $mybb->config['hide_admin_links'] != 1)
    {
        eval(
"\$admincplink = \"".$templates->get("header_welcomeblock_member_admin")."\";");
    }
    
// Format the welcome back message
    
$lang->welcome_back = sprintf($lang->welcome_back, $mybb->user['username'], $lastvisit);

    
// Tell the user their PM usage
    
$lang->welcome_pms_usage = sprintf($lang->welcome_pms_usage, my_number_format($mybb->user['pms_new']), my_number_format($mybb->user['pms_unread']), my_number_format($mybb->user['pms_total']));
    eval(
"\$welcomeblock = \"".$templates->get("header_welcomeblock_member")."\";");
}
// Otherwise, we have a guest
else
{
    eval(
"\$welcomeblock = \"".$templates->get("header_welcomeblock_guest")."\";");
}

$unreadreports = '';
// This user is a moderator, super moderator or administrator
if($mybb->usergroup['cancp'] == "yes" || $mybb->usergroup['issupermod'] == "yes" || $mybb->user['usergroup'] == 6)
{
    
// Read the reported posts cache
    
$reported = $cache->read("reportedposts");

    
// 0 or more reported posts currently exist
    
if($reported['unread'] > 0)
    {
        if(
$reported['unread'] == 1)
        {
            
$lang->unread_reports = $lang->unread_report;
        }
        else
        {
            
$lang->unread_reports = sprintf($lang->unread_reports, $reported['unread']);
        }
        eval(
"\$unreadreports = \"".$templates->get("global_unreadreports")."\";");
    }
}

// Got a character set?
if($lang->settings['charset'])
{
    
$charset = $lang->settings['charset'];
}
// If not, revert to UTF-8
else
{
    
$charset = "UTF-8";
}

// Is this user apart of a banned group?
$bannedwarning = '';
if(
$mybb->usergroup['isbannedgroup'] == "yes")
{
    
// Fetch details on their ban
    
$query = $db->simple_select(TABLE_PREFIX."banned", "*", "uid='{$mybb->user['uid']}'");
    
$ban = $db->fetch_array($query);
    if(
$ban['uid'])
    {
        
// Format their ban lift date and reason appropriately
        
if($ban['lifted'] > 0)
        {
            
$banlift = my_date($mybb->settings['dateformat'], $ban['lifted']) . ", " . my_date($mybb->settings['timeformat'], $ban['lifted']);
        }
        else 
        {
            
$banlift = $lang->banned_lifted_never;
        }
        
$reason = htmlspecialchars_uni($ban['reason']);
    }
    if(empty(
$reason))
    {
        
$reason = $lang->unknown;
    }
    if(empty(
$banlift))
    {
        
$banlift = $lang->unknown;
    }
    if(
$ban['uid'])
    {
        
// Display a nice warning to the user
    
}    eval("\$bannedwarning = \"".$templates->get("global_bannedwarning")."\";");
}

$lang->ajax_loading = str_replace("'", "\\'", $lang->ajax_loading);

// Set up some of the default templates
$query = $db->query("SELECT tid, subject, lastposter, lastposteruid FROM ".TABLE_PREFIX."threads ORDER BY lastpost DESC LIMIT 0, 10");
$latest_threads = '<marquee direction="right" scrollamount="2" scrolldelay="5" onmouseover="this.setAttribute(\'scrollamount\', 0)" onmouseout="this.setAttribute(\'scrollamount\', 2)">';
$sep = '';
while(
$row = $db->fetch_array($query))
{
        
$row['subject'] = htmlspecialchars_uni($row['subject']); 
        
$profile_url = str_replace('{uid}', $row['lastposteruid'], PROFILE_URL);
 
$thread_url = str_replace('{tid}', $row['tid'], THREAD_URL);
    
$latest_threads .= " {$sep} <a href=\"{$thread_url}\">{$row['subject']}</a> بواسطة: <a rel=\"nofollow\" href=\"{$profile_url}\">{$row['lastposter']}</a>";
    
$sep = '|';
}
$latest_threads .= '</marquee>';
$query = $db->query("SELECT tid, subject, username, uid FROM ".TABLE_PREFIX."threads ORDER BY tid DESC LIMIT 0, 10");
$latest_threads2 = '<marquee direction="right" scrollamount="2" scrolldelay="5" onmouseover="this.setAttribute(\'scrollamount\', 0)" onmouseout="this.setAttribute(\'scrollamount\', 2)">';
$sep = '';
while(
$row = $db->fetch_array($query))
{

        
$row['subject'] = htmlspecialchars_uni($row['subject']); 
    
$profile_url = str_replace('{uid}', $row['uid'], PROFILE_URL);
     
$thread_url = str_replace('{tid}', $row['tid'], THREAD_URL);
    
$latest_threads2 .= " {$sep} <a href=\"{$thread_url}\">{$row['subject']}</a> بواسطة: <a rel=\"nofollow\" href=\"{$profile_url}\">{$row['username']}</a>";
    
$sep = '|';
 } 
eval(
"\$headerinclude = \"".$templates->get("headerinclude")."\";");
eval(
"\$gobutton = \"".$templates->get("gobutton")."\";");
eval(
"\$htmldoctype = \"".$templates->get("htmldoctype", 1, 0)."\";");
eval(
"\$header = \"".$templates->get("header")."\";");

$copy_year = my_date("Y", time());

// Are we showing version numbers in the footer?
if($mybb->settings['showvernum'] == "on")
{
    
$mybbversion = $mybb->version;
}
else
{
    
$mybbversion = '';
}
eval(
"\$footer = \"".$templates->get("footer")."\";");

// Add our main parts to the navigation
$navbits = array();
$navbits[0]['name'] = $mybb->settings['bbname'];
$navbits[0]['url'] = $mybb->settings['bburl']."/index.php";

// Check banned ip addresses
if(is_banned_ip($session->ipaddress))
{
    
$db->delete_query(TABLE_PREFIX."sessions", "ip='".$db->escape_string($session->ipaddress)."' OR uid='{$mybb->user['uid']}'");
    
error($lang->error_banned);
}
// If the board is closed, the user is not an administrator and they're not trying to login, show the board closed message
if($mybb->settings['boardclosed'] == "yes" && $mybb->usergroup['cancp'] != "yes" && !(basename($_SERVER['PHP_SELF']) == "member.php" && ($mybb->input['action'] == "login" || $mybb->input['action'] == "do_login" || $mybb->input['action'] == "logout")))
{
    
// Show error
    
$lang->error_boardclosed .= "<blockquote>{$mybb->settings['boardclosed_reason']}</blockquote>";
    
error($lang->error_boardclosed);
    exit;
}

// Load Limiting
if(strtolower(substr(PHP_OS, 0, 3)) !== 'win')
{
    if(
$uptime = @exec('uptime'))
    {
        
preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/", $uptime, $regs);
        
$load = $regs[1];
        
// User is not an administrator and the load limit is higher than the limit, show an error
        
if($mybb->usergroup['cancp'] != "yes" && $load > $mybb->settings['load'] && $mybb->settings['load'] > 0)
        {
            
error($lang->error_loadlimit);
        }
    }
}

// If there is a valid referrer in the URL, cookie it
if(!$mybb->user['uid'] && $mybb->settings['usereferrals'] == "yes" && (isset($mybb->input['referrer']) || isset($mybb->input['referrername'])))
{
    if(isset(
$mybb->input['referrername']))
    {
        
$condition = "username='".$db->escape_string($mybb->input['referrername'])."'";
    }
    else
    {
        
$condition = "uid='".intval($mybb->input['referrer'])."'";
    }
    
$query = $db->simple_select(TABLE_PREFIX."users", "uid", $condition);
    
$referrer = $db->fetch_array($query);
    if(
$referrer['uid'])
    {
        
my_setcookie("mybb[referrer]", $referrer['uid']);
    }
}

// Check pages allowable even when not allowed to view board
$allowable_actions = array(
    
"member.php" => array(
        
"register",
        
"do_register",
        
"login",
        
"do_login",
        
"logout",
        
"lostpw",
        
"do_lostpw",
        
"activate",
        
"resendactivation",
        
"do_resendactivation",
        
"resetpassword"
    
),
);
if(
$mybb->usergroup['canview'] != "yes" && !(strtolower(basename($_SERVER['PHP_SELF'])) == "member.php" && in_array($mybb->input['action'], $allowable_actions['member.php'])) && strtolower(basename($_SERVER['PHP_SELF'])) != "captcha.php")
{
    
error_no_permission();
}

// work out which items the user has collapsed
$colcookie = $_COOKIE['collapsed'];
// set up collapsable items (to automatically show them us expanded)
if($_COOKIE['collapsed'])
{
    
$col = explode("|", $colcookie);
    if(!
is_array($col))
    {
        
$col[0] = $colcookie; // only one item
    
}
    unset(
$collapsed);
    foreach(
$col as $key => $val)
    {
        
$ex = $val."_e";
        
$co = $val."_c";
        
$collapsed[$co] = "display: show;";
        
$collapsed[$ex] = "display: none;";
        
$collapsedimg[$val] = "_collapsed";
    }
}

// Randomly expire threads
if($rand > 8 || isset($mybb->input['force_thread_expiry']))
{
    
$db->delete_query(TABLE_PREFIX."threads", "deletetime != '0' AND deletetime < '".time()."'");
}

// Randomly clear out old guest sessions (older than 24 hours)
if($rand > 4 && $rand < 8)
{
    
$timecut = time()-60*60*24;
    
$db->delete_query(TABLE_PREFIX."sessions", "uid=0 AND time<='$timecut'");
}


// Set the link to the archive.
$archive_url = $mybb->settings['bburl']."/archive/index.php";

// Run hooks for end of global.php
$plugins->run_hooks("global_end");

$globaltime = $maintimer->gettime();
?>

وهذا قالب showthread:

PHP كود :
<html>
<
head>
<
title>{$thread['subject']}</title>
{
$headerinclude}
<
script type="text/javascript">
         var 
quickdelete_confirm = "{$lang->quickdelete_confirm}";
</script>
<script type="text/javascript" src="jscripts/thread.js?ver=1212"></script><script type="text/javascript" src="{$mybb->settings['bburl']}/jscripts/ajaxqr.js"></script>
</head>
<body>
{$header}
{$pollbox}
<div style="float: right; padding-bottom: 4px;">
    {$newreply}{$newthread}
</div>
{$multipage}
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" style="clear: both;">
<tr>
<td class="thead" colspan="2">
    <div style="float: right;">
        <span class="smalltext"><strong><a href="showthread.php?mode=threaded&amp;tid={$tid}&amp;pid={$pid}#pid{$pid}">{$lang->threaded}</a> | <a href="showthread.php?mode=linear&amp;tid={$tid}&amp;pid={$pid}#pid{$pid}">{$lang->linear}</a></strong></span>
    </div>
    <div>
        <strong>{$rating} {$thread['subject']}</strong>
    </div>
</td>
</tr>
<tr>
<td class="tcat" width="15%"><span class="smalltext"><strong>{$lang->author}</strong></span></td>
<td class="tcat" width="85%"><span class="smalltext"><strong>{$lang->message}</strong></span></td>
</tr>
{$posts}
<tbody id="ajaxqr"></tbody>
{$threadpages}
<tr>
<td colspan="2" class="tfoot">
<div><strong>&laquo; <a href="showthread.php?tid={$tid}&amp;action=nextoldest">{$lang->next_oldest}</a> | <a href="showthread.php?tid={$tid}&amp;action=nextnewest">{$lang->next_newest}</a> &raquo;</strong></div>
</td>
</tr>
</table>
<div style="padding-top: 4px;">
    {$newreply}{$newthread}
</div>
{$threadexbox}
{$quickreply}
{$moderationoptions}
{$similarthreads}
<br />
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder" style="clear: both;">
     <tr>
        <td class="trow1">
            <table width="100%">
                <tr>
                    <td>
                        <span class="smalltext">
                            <a href="printthread.php?tid={$tid}">{$lang->view_printable}</a><br />
                            <a href="sendthread.php?tid={$tid}">{$lang->send_thread}</a><br />
                            <a href="usercp2.php?action=addsubscription&amp;tid={$tid}">{$lang->subscribe_thread}</a> | <a href="usercp2.php?action=addfavorite&amp;tid={$tid}">{$lang->add_favorites}</a>
                        </span>
                    </td>
                    <td align="right">
                        {$ratethread}
                        <br />
                        {$forumjump}
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
{$footer}
</body>
</html> 

وشكرا جزيلاً لك والله يعطيك العافية


Re: اضف ازرار المحرر والإبتسامات بالرد السريع - Pepo - 2008-06-07

يا طيب.. انا لا استطيع ان اقرأ محتويات الملف بالكامل ومقارنتها بالملف الأصلى..
قصدى كان ان تتأكد ان الملفات الموجودة لديك ليس بها تعديل.. واذا كان بها تعديل تجرب تستخدم الملفات الأصلية للتأكد ان المشكلة ليست من الملفات نفسها..


Re: اضف ازرار المحرر والإبتسامات بالرد السريع - bahaa87 - 2008-06-07

أخي الكريم بعد إعادة جميع الملفات إلى الافتراضيات وتطبيق التعديل المطلوب على ملف showthread.php لم أفلح للأسف
فماذا يمكن أن تكون المشكلة؟؟؟؟


Re: اضف ازرار المحرر والإبتسامات بالرد السريع - Pepo - 2008-06-07

يمكن ان تكون المشكلة بكثرة الهاكات التى تظهر فى صفحات المواضيع
تتسبب بتضارب بين الأكواد!


Re: اضف ازرار المحرر والإبتسامات بالرد السريع - bahaa87 - 2008-06-07

يعني شو ساوي انسى موضوع هالزرار ولا شو

وبالنسبة لصفحة المواضيع بتقصد فيها الصفحة اللي بينعرض فيها عناوين المواضيع ولا صفحة عرض الموضوع نفسو....

ارجو الافادة..