نمایش ارسالهای جدید | نمایش ارسالهای امروز لیست دوستان


زمان کنونی: ۱۳-۹-۱۳۹۵, ۱۱:۱۶ صبح     نام کاربری:    رمز عبور:            
مای بی بی اسکین / نسخه MyBB 1.6 / پلاگین های MyBB 1.6 / صفحه اصلی v / پلاگین چت باکس نسخه MyShoutbox 1.7


عظیمی ویکیوز

کلمات کلیدی: پلاگین, چت, باکس, نسخه, MyShoutbox,

پلاگین چت باکس نسخه MyShoutbox 1.7
زمان کنونی: ۱۳-۹-۱۳۹۵, ۱۱:۱۶ صبح
علاقه مندی ها

جستجو در موضوع

کاربرانِ درحال بازدید از این موضوع: 1 مهمان
نویسنده: SheRvin
آخرین ارسال: ! Omid StaR !
پاسخ: 51
بازدید: 5285

ارسال موضوع  ارسال پاسخ 
 
امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 4
  • 1
  • 2
  • 3
  • 4
  • 5
پلاگین چت باکس نسخه MyShoutbox 1.7
نویسنده پیام
مدیر بازنشسته
*
نسخه: 1.6.8
سپاس ها : 713
 سپاس شده 729 بار در 204 ارسال
ارسال: #1
پلاگین چت باکس نسخه MyShoutbox 1.7
درود !

پلاگین چت باکس نسخه MyShoutbox 1.7

نکات لازم برا استفاده :

پس استفاده 10 صلوات بفرستید برای تمامی مدیران و کاربران مای بی بی اسکین

بنده رضایت ندارم ترجمه و یا معرفی این پلاگین در هیچ سایتی جز اینجا استفاده شه

کپی رایت مترجم حذف نشه > درصورت حذف محرومیت در پی داره

[تصویر: nevis.png] نویسنده : [b]Pirata Nervo

[/b] [تصویر: nevis.png] ترجمه : مای بی بی اسکین

[تصویر: home.png] لینک اصلی : http://forums.mybb-plugins.com/Thread-MyShoutbox-1-7

نحوه نصب : فایل ها را در محل مشخص شده آپ کنید و از php my admin جدول mybb_mysb_shouts یو تی اف کنین
آموزش یو تی اف کردن

پیروز باشین


فایل(های) ضمیمه شده بند انگشتی(ها)
                                           
MyShoutbox 1.7(mybbskin.ir).zip
نوع فایل .zip دانلود
دفعات دانلود 291
اندازه 24.5 KB

۱۰-۳-۱۳۹۱ ۰۲:۳۹ عصر
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
 سپاس شده توسط Tofighii ، ! Omid StaR ! ، yeganeh64 ، mehrshad ، do0ostane ، dadashmohsen ، H@M!d ، hamid_a ، tabhasan ، Alone Boy ، Ben ، sattarforum ، ali100 ، donia ، benyamin79 ، mparsa ، smartgig ، Mehrad ، Reza913 ، Ramin89 ، farzin22 ، werewolf ، love boy ، mr-javad ، arosake_khoshgel ، Uchiha Sasuke ، erfan-1376 ، dvd9 ، senator
نویسنده پیام
کاربر سایت
*
نسخه: 1.6.5
http://www.khansariha.com
سپاس ها : 13
 سپاس شده 13 بار در 10 ارسال
ارسال: #2
RE: پلاگین چت باکس نسخه MyShoutbox 1.7
چه تفاوتی با نسخه های قبلی داره ؟
۱۰-۳-۱۳۹۱ ۰۴:۴۵ عصر
مشاهده سایت این کاربر یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
نویسنده پیام
مدیر بازنشسته
*
نسخه: 1.6.8
سپاس ها : 713
 سپاس شده 729 بار در 204 ارسال
ارسال: #3
RE: پلاگین چت باکس نسخه MyShoutbox 1.7
1. نسخه آپدیت شده

2. ورژن 1.7

3. ورژن های قبلی حدود 8 تا تنظیم و یا برای ساپورت تنظیم داشتن که در این ارتقا داده شده به 12 عدد

4. ورژن قبلی مشکل ساپورت بعضی کد یا تنظیمات رو داشت ولی حل شده

5. ایجاد گزارش مستقیم به مدیریت

6. اجازه دسترسی به تنظیمات برا مدیران اضافه شده

7.
:D
۱۰-۳-۱۳۹۱ ۰۴:۵۸ عصر
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
 سپاس شده توسط Tofighii
نویسنده پیام
کاربر سایت
*
نسخه: 1.6.7
سپاس ها : 21
 سپاس شده 12 بار در 9 ارسال
ارسال: #4
RE: پلاگین چت باکس نسخه MyShoutbox 1.7
درود

ببخشيد وقتي من پلاگين رو فعال ميكنم

تو سفحه ي ادمين بالاش اين متن ظاهر ميشه


[2] Cannot modify header information - headers already sent by (output started at /home/mihanfu1/public_html/inc/plugins/myshoutbox.php:1) - Line: 51 - File: admin/index.php PHP 5.2.17 (Linux)
FileLineFunction[PHP] errorHandler->error/admin/index.php51header


و توي صفحه ي اصلي كلا قالب رو بهم ميريزه عكس هاي Thread و BackGround نميان
لطفا كمك كنيد
از اين آكانت دو نفر استفاده ميكنن

1 - حسن كه صاحب اصلي اكانتم
2 - و دوستم دانيال

اينم ادرس انجمن
http://mihanfuns.com/
(آخرین ویرایش در ۱۳-۳-۱۳۹۱ ۱۱:۰۱ صبح توسط: Hossein121.)
۱۳-۳-۱۳۹۱ ۱۰:۵۳ صبح
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
نویسنده پیام
مدیریت کل سایت
********
نسخه: 1.6.11
http://iran-talk.ir
سپاس ها : 1643
 سپاس شده 6967 بار در 1965 ارسال
ارسال: #5
RE: پلاگین چت باکس نسخه MyShoutbox 1.7
نسخه مای بی بی ؟
۱۳-۳-۱۳۹۱ ۱۱:۳۵ صبح
مشاهده سایت این کاربر یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
نویسنده پیام
کاربر سایت
*
نسخه: 1.6.7
سپاس ها : 21
 سپاس شده 12 بار در 9 ارسال
ارسال: #6
RE: پلاگین چت باکس نسخه MyShoutbox 1.7
1.6.7
از اين آكانت دو نفر استفاده ميكنن

1 - حسن كه صاحب اصلي اكانتم
2 - و دوستم دانيال

اينم ادرس انجمن
http://mihanfuns.com/
۱۳-۳-۱۳۹۱ ۱۱:۴۶ صبح
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
نویسنده پیام
معاونت سایت
******
نسخه: 1.6.11
http://MyBBskin.ir
سپاس ها : 1088
 سپاس شده 1451 بار در 389 ارسال
ارسال: #7
RE: پلاگین چت باکس نسخه MyShoutbox 1.7
فایل پلاگین را به کد زیر تغییر دهید ببینید درست میشه یا نه:
کد:
<?php

if(!defined('IN_MYBB'))
    die('This file cannot be accessed directly.');

$plugins->add_hook("index_end", "myshoutbox_index");
$plugins->add_hook("xmlhttp", "myshoutbox_load");
$plugins->add_hook("pre_output_page", "myshoutbox_output_control");

$plugins->add_hook('admin_load', 'myshoutbox_admin');
$plugins->add_hook('admin_tools_menu', 'myshoutbox_admin_tools_menu');
$plugins->add_hook('admin_tools_action_handler', 'myshoutbox_admin_tools_action_handler');
$plugins->add_hook('admin_tools_permissions', 'myshoutbox_admin_permissions');

// reported shouts notice
$plugins->add_hook('admin_home_menu', 'myshoutbox_admin_home_menu');

function myshoutbox_info()
{
    return array(
        'name'            => 'چت باکس',
        'description'    => 'چت باکس برا انجمن پارسی سازی توسط مای بی بی اسکین در مرجع پشتیبانی مای بی بی اسکین',
        'website'        => 'http://www.javanan-irani.ir/',
        'author'        => 'Pirata Nervo',
        'authorsite'    => 'http://www.javanan-irani.ir/',
        'version'        => '1.7',
        'guid'            => 'c7e5e6c1a57f0639ea52d7813b23579f',
        'compatibility' => '16*',
    );
}

