diff --git a/install/sql/mysql.sql b/install/sql/mysql.sql index f098cfff5..b2397a254 100644 --- a/install/sql/mysql.sql +++ b/install/sql/mysql.sql @@ -947,6 +947,10 @@ CREATE TABLE IF NOT EXISTS `bb_posts` ( `post_attachment` tinyint(1) NOT NULL DEFAULT '0', `post_reported` tinyint(1) NOT NULL DEFAULT '0', `user_post` tinyint(1) NOT NULL DEFAULT '1', + `post_mod_comment` TEXT NOT NULL DEFAULT '', + `post_mod_comment_type` TINYINT( 1 ) NOT NULL DEFAULT '0', + `post_mc_mod_id` mediumint(8) NOT NULL, + `post_mc_mod_name` varchar(25) NOT NULL DEFAULT '', PRIMARY KEY (`post_id`), KEY `topic_id` (`topic_id`), KEY `poster_id` (`poster_id`), diff --git a/upload/ajax.php b/upload/ajax.php index aefb94b17..da055c832 100644 --- a/upload/ajax.php +++ b/upload/ajax.php @@ -21,6 +21,7 @@ switch ($ajax->action) break; case 'posts': + case 'post_mod_comment': require(INC_DIR .'bbcode.php'); require(INC_DIR .'functions_post.php'); require(INC_DIR .'functions_admin.php'); @@ -87,6 +88,7 @@ class ajax_common 'posts' => array('guest'), 'index_data' => array('guest'), + 'post_mod_comment' => array('mod'), ); var $action = null; @@ -447,6 +449,31 @@ class ajax_common } } + function post_mod_comment () + { + global $lang, $user; + + $post_id = (int) $this->request['post_id']; + $post = DB()->fetch_row("SELECT t.*, f.*, p.*, pt.post_text + FROM ". BB_TOPICS ." t, ". BB_FORUMS ." f, ". BB_POSTS ." p, ". BB_POSTS_TEXT ." pt + WHERE p.post_id = $post_id + AND t.topic_id = p.topic_id + AND f.forum_id = t.forum_id + AND p.post_id = pt.post_id + LIMIT 1"); + if(!$post) $this->ajax_die('not post'); + $type = (int) $this->request['mc_type']; + $text = (string) $this->request['mc_text']; + $text = prepare_message($text); + if (!$text) $this->ajax_die('no text'); + DB()->query("UPDATE ". BB_POSTS ." SET post_mod_comment = '". DB()->escape($text) ."', post_mod_comment_type = $type, post_mc_mod_id = ". $user->id .", post_mc_mod_name = '". $user->data['username'] ."' WHERE post_id = $post_id LIMIT 1"); + $this->response['type'] = $type; + $this->response['post_id'] = $post_id; + if ($type == 0) $this->response['html'] = ''; + else if ($type == 1) $this->response['html'] = '
K'. $user->data['username'] .' '. $lang['WROTE'] .':

'. bbcode2html($text) .'
'; + else if ($type == 2) $this->response['html'] = '
!'. $user->data['username'] .' '. $lang['WROTE'] .':

'. bbcode2html($text) .'
'; + } + function view_post () { require(AJAX_DIR .'view_post.php'); diff --git a/upload/language/lang_english/lang_main.php b/upload/language/lang_english/lang_main.php index 7b4dc7131..9a856d8a4 100644 --- a/upload/language/lang_english/lang_main.php +++ b/upload/language/lang_english/lang_main.php @@ -1740,5 +1740,7 @@ $lang['INDEX_RETURN'] = 'Back to home page'; $lang['FORUM_RETURN'] = 'Back to Forum'; $lang['TOPIC_RETURN'] = 'Back to the topic'; $lang['POST_RETURN'] = 'Go to post'; -$lang['PROFILE_EDIT_RETURN'] = 'Return to editing'; -$lang['PROFILE_RETURN'] = 'Go to the Profile'; +$lang['PROFILE_EDIT_RETURN'] = 'Return to editing'; +$lang['PROFILE_RETURN'] = 'Go to the Profile'; + +$lang['WARNING'] = 'Warning'; diff --git a/upload/language/lang_russian/lang_main.php b/upload/language/lang_russian/lang_main.php index 08fa29295..3067f981b 100644 --- a/upload/language/lang_russian/lang_main.php +++ b/upload/language/lang_russian/lang_main.php @@ -1749,5 +1749,7 @@ $lang['INDEX_RETURN'] = 'Вернуться на главную'; $lang['FORUM_RETURN'] = 'Вернуться в форум'; $lang['TOPIC_RETURN'] = 'Вернуться в тему'; $lang['POST_RETURN'] = 'Перейти к сообщению'; -$lang['PROFILE_EDIT_RETURN'] = 'Вернуться к редактированию'; -$lang['PROFILE_RETURN'] = 'Перейти к просмотру профиля'; +$lang['PROFILE_EDIT_RETURN'] = 'Вернуться к редактированию'; +$lang['PROFILE_RETURN'] = 'Перейти к просмотру профиля'; + +$lang['WARNING'] = 'Предупреждение'; diff --git a/upload/templates/default/css/main.css b/upload/templates/default/css/main.css index a05e72edc..70c5b3012 100644 --- a/upload/templates/default/css/main.css +++ b/upload/templates/default/css/main.css @@ -918,6 +918,11 @@ a.menu-root, a.menu-root:visited, a.menu-root:hover { .menu-a { background: #FFFFFF; border: 1px solid #92A3A4; } .menu-a a { color: #0000A0; background: #E7E7E7; padding: 4px 10px 5px; margin: 1px; display: block; text-decoration: none !important; } .menu-a a:hover { color: #0000FF; background: #D1D7DC; text-decoration: none !important; } + +.mc{ background:#E7E7E7; padding:5px; font-size:11px;} +.mc-bord{ background:#fff; padding:1px; border:1px solid #92A3A4;} +.mc-th{ background:#71869F; color:#F0F8FF; padding:4px; border-bottom:1px solid #fff; font-weight:bold; font-size:11px; text-align:center;} +.mc-but{ background:#B5BEC3; padding:4px; border-top:1px solid #fff; text-align:center;} /* ================================================================ * Ajax * ================================================================ */ @@ -1332,3 +1337,26 @@ span.YTLink a.postLink{ color:white; float:left; } + +/* Mod comment */ +.mcBlock{ + border:1px solid #92a3a4; width:90%; margin:30px 0 0 30px; padding:4px; + border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; + box-shadow:0px 0px 5px #999; -moz-box-shadow:0px 0px 5px #999; -webkit-box-shadow:0px 0px 5px #999; +} +.mcBlock table{ width:100%;} +.mcTd1C, .mcTd1W{ + width:50px; + font:45px Georgia, serif; color:#e7e7e7; font-weight:bold; + border:1px solid #eff0f3; + padding:2px 0 0; + text-align:center; +} +.mcTd2C, .mcTd2W{ background:#e7e7e7 !important; border:1px solid #e1e1e1; padding:10px;} +.mcTd1C{ background:#71869f !important; border:1px solid #536479; text-shadow:0 0 10px #1d232c;} +.mcTd2C{ color:#262e37;} +.mcTd1W{ background:#751717 !important; border:1px solid #5e0000; text-shadow:0 0 10px #200000;} +.mcTd2W{ color:#3e0000;} + + + \ No newline at end of file diff --git a/upload/templates/default/images/lang_english/icon_mc.gif b/upload/templates/default/images/lang_english/icon_mc.gif new file mode 100644 index 000000000..b5d9e7910 Binary files /dev/null and b/upload/templates/default/images/lang_english/icon_mc.gif differ diff --git a/upload/templates/default/images/lang_russian/icon_mc.gif b/upload/templates/default/images/lang_russian/icon_mc.gif new file mode 100644 index 000000000..c0e687c60 Binary files /dev/null and b/upload/templates/default/images/lang_russian/icon_mc.gif differ diff --git a/upload/templates/default/tpl_config.php b/upload/templates/default/tpl_config.php index e96b0a876..24230d3e6 100644 --- a/upload/templates/default/tpl_config.php +++ b/upload/templates/default/tpl_config.php @@ -22,6 +22,8 @@ $images['icon_mod'] = $_main .'icon_mod.gif'; $images['icon_www'] = $_lang .'icon_www.gif'; $images['icon_icq'] = $_lang .'icon_icq_add.gif'; +$images['icon_mc'] = $_lang .'icon_mc.gif'; + $images['icon_birthday'] = $_main .'icon_birthday.gif'; $images['icon_male'] = $_main .'icon_male.gif'; $images['icon_female'] = $_main .'icon_female.gif'; @@ -142,6 +144,7 @@ if (!empty($page_cfg['load_tpl_vars']) AND $vars = array_flip($page_cfg['load_tp 'DELETE_POST_IMG' => ($bb_cfg['text_buttons']) ? $lang['DELETE_POST_TXTB'] : ''.$lang['DELETE_POST_TXTB'].'', 'IP_POST_IMG' => ($bb_cfg['text_buttons']) ? $lang['VIEW_IP_TXTB'] : ''.$lang['VIEW_IP_TXTB'].'', 'MOD_POST_IMG' => ($bb_cfg['text_buttons']) ? $lang['MODERATE_POST_TXTB'] : ''.$lang['MODERATE_POST_TXTB'].'', + 'MC_IMG' => ($bb_cfg['text_buttons']) ? 'Comment' : 'Comment', 'QUOTE_URL' => BB_ROOT ."posting.php?mode=quote&p=", 'EDIT_POST_URL' => BB_ROOT ."posting.php?mode=editpost&p=", diff --git a/upload/templates/default/viewtopic.tpl b/upload/templates/default/viewtopic.tpl index 3d93624f8..dca17f7c2 100644 --- a/upload/templates/default/viewtopic.tpl +++ b/upload/templates/default/viewtopic.tpl @@ -118,6 +118,34 @@ ajax.callback.mod_action = function(data) { $tt_td.html(ajax.tte_orig_html); $('.tt-text', $tt_td).html(data.topic_title); } +ajax.post_mod_comment = function(post_id, mc_text) { + if ($('#mc_type_'+post_id+'_0').attr('checked') == 'checked') { + var mc_type = 0; + } + else if ($('#mc_type_'+post_id+'_1').attr('checked') == 'checked') { + var mc_type = 1; + } + else if ($('#mc_type_'+post_id+'_2').attr('checked') == 'checked') { + var mc_type = 2; + } + ajax.exec({ + action : 'post_mod_comment', + post_id : post_id, + mc_type : mc_type, + mc_text : mc_text + }); +} +ajax.callback.post_mod_comment = function(data) { + if (data.type == 0) { + $('#pc_'+ data.post_id).html(''); + } + else if (data.type == 1) { + $('#pc_'+ data.post_id).html(data.html); + } + else if (data.type == 2) { + $('#pc_'+ data.post_id).html(data.html); + } +} @@ -267,6 +295,25 @@ ajax.callback.mod_action = function(data) { + + + @@ -311,6 +358,7 @@ ajax.callback.mod_action = function(data) {

+ {MC_IMG}{POST_BTN_SPACER} {QUOTE_IMG}{POST_BTN_SPACER} {EDIT_POST_IMG}{POST_BTN_SPACER} {DELETE_POST_IMG}{POST_BTN_SPACER} @@ -326,6 +374,7 @@ ajax.callback.mod_action = function(data) {

{postrow.MESSAGE} +
{postrow.POST_MOD_COMMENT}
{postrow.ATTACHMENTS}
diff --git a/upload/viewtopic.php b/upload/viewtopic.php index 6efc9160f..8afe2fa29 100644 --- a/upload/viewtopic.php +++ b/upload/viewtopic.php @@ -988,6 +988,16 @@ for($i = 0; $i < $total_posts; $i++) break; } + $post_mod_comment_html = ''; + if ($postrow[$i]['post_mod_comment_type'] == 1) + { + $post_mod_comment_html = '
K'. $postrow[$i]['post_mc_mod_name'] .' '. $lang['WROTE'] .':

'. bbcode2html($postrow[$i]['post_mod_comment']) .'
'; + } + else if ($postrow[$i]['post_mod_comment_type'] == 2) + { + $post_mod_comment_html = '
!'. $postrow[$i]['post_mc_mod_name'] .' '. $lang['WROTE'] .':

'. bbcode2html($postrow[$i]['post_mod_comment']) .'
'; + } + $template->assign_block_vars('postrow', array( 'ROW_CLASS' => !($i % 2) ? 'row1' : 'row2', 'POST_ID' => $postrow[$i]['post_id'], @@ -1026,6 +1036,10 @@ for($i = 0; $i < $total_posts; $i++) 'REPORT' => ($bb_cfg['text_buttons']) ? $report : $report_img, 'POSTER_BIRTHDAY' => ($bb_cfg['birthday_enabled'] && $this_date == $poster_birthday) ? '' : '', + + 'POST_MOD_COMMENT' => ($postrow[$i]['post_mod_comment'] && $postrow[$i]['post_mod_comment_type']) ? $post_mod_comment_html : '', + 'POST_MC_BBCODE' => str_replace("\n", '\n', $postrow[$i]['post_mod_comment']), + 'POST_MC_TYPE' => $postrow[$i]['post_mod_comment_type'], )); if ($postrow[$i]['post_attachment'] && $is_auth['auth_download'] && function_exists('display_post_attachments'))