"> <a onclick="xajax_OutCommune(<?php echo $comm["id"]; ?> , 1); return false;" class="b-layout__link b-layout__link_float_right b-layout__link_dot_c10600 b-layout__link_fontsize_11" href="javascript:void(0)">Покинуть</a> Вы член сообщества </div> <?php } ?> <?php } ?> </div> <?php if (commune::isBannedCommune($user_mod)) { ?> <div class="b-fon b-fon_padbot_20"> <div class="b-fon__body b-fon__body_pad_5 b-fon__body_padleft_30 b-fon__body_fontsize_13 b-fon__body_bg_ffeeeb"> <span class="b-icon b-icon_sbr_rattent b-icon_margleft_-20"></span>Вы заблокированы в сообществе. <?php if ($comm['id'] == commune::COMMUNE_BLOGS_ID) { ?> <br><a class="b-layout__link" href="https://feedback.free-lance.ru" target="_blank">Обратиться в службу поддержки</a> <?php } //if ?> </div> </div> <?php
if (!$is_user_member && !$is_user_admin && !$is_top_author || $top['is_blocked_s'] == 't' || $top['is_blocked_c'] == 't') { $params['readonly'] = 1; $params['readonly_alert'] = 'Вы не являетесь членом данного сообщества. Данная функция вам недоступна.'; } if ($top['close_comments'] == 't') { $params['no_comments'] = true; $params['readonly'] = 1; } if ($is_user_member) { $params['readonly_alert'] = 'Комментирование закрыто.'; } $params['is_permission'] = commune::setAccessComments($user_mod); if (!$params['is_permission'] && $is_top_author) { $params['is_permission'] = 4; } if (commune::isBannedCommune($user_mod) || $top['deleted_id']) { $params['readonly'] = 1; } if (!commune_carma::isAllowedVote()) { $params['deny_vote'] = true; } if (__paramInit('string', 'cmtask', 'cmtask') == 'delete' || __paramInit('string', 'cmtask', 'cmtask') == 'restore') { if ($_GET['token'] != $_SESSION['rand']) { header('Location: /404.php'); exit; } } $comments = new CommentsCommune($top['id'], $top['last_viewed_time'], $params); $comments->tpl_path = $_SERVER['DOCUMENT_ROOT'] . '/classes/comments/'; $comments_html = $comments->render(); $js_file_utf8[] = '/scripts/ckedit/ckeditor.js';
<?php if ($top['title'] != '') { seo_start($ajax_view); } ?> <?php include TPL_COMMUNE_PATH . '/tpl.user_bar.php'; ?> <?php if ($top['title'] != '') { print seo_end(false, $ajax_view); } ?> </ul> <?php if (!commune::isBannedCommune($mod)) { include TPL_COMMUNE_PATH . '/admin_bar.php'; } ?> <?php } ?> </div> <div class="b-post__time b-page__iphone"> <?php echo date("d.m.Y в H:i", $created_time); ?> </div> </div><!-- конец топика --> </div> <style type="text/css">.msie .b-icon__ver{ position:relative; top:2px}</style>
/** * Проверяет туда ли попал пользователь и есть ли у него на это право. * Возвращает адрес переброски пользователя, если он не туда попал, * и если не NULL, то надо будет вызвать header(). * Если NULL, но $error не пуст, то надо будет выдать страницу ошибок __COMMUNES__ERROR и * прекратить операцию. * Заодно заполняет необходимые переменные. * * @global $uid Ид пользователя * @global $id Ид сообщения * @global $top_id Ид вкладки ТОП * @global $site Сайт * @global $action Действие для данной функции при отсылке данных (submit) * * @param string $error Возвращает сообщение об ошибке * @param array $comm Возвращает данные по комментариям * @param array $top Возвращает популярные сообщения * @param integer $restrict_type Возвращает тип пользования * @param integer $user_mod Возвращает битовую маску прав пользователя * @return string если не null, название страницы куда перенести пользователя */ function __commShaolin(&$error, &$comm, &$top, &$restrict_type, &$user_mod) { global $uid, $id, $top_id, $site, $action, $draft_id; $comm = NULL; $user_mod = 0; if ($uid) { $user_mod = commune::MOD_ADMIN * hasPermissions('communes'); $user_mod |= commune::MOD_MODER * ($user_mod & commune::MOD_ADMIN || hasPermissions('communes')); $user_mod |= commune::MOD_PRO * (payed::CheckPro(get_login($uid)) ? 1 : 0); $user_mod |= commune::MOD_EMPLOYER * (int) is_emp(); $user_mod |= commune::MOD_BANNED * is_banned($uid); } if (!$id) { if (!$site) { return NULL; } if ($site == 'Create') { if (!$uid) { return '/fbd.php'; } if (!($user_mod & (commune::MOD_PRO | commune::MOD_ADMIN))) { /*if ($user_mod & commune::MOD_EMPLOYER) return '/payed-emp/';*/ return '/proonly.php'; } if (($limit = commune::GetUserCommunesLimits($uid)) && $limit['user_communes_count']) { if ($limit['user_communes_count'] >= commune::MAX_COUNT) { $error['name'] = 'Создание вашего сообщества'; $error['message'] = 'Вы уже создали максимальное количество сообществ.'; return NULL; } $seconds = $limit['seconds_passed_since_user_created_his_last_commune']; if ($seconds < commune::CREATION_INTERVAL) { $error['name'] = 'Создание вашего сообщества'; $wait = commune::CREATION_INTERVAL - $seconds; $error['message'] = "Подождите {$wait} " . getSymbolicName($wait, 'second') . '.'; return NULL; } } } else { return '/404.php'; } return NULL; } if (!($comm = commune::GetCommune($id, !$uid ? NULL : $uid, $user_mod))) { return '/commune/'; } if (!$uid) { if ($action) { return "/commune/?id={$id}"; } if ($site == 'Topic') { } else { if ($site == 'Join') { return '/fbd.php'; } else { if ($site == 'Members') { return '/fbd.php'; } else { if ($site) { return "/commune/?id={$id}"; } } } } } else { if ($uStatus = commune::GetUserCommuneRel($id, $uid)) { $user_mod |= commune::MOD_COMM_MODERATOR * $uStatus['is_moderator']; $user_mod |= commune::MOD_COMM_MANAGER * $uStatus['is_manager']; $user_mod |= commune::MOD_COMM_ADMIN * ($uStatus['is_admin'] || $uStatus['is_moderator'] || $uStatus['is_manager']); $user_mod |= commune::MOD_COMM_AUTHOR * $uStatus['is_author']; $user_mod |= commune::MOD_COMM_ASKED * $uStatus['is_asked']; $user_mod |= commune::MOD_COMM_ACCEPTED * ($uStatus['is_accepted'] || $user_mod & commune::MOD_COMM_ADMIN); $user_mod |= commune::MOD_COMM_BANNED * $uStatus['is_banned']; } } if ($comm['is_blocked'] && !($user_mod & commune::MOD_MODER)) { if ($comm['author_id'] != $uid || $comm['author_id'] == $uid && ($site && $site != 'Members' || $action)) { return '/commune/'; } } if ($user_mod & commune::MOD_COMM_BANNED && !hasPermissions('communes') && $comm['restrict_type'] != '00') { $error['name'] = 'Нет доступа в сообщество'; $error['message'] = 'Вы находитесь в бан-листе этой группы. Вы можете обратиться к создателю группы:<br/><br/>' . '<div style="float:left">' . __commPrntUsrAvtr($comm, 'author_') . '</div>' . '<div style="padding-left:10px;float:left">' . __commPrntUsrInfo($comm, 'author_') . '</div>'; return NULL; } $restrict_type = bitStr2Int($comm['restrict_type']); if ($restrict_type & commune::RESTRICT_READ_MASK) { if ($site != 'Join' && $action != 'Join' && !($user_mod & (commune::MOD_COMM_AUTHOR | commune::MOD_COMM_ACCEPTED | commune::MOD_ADMIN | commune::MOD_MODER))) { $error['name'] = 'Нет доступа в сообщество'; if ($user_mod & commune::MOD_COMM_ASKED) { $error['message'] = " Администратор сообщества <b>«{$comm['name']}»</b> еще не рассмотрел вашу заявку. Просмотр этого сообщества вам не доступен.<br/><br/>" . __commPrntJoinButton($comm, $uid); } else { $error['message'] = " Вы не являетесь членом сообщества <b>«{$comm['name']}»</b>. Просмотр этого сообщества вам не доступен.<br/><br/>" . __commPrntJoinButton($comm, $uid); } return NULL; } } switch ($site) { case 'Join': // if ( $user_mod & commune::MOD_COMM_AUTHOR ) // return "/commune/?id={$id}"; // if ( $user_mod & commune::MOD_COMM_ASKED ) // return "/commune/?id={$id}"; break; case 'Create': if ($id) { return "/commune/?id={$id}"; } break; case 'Edit': if (!($user_mod & (commune::MOD_ADMIN | commune::MOD_COMM_AUTHOR))) { return "/commune/?id={$id}"; } break; case 'Admin': if (!($user_mod & (commune::MOD_ADMIN | commune::MOD_COMM_AUTHOR))) { if ($user_mod & commune::MOD_COMM_MANAGER) { return "/commune/?id={$id}&site=Admin.members"; } return "/commune/?id={$id}"; } break; case 'Admin.members': if (!($user_mod & (commune::MOD_ADMIN | commune::MOD_COMM_AUTHOR | commune::MOD_COMM_MANAGER) || hasPermissions('communes'))) { return "/commune/?id={$id}"; } break; case 'Topic': if ($action && $action != 'do.Edit.post' && $action != 'do.Create.post' && $action != 'add_comment' && $action != 'edit_comment' && $action != 'wysiwygUploadImage') { //if ($action && $action != 'Edit.post') return "/404.php"; } if (!$top_id || !($top = commune::GetTopMessageByAnyOther($top_id, $uid, $user_mod, TRUE)) || $top['member_is_banned'] && $comm['restrict_type'] != '00' && ($action != 'do.Edit.post' && $action != 'do.Create.post') && !($user_mod & (commune::MOD_ADMIN | commune::MOD_COMM_AUTHOR | commune::MOD_COMM_MANAGER)) || $top['is_private'] == 't' && $top['user_id'] != $uid && !($user_mod & (commune::MOD_ADMIN | commune::MOD_COMM_AUTHOR | commune::MOD_COMM_MANAGER)) || $top['deleted_id'] && !hasPermissions('communes')) { return "/404.php"; } break; case 'Members': break; case 'Newtopic': if (commune::isBannedCommune($user_mod)) { $error['name'] = 'Нет доступа'; $error['message'] = 'Вы находитесь в бан-листе этой группы. Вы можете обратиться к создателю группы:<br/><br/>' . '<div style="float:left">' . __commPrntUsrAvtr($comm, 'author_') . '</div>' . '<div style="padding-left:10px;float:left">' . __commPrntUsrInfo($comm, 'author_') . '</div>'; return NULL; } if (!($user_mod & commune::MOD_COMM_AUTHOR && !$comm['is_blocked']) && !($user_mod & (commune::MOD_ADMIN | commune::MOD_MODER | commune::MOD_COMM_ACCEPTED | commune::MOD_COMM_ADMIN | commune::MOD_COMM_MODERATOR | commune::MOD_COMM_ADMIN))) { return getFriendlyURL('commune_commune', $comm['id']); } break; case 'Editdraft': require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/drafts.php"; $draftData = drafts::getDraft($draft_id, get_uid(false), 4); if (!$draftData) { return getFriendlyURL('commune_commune', $comm['id']); } break; case 'Edittopic': break; default: if ($site) { return "/404.php"; } break; } if ($action) { if ($action == 'Delete' && !($user_mod & commune::MOD_ADMIN)) { return "/commune/?id={$id}"; } if (!$site) { if (($action == 'do.Edit.post' || $action == 'do.Create.post') && $user_mod & (commune::MOD_ADMIN | commune::MOD_COMM_AUTHOR | commune::MOD_COMM_ACCEPTED)) { return NULL; } if ($action == 'Join') { return NULL; } return "/commune/?id={$id}"; } } return NULL; }