function myshoutbox_install()
{
    global $db;
    
    $shoutbox_group = array(
        "name"        => "mysb_shoutbox",
        "title"        => "چت باکس",
        "description"    => "تنظیمات جعبه چت باکس",
        "disporder"    => "1",
        "isdefault"    => "no",
    );
    
    $db->insert_query("settinggroups", $shoutbox_group);
    $gid = $db->insert_id();
    
    $shoutbox_setting_1 = array(
        "name"        => "mysb_shouts_main",
        "title"        => "# تعداد نوشته ها برای نمایش ندارد",
        "description"    => "حدااقل تعداد نوشته که میخواهید نمایش داده شود.",
        "optionscode"    => "text",
        "value"        => "30",
        "disporder"    => "1",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_2 = array(
        "name"        => "mysb_refresh_interval",
        "title"        => "تازه سازی فاصله",
        "description"    => "بارگذاری مجدد در ثانیه . بارگزاری پیام های آژاکس ",
        "optionscode"    => "text",
        "value"        => "15",
        "disporder"    => "2",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_3 = array(
        "name"        => "mysb_allow_mycode",
        "title"        => "استفاده از MyCode ",
        "description"    => "اجازه میدهید از مای کد استفاده شود؟",
        "optionscode"    => "yesno",
        "value"        => "yes",
        "disporder"    => "3",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_4 = array(
        "name"        => "mysb_allow_smilies",
        "title"        => "استفاده از شکلک؟",
        "description"    => "اجازه میدهید از شکلک استفاده شود؟",
        "optionscode"    => "yesno",
        "value"        => "yes",
        "disporder"    => "4",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_5 = array(
        "name"        => "mysb_allow_imgcode",
        "title"        => "استفاده از IMGCode",
        "description"    => "اجازه میدهید از جعبه تصاویر استفاده شود؟",
        "optionscode"    => "yesno",
        "value"        => "no",
        "disporder"    => "5",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_6 = array(
        "name"        => "mysb_height",
        "title"        => "ارتفاع چت باکس",
        "description"    => "تنظیم حدااقل ارتفاع چت باکس",
        "optionscode"    => "text",
        "value"        => "125",
        "disporder"    => "6",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_7 = array(
        "name"        => "mysb_datetime",
        "title"        => "چت تاریخ / زمان",
        "description"    => "php فرمت زمان برا نمایش در چت باکس",
        "optionscode"    => "text",
        "value"        => "d-m-H:i",
        "disporder"    => "7",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_8 = array(
        "name"        => "mysb_full_ppage",
        "title"        => "تمامی پیام ها نشان داده شوند ؟",
        "description"    => "تمامی نوشته های کاربران در صفحه نمایش داده بشوند ؟",
        "optionscode"    => "text",
        "value"        => "50",
        "disporder"    => "8",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_9 = array(
        "name"        => "mysb_allow_smods",
        "title"        => "مدیران سایت بتوانند حذف کنن ؟",
        "description"    => "آیا اجازه میدهید مدیران سایت پیام ها را پاک کنند؟",
        "optionscode"    => "yesno",
        "value"        => "yes",
        "disporder"    => "9",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_10 = array(
        "name"        => "mysb_allow_html",
        "title"        => "استفاده از html",
        "description"    => "اجازه استفاده را میدهید؟",
        "optionscode"    => "yesno",
        "value"        => "no",
        "disporder"    => "10",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_11 = array(
        "name"        => "mysb_allow_video",
        "title"        => "استفاده از ویدیو",
        "description"    => "اجازه استفاده از ویدیو؟",
        "optionscode"    => "yesno",
        "value"        => "no",
        "disporder"    => "11",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_12 = array(
        "name"        => "mysb_flood_time",
        "title"        => "گفتگوی آزاد بررسی کنید؟",
        "description"    => "اضافه کردن بررسی سیل برای همه اما مدیران انجمن است. ",
        "optionscode"    => "text",
        "value"        => "5",
        "disporder"    => "12",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_13 = array(
        "name"        => "mysb_usergroups",
        "title"        => "گروه های دسته اجازه مشاهده و جعبه",
        "description"    => "The groupd ids of the users allowed to view the shoutbox. (Seperated by a comma. Leave blank to allow all.)",
        "optionscode"    => "text",
        "value"        => "",
        "disporder"    => "13",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_14 = array(
        "name"        => "mysb_additional_groups",
        "title"        => "بررسی گروه های اضافی؟",
        "description"    => "این مجموعه به بله اگر شما می خواهید از گروه های اضافی را به بررسی می شود. ",
        "optionscode"    => "yesno",
        "value"        => "no",
        "disporder"    => "14",
        "gid"        => intval($gid),
    );
        
    $shoutbox_setting_15 = array(
        "name"        => "mysb_allow_mods",
        "title"        => "اجازه مدیران سایت را حذف کنید؟",
        "description"    => "اجازه به مدیران سایت به حذف نوشته در جعبه؟",
        "optionscode"    => "yesno",
        "value"        => "yes",
        "disporder"    => "15",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_16 = array(
        "name"        => "mysb_display_message",
        "title"        => "آیا میخواهید متن نمایش داده شود برا کاربران محروم ؟",
        "description"    => "Do you want to show a message to banned users? The message can be changed in the language files of MyShoutbox. (it is displayed instead of the shoutbox)",
        "value"        => 1,
        "optionscode"    => "yesno",
        "disporder"    => "16",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_17 = array(
        "name"        => "mysb_text_size",
        "title"        => "سایز فونت",
        "description"    => "سایز فونت برا نوشتار : حالت عادی 12",
        "value"        => 12,
        "optionscode"    => "text",
        "disporder"    => "17",
        "gid"        => intval($gid),
    );
    
    $shoutbox_setting_18 = array(
        "name"            => "mysb_key",
        "title"            => "کلید",
        "description"    => "Enter a random string for your key. All {myshoutbox_KEY} entries found in your templates or anywhere else will be replaced with the actual shoutbox.",
        "value"            => "abcd",
        "optionscode"    => "text",
        "disporder"        => "18",
        "gid"            => intval($gid),
    );
    
    $db->insert_query("settings", $shoutbox_setting_1);
    $db->insert_query("settings", $shoutbox_setting_2);
    $db->insert_query("settings", $shoutbox_setting_3);
    $db->insert_query("settings", $shoutbox_setting_4);
    $db->insert_query("settings", $shoutbox_setting_5);
    $db->insert_query("settings", $shoutbox_setting_6);
    $db->insert_query("settings", $shoutbox_setting_7);
    $db->insert_query("settings", $shoutbox_setting_8);
    $db->insert_query("settings", $shoutbox_setting_9);
    $db->insert_query("settings", $shoutbox_setting_10);
    $db->insert_query("settings", $shoutbox_setting_11);
    $db->insert_query("settings", $shoutbox_setting_12);
    $db->insert_query("settings", $shoutbox_setting_13);
    $db->insert_query("settings", $shoutbox_setting_14);
    $db->insert_query("settings", $shoutbox_setting_15);
    $db->insert_query("settings", $shoutbox_setting_16);
    $db->insert_query("settings", $shoutbox_setting_17);
    $db->insert_query("settings", $shoutbox_setting_18);
    
    // create table
    $db->write_query("CREATE TABLE `".TABLE_PREFIX."mysb_shouts` (
      `id` int(10) NOT NULL auto_increment,
      `uid` int(10) NOT NULL,
      `shout_msg` text NOT NULL,
      `shout_date` int(10) NOT NULL,
      `shout_ip` varchar(30) NOT NULL,
      `hidden` varchar(10) NOT NULL,
      PRIMARY KEY  (`id`)
        ) ENGINE=MyISAM");
    
    // create reports table
    $db->write_query("CREATE TABLE `".TABLE_PREFIX."mysb_reports` (
      `rid` int(10) NOT NULL auto_increment,
      `username` varchar(100) NOT NULL DEFAULT '',
      `uid` int(10) NOT NULL DEFAULT 0,
      `reason` varchar(255) NOT NULL DEFAULT '',
      `date` bigint(30) NOT NULL DEFAULT 0,
      `sid` int(10) NOT NULL DEFAULT 0,
      `marked` tinyint(1) NOT NULL DEFAULT 0,
      `author_uid` int(10) NOT NULL DEFAULT 0,
      `author_username` varchar(30) NOT NULL DEFAULT '',
      PRIMARY KEY  (`rid`), KEY(`date`)
        ) ENGINE=MyISAM");
        
    $db->write_query("INSERT INTO ".TABLE_PREFIX."mysb_shouts VALUES (NULL, 1, 'Test Shout! Without any shout, shoutbox will display Loading... forever.. you need at least one shout, so here it is.', ".time().", '127.0.0.1', 'no')");
    
    $db->write_query("ALTER TABLE `".TABLE_PREFIX."users` ADD `mysb_banned` smallint(1) NOT NULL DEFAULT 0;");
    $db->write_query("ALTER TABLE `".TABLE_PREFIX."users` ADD `mysb_banned_reason` varchar(255) NOT NULL DEFAULT '';");
    
    // rebuild settings...
    rebuild_settings();
}

function myshoutbox_activate()
{
    global $db, $mybb;
    
    // load templates
    $mysb_shoutbox_tpl = '
    <script type="text/javascript" src="jscripts/myshoutbox.js?ver=1400"></script>
<style type="text/css">

.shoutbox {
    margin: 0;
    padding: 0;
    left: 0;
}


li.shoutbox_normal {
    list-style: none;
    margin: 0;
    position: relative;
    cursor: pointer;
    color: transparent;
    display: inline ;
    border: 1px;
    border-color: #FFFFFF;
}

li.shoutbox_color {
    list-style: none;
    position: relative;
    cursor: pointer;
    color: transparent;
    display: inline ;
    border: 0px;
    float: left;
    margin: 1px;
}

.shoutbox_button_color a {
    width: 9px;
    height: 9px;
    display: block;
    border: 1px solid #FFF;
}

</style>

<table border="0" cellspacing="1" cellpadding="4" class="tborder">
<thead>
<tr>
<td class="thead" colspan="2">
<div class="expcolimage"><img src="{$theme[\'imgdir\']}/collapse.gif" id="shoutbox_img" class="expander" alt="[-]" /></div>
<div><strong>{$lang->mysb_shoutbox}</strong> (<a href="index.php?action=full_shoutbox">{$lang->mysb_fullsbox}</a> - <a href="pspshoutbox.php">{$lang->mysb_portable}</a>)<br /></div>
</td>
</tr>
</thead>

<tbody id="shoutbox_e">
<tr>
<td class="trow2" width="66%" align="center"><form onsubmit="ShoutBox.postShout(); $(\'shout_data\').value = \'\'; return false;">{$lang->mysb_shout} <input type="text" id="shout_data" size="50" /> - <input type="submit" value="{$lang->mysb_shoutnow}" id="shouting-status" /></form></td>
<td class="trow2" width="12%" align="center">{$lang->mysb_options}</td>
</tr>
<tr>
<td class="trow1" width="76%"><div id="shoutbox_data" style="height: {$mybb->settings[\'mysb_height\']}px; overflow: auto;">{$lang->mysb_loading}</div></td>
<td class="trow1" width="12%" align="center">
    <a style="cursor: pointer;" id="smilies" onclick="window.open(\'misc.php?action=smilies&amp;popup=true&amp;editor=clickableEditor\',\'{$lang->mysb_smilies}\',\'scrollbars=yes, menubar=no,width=460,height=360,toolbar=no\');">{$lang->mysb_smilies}</a>
    <br />
    <a style="cursor: pointer;" onclick="window.open(\'shoutbox.php\',\'{$lang->mysb_shoutbox}\',\'scrollbars=yes, menubar=no,width=825,height=449,toolbar=no\');">{$lang->mysb_popup_shoutbox}</a>
</td>
</tr>
</tbody>
</table>

<script type="text/javascript">
ShoutBox.refreshInterval = {$mybb->settings[\'mysb_refresh_interval\']};
ShoutBox.MaxEntries = {$mybb->settings[\'mysb_shouts_main\']};
ShoutBox.lang = [\'{$lang->mysb_posting}\', \'{$lang->mysb_shoutnow}\', \'{$lang->mysb_loading}\', \'{$lang->mysb_flood_check}\', \'{$lang->mysb_no_perform}\', \'{$lang->mysb_already_sent}\', \'{$lang->mysb_deleted}\', \'{$lang->mysb_invalid}\', \'{$lang->mysb_self}\', \'{$lang->mysb_report_invalid_sid}\', \'{$lang->mysb_shout_reported}\', \'{$lang->mysb_shout_already_reported}\'];
{$extra_js}
Event.observe(window, \'load\', ShoutBox.showShouts);
</script>

<br />';

    $mysb_boxfull_tpl = '<html>
<head>
<title>Full Shoutbox</title>
{$headerinclude}
</head>
<body>
{$header}

<table border="0" cellspacing="1" cellpadding="4" class="tborder">
<thead>
<tr>
<td class="thead" colspan="2">
<div><strong>{$lang->mysb_shoutbox}</strong><br /></div>
</td>
</tr>
</thead>

<tr>
{$mysb_shoutbox_data}
</tr>
</table>

<br />

<center>$multipage</center>

{$footer}
</body>
</html>
';

    $mysb_popup_shoutbox_tpl = '
    <html>
<head>
<title>{$lang->mysb_shoutbox}</title>
{$headerinclude}
<script type="text/javascript" src="jscripts/myshoutbox.js?ver=1400"></script>
</head>
<body>

<style type="text/css">

.shoutbox {
    margin: 0;
    padding: 0;
    left: 0;
}


li.shoutbox_normal {
    list-style: none;
    margin: 0;
    position: relative;
    cursor: pointer;
    color: transparent;
    display: inline ;
    border: 1px;
    border-color: #FFFFFF;
}

li.shoutbox_color {
    list-style: none;
    position: relative;
    cursor: pointer;
    color: transparent;
    display: inline ;
    border: 0px;
    float: left;
    margin: 1px;
}

.shoutbox_button_color a {
    width: 9px;
    height: 9px;
    display: block;
    border: 1px solid #FFF;
}

</style>

<table border="0" cellspacing="1" cellpadding="4" class="tborder">
<thead>
<tr>
<td class="thead" colspan="2">
<div class="expcolimage"><img src="{$theme[\'imgdir\']}/collapse.gif" id="shoutbox_img" class="expander" alt="[-]" /></div>
<div><strong>{$lang->mysb_shoutbox}</strong> (<a href="index.php?action=full_shoutbox">{$lang->mysb_fullsbox}</a> - <a href="pspshoutbox.php">{$lang->mysb_portable}</a>)<br /></div>
</td>
</tr>
</thead>

<tbody id="shoutbox_e">
<tr>
<td class="trow2" width="66%" align="center"><form onSubmit="ShoutBox.postShout(); $(\'shout_data\').value = \'\'; return false;">{$lang->mysb_shout} <input type="text" id="shout_data" size="50" /> - <input type="submit" value="{$lang->mysb_shoutnow}" id="shouting-status" /></form></td>
<td class="trow2" width="12%" align="center">{$lang->mysb_options}</td>
</tr>
<tr>
<td class="trow1" width="76%"><div align="left" id="shoutbox_data" style="height: {$mybb->settings[\'mysb_height\']}px; overflow: auto;">{$lang->mysb_loading}</div></td>
  <td class="trow1" width="12%" align="center">
    <a style="cursor: pointer;" id="smilies" onclick="window.open(\'misc.php?action=smilies&popup=true&editor=clickableEditor\',\'{$lang->mysb_smilies}\',\'scrollbars=yes, menubar=no,width=460,height=360,toolbar=no\');">{$lang->mysb_smilies}</a>
    <br />
    <a style="cursor: pointer;" onclick="window.open(\'shoutbox.php\',\'{$lang->mysb_shoutbox}\',\'scrollbars=yes, menubar=no,width=825,height=449,toolbar=no\');">{$lang->mysb_popup_shoutbox}</a>
</td>
</tbody>
</table>

<script>
ShoutBox.refreshInterval = {$mybb->settings[\'mysb_refresh_interval\']};
ShoutBox.MaxEntries = {$mybb->settings[\'mysb_shouts_main\']};
ShoutBox.lang = [\'{$lang->mysb_posting}\', \'{$lang->mysb_shoutnow}\', \'{$lang->mysb_loading}\', \'{$lang->mysb_flood_check}\', \'{$lang->mysb_no_perform}\', \'{$lang->mysb_already_sent}\', \'{$lang->mysb_deleted}\', \'{$lang->mysb_invalid}\', \'{$lang->mysb_self}\', \'{$lang->mysb_report_invalid_sid}\', \'{$lang->mysb_shout_reported}\', \'{$lang->mysb_shout_already_reported}\'];
{$extra_js}
Event.observe(window, \'load\', ShoutBox.showShouts);
</script>

</body>
</html>';

    $mysb_portable_tpl = '
    <html>
<head>
<title>{$lang->mysb_shoutbox}</title>
{$headerinclude}
<!--<SCRIPT>var timeID = setTimeout("document.forms[0].submit()", 30000)</SCRIPT>-->
</head>
<body>

<form id="0" action="pspshoutbox.php"></form>

<table border="0" cellspacing="1" cellpadding="4" class="tborder">
<thead>
<tr>
<td class="thead" colspan="2">
<form id="1" action="pspshoutbox.php?action=shout" method="post">{$lang->mysb_shout} <input type="hidden" name="postcode" value="{$mybb->post_code}" /> <input type="text" name="shout_data" size="50" /> - <input type="submit" value="{$lang->mysb_shoutnow}" id="shouting-status" /></form>
</td>
</tr>
<tr>
<td class="thead" colspan="2">
<div><strong>{$lang->mysb_shoutbox}</strong> - <!--<a href="pspshoutbox.php">Refresh</a> --><small>(<a href="pspshoutbox.php?action=refresh">Refresh</a>)</small> <br /></div>
</td>
</tr>
</thead>

<tr>
{$mysb_shoutbox_data}
</tr>
</table>

</body>

</html>';

    $mysb_banned = '<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder">
<tr>
<td class="thead"><strong>{$lang->mysb_shoutbox}</strong></td>
</tr>
<tr>
<td class="trow1">{$lang->mysb_error_ban}</td>
</tr>
</table><br />';

    
    // insert templates
    $db->insert_query('templates', array('title' => 'mysb_shoutbox', 'sid' => '-1', 'template' => $db->escape_string($mysb_shoutbox_tpl), 'version' => '1411', 'status' => '', 'dateline' => TIME_NOW));
    $db->insert_query('templates', array('title' => 'mysb_shoutbox_full', 'sid' => '-1', 'template' => $db->escape_string($mysb_boxfull_tpl), 'version' => '1411', 'status' => '', 'dateline' => TIME_NOW));
    $db->insert_query('templates', array('title' => 'mysb_shoutbox_popup', 'sid' => '-1', 'template' => $db->escape_string($mysb_popup_shoutbox_tpl), 'version' => '1411', 'status' => '', 'dateline' => TIME_NOW));
    $db->insert_query('templates', array('title' => 'mysb_shoutbox_psp', 'sid' => '-1', 'template' => $db->escape_string($mysb_portable_tpl), 'version' => '1411', 'status' => '', 'dateline' => TIME_NOW));
    $db->insert_query('templates', array('title' => 'mysb_shoutbox_banned', 'sid' => '-1', 'template' => $db->escape_string($mysb_banned), 'version' => '1411', 'status' => '', 'dateline' => TIME_NOW));
    
    require_once MYBB_ROOT.'inc/adminfunctions_templates.php';
    
    find_replace_templatesets('index', '#{\$boardstats}#', "{myshoutbox_".$mybb->settings['mysb_key']."}\n{\$boardstats}");

}

function myshoutbox_uninstall()
{
    global $db;
    
    $db->write_query("DROP TABLE ".TABLE_PREFIX."mysb_shouts");
    $db->write_query("DROP TABLE ".TABLE_PREFIX."mysb_reports");
    $db->write_query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name = 'mysb_shoutbox'");
    $db->write_query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('mysb_shouts_main','mysb_refresh_interval','mysb_allow_mycode',
                            'mysb_allow_smilies','mysb_allow_imgcode','mysb_height','mysb_datetime','my​sb_full_ppage','mysb_allow_smods',
                            'mysb_allow_html','mysb_flood_time','mysb_usergroups','mysb_additional_grou​ps','mysb_allow_mods','mysb_display_message','mysb_allow_video')");
    
    $db->write_query("ALTER TABLE `".TABLE_PREFIX."users` DROP `mysb_banned`;");
    $db->write_query("ALTER TABLE `".TABLE_PREFIX."users` DROP `mysb_banned_reason`;");
}

function myshoutbox_is_installed()
{
    global $db;
    
    if ($db->table_exists('mysb_shouts'))
        return true;
    
    return false;
}

function myshoutbox_deactivate()
{
    global $db, $mybb;
    $db->write_query("DELETE FROM ".TABLE_PREFIX."templates WHERE title IN('mysb_shoutbox','mysb_shoutbox_full','mysb_shoutbox_popup','mysb_shoutbox_pop​up_full','mysb_shoutbox_psp','mysb_shoutbox_banned') AND sid='-1'");
    
    require_once MYBB_ROOT.'inc/adminfunctions_templates.php';

    find_replace_templatesets('index', '#{myshoutbox_'.$mybb->settings['mysb_key'].'}#', '', 0);
}

function myshoutbox_load()
{
    global $mybb, $lang, $charset;

    $lang->load("myshoutbox");
    
    // Send our headers.
    header("Content-type: text/html; charset={$charset}");
    
    switch ($mybb->input['action'])
    {
        case 'show_shouts':
            myshoutbox_show_shouts(intval($mybb->input['last_id']));
        break;
            
        case 'add_shout':
            myshoutbox_add_shout();
        break;
        
        case 'delete_shout':
            myshoutbox_delete_shout(intval($mybb->input['id']));
        break;
            
        case 'remove_shout':
            myshoutbox_remove_shout(intval($mybb->input['id']));
        break;
        
        case 'recover_shout':
            myshoutbox_recover_shout(intval($mybb->input['id']));
        break;
        
        case 'report_shout':
            myshoutbox_report_shout($mybb->input['reason'], intval($mybb->input['sid']));
        break;
    }
}

function myshoutbox_psp_show()
{
    global $db, $mybb, $templates, $lang, $footer, $headerinclude, $header, $charset;
    
    $lang->load('myshoutbox');
    
    // Send our headers.
    header("Content-type: text/html; charset={$charset}");
    
    // Make navigation
    add_breadcrumb($lang->mysb_shoutbox, "pspshoutbox.php");
    $per_page = intval($mybb->settings['mysb_full_ppage']);

    // pagination
    $query = $db->simple_select("mysb_shouts", "COUNT(*) as shouts_count");
    $shouts_count = $db->fetch_field($query, 'shouts_count');
    
    // Pagination
    $per_page = intval($mybb->settings['mysb_full_ppage']);;
    if(intval($mybb->input['page']) > 0)
    {
        $page = (int)$mybb->input['page'];
        $start = ($page-1) * $per_page;
        $pages = $shouts_count / $per_page;
        $pages = ceil($pages);
        if($page > $pages)
        {
            $start = 0;
            $page = 1;
        }
    }
    else
    {
        $start = 0;
        $page = 1;
    }
    
    // multi-page
    if ($shouts_count > $per_page) {
        $multipage = multipage($shouts_count, $per_page, $page, "pspshoutbox.php?action=full");        
    }
    
    // get data
    require_once MYBB_ROOT.'inc/class_parser.php';
    $parser = new postParser;
    
    $usernames_cache = array();
    
    $query = $db->write_query("SELECT s.*, u.username, u.usergroup, u.displaygroup FROM ".TABLE_PREFIX."mysb_shouts s
                            LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid = s.uid)
                         ORDER by s.id DESC LIMIT {$start}, {$per_page}");
    
    while ($row = $db->fetch_array($query))
    {
        $parser_options = array(
                'allow_mycode' => $mybb->settings['mysb_allow_mycode'],
                'allow_smilies' => $mybb->settings['mysb_allow_smilies'],
                'allow_imgcode' => $mybb->settings['mysb_allow_imgcode'],
                'allow_html' => $mybb->settings['mysb_allow_html'],
                "allow_videocode" => $mybb->settings['mysb_allow_video'],
                'me_username' => $row['username']
            );
            
        $message = $parser->parse_message($row['shout_msg'], $parser_options);
        
        $find = stripos($message, "/pvt");
        if($find == 0 && $find !== false)
        {
            sscanf($message, "/pvt %d", $userID);
            $userID = (int)$userID;
            $message = str_replace("/pvt ".$userID." ", "", $message);
            if ($mybb->user['uid'] == intval($userID) || $mybb->user['uid'] == $row['uid'])
            {
                if ($mybb->user['uid'] == intval($userID))
                {
                    $userName = $mybb->user['username'];
                }
                else {
                    // Unfortunately, we do not have this username...let's check our cache, if it's not in cache, query it
                    if (!empty($usernames_cache[$userID]))
                    {
                        $userName = $usernames_cache[$userID];
                    }
                    else {
                        $userName = $db->fetch_field($db->simple_select('users', 'username', 'uid=\''.$userID.'\''), 'username');
                        $usernames_cache[$userID] = $userName;
                    }
                }
                
                $message = "<span style=\"background-color: #AF4300; font-weight: bold;\">{$lang->mysb_pvt_to} ".htmlspecialchars_uni($userName).": ".$message."</span>";
        
                $row['username'] = format_name($row['username'], $row['usergroup'], $row['displaygroup']);

                $extra = ($mybb->usergroup['cancp'] == 1 ? "title='{$row[shout_ip]}'" : "");

                $username = '<a href="./member.php?action=profile&uid='.$row['uid'].'" {$extra}>'.$row['username'].'</a>';
                $date_time = my_date($mybb->settings['mysb_datetime'], $row['shout_date']);
                $class = alt_trow();
                
                if (myshoutbox_can_delete() && $row['hidden'] == "yes") {
                    $mysb_shoutbox_data .= "<tr id='shout-{$row[id]}'><td align=\"left\" class='{$class}'>&raquo; <strong><span style=\"color: #FF0000\";>{$lang->mysb_deleted_info}</span></strong> &raquo; {$username} - {$date_time} -- {$message}</td></tr>";
                }
                elseif ($row['hidden'] == "no")
                {
                    $mysb_shoutbox_data .= "<tr id='shout-{$row[id]}'><td align=\"left\" class='{$class}'>&raquo; {$username} - {$date_time} -- {$message}</td></tr>";
                }
            }
        }        
        else {
            $row['username'] = format_name($row['username'], $row['usergroup'], $row['displaygroup']);

            $extra = ($mybb->usergroup['cancp'] == 1 ? "title='{$row[shout_ip]}'" : "");

            $username = '<a href="./member.php?action=profile&uid='.$row['uid'].'" {$extra}>'.$row['username'].'</a>';
            $date_time = my_date($mybb->settings['mysb_datetime'], $row['shout_date']);
            $class = alt_trow();
            
            if (myshoutbox_can_delete() && $row['hidden'] == "yes") {
                $mysb_shoutbox_data .= "<tr id='shout-{$row[id]}'><td align=\"left\" class='{$class}'><span style=\"font-size: {$mybb->settings['mysb_text_size']}px\">&raquo; <strong><span style=\"color: #FF0000\";>{$lang->mysb_deleted_info}</span></strong> &raquo; {$username} - {$date_time} -- {$message}</span></td></tr>";
            }
            elseif ($row['hidden'] == "no")
            {
                $mysb_shoutbox_data .= "<tr id='shout-{$row[id]}'><td align=\"left\" class='{$class}'><span style=\"font-size: {$mybb->settings['mysb_text_size']}px\">&raquo; {$username} - {$date_time} -- {$message}</span></td></tr>";
            }
        }
    }
    
    
    eval("\$shoutbox = \"".$templates->get("mysb_shoutbox_psp")."\";");
    
    $db->write_query("SELECT * FROM ".TABLE_PREFIX."mysb_shouts ORDER by id DESC LIMIT 10");
    
    output_page($shoutbox);
    exit;
}

function myshoutbox_show_full()
{
    global $db, $mybb, $templates, $lang, $footer, $headerinclude, $header, $charset;
    
    $lang->load('myshoutbox');
    
    // Send our headers.
    header("Content-type: text/html; charset={$charset}");
    
    // Make navigation
    add_breadcrumb($lang->mysb_shoutbox, "index.php?action=full_shoutbox");

    // pagination
    $query = $db->simple_select("mysb_shouts", "COUNT(*) as shouts_count");
    $shouts_count = $db->fetch_field($query, 'shouts_count');
    
    // Pagination
    $per_page = intval($mybb->settings['mysb_full_ppage']);;
    if(intval($mybb->input['page']) > 0)
    {
        $page = (int)$mybb->input['page'];
        $start = ($page-1) * $per_page;
        $pages = $shouts_count / $per_page;
        $pages = ceil($pages);
        if($page > $pages)
        {
            $start = 0;
            $page = 1;
        }
    }
    else
    {
        $start = 0;
        $page = 1;
    }
    
    // multi-page
    if ($shouts_count > $per_page) {
        $multipage = multipage($shouts_count, $per_page, $page, "index.php?action=full_shoutbox");        
    }
    
    // get data
    require_once MYBB_ROOT.'inc/class_parser.php';
    $parser = new postParser;
    
    $usernames_cache = array();
    
    $query = $db->write_query("SELECT s.*, u.username, u.usergroup, u.displaygroup FROM ".TABLE_PREFIX."mysb_shouts s
                            LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid = s.uid)
                         ORDER by s.id DESC LIMIT {$start}, {$per_page}");
    
    while ($row = $db->fetch_array($query))
    {
        $parser_options = array(
                'allow_mycode' => $mybb->settings['mysb_allow_mycode'],
                'allow_smilies' => $mybb->settings['mysb_allow_smilies'],
                'allow_imgcode' => $mybb->settings['mysb_allow_imgcode'],
                'allow_html' => $mybb->settings['mysb_allow_html'],
                "allow_videocode" => $mybb->settings['mysb_allow_video'],
                'me_username' => $row['username']
            );        
            
        $message = $parser->parse_message($row['shout_msg'], $parser_options);

        $find = stripos($message, "/pvt");
        if($find == 0 && $find !== false)
        {
            sscanf($message, "/pvt %d", $userID);
            $userID = (int)$userID;
            $message = str_replace("/pvt ".$userID." ", "", $message);
            if ($mybb->user['uid'] == intval($userID) || $mybb->user['uid'] == $row['uid'])
            {
                if ($mybb->user['uid'] == intval($userID))
                {
                    $userName = $mybb->user['username'];
                }
                else {
                    // Unfortunately, we do not have this username...let's check our cache, if it's not in cache, query it
                    if (!empty($usernames_cache[$userID]))
                    {
                        $userName = $usernames_cache[$userID];
                    }
                    else {
                        $userName = $db->fetch_field($db->simple_select('users', 'username', 'uid=\''.$userID.'\''), 'username');
                        $usernames_cache[$userID] = $userName;
                    }
                }
                
                $message = "<span style=\"background-color: #AF4300; font-weight: bold;\">{$lang->mysb_pvt_to} ".htmlspecialchars_uni($userName).": ".$message."</span>";
        
                $row['username'] = format_name($row['username'], $row['usergroup'], $row['displaygroup']);

                $extra = ($mybb->usergroup['cancp'] == 1 ? "title='{$row[shout_ip]}'" : "");

                $username = '<a href="./member.php?action=profile&uid='.$row['uid'].'" {$extra}>'.$row['username'].'</a>';
                $date_time = my_date($mybb->settings['mysb_datetime'], $row['shout_date']);
                $class = alt_trow();
    
                $mysb_shoutbox_data .= "<tr id='shout-{$row[id]}'><td class='{$class}'><span style=\"font-size: {$mybb->settings['mysb_text_size']}px\">&raquo; {$report}{$username} - {$date_time} -- {$message}</span></td></tr>";
            }
        }        
        else {
            $row['username'] = format_name($row['username'], $row['usergroup'], $row['displaygroup']);

            $extra = ($mybb->usergroup['cancp'] == 1 ? "title='{$row[shout_ip]}'" : "");

            $username = '<a href="./member.php?action=profile&uid='.$row['uid'].'" {$extra}>'.$row['username'].'</a>';
            $date_time = my_date($mybb->settings['mysb_datetime'], $row['shout_date']);
            $class = alt_trow();
        
            $mysb_shoutbox_data .= "<tr id='shout-{$row[id]}'><td class='{$class}'><span style=\"font-size: {$mybb->settings['mysb_text_size']}px\">&raquo; {$report}{$username} - {$date_time} -- {$message}</span></td></tr>";
        }
    }
    
    
    eval("\$shoutbox_full = \"".$templates->get("mysb_shoutbox_full")."\";");
    
    $db->write_query("SELECT * FROM ".TABLE_PREFIX."mysb_shouts ORDER by id DESC LIMIT 10");
    
    output_page($shoutbox_full);
    exit;
}

function myshoutbox_index()
{
    global $mybb, $lang;
    
    // show full shoutbox
    if ($mybb->input['action'] == 'full_shoutbox')
    {
        $lang->load('myshoutbox');
    
        $perms = myshoutbox_can_view();

        if ($perms && $perms !== 2) {

            myshoutbox_show_full();
            exit;
        }
        elseif ($perms === 2 && $mybb->settings['mysb_display_message'] == 1)
        {
            $lang->mysb_error_ban = $lang->sprintf($lang->mysb_error_ban, htmlspecialchars_uni($mybb->user['mysb_banned_reason']));

            error($lang->mysb_error_ban);
        }
        else {
            error_no_permission();
        }
    }
}

/**
* Add shoutbox template before output
*/
function myshoutbox_output_control(&$page_data)
{
    global $mybb, $templates, $mysb_shoutbox, $lang, $theme, $db, $mysb_message;
    
    $perms = myshoutbox_can_view();
    
    if ($perms && $perms !== 2) {
        $lang->load('myshoutbox');
    
        // no shout button for guests
        if ($mybb->user['usergroup'] == 1)
            $extra_js = "ShoutBox.disableShout();";
        else
            $extra_js = "";
        
        eval("\$mysb_shoutbox = \"".$templates->get("mysb_shoutbox")."\";");
    }
    elseif ($perms === 2 && $mybb->settings['mysb_display_message'] == 1)
    {
        $lang->load('myshoutbox');
        
        $lang->mysb_error_ban = $lang->sprintf($lang->mysb_error_ban, htmlspecialchars_uni($mybb->user['mysb_banned_reason']));
    
        // display banned from shoutbox message
        eval("\$mysb_shoutbox = \"".$templates->get("mysb_shoutbox_banned")."\";");
    }
    else {
        $mysb_shoutbox = '';
    }

    return str_replace('{myshoutbox_'.$mybb->settings['mysb_key'].'}', $mysb_shoutbox, $page_data); // still allow the shoutbox to be placed anywhere the admin wants
}

function myshoutbox_show_shouts($last_id = 0)
{
    global $db, $mybb, $parser, $charset, $lang;
    
    $perms = myshoutbox_can_view();
    if (!$perms || $perms === 2) return;
    
    require_once MYBB_ROOT.'inc/class_parser.php';
    $parser = new postParser;
    
    $last_id = (int)$last_id; // not needed here since when we call the function it converts $last_id to int already

    $query = $db->write_query("SELECT s.*, u.username, u.usergroup, u.displaygroup FROM ".TABLE_PREFIX."mysb_shouts s
                            LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid = s.uid)
                        WHERE s.id>{$last_id} ORDER by s.id DESC LIMIT {$mybb->settings['mysb_shouts_main']}");
    
    // fetch results
    $messages = "";
    $entries = 0;
    $usernames_cache = array();
    while ($row = $db->fetch_array($query))
    {
        $report = "(<a id=\"report_".$row['id']."\" href=\"#shoutbox\" onclick=\"javascript: return ShoutBox.promptReason(".$row['id'].");\" style=\"cursor: pointer;\">{$lang->mysb_report_button}</a>) ";
        
        $parser_options = array(
                'allow_mycode' => $mybb->settings['mysb_allow_mycode'],
                'allow_smilies' => $mybb->settings['mysb_allow_smilies'],
                'allow_imgcode' => $mybb->settings['mysb_allow_imgcode'],
                'allow_html' => $mybb->settings['mysb_allow_html'],
                "allow_videocode" => $mybb->settings['mysb_allow_video'],
                'me_username' => $row['username']
            );        
            
        $message = $parser->parse_message($row['shout_msg'], $parser_options);
        
        $find = stripos($message, "/pvt");
        if($find == 0 && $find !== false)
        {
            sscanf($message, "/pvt %d", $userID);
            $userID = (int)$userID;
            $message = str_replace("/pvt ".$userID." ", "", $message);
            if ($mybb->user['uid'] == intval($userID) || $mybb->user['uid'] == $row['uid'])
            {
                if ($mybb->user['uid'] == intval($userID))
                {
                    $userName = $mybb->user['username'];
                }
                else {
                    // Unfortunately, we do not have this username...let's check our cache, if it's not in cache, query it
                    if (!empty($usernames_cache[$userID]))
                    {
                        $userName = $usernames_cache[$userID];
                    }
                    else {
                        $userName = $db->fetch_field($db->simple_select('users', 'username', 'uid=\''.$userID.'\''), 'username');
                        $usernames_cache[$userID] = $userName;
                    }
                }
                
                $message = "<span style=\"background-color: #AF4300; font-weight: bold;\">{$lang->mysb_pvt_to} ".htmlspecialchars_uni($userName).": ".$message."</span>";
            
                $row['username'] = format_name($row['username'], $row['usergroup'], $row['displaygroup']);
                $extra = ($mybb->usergroup['cancp'] == 1 ? "title='{$row[shout_ip]}'" : "");
        
                $username = $row['username'];
                $date_time = my_date($mybb->settings['mysb_datetime'], $row['shout_date']);

                if (myshoutbox_can_delete()) {
                    $delete = "(<a href='#shoutbox' onclick='javascript: return ShoutBox.deleteShout({$row[id]}, 1,\"{$lang->mysb_delconfirm}\");'>{$lang->mysb_delete}</a>) ";
                    if ($row['hidden'] == "yes"){
                        $recover = "(<a href='#shoutbox' onclick='javascript: return ShoutBox.recoverShout({$row[id]}, 1, \"{$lang->mysb_recconfirm}\");'>{$lang->mysb_recover}</a>) ";
                        $remove = "(<a href='#shoutbox' onclick='javascript: return ShoutBox.removeShout({$row[id]}, 1, \"{$lang->mysb_remconfirm}\");'>{$lang->mysb_remove}</a>) ";
                    }
                }
                else {
                    $delete = '&nbsp;';
                    $recover = '&nbsp;';
                    $remove = '&nbsp;';
                }
        
                if (myshoutbox_can_delete() && $row['hidden'] == "yes") {
                    $messages .= "<span style=\"font-size: {$mybb->settings['mysb_text_size']}px\">&raquo; <strong><span style=\"color: #FF0000\";>{$lang->mysb_deleted_info}</span></strong> &raquo; {$remove}{$recover}{$report}<a href='#' onClick=\"javascript: ShoutBox.pvtAdd(".$row['uid']."); return false;\" {$extra}>{$username}</a> - {$date_time} -- {$message}</span><br />\r\n";
                }
                elseif ($row['hidden'] == "no") $messages .= "<span style=\"font-size: {$mybb->settings['mysb_text_size']}px\">&raquo; {$delete}{$recover}{$report}<span style=\"\"><a href='#' onClick=\"javascript: ShoutBox.pvtAdd(".$row['uid']."); return false;\" {$extra}>{$username}</a></span> - {$date_time} -- {$message}</span><br />\r\n";
        
                $entries++;
        
                if ($entries == 1) {
                    $maxid = $row['id'];
                }
            }
        }
        else {
            $row['username'] = format_name($row['username'], $row['usergroup'], $row['displaygroup']);
        
            $extra = ($mybb->usergroup['cancp'] == 1 ? "title='{$row[shout_ip]}'" : "");
        
            $username = ''.$row['username'].'';
            $date_time = my_date($mybb->settings['mysb_datetime'], $row['shout_date']);

            if (myshoutbox_can_delete()) {
                $delete = "(<a href='#shoutbox' onclick='javascript: return ShoutBox.deleteShout({$row[id]}, 1,\"{$lang->mysb_delconfirm}\");'>{$lang->mysb_delete}</a>) ";
                if ($row['hidden'] == "yes"){
                    $recover = "(<a href='#shoutbox' onclick='javascript: return ShoutBox.recoverShout({$row[id]}, 1, \"{$lang->mysb_recconfirm}\");'>{$lang->mysb_recover}</a>) ";
                    $remove = "(<a href='#shoutbox' onclick='javascript: return ShoutBox.removeShout({$row[id]}, 1, \"{$lang->mysb_remconfirm}\");'>{$lang->mysb_remove}</a>) ";
                }
            }
            else {
                $delete = '&nbsp;';
                $recover = '&nbsp;';
                $remove = '&nbsp;';
            }
        
            if (myshoutbox_can_delete() && $row['hidden'] == "yes") {
                $messages .= "<span style=\"font-size: {$mybb->settings['mysb_text_size']}px\">&raquo; <strong><span style=\"color: #FF0000\";>{$lang->mysb_deleted_info}</span></strong> &raquo; {$remove}{$recover}{$report}<a href='#' onClick=\"javascript: ShoutBox.pvtAdd(".$row['uid']."); return false;\" {$extra}>{$username}</a> - {$date_time} -- {$message}</span><br />\r\n";
            }
            elseif ($row['hidden'] == "no") $messages .= "<span style=\"font-size: {$mybb->settings['mysb_text_size']}px\">&raquo; {$delete}{$recover}{$report}<a href='#' onClick=\"javascript: ShoutBox.pvtAdd(".$row['uid']."); return false;\" {$extra}>{$username}</a> - {$date_time} -- {$message}</span><br />\r\n";
        
            $entries++;
        
            if ($entries == 1) {
                $maxid = $row['id'];
            }
        }
    }
    
    if (!$maxid) {
        $maxid = $last_id;
    }
    
    echo "{$maxid}^--^{$entries}^--^{$messages}^--^{$chat_messages}";
    exit;
}

function myshoutbox_report_shout($reason, $sid)
{
    global $db, $mybb;
    
    $sid = intval($sid); // shout id
    
    if ($mybb->user['uid'] <= 0)
        return false; // guests can't report shouts
    
    // cannot report an invalid shout
    // get shout
    $query = $db->simple_select('mysb_shouts', '*', 'id=\''.intval($sid).'\'');
    $shout = $db->fetch_array($query);
    if (empty($shout))
    {
        echo "invalid_shout";
        exit;
    }

    // make sure we haven't reported it already
    if (($rid = $db->fetch_field($db->simple_select('mysb_reports', 'rid', 'sid='.intval($sid).' AND username=\''.$db->escape_string($mybb->user['username']).'\''),'rid')))
    {
        echo "already_reported";
        exit;
    }
    
    // get username of the author of the shout
    $query = $db->simple_select('users', 'username', 'uid=\''.intval($shout['uid']).'\'');
    $username = $db->fetch_field($query, 'username');
    
    $report = array(
            'username' => $db->escape_string($mybb->user['username']),
            'uid' => intval($mybb->user['uid']),
            'reason' => $db->escape_string($reason),
            'date' => TIME_NOW,
            'sid' => $sid,
            'author_uid' => intval($shout['uid']),
            'author_username' => $db->escape_string($username)
    );
        
    $db->insert_query('mysb_reports', $report);
    
    echo 'shout_reported';
    exit;
}

function myshoutbox_psp_add_shout()
{
    global $db, $mybb;
    
    $perms = myshoutbox_can_view();
    
    // guests not allowed! neither banned people
    if (!$perms || $perms === 2 || $mybb->user['usergroup'] == 1 || !$mybb->user['uid'])
    {
        die("failed!");
    }
    
    $shout_data = array(
            'uid' => (int)$mybb->user['uid'],
            'shout_msg' => $db->escape_string(str_replace('^--^', '-', $mybb->input['shout_data'])),
            'shout_date' => TIME_NOW,
            'shout_ip' => get_ip(),
            'hidden' => "no"
        );
        
    if ($db->insert_query('mysb_shouts', $shout_data)) {
        redirect("pspshoutbox.php", "Success! Redirecting..", "Success!");
    } else {
        redirect("pspshoutbox.php", "Failed! Redirecting..", "Failed!");
    }
    
    exit;
}

function myshoutbox_add_shout()
{
    global $db, $mybb;
    
    $perms = myshoutbox_can_view();

    // guests not allowed! neither banned users
    if (!$perms || $perms === 2 || $mybb->user['usergroup'] == 1 || $mybb->user['uid'] < 1)
    {
        die("failed!");
    }
    
    // purge database?
    $postData = trim($mybb->input['shout_data']);
    if ($mybb->usergroup['cancp'] == 1 && substr($postData, 0, 7) == '/delete') {
        
        preg_match('/\/delete\s{1,}(all|older than|newer than)($|\s{1,}([0-9]+\-[0-9]+\-[0-9]+)|\s{1,}[0-9]+)/i', $postData, $match);
        
        // we have date?
        if (stristr($match[2], '-'))
            $date = explode('-', $match[2]);
        
        // purge?
        if ($match[1] == 'all') {
            $db->delete_query('mysb_shouts');
            $db->insert_query('mysb_shouts', array('uid' => intval($mybb->user['uid']), 'shout_msg' => 'First shout', 'shout_date' => time(), 'shout_ip' => get_ip()));
        }
        elseif (strtolower($match[1]) == 'older than')
        {
            
            if ($date) {
                $timeStamp = mktime(23, 59, 59, $date[0], ($date[1]-1), $date[2]);
                $db->delete_query('mysb_shouts', 'shout_date <= ' . $timeStamp);
            }
            else // delete based on id
                $db->delete_query('mysb_shouts', 'id < ' . intval($match[2]));
        }
        elseif (strtolower($match[1]) == 'newer than')
        {
            if ($date) {

                $timeStamp = mktime(1, 1, 1, $date[0], ($date[1]+1), $date[2]);
                $db->delete_query('mysb_shouts', 'shout_date >= ' . $timeStamp);
            }
            else // delete based on id
                $db->delete_query('mysb_shouts', 'id > ' . intval($match[2]));
        }
        
        die("deleted");
    }
    
    // flood check
    if (intval($mybb->settings['mysb_flood_time']) && !is_moderator()) {
        $lastShout = $db->fetch_field($db->simple_select('mysb_shouts', 'MAX(shout_date) as lastShout', 'uid = '.intval($mybb->user['uid'])), 'lastShout');
        $interval = time() - $lastShout;
        
        if ($interval <= $mybb->settings['mysb_flood_time'])
            die("flood|" . ($mybb->settings['mysb_flood_time'] - $interval));
    }
    
    // Uid cannot be lower than 1
    $ret = sscanf($postData, "/pvt %d", $userID);
    if ($ret)
    {
        $userID = (int)$userID;
        if ($userID < 1)
            die("failed!");
    }
    
    $shout_data = array(
            'uid' => $mybb->user['uid'],
            'shout_msg' => $db->escape_string(str_replace('^--^', '-', $mybb->input['shout_data'])),
            'shout_date' => time(),
            'shout_ip' => get_ip(),
            'hidden' => "no"
        );
        
    if ($db->insert_query('mysb_shouts', $shout_data)) {
        echo "success!!";
    } else {
        echo "failed!";
    }
    
    exit;
}

function myshoutbox_delete_shout($shout_id)
{
    global $db;
    
    $shout_id = intval($shout_id);
    
    if (myshoutbox_can_delete()) {
        $db->update_query("mysb_shouts", array('hidden' => "yes"), "id='".$shout_id."'", 1);
        echo "success!";
    }
    else
        echo "failed!";
    
    exit;
}

function myshoutbox_remove_shout($shout_id)
{
    global $db;
    
    $shout_id = intval($shout_id);
    
    if (myshoutbox_can_delete()) {
        $db->write_query("DELETE FROM ".TABLE_PREFIX."mysb_shouts WHERE id = {$shout_id}");
        echo "success!";
    }
    else
        echo "failed!";
    
    exit;
}

function myshoutbox_recover_shout($shout_id)
{
    global $db;
    
    $shout_id = intval($shout_id);
    
    if (myshoutbox_can_delete()) {
        $db->update_query("mysb_shouts", array('hidden' => "no"), "id='".$shout_id."'", 1);
        echo "success!";
    }
    else
        echo "failed!";
    
    exit;
}

function myshoutbox_can_delete()
{
    global $mybb;

    if ($mybb->usergroup['cancp'] == 1 || ($mybb->settings['mysb_allow_smods'] == 1 && $mybb->usergroup['issupermod'] == 1) || ($mybb->settings['mysb_allow_mods'] == 1 && $mybb->usergroup['canmodcp'] == 1))
        return true;
    
    return false;
}

function myshoutbox_can_view()
{
    global $mybb;
    
    if ($mybb->usergroup['canview'] == 0) // can view the board?
        return false;    
        
    // verify if is banned user before checking usergroups
    if (intval($mybb->user['mysb_banned']) == 1) // banned from the shoutbox
        return 2; // 2 means we have been banned
    
    if (empty($mybb->settings['mysb_usergroups']))
        return true;

    // can guests view the shoutbox?
    /*if ($mybb->settings['mysb_guestview'] == 0 && $mybb->user['usergroup'] == 1)
        return false;*/
        
    $groups = explode(",", $mybb->settings['mysb_usergroups']);
    $add_groups = "";
    
    if ($mybb->settings['mysb_additional_groups'] == 1 && $mybb->user['additionalgroups'])
        $add_groups = explode(",", $mybb->user['additionalgroups']);
    
    if (!in_array($mybb->user['usergroup'], $groups)) { // is the user allowed to view the shoutbox?
        // didn't find gid (primary) in allowed list, check additonal groups if setting is set to yes and if any were found
        
        if ($add_groups) {
            if (count(array_intersect($add_groups, $groups)) == 0)
                return false;
        }
        else
            return false;
    }

    return true;

}

function myshoutbox_admin_home_menu(&$sub_menu)
{
    global $lang, $db;
    
    $lang->load('myshoutbox');

    $reports = $db->fetch_field($db->simple_select("mysb_reports", "COUNT(rid) as reports", "marked='0'"), "reports");
    
    //$reports = $db->fetch_field($db->simple_select("plaza_mydownloads_downloads", "COUNT(did) as comments", "hidden=0"), "comments");
    
    $sub_menu[] = array('id' => 'myshoutbox', 'title' => $lang->sprintf($lang->myshoutbox_unread_reports, $reports), 'link' => 'index.php?module=tools/myshoutbox&action=reports');
}

function myshoutbox_admin_tools_menu(&$sub_menu)
{
    global $lang;
    
    $lang->load('myshoutbox');
    $sub_menu[] = array('id' => 'myshoutbox', 'title' => $lang->myshoutbox_index, 'link' => 'index.php?module=tools/myshoutbox');
}

function myshoutbox_admin_tools_action_handler(&$actions)
{
    $actions['myshoutbox'] = array('active' => 'myshoutbox', 'file' => 'myshoutbox');
}

function myshoutbox_admin_permissions(&$admin_permissions)
{
      global $db, $mybb, $lang;
  
    $lang->load("mysb_shoutbox", false, true);
    $admin_permissions['mysb_shoutbox'] = $lang->mysb_shoutbox_canmanage;
    
}

function myshoutbox_admin()
{
    global $db, $lang, $mybb, $page, $run_module, $action_file, $mybbadmin, $plugins;
    
    $lang->load("myshoutbox", false, true);
    
    if($run_module == 'tools' && $action_file == 'myshoutbox')
    {    
        if ($mybb->input['action'] == 'ban')
        {
            if ($mybb->request_method == "post")
            {
                if(!isset($mybb->input['my_post_key']) || $mybb->post_code != $mybb->input['my_post_key'] || !$mybb->input['username'])
                {
                    $mybb->request_method = "get";
                    flash_message($lang->myshoutbox_error, 'error');
                    admin_redirect("index.php?module=tools/myshoutbox");
                }

                $db->update_query('users', array('mysb_banned' => 1, 'mysb_banned_reason' => $db->escape_string($mybb->input['reason'])), 'username=\''.$db->escape_string($mybb->input['username']).'\'', 1);
                
                $lang->myshoutbox_log_banned = $lang->sprintf($lang->myshoutbox_log_banned, $mybb->input['username']);
                log_admin_action($lang->myshoutbox_log_banned);
                
                flash_message($lang->myshoutbox_user_banned, 'success');
                admin_redirect("index.php?module=tools/myshoutbox");
            }
        }
        elseif ($mybb->input['action'] == 'unban')
        {
            if ($mybb->request_method == "post")
            {
                if(!isset($mybb->input['my_post_key']) || $mybb->post_code != $mybb->input['my_post_key'] || !$mybb->input['username'])
                {
                    $mybb->request_method = "get";
                    flash_message($lang->myshoutbox_error, 'error');
                    admin_redirect("index.php?module=tools/myshoutbox");
                }
                
                $db->update_query('users', array('mysb_banned' => 0, 'mysb_banned_reason' => ''), 'username=\''.$db->escape_string($mybb->input['username']).'\'', 1);
                
                $lang->myshoutbox_log_unbanned = $lang->sprintf($lang->myshoutbox_log_unbanned, $mybb->input['username']);
                log_admin_action($lang->myshoutbox_log_unbanned);
                
                flash_message($lang->myshoutbox_user_unbanned, 'success');
                admin_redirect("index.php?module=tools/myshoutbox");
            }
        }
        elseif ($mybb->input['action'] == 'delete_report')
        {
            if ($mybb->request_method == "post")
            {
                if(!isset($mybb->input['my_post_key']) || $mybb->post_code != $mybb->input['my_post_key'] || !$mybb->input['rid'])
                {
                    $mybb->request_method = "get";
                    flash_message($lang->myshoutbox_error, 'error');
                    admin_redirect("index.php?module=tools/myshoutbox");
                }
                
                // don't check if the report id exists, just try to delete it
                $db->delete_query('mysb_reports', 'rid='.intval($mybb->input['rid']), 1);
                
                log_admin_action($lang->myshoutbox_log_deleted_report);
                
                flash_message($lang->myshoutbox_report_deleted, 'success');
                admin_redirect("index.php?module=tools/myshoutbox&amp;action=reports");
            }
        }
        elseif ($mybb->input['action'] == 'mark_report')
        {
            if ($mybb->request_method == "post")
            {
                if(!isset($mybb->input['my_post_key']) || $mybb->post_code != $mybb->input['my_post_key'] || !$mybb->input['rid'])
                {
                    $mybb->request_method = "get";
                    flash_message($lang->myshoutbox_error, 'error');
                    admin_redirect("index.php?module=tools/myshoutbox");
                }
                
                // don't check if the report id exists, just try to mark it as read
                $db->update_query('mysb_reports', array('marked' => 1), 'rid=\''.intval($mybb->input['rid']).'\'', 1);
                
                log_admin_action($lang->myshoutbox_log_marked_report);
                
                flash_message($lang->myshoutbox_report_marked, 'success');
                admin_redirect("index.php?module=tools/myshoutbox&amp;action=reports");
            }
        }
        elseif ($mybb->input['action'] == 'reports')
        {
            $page->add_breadcrumb_item($lang->myshoutbox_reported_shouts, 'index.php?module=tools/myshoutbox');
        
            $page->output_header($lang->myshoutbox_reported_shouts);
            
            $sub_tabs['myshoutbox'] = array(
                'title'            => $lang->myshoutbox_home,
                'link'            => 'index.php?module=tools/myshoutbox',
                'description'    => $lang->myshoutbox_description
            );
            
            $sub_tabs['myshoutbox_reports'] = array(
                'title'            => $lang->myshoutbox_reported_shouts." (".intval($db->fetch_field($db->simple_select("mysb_reports", "COUNT(rid) as reports", "marked='0'"), "reports")).")",
                'link'            => 'index.php?module=tools/myshoutbox&amp;action=reports',
                'description'    => $lang->myshoutbox_myshoutbox_reported_shouts_description
            );
            
            $page->output_nav_tabs($sub_tabs, 'myshoutbox_reports');

            // table
            $table = new Table;
            $table->construct_header($lang->myshoutbox_sid, array('width' => '10%'));
            $table->construct_header($lang->myshoutbox_username);
            $table->construct_header($lang->myshoutbox_reported_by);
            $table->construct_header($lang->myshoutbox_reason);
            $table->construct_header($lang->myshoutbox_date, array('width' => '15%'));
            $table->construct_header($lang->myshoutbox_view);
            $table->construct_header($lang->myshoutbox_delete);
            $table->construct_header($lang->myshoutbox_mark);
            
            // pagination
            $per_page = 15;
            if($mybb->input['page'] && intval($mybb->input['page']) > 1)
            {
                $mybb->input['page'] = intval($mybb->input['page']);
                $start = ($mybb->input['page']*$per_page)-$per_page;
            }
            else
            {
                $mybb->input['page'] = 1;
                $start = 0;
            }
            
            $query = $db->simple_select("mysb_reports", "COUNT(rid) as reports");
            $total_rows = $db->fetch_field($query, "reports");
        
            echo "<br />".draw_admin_pagination($mybb->input['page'], $per_page, $total_rows, "index.php?module=tools/myshoutbox&amp;action=reports&amp;page={page}");
            
            $query = $db->write_query("
                SELECT s.*, r.*
                FROM ".TABLE_PREFIX."mysb_reports r
                LEFT JOIN ".TABLE_PREFIX."mysb_shouts s ON (s.id=r.sid)
                ORDER BY r.date DESC LIMIT {$start}, {$per_page}
            ");
            while($r = $db->fetch_array($query)) {
                
                if ($r['marked'] == 0)
                {
                    $styles = 'background-color: #FFD7D7';
                }
                else
                    $styles = '';
                
                $table->construct_cell(htmlspecialchars_uni($r['sid']), array('width' => '10%', 'style' => $styles));
                $table->construct_cell(build_profile_link($r['author_username'], $r['author_uid']), array('style' => $styles));
                $table->construct_cell(build_profile_link($r['username'], $r['uid']), array('style' => $styles));
                $table->construct_cell(htmlspecialchars_uni($r['reason']), array('style' => $styles));
                
                $html_data = " <input type=\"submit\" class=\"submit_button\" value=\"{$lang->myshoutbox_view}\" onclick=\"alert('".myshoutbox_jsspecialchars(htmlspecialchars_uni($r['shout_msg']))."')\" />";
                
                $table->construct_cell(my_date($mybb->settings['dateformat'], $r['date'], '', false).", ".my_date($mybb->settings['timeformat'], $r['date']), array('width' => '15%', 'style' => $styles));
                
                $table->construct_cell($html_data, array('width' => '10%', 'style' => $styles));
                
                $form = new Form("index.php?module=tools/myshoutbox&amp;action=delete_report", "post", 'myshoutbox" onsubmit="return confirm(\''.myshoutbox_jsspecialchars($lang->myshoutbox_delete_report_confirm).'\');', 0, "", true);
                $html_data = $form->construct_return;
                $html_data .= $form->generate_hidden_field("rid", $r['rid']);
                $html_data .= "<input type=\"submit\" class=\"submit_button\" value=\"{$lang->myshoutbox_delete}\" />";
                $html_data .= $form->end();
                
                $table->construct_cell($html_data, array('width' => '10%', 'style' => $styles));
                
                $form = new Form("index.php?module=tools/myshoutbox&amp;action=mark_report", "post", 'myshoutbox" onsubmit="return confirm(\''.myshoutbox_jsspecialchars($lang->myshoutbox_mark_report_confirm).'\');', 0, "", true);
                $html_data = $form->construct_return;
                $html_data .= $form->generate_hidden_field("rid", $r['rid']);
                $html_data .= "<input type=\"submit\" class=\"submit_button\" value=\"{$lang->myshoutbox_mark}\" />";
                $html_data .= $form->end();
                
                $table->construct_cell($html_data, array('width' => '10%', 'style' => $styles));
                
                $table->construct_row();
                $found = true;
            }
            
            if (!$found)
            {
                $table->construct_cell($lang->myshoutbox_no_shouts_reported, array('colspan' => 8));
                $table->construct_row();
            }
            
            $table->output($lang->myshoutbox_reported_shouts);
            
            $page->output_footer();
        
            exit;
        }
        
        // no action
        $page->add_breadcrumb_item($lang->myshoutbox_home, 'index.php?module=tools/myshoutbox');
        
        $page->output_header($lang->myshoutbox_home);
        
        $sub_tabs['myshoutbox'] = array(
            'title'            => $lang->myshoutbox_home,
            'link'            => 'index.php?module=tools/myshoutbox',
            'description'    => $lang->myshoutbox_description
        );
        
        $sub_tabs['myshoutbox_reports'] = array(
            'title'            => $lang->myshoutbox_reported_shouts." (".intval($db->fetch_field($db->simple_select("mysb_reports", "COUNT(rid) as reports", "marked='0'"), "reports")).")",
            'link'            => 'index.php?module=tools/myshoutbox&amp;action=reports',
            'description'    => $lang->myshoutbox_myshoutbox_reported_shouts_description
        );
        
        $page->output_nav_tabs($sub_tabs, 'myshoutbox');
        
        $tabs = array(
            'banuser' => $lang->myshoutbox_quick_ban,
            'unbanuser' => $lang->myshoutbox_quick_unban
        );
        
        $page->output_tab_control($tabs);
        
        // quick ban user form
        echo "<div id=\"tab_banuser\">\n";
        $form = new Form("index.php?module=tools/myshoutbox&amp;action=ban", "post", "myshoutbox");
        
        $form_container = new FormContainer($lang->myshoutbox_ban_user);
        $form_container->output_row($lang->myshoutbox_ban_username, htmlspecialchars_uni($lang->myshoutbox_ban_username_desc), $form->generate_text_box('username', htmlspecialchars_uni($mybb->input['username']), array('id' => 'username')), 'username');
        $form_container->output_row($lang->myshoutbox_ban_reason, htmlspecialchars_uni($lang->myshoutbox_ban_reason_desc), $form->generate_text_box('reason', htmlspecialchars_uni($mybb->input['reason']), array('id' => 'reason')), 'reason');
        
        $form_container->end();
        
        $buttons = "";
        $buttons[] = $form->generate_submit_button($lang->myshoutbox_submit);
        $buttons[] = $form->generate_reset_button($lang->myshoutbox_reset);
        $form->output_submit_wrapper($buttons);
        $form->end();
        
        echo "</div>\n";
        
        // quick unban user form
        echo "<div id=\"tab_unbanuser\">\n";
        $form = new Form("index.php?module=tools/myshoutbox&amp;action=unban", "post", "myshoutbox");
        
        $form_container = new FormContainer($lang->myshoutbox_unban_user);
        $form_container->output_row($lang->myshoutbox_unban_username, htmlspecialchars_uni($lang->myshoutbox_unban_username_desc), $form->generate_text_box('username', htmlspecialchars_uni($mybb->input['username']), array('id' => 'username')), 'username');
        
        $form_container->end();
    
        $buttons = "";
        $buttons[] = $form->generate_submit_button($lang->myshoutbox_submit);
        $buttons[] = $form->generate_reset_button($lang->myshoutbox_reset);
        $form->output_submit_wrapper($buttons);
        $form->end();
        
        echo "</div>\n";
        
        // pagination
        $per_page = 15;
        if($mybb->input['page'] && intval($mybb->input['page']) > 1)
        {
            $mybb->input['page'] = intval($mybb->input['page']);
            $start = ($mybb->input['page']*$per_page)-$per_page;
        }
        else
        {
            $mybb->input['page'] = 1;
            $start = 0;
        }
        
        $query = $db->simple_select("users", "COUNT(uid) as users", 'mysb_banned=1');
        $total_rows = $db->fetch_field($query, "users");
    
        echo "<br />".draw_admin_pagination($mybb->input['page'], $per_page, $total_rows, "index.php?module=tools/myshoutbox&amp;page={page}");
        
        // table
        $table = new Table;
        $table->construct_header("<div style=\"width: 30%;\">".$lang->myshoutbox_username."</div>");
        $table->construct_header("<div style=\"width: 70%;\">".$lang->myshoutbox_reason."</div>");
        
        $query = $db->simple_select('users', 'uid,username,mysb_banned_reason', 'mysb_banned=1', array('order_by' => 'uid', 'order_dir' => 'ASC', 'limit' => "{$start}, {$per_page}"));
        while($r = $db->fetch_array($query)) {
            $table->construct_cell(htmlspecialchars_uni($r['username']));
            $table->construct_cell(htmlspecialchars_uni($r['mysb_banned_reason']));
            $table->construct_row();
            $found = true;
        }
        
        if (!$found)
        {
            $table->construct_cell($lang->myshoutbox_no_users_banned, array('colspan' => 2));
            $table->construct_row();
        }
        
        $table->output($lang->myshoutbox_banned_users);
        
        $page->output_footer();
        
        exit;
    }
}

/**
* Somewhat like htmlspecialchars_uni but for JavaScript strings
*
* @param string: The string to be parsed
* @return string: Javascript compatible string
*/
function myshoutbox_jsspecialchars($str)
{
    // Converts & -> &amp; allowing Unicode
    // Parses out HTML comments as the XHTML validator doesn't seem to like them
    $string = preg_replace(array("#\<\!--.*?--\>#", "#&(?!\#[0-9]+;)#"), array('','&amp;'), $str);
    return strtr($string, array("\n" => '\n', "\r" => '\r', '\\' => '\\\\', '"' => '\x22', "'" => '\x27', '<' => '&lt;', '>' => '&gt;'));
}

?>
[مهم] قوانین مای بی بی اسکین
[ویژه] همکاری با تیم مای بی بی اسکین

ما فراموش شدگانیم جز نعره سلاحی نیست...

لطفا به هیچ وجه از مدیران در پیام خصوصی درخواست کمک نکنید و یا سوال نپرسید.
۱۳-۳-۱۳۹۱ ۱۲:۵۰ عصر
مشاهده سایت این کاربر یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
 سپاس شده توسط ! Omid StaR !
نویسنده پیام
کاربر سایت
*
نسخه: 1.6.4
سپاس ها : 5
 سپاس شده 2 بار در 0 ارسال
ارسال: #8
RE: پلاگین چت باکس نسخه MyShoutbox 1.7
با سلام من این پلاگین رو نصب کردم اما فقط مینویسه درحال بارگزاری و وقتی پیامی رو ارسال میکنم مینویسه

پیام نمی تواند ارسال شود یا عملی انجام شود، لطفا مجددا تلاش کنید

و اینکه وقتی میزنم نمایش کامل جعبه پیام این ارور رو میده

[تصویر: iuy.jpg]
۱۹-۳-۱۳۹۱ ۱۲:۵۶ عصر
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
نویسنده پیام
مدیر بازنشسته
*
نسخه: 1.6.8
سپاس ها : 713
 سپاس شده 729 بار در 204 ارسال
ارسال: #9
RE: پلاگین چت باکس نسخه MyShoutbox 1.7
پلاگین چند بار توسط خودم و حتی دوستان تست شده مشکلی در پلاگین وجود ندارد ... :heart:

مشکل از نحوه نصب شما به احتمال می باشد
۱۹-۳-۱۳۹۱ ۱۲:۵۹ عصر
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
نویسنده پیام
کاربر سایت
*
نسخه: 1.6.4
سپاس ها : 5
 سپاس شده 2 بار در 0 ارسال
ارسال: #10
RE: پلاگین چت باکس نسخه MyShoutbox 1.7
درمورد ارور ممکنه بخاطر نصب باشه اما اونکه مینویسه درحال بارگذاری و بعد از ارسال مینویسه هیچ پیامی نمیتواند ارسال شود با هر پلاگین چت باکسی که نصب کردم همین مشکل رو داره
۱۹-۳-۱۳۹۱ ۰۱:۰۴ عصر
یافتن همه ی ارسالهای این کاربر نقل قول این ارسال در یک پاسخ
ارسال موضوع  ارسال پاسخ 


موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  پلاگین جدید  پلاگین جعبه پیام DVZ Shoutbox EMAD 0 44 ۵-۸-۱۳۹۵ ۰۴:۴۸ عصر
آخرین ارسال: EMAD
  پلاگین آمار پیشرفته برای صفحه ی اصلی انجمن Hossein121 86 7,886 ۲۹-۱-۱۳۹۳ ۰۹:۳۰ عصر
آخرین ارسال: ! Omid StaR !
  پلاگین Extra File Chatbox 3.6.0 چتباکس برای انجمن yAsEr0421 118 9,326 ۲۴-۱-۱۳۹۳ ۱۲:۳۹ عصر
آخرین ارسال: senator
  پلاگین اخرین ارسال های پرتال در صفحه اصلی به صورت ساید بار ! Omid StaR ! 3 627 ۱۴-۱-۱۳۹۳ ۰۸:۴۰ عصر
آخرین ارسال: ! Omid StaR !
  پلاگین ایکون در کنار انجمن ها ( نسخه اصلی) ! Omid StaR ! 49 4,787 ۱۰-۱۲-۱۳۹۲ ۱۱:۰۲ عصر
آخرین ارسال: ! Omid StaR !
  پلاگین پیشرفته ترین امار حرفه ای برای انجمن ! Omid StaR ! 7 1,716 ۱-۱۲-۱۳۹۲ ۰۳:۳۷ عصر
آخرین ارسال: ᗩm!RH♥SsE!N
  پلاگین تب بندی بخش های سایت ! Omid StaR ! 16 2,059 ۱۴-۱۱-۱۳۹۲ ۱۲:۲۵ صبح
آخرین ارسال: ! Omid StaR !
  پلاگین افراد انلاین در 24 ساعت گذشته sajad7605 32 3,283 ۱۲-۱۱-۱۳۹۲ ۰۴:۰۴ عصر
آخرین ارسال: Shezen
  پلاگین نوار جعبه ای در کنار انجمن ( ساید بار پیشرفته ) ! Omid StaR ! 15 2,087 ۶-۱۰-۱۳۹۲ ۰۹:۳۳ عصر
آخرین ارسال: Dark-World
  پلاگین نمایش استایل گروه کاربران در انجمن ! Omid StaR ! 11 2,627 ۲۷-۸-۱۳۹۲ ۰۲:۴۳ عصر
آخرین ارسال: ! Omid StaR !

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

اخبار فناوری اطلاعات | نرم افزار املاک | نرم افزار دامپزشکی | نرم افزار داروخانه | نرم افزار رستوران | نرم افزار تاکسی سرویس | نرم افزار رستوران | دانلود نرم افزار مطب | دانلود نرم افزار تاکسی سرویس | مجله پزشکی آسان طب | دکتر آسان طب | نرم افزار مطب | نرم افزار دفترچه تلفن نرم افزار چاپ چک نرم افزار رستوران نرم افزار فست فود نرم افزار کافی شاپ نرم افزار تاکسی سرویس نرم افزار نمایشگاه خودرو نرم افزار املاک نرم افزار هتلداری نرم افزار مطب نرم افزار دندانپزشکی نرم افزار انبارداری نرم افزار حسابداری فروشگاه نرم افزار وکالت مجله اینترنتی پارسی وان | مجله اینترنتی زیگیل | نت فالوور | سینما تئاتر مای استیج | یک مهاجر | دنیای مهاجرت | مجله گردشگری کاروان | وردپرس دانلود | مجله تفریحی تندیس فان | نرم افزار | جوک جدید | نرم افزار مطب | نرم افزار رستوران | نرم افزار حسابداری رستوران اخبار هنر | اخبار کامپیوتر | سایت پزشکی | فروشگاه اینترنتی | سایت خبری | دانلود موزیک | اندروید سه | بانک شماره موبایل | پایگاه صالحین | مجله کامپیوتری | جاب لر | خرید vpn ایفون نوین ساخت | سهام نت | تکی کو | تم کد | شرکت تبلیغاتی | مجله خانواده | مجله اینترنتی وبدون | پورتال خبری | سایت تفریحی تک لایو | مجله سرگرمی سیب رنک | تولید کننده روغن زیتون | سایت پزشکی دکتر طب | باربری تهران | مشاوره کنکور | مدرن بوک |

برای درج تبلیغات متنی، بنری و یا رپرتاژ آگهی در این وب سایت با شماره 09370888727 تماس حاصل فرمائید