/** * Блокирование/разблокирование сообщества * * @param int $commune_id * @param string $reason причина * @param int $reason_id ID причины, если она выбрана из списка (таблица admin_reasons, где act_id = 11) * @param string $reason_name Краткое описание причины действия (из селекта) для лога админских действий * @return object xajaxResponse */ function BlockedCommune($commune_id, $reason, $reason_id = null, $reason_name = '') { global $DB; $objResponse = new xajaxResponse(); $commune_id = intval($commune_id); session_start(); if (hasPermissions('communes')) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/commune.php'; if (is_string($reason) && $reason != '') { if (hasPermissions('communes')) { $count = $DB->val("SELECT COUNT(*) FROM commune WHERE id = ?", $commune_id); if ($count) { $commune = new commune(); $comm = $commune->GetCommune($commune_id, NULL, $_SESSION['role']); // лог админских действий $sObjName = $comm['name']; $sObjLink = '/commune/?id=' . $commune_id; $reason_id = $reason_id ? $reason_id : null; $reason = str_replace('%USERNAME%', $comm['author_uname'] . ' ' . $comm['author_usurname'], $reason); $reason = change_q($reason, FALSE, 0, TRUE); if ($comm['is_blocked']) { $commune->UnBlocked($commune_id); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_COMM, 12, $comm['author_id'], $commune_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason); $objResponse->assign("blocked-reason-{$commune_id}", 'innerHTML', ' '); $objResponse->assign("blocked-reason-{$commune_id}", 'style.display', 'none'); $objResponse->assign("blocked-button-{$commune_id}", 'innerHTML', '<a class="b-menu__link b-menu__link_fontsize_11 b-menu__link_color_c10600" href="javascript:;" onclick="banned.blockedCommune(' . $comm['id'] . ')">Заблокировать сообщество</a>'); $objResponse->assign("commune-reason-{$commune_id}", 'innerHTML', ' '); } else { $sBlockId = $commune->Blocked($commune_id, $reason, $reason_id, $_SESSION['uid']); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_COMM, 11, $comm['author_id'], $commune_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason, $sBlockId); $comm = $commune->GetCommune($commune_id, NULL, $_SESSION['role']); $reason = reformat($comm['blocked_reason'], 24, 0, 0, 1, 24); $html = __commPrntBlockedBlock($reason, $comm['blocked_time'], $_SESSION['login'], "{$_SESSION['name']} {$_SESSION['surname']}", $commune_id); $objResponse->assign("blocked-reason-{$commune_id}", 'innerHTML', $html); $objResponse->assign("blocked-reason-{$commune_id}", 'style.display', 'block'); $objResponse->assign("blocked-button-{$commune_id}", 'innerHTML', '<a class="b-menu__link b-menu__link_fontsize_11 b-menu__link_color_c10600" href="javascript:;" onclick="banned.unblockedCommune(' . $comm['id'] . ')">Разблокировать сообщество</a>'); $objResponse->assign("commune-reason-{$commune_id}", 'innerHTML', ' '); } } else { $objResponse->alert('Несуществующее сообщество'); } } } } return $objResponse; }
?> '> <?php echo $info_ajax_view ? $seo_text : seo_end($seo_text); ?> </span> <?php echo $comm[$info_pfx . 'is_team'] == 't' ? $is_team : $info_pro; ?> </span> </div> <?php // информация о блокировке сообщества if ($comm['is_blocked'] == 't') { echo __commPrntBlockedBlock($comm['blocked_reason'], $comm['blocked_time'], $comm['admin_login'], "{$comm['admin_name']} {$comm['admin_uname']}"); } ?> <?php // вступить в сообщество ?> <?php if ($uid = get_uid(false)) { ?> <span id="commSubscrButton_<?php echo $comm['id']; ?> "> <?php //= __commPrntSubmitButton($comm, $uid, null, 'green') ?>
/** * Возвращает HTML содержимое списка сообществ * * @param int $page номер страницы * @param array $communes массив со списком сообществ * @param string $sub_om код дополнительного условия сортировки или вкладки * @param int $total общее количество сообществ * @param string $search если есть поисковоая строка для подсвечивания найденого в названияих и описаниях * @return string HTML содержимое списка сообществ */ function __commPrintPage($page = 1, $communes = array(), $total = 0, $sub_om = '', $search = null, $is_ajax = false) { $sHtml = ''; if (!is_array($communes) || !count($communes)) { return ''; } // начало нумерации сообществ для своей сортировки $limit = commune::MAX_ON_PAGE; $start_position = ($page - 1) * $limit; $i = 0; foreach ($communes as $comm) { $i++; // Название. $comm_url = getFriendlyURL('commune_commune', $comm['id']); $name = "<a href='" . $comm_url . "' class='b-post__link'>" . ($search !== NULL ? highlight(reformat2($comm['name'], 25, 1, 1), $search, 20) : reformat2($comm['name'], 25, 1, 1)) . "</a>"; $descr = $search !== NULL ? highlight(reformat2($comm['descr'], 25, 1), $search) : reformat2($comm['descr'], 25, 1); // Сколько участников. $mAcceptedCnt = $comm['a_count'] - $comm['w_count'] + 1; // +1 -- создатель $mCnt = $mAcceptedCnt . ' участник' . getSymbolicName($mAcceptedCnt, 'man'); $sHtml .= '<div class="b-post b-post_padbot_20">'; $sHtml .= '<div class="b-post__body b-post__body_bordbot_solid_f0 b-post__body_padbot_30 b-layout">'; $sHtml .= '<table class="b-layout__table" cellpadding="0" cellspacing="0" border="0">'; $sHtml .= '<tr class="b-layout__tr">'; if ($sub_om == commune::OM_CM_JOINED_MY) { $sHtml .= ' <div class="form c-my-sort"> <b class="b1"></b> <b class="b2"></b> <div class="form-in"> <a onclick="xajax_CommuneMove(' . $comm['id'] . ', \'>\', ' . ($group_id ? $group_id : 0) . ', 10, ' . $page . ');" href="javascript:void(0);" class="b-sqr b-sqr-t1"><em></em></a> <a onclick="$(\'commune_set_order_' . $comm['id'] . '\').setStyle(\'display\', \'\');" href="javascript:void(0);" class="b-sqr b-sqr-t2"><em>' . ($start_position + $i) . '</em></a> <a onclick="xajax_CommuneMove(' . $comm['id'] . ', \'<\', ' . ($group_id ? $group_id : 0) . ', 10, ' . $page . ');" href="javascript:void(0);" class="b-sqr b-sqr-t3"><em></em></a> </div> <b class="b2"></b> <b class="b1"></b> </div>'; } // картинка сообщества $js = '<script type="text/javascript">seo_print(\'' . clearTextForJS(__commPrntImage($comm, 'author_')) . '\');</script>'; if ($comm['is_blocked'] == 't') { // если сообщество заблокировано $sHtml .= __commPrntBlockedBlock($comm['blocked_reason'], $comm['blocked_time'], $comm['admin_login'], "{$comm['admin_name']} {$comm['admin_uname']}"); } // левый блок, вставка изображения сообшщества $sHtml .= '<td class="b-layout__left b-layout__left_width_220">' . ($is_ajax ? __commPrntImage($comm, 'author_') : $js) . '</td>'; // начало правого блока $sHtml .= '<td class="b-layout__right"><div class="b-post__content">'; // блок голосования $sHtml .= '<div class="b-voting b-voting_float_right"><div id="idCommRating_' . $comm['id'] . '">' . __commPrntRating($comm, get_uid(false)) . '</div></div>'; // название сообщества $sHtml .= '<h3 class="b-post__title b-post__title_padbot_15">' . $name . '</h3>'; // описание сообщества $sHtml .= '<div class="b-post__txt b-post__txt_padbot_20">' . $descr . '</div>'; // инфа о сообществе $sHtml .= '<div class="b-post__foot">'; // количество участников и постов $sHtml .= '<div class="b-post__txt b-post__txt_padbot_10 b-post__txt_fontsize_11">' . '<a class="b-post__link b-post__link_fontsize_11 b-post__link_float_right" href="' . $comm_url . '">' . $comm['themes_count'] . ' ' . ending($comm['themes_count'], 'пост', 'поста', 'постов') . '</a>' . $mAcceptedCnt . ' ' . ending($mAcceptedCnt, 'участник', 'участника', 'участников') . '</div>'; // дата создания $sHtml .= '<div class="b-post__txt b-post__txt_padbot_10 b-post__txt_fontsize_11">Создано ' . __commPrntAgeEx($comm) . '</div>'; // создатель $sHtml .= '<div class="b-post__txt b-post__txt_padbot_30 b-post__txt_fontsize_11">Создатель ' . '<span class="b-username b-username_bold b-username_fontsize_11">' . __commPrntUsrInfo($comm, 'author_', '', '', false) . '</span>' . '</div>'; // вступить в сообщество if ($uid = get_uid(false)) { $sHtml .= '<span id="commSubscrButton_' . $comm['id'] . '">' . __commPrntSubmitButton($comm, $uid, null, 'green') . '</span>'; $sHtml .= __commPrntJoinButton($comm, $uid, null, 1); } $sHtml .= '</div>'; // закрытие тега div.b-post__foot if ($sub_om == commune::OM_CM_JOINED_MY) { $sHtml .= ' <div id="commune_set_order_' . $comm['id'] . '" class="overlay ov-out ov-commune-sort" style="display: none;"> <b class="c1"></b> <b class="c2"></b> <b class="ov-t"></b> <div class="ov-r"> <div class="ov-l"> <div class="ov-in"> <label>Позиция</label> <input type="text" id="position_time_' . $comm['id'] . '" name="position_time_' . $comm['id'] . '" size="3"> <button onclick="xajax_CommuneSetPosition(' . $comm['id'] . ', ' . ($start_position + $i) . ', $(\'position_time_' . $comm['id'] . '\').get(\'value\'), ' . $total . ', ' . ($group_id ? $group_id : 0) . ', 10, ' . $page . ');">Применить</button> <a href="javascript:void(0);" onclick="$(this).getParent(\'.overlay\').setStyle(\'display\', \'none\');" class="lnk-dot-666">Отменить</a> </div> </div> </div> <b class="ov-b"></b> <b class="c3"></b> <b class="c4"></b> </div>'; } $sHtml .= '</div></td>'; $sHtml .= '</tr></table></div></div>'; } return $sHtml; }