/** * Получить список групп в виде SELECT. * * @param integer $selected_group_id ID выбранной группы * @param string $element_id ID <SELECT> для которого надо получить группы */ function GetGroupsForSelect($selected_group_id = 0, $element_id) { session_start(); $objResponse = new xajaxResponse(); if (hasPermissions('ourcontacts')) { $html = ''; $groups = contacts::getGroups(); if ($groups) { $objResponse->remove($element_id); $objResponse->insertAfter($element_id . '_label', 'select', $element_id); $objResponse->assign($element_id, 'name', $element_id); foreach ($groups as $group) { $objResponse->create("{$element_id}", 'option', $element_id . '_o_' . $group['id']); $objResponse->assign($element_id . '_o_' . $group['id'], 'value', $group['id']); $objResponse->assign($element_id . '_o_' . $group['id'], 'innerHTML', $group['title']); if ($group['id'] == $selected_group_id) { $objResponse->assign($element_id . '_o_' . $group['id'], 'selected', true); } } } } return $objResponse; }
/** * Захват потока пользователем * * @param int $content_id идентификатор сущности из admin_contents * @param string $stream_id идентификатор потока * @param int $is_first флаг того, что это первый открываемый фрейм * @return object xajaxResponse */ function chooseStream($content_id = 0, $stream_id = '', $is_first = 0) { global $user_content; $objResponse = new xajaxResponse(); if ($user_content->hasContentPermissions($content_id)) { $sStreamId = $user_content->chooseStream($content_id, $stream_id, $_SESSION['uid']); if ($sStreamId != $stream_id) { if (empty($sStreamId)) { $objResponse->alert('Захват потока не удался.\\nПовторите попытку.'); } } else { $aStreams = $user_content->getStreamsForUser($_SESSION['uid']); $aContentId = array(); // id сущностей, для которых есть захваченные потоки $aCounters = array(); // данные счетчиков в шапке захватываемого потока $sContentName = ''; // название сущности foreach ($aStreams as $aOne) { // находим нужный поток if ($aOne['stream_id'] == $stream_id) { break; // обрываем обход. то если это первый поток в сущности - $aContentId не будет id } $aContentId[$aOne['content_id']] = 1; // попутно собираем id сущностей } foreach ($user_content->contents as $aContent) { // находим название сущности if ($aContent['id'] == $aOne['content_id']) { $sContentName = $aContent['name']; break; } } if ($user_content->isStreamCounters($aOne['content_id'])) { // ели нужно добавляем счтчики - заготовка должна быть в каждом пото такой сущности $aCounters = $user_content->getStreamCounters($aOne['content_id'], false, $bShow); } $bFirstIn = !isset($aContentId[$aOne['content_id']]); // это первый поток данной сущности. нужно ли показывать счетчики ob_start(); include_once $_SERVER['DOCUMENT_ROOT'] . '/siteadmin/user_content/frames_header.php'; $sOutput = ob_get_contents(); ob_end_clean(); $sApproved = in_array($content_id, user_content::$aNoApproved) ? '' : 'проверенные'; $sRejected = in_array($content_id, user_content::$aNoRejected) ? '' : 'заблокированные'; if ($is_first == 1) { $objResponse->create('frames_body', 'table', 'frames_table'); $objResponse->assign('frames_table', 'className', 'b-layout__table b-layout__table_height_99ps b-layout__table_width_full'); $objResponse->assign('frames_table', 'border', '0'); $objResponse->assign('frames_table', 'cellpadding', '0'); $objResponse->assign('frames_table', 'cellspacing', '0'); $objResponse->create('frames_table', 'tr', 'tr_header'); $objResponse->assign('tr_header', 'className', 'b-layout__tr'); $objResponse->create('frames_table', 'tr', 'tr_frames'); $objResponse->assign('tr_frames', 'className', 'b-layout__tr'); } $objResponse->script("if (\$('{$stream_id}')) { \$('{$stream_id}').contentWindow.location.reload(true); } \n else {\n td1 = new Element('td', {'id': 'th_{$stream_id}','class': 'b-layout__one b-layout__one_bg_f7 b-layout__one_pad_10 b-layout__one_width_330 b-layout__one_bordright_ccc b-layout__one_bordbot_ccc b-layout__one_height_100',html: '' });\n td2 = new Element('td', {'id': 'td_{$stream_id}','class': 'b-layout__one b-layout__one_height_100ps b-layout__one_width_350 b-layout__one_bordright_ccc',html: '<div class=\"box-frame\"><iframe id=\"{$stream_id}\" src=\"/siteadmin/user_content/?site=stream&cid={$content_id}&sid={$stream_id}\" frameborder=\"0\" width=\"100%\" height=\"100%\"></iframe></div>' });\n \$('tr_header').adopt(td1);\$('tr_frames').adopt(td2);\n };"); if ($bFirstIn) { $objResponse->script("\$\$('div[id^=\"counters_{$aOne['content_id']}_\"]').addClass('b-shadow_hide');\$\$('div[id^=\"counters_{$aOne['content_id']}_\"]').setStyle('display', 'none');"); } $objResponse->assign('th_' . $stream_id, 'innerHTML', $sOutput); $objResponse->script("user_content.addSoundControl('{$stream_id}');"); $objResponse->script("user_content.tabMenuItems['{$stream_id}'] = ['непроверенные', '{$sApproved}', '{$sRejected}'];"); } } return $objResponse; }