Пример #1
0
 /**
  * Отправить 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;
 }
Пример #2
0
                 $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);
Пример #3
0
     #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;
         }
Пример #4
0
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);
    }
}
Пример #5
0
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 . "&amp;ParentSubID=0'>" . CONTROL_CONTENT_CATALOUGE_FUNCS_SHOWCATALOGUELIST_LIST . "</a>\n          " . ($is_admin ? ", <a href='" . $ADMIN_PATH . "subdivision/index.php?phase=2&amp;ParentSubID=0&amp;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')");
}
Пример #6
0
/**
 * Пропарсить формат поля
 * Для поля типа "Файл" возвращаемое значение - хэш-массив с ключами:
 * 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;
}
Пример #7
0
/**
 * @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);
    }
}