/** * Отправить GET-запрос и получить ответ * @param string адрес (без учета базового адреса) * @param int 0 -конвертировать ответ из json в массив, в не конвертировать * @return mixed результат запроса (массив, возвращаемый curl_getinfo() + элемент 'content') */ protected function get_data($url, $simple_responce = 0) { if (!$this->init_curl()) { return null; } if (!$simple_responce) { if (nc_strpos($url, '?')) { $url .= '&format=json'; } else { $url .= '?format=json'; } } curl_setopt($this->ch, CURLOPT_URL, $this->base_addr . $url); // выполнить запрос curl_exec($this->ch); $result = curl_getinfo($this->ch); if ($simple_responce) { $result['content'] = curl_multi_getcontent($this->ch); } else { $result['content'] = json_decode(curl_multi_getcontent($this->ch), 1); } curl_close($this->ch); if ($this->debug) { var_dump($result); } return $result; }
$addForm = ob_get_clean(); } } catch (Exception $e) { if (is_object($perm) && $perm->isSubClassAdmin($cc)) { // error message echo sprintf(CONTROL_CLASS_CLASSFORM_CHECK_ERROR, CONTROL_CLASS_CLASS_FORMS_ADDFORM); } } $nc_parent_field_path = null; $nc_field_path = null; } else { eval("\$addForm = \"" . $cc_env["AddTemplate"] . "\";"); } } // search form from the FullSearchTemplate if (nc_strpos($component_body, '$searchForm') !== false) { if ($cc_env['File_Mode']) { $nc_parent_field_path = $file_class->get_parent_fiend_path('FullSearchTemplate'); $nc_field_path = $file_class->get_field_path('FullSearchTemplate'); $searchForm = ''; // check and include component part try { if (nc_check_php_file($nc_field_path)) { ob_start(); include $nc_field_path; $searchForm = ob_get_clean(); } } catch (Exception $e) { if (is_object($perm) && $perm->isSubClassAdmin($cc)) { // error message echo sprintf(CONTROL_CLASS_CLASSFORM_CHECK_ERROR, CONTROL_CLASS_CLASS_FORMS_QSEARCH);
#if ($quick_mode && nc_quickbar_permission()) { # $template_footer = nc_cut_jquery($template_footer); #} } elseif ($admin_modal) { eval($nc_core->template->get_current("Settings")); } // openstat if (NC_OPENSTAT_COUNTER) { if (!$admin_mode && !$inside_admin) { $pos = nc_strpos($template_header, NC_OPENSTAT_COUNTER); if ($pos !== FALSE) { $template_header = nc_substr($template_header, 0, $pos) . nc_openstat_get_code() . nc_substr($template_header, $pos + nc_strlen(NC_OPENSTAT_COUNTER)); $template_header = str_replace(NC_OPENSTAT_COUNTER, "", $template_header); $template_footer = str_replace(NC_OPENSTAT_COUNTER, "", $template_footer); } else { $pos = nc_strpos($template_footer, NC_OPENSTAT_COUNTER); if ($pos !== FALSE) { $template_footer = nc_substr($template_footer, 0, $pos) . nc_openstat_get_code() . nc_substr($template_footer, $pos + nc_strlen(NC_OPENSTAT_COUNTER)); $template_footer = str_replace(NC_OPENSTAT_COUNTER, "", $template_footer); } } } } if (!$check_auth && NC_AUTH_IN_PROGRESS !== 1) { eval("echo \"" . $template_header . "\";"); if ($AUTH_USER_ID || !$AUTH_USER_ID && !$nc_core->modules->get_vars('auth')) { if ($nc_core->inside_admin) { nc_print_status(NETCAT_MODERATION_ERROR_NORIGHTS, 'error'); } else { print NETCAT_MODERATION_ERROR_NORIGHTS; }
function nc_openstat_check_counter_in_templates_sub_check($el, &$templ = NULL, $check_xml = 0) { global $nc_core, $db; if ($el == 0) { return 0; } if (!$templ) { $templates = $db->get_results("SELECT `Template_ID`, `Parent_Template_ID`, `Header`, `Footer` FROM `Template`"); foreach ($templates as $t) { $templ[$t->Template_ID] = $t; } } if (!$check_xml) { // считаем, что в пустых xml макетах все и так хорошо и счетчик не нужен if (nc_strpos($templ[$el]->Header, "<?xml") !== FALSE) { return 0; } if ($templ[$el]->Footer == '' && $templ[$el]->Header == '' && $templ[$el]->Parent_Template_ID == 0) { return 0; } } if (!($templ[$el]->Footer == '' && $templ[$el]->Parent_Template_ID != 0)) { // если есть родитель и футер пустой, то он же наследуется return nc_strpos($templ[$el]->Footer, NC_OPENSTAT_COUNTER) === FALSE; } elseif (!($templ[$el]->Header == '' && $templ[$el]->Parent_Template_ID != 0)) { // если есть родитель и футер пустой, то он же наследуется return nc_strpos($templ[$el]->Header, NC_OPENSTAT_COUNTER) === FALSE; } else { return nc_openstat_check_counter_in_templates_sub_check($templ[$el]->Parent_Template_ID, $templ); } }
function ShowMenu($CatalogueID, $phase1, $action1, $phase2, $action2) { global $db, $perm; global $EDIT_DOMAIN, $HTTP_ROOT_PATH, $DOMAIN_NAME, $ADMIN_PATH, $SUB_FOLDER; global $UI_CONFIG; $CatalogueID = intval($CatalogueID); $is_admin = $perm->isCatalogueAdmin($CatalogueID); $Array = $db->get_row("SELECT * FROM `Catalogue` WHERE `Catalogue_ID`='" . $CatalogueID . "'"); if (!$Array) { nc_print_status(CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWCATALOGUELIST_DBERROR, 'error'); EndHtml(); exit; } $countChild = HighLevelChildrenNumber($CatalogueID); $ModerationType = $Array->Moderation_ID == 2 ? CLASSIFICATOR_TYPEOFMODERATION_MODERATION : CLASSIFICATOR_TYPEOFMODERATION_RIGHTAWAY; $UserGroupName = array(1 => CLASSIFICATOR_USERGROUP_ALL, 2 => CLASSIFICATOR_USERGROUP_REGISTERED, 3 => CLASSIFICATOR_USERGROUP_AUTHORIZED); // In MySQL 4.1, TIMESTAMP display format changes to be the same as DATETIME. if (nc_strpos($Array->LastUpdated[4], '-')) { $Array->LastUpdated = nc_substr($Array->LastUpdated, 0, 4) . "-" . nc_substr($Array->LastUpdated, 4, 2) . "-" . nc_substr($Array->LastUpdated, 6, 2) . " " . nc_substr($Array->LastUpdated, 8, 2) . ":" . nc_substr($Array->LastUpdated, 10, 2) . ":" . nc_substr($Array->LastUpdated, 12, 2); } echo "<br />\n\t<table border='0' cellpadding='0' cellspacing='0' width='100%'><tr><td>\n\t<table border='0' cellpadding='0' cellspacing='1' width='100%'><tr><td>\n \t<table border='0' cellpadding='0' cellspacing='0' width='100%' class='border-bottom'>\n \t<tr><td width='50%'>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_CREATED . ":</td><td>" . $Array->Created . "</td></tr>\n \t<tr><td>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_UPDATED . ":</td><td>" . $Array->LastUpdated . "</td></tr>\n \t</table>\n\t</td></tr><tr><td>\n \t<table border='0' cellpadding='0' cellspacing='0' width='100%' class='border-bottom'>\n <tr><td width='50%'>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_SECTIONSCOUNT . ":</td>"; echo "<td>" . $countChild; if ($countChild) { echo " ( <a href='" . $ADMIN_PATH . "subdivision/index.php?CatalogueID=" . $CatalogueID . "&ParentSubID=0'>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWCATALOGUELIST_LIST . "</a>\n " . ($is_admin ? ", <a href='" . $ADMIN_PATH . "subdivision/index.php?phase=2&ParentSubID=0&CatalogueID=" . $CatalogueID . "'>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_ADD . "\n </a> )" : ")") . ""; } echo "</td></tr>\n \t<tr><td>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_SITESTATUS . ":</td><td>" . ($Array->Checked ? CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_ON : CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_OFF) . "</td></tr>\n \t</table>\n\t</td></tr><tr><td>\n \t<table border='0' cellpadding='0' cellspacing='0' width='100%' class='border-bottom'>\n \t<tr><td width=50%>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_READACCESS . ":</td><td>" . $UserGroupName[$Array->Read_Access_ID] . " " . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_USERS . "</td></tr>\n <tr><td>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_ADDACCESS . ":</td><td>" . $UserGroupName[$Array->Write_Access_ID] . " " . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_USERS . "</td></tr>\n \t<tr><td>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_EDITACCESS . ":</td><td>" . $UserGroupName[$Array->Edit_Access_ID] . " " . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_USERS . "</td></tr>\n \t<tr><td>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_SUBSCRIBEACCESS . ":</td><td>" . $UserGroupName[$Array->Subscribe_Access_ID] . " " . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_USERS . "</td></tr>\n \t<tr><td>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_PUBLISHACCESS . ":</td><td>" . $ModerationType . "</td></tr>\n \t</table>\n\t</td></tr></table></td></tr></table>"; $UI_CONFIG->actionButtons[] = array("id" => "delete", "caption" => CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_DELETE, "location" => "site.delete(" . $CatalogueID . ")", "red_border" => true); $UI_CONFIG->actionButtons[] = array("id" => "preview", "caption" => CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWMENU_VIEW, "action" => "urlDispatcher.load('http://" . ($Array->Domain ? strstr($Array->Domain, ".") ? $Array->Domain : $Array->Domain . "." . $DOMAIN_NAME : $DOMAIN_NAME) . $SUB_FOLDER . (nc_strlen(session_id()) > 0 ? "?" . session_name() . "=" . session_id() . "" : "") . "', '1')"); }
/** * Пропарсить формат поля * Для поля типа "Файл" возвращаемое значение - хэш-массив с ключами: * size - размер; * type - массив с mimetype. Каждый элемент - массив, 0 - то, что стоит до /, 1 - то, что стоит после * fs - тип файловой системы * disposition - content-disposition, 0 - inline, 1 - attachment * download - считать скачивания? * * Для поле "Текстовы блок": * html - разрешить тэги * br - перенос строки - <br> * fck - встроить редактор в поле * rows, cols - высота и шириина * bbcode - доступены bb-коды * * @param string format * @param int field type * @return array */ function nc_field_parse_format($format, $fieldtype) { $ret = array(); //возвращаемое значение $format = str_replace(' ', '', $format); // уберем пробелы switch ($fieldtype) { case NC_FIELDTYPE_FILE: // значения по умолчанию $ret['size'] = 0; $ret['type'] = ''; $ret['fs'] = NC_FS_PROTECTED; $ret['download'] = 0; $ret['disposition'] = 0; // если формат пустой - вернуть значения по умолчанию if (!$format) { break; } // формат в общем случае: size:type1/type,type2/type:fs1|fs2|fs3:inline|attachment:download //уберем из формата лишнее $format = array_shift(explode(';', $format)); // определение фс if (preg_match('/(:?)(fs)(\\d+)/', $format, $match)) { $ret['fs'] = $match[3]; // уберем из формата тип фс $format = nc_preg_replace('/(:?)(fs)(\\d+)/', '', $format); } if (!$format) { break; } // определение download if (strstr($format, 'download') !== false) { $ret['download'] = 1; } $format = nc_preg_replace('/(:?)(download)/', '', $format); // уберем download // определение content-disposition if (strstr($format, 'attachment') !== false) { $ret['disposition'] = 1; } $format = nc_preg_replace('/(:?)((attachment)|(inline))/', '', $format); // уберем attachment $format_array = explode(':', $format); if (empty($format_array)) { break; } if ($format_array[0]) { $ret['size'] = $format_array[0]; } // размер //определение mimetype if ($format_array[1]) { $fileformat = explode(",", $format_array[1]); // определим каждый тип foreach ($fileformat as $k => $v) { $ret['type'][$k] = explode('/', $v); } } break; case NC_FIELDTYPE_TEXT: // значения по умолчанию $ret['rows'] = 5; // количество строк $ret['cols'] = 60; // и столбцов $ret['html'] = 0; // разрешить тэги $ret['br'] = 0; // перенос строки - br $ret['fck'] = 0; // редактор встроен в поле $ret['panel'] = 0; $ret['typo'] = 0; $ret['bbcode'] = 0; if (!$format) { return $ret; } $params = array('html', 'br', 'fck', 'panel', 'typo', 'bbcode'); // пробуем найти каждый параметр foreach ($params as $param) { if (($start = nc_strpos($format, $param)) !== false) { $ret[$param] = intval(nc_substr($format, $start + nc_strlen($param) + 1, 1)); } } // высоту и ширину ищем отдельно if ($format[0] > 0) { $format = strtok($format, ';'); $ret['rows'] = strtok($format, ':'); $ret['cols'] = strtok(':'); } break; case NC_FIELDTYPE_DATETIME: $ret['type'] = ''; $ret['calendar'] = 0; if (nc_strpos($format, 'calendar') !== false) { $ret['calendar'] = 1; $format = str_replace(array(';', 'calendar'), '', $format); } if ($format) { $ret['type'] = $format; } break; case NC_FIELDTYPE_STRING: $format = explode(':', $format); $ret['format'] = $format[0]; $ret['protect_email'] = isset($format[1]) && $format[1] == 'protect'; $ret['use_transliteration'] = $format[2]; $ret['transliteration_field'] = $format[3]; $ret['use_url_rules'] = $format[4]; break; } return $ret; }
/** * @param $haystack * @param $needle * @param int|null $offset * @return int|bool */ function nc_stripos($haystack, $needle, $offset = null) { if (nc_core('NC_UNICODE')) { return nc_strpos(nc_strtoupper($haystack), nc_strtoupper($needle), $offset); } else { return stripos($haystack, $needle, $offset); } }