Esempio n. 1
0
 } else {
     // модуль маршрутизации: нет аналога для $msgLink
     $msgLink = $f_Keyword ? $f_Keyword : $cc_env['EnglishName'] . "_" . $f_RowID;
     if ($routing_module_enabled) {
         $fullLink = nc_routing::get_object_path($classID, $routing_object_parameters);
         $fullRSSLink = $cc_env['AllowRSS'] ? nc_routing::get_object_path($classID, $routing_object_parameters, 'full', 'rss') : "";
         $fullDateLink = nc_routing::get_object_path($classID, $routing_object_parameters, 'full', 'html', true, null);
         $editLink = nc_routing::get_object_path($classID, $routing_object_parameters, 'edit');
         $deleteLink = nc_routing::get_object_path($classID, $routing_object_parameters, 'delete');
         $dropLink = nc_routing::get_object_path($classID, $routing_object_parameters, 'drop') . ($nc_core->token->is_use('drop') ? "?" . $nc_core->token->get_url() : "");
         $checkedLink = nc_routing::get_object_path($classID, $routing_object_parameters, 'checked');
         $subscribeMessageLink = nc_routing::get_object_path($classID, $routing_object_parameters, 'subscribe');
         // действия с компонентом
         $subscribeLink = nc_routing::get_infoblock_path($cc, 'subscribe');
         $searchLink = nc_routing::get_infoblock_path($cc, 'search');
         $addLink = nc_routing::get_infoblock_path($cc, 'add');
     } else {
         $fullLink = $subLink . $msgLink . ".html";
         $fullRSSLink = $cc_env['AllowRSS'] ? $subLink . $msgLink . ".rss" : "";
         $fullDateLink = $subLink . $dateLink . $msgLink . ".html";
         $editLink = $subLink . "edit_" . $msgLink . ".html";
         // ccылка для редактирования
         $deleteLink = $subLink . "delete_" . $msgLink . ".html";
         //            удаления
         $dropLink = $subLink . "drop_" . $msgLink . ".html" . ($nc_core->token->is_use('drop') ? "?" . $nc_core->token->get_url() : "");
         //            удаления без подтверждения
         $checkedLink = $subLink . "checked_" . $msgLink . ".html";
         //            включения\выключения
         $subscribeMessageLink = $subLink . "subscribe_" . $msgLink . ".html";
         // подписка на объект
         // действия с компонентом
Esempio n. 2
0
function nc_quickbar_in_template_header($buffer, $File_Mode = false, $return_shortpage_update_array = false)
{
    global $MODULE_VARS, $AUTH_USER_ID, $ADMIN_TEMPLATE, $HTTP_ROOT_PATH, $ADMIN_PATH, $perm;
    global $SUB_FOLDER, $REQUEST_URI, $REQUEST_METHOD, $ADMIN_AUTHTIME;
    global $current_catalogue, $current_sub, $current_cc, $current_user, $AUTHORIZE_BY;
    global $inside_admin, $admin_mode, $user_table_mode, $action, $message, $classID;
    /** @var int $message */
    $nc_core = nc_Core::get_object();
    if ($inside_admin || !nc_quickbar_permission()) {
        return $return_shortpage_update_array ? null : $buffer;
    }
    if (!$return_shortpage_update_array) {
        // reversive direction!
        $buffer = nc_insert_in_head($buffer, nc_js(), $nc_core->get_variable("admin_mode"));
    }
    if ($nc_core->modules->get_by_keyword('auth')) {
        $profile_url = nc_auth_profile_url($AUTH_USER_ID);
    }
    if (nc_module_check_by_keyword('routing')) {
        if ($message) {
            $view_link = nc_routing::get_object_path($classID, $message, 'full');
        } else {
            $view_link = (string) nc_routing::get_folder_path($current_sub['Subdivision_ID']);
            if (!$view_link) {
                if ($current_cc) {
                    $view_link = nc_routing::get_infoblock_path($current_cc['Sub_Class_ID'], $current_cc['DefaultAction']);
                } else {
                    $view_link = '#';
                }
            }
        }
    } else {
        $view_link = $SUB_FOLDER . ($current_sub['Hidden_URL'] != "/index/" ? $current_sub['Hidden_URL'] : "/") . ($message && $current_cc['EnglishName'] ? $current_cc['EnglishName'] . "_" . $message . ".html" : "");
    }
    if (!$user_table_mode) {
        $edit_link = $SUB_FOLDER . $HTTP_ROOT_PATH . ($action == "change" ? "message" : $action) . ".php?catalogue=" . $current_catalogue['Catalogue_ID'] . ($current_sub['Subdivision_ID'] ? "&sub=" . $current_sub['Subdivision_ID'] : "") . ($current_cc['Sub_Class_ID'] ? "&cc=" . $current_cc['Sub_Class_ID'] : "") . ($message ? "&message=" . $message : "");
    } else {
        $edit_link = $SUB_FOLDER . $HTTP_ROOT_PATH . "?catalogue=" . $current_catalogue['Catalogue_ID'] . ($current_sub['Subdivision_ID'] ? "&sub=" . $current_sub['Subdivision_ID'] : "") . ($current_cc['Sub_Class_ID'] ? "&cc=" . $current_cc['Sub_Class_ID'] : "") . ($message ? "&message=" . $message : "");
    }
    $admin_link = "";
    switch (true) {
        case $current_cc['System_Table_ID'] == 3 && $message:
            $admin_link = "#user.edit(" . $message . ")";
            break;
        case $current_cc['Sub_Class_ID'] && $message:
            $admin_link = "#object.view(" . $current_cc['Sub_Class_ID'] . "," . $message . ")";
            break;
        case $current_cc['Sub_Class_ID']:
            $admin_link = "#object.list(" . $current_cc['Sub_Class_ID'] . ")";
            break;
        case $current_sub['Subdivision_ID']:
            $admin_link = "#subclass.list(" . $current_sub['Subdivision_ID'] . ")";
            break;
        case $current_catalogue['Catalogue_ID']:
            $admin_link = "#site.map(" . $current_catalogue['Catalogue_ID'] . ")";
    }
    $admin_link = $ADMIN_PATH . $admin_link;
    $sub_admin_limk = $ADMIN_PATH . "subdivision/index.php?phase=5&SubdivisionID={$current_sub['Subdivision_ID']}&view=all";
    $template_admin_limk = $ADMIN_PATH . 'template/index.php?phase=4&TemplateID=' . $nc_core->template->get_current('Template_ID');
    $sub_class_admin_link = $ADMIN_PATH . "subdivision/SubClass.php?SubdivisionID=" . $current_sub['Subdivision_ID'];
    $msg_img = $ADMIN_PATH . 'skins/default/img/msg.png';
    $pass_admin_link = $ADMIN_PATH . 'user/index.php';
    $lock_img = $ADMIN_PATH . 'skins/default/img/lock.png';
    $right_img = $ADMIN_PATH . 'skins/default/img/right.png';
    if ($return_shortpage_update_array) {
        return array('view_link' => $view_link, 'edit_link' => $edit_link, 'sub_admin_link' => $sub_admin_limk, 'template_admin_link' => $template_admin_limk, 'admin_link' => $admin_link);
    }
    $ANY_SYSTEM_MESSAGE = $nc_core->db->get_var("SELECT COUNT(*) FROM `SystemMessage` WHERE `Checked` = 0");
    $lang = $nc_core->lang->detect_lang(1);
    if ($lang == 'ru') {
        $lang = $nc_core->NC_UNICODE ? "ru_utf8" : "ru_cp1251";
    }
    if ($nc_core->modules->get_by_keyword('cache')) {
        $cache_link = $ADMIN_PATH . "#module.cache";
    }
    $PermissionGroup_Name = $nc_core->db->get_col("SELECT PermissionGroup_Name FROM PermissionGroup WHERE PermissionGroup_ID IN (" . join(', ', (array) $current_user['Permission_Group']) . ")");
    /*<script type='text/javascript' src='" . $SUB_FOLDER . $ADMIN_PATH . "js/sitemap.js'></script>
      <script type='text/javascript' src='" . $SUB_FOLDER . $ADMIN_PATH . "js/remind_save.js'></script>*/
    //--------------------------------------------------------------------------
    // Генерация панели инструментов (navbar) для front-end
    //--------------------------------------------------------------------------
    $navbar = $nc_core->ui->navbar();
    $lsDisplayType = $nc_core->get_display_type();
    //--------------------------------------------------------------------------
    // Просмотр
    $navbar->quickmenu->add_btn($SUB_FOLDER . $view_link, NETCAT_QUICKBAR_BUTTON_VIEWMODE)->active(!$admin_mode);
    if ($lsDisplayType != 'longpage_vertical') {
        // Редактирование
        $navbar->quickmenu->add_btn($edit_link, NETCAT_QUICKBAR_BUTTON_EDITMODE)->active($admin_mode);
        //--------------------------------------------------------------------------
        // Пункт меню "Ещё"
        $navbar->more = $navbar->menu->add_btn('#', NETCAT_QUICKBAR_BUTTON_MORE)->submenu();
        // echo $SubdivisionID;exit;
        if (!empty($current_sub['Subdivision_ID']) && $perm->isAccess(NC_PERM_ITEM_SUB, NC_PERM_ACTION_EDIT, $current_sub['Subdivision_ID'], 0)) {
            $navbar->more->add_btn($sub_admin_limk, NETCAT_QUICKBAR_BUTTON_SUBDIVISION_SETTINGS)->icon('settings')->click('nc_form(this.href); return false');
        }
        if ($perm->isAccess(NC_PERM_TEMPLATE, 0, 0, 0)) {
            $navbar->more->add_btn($template_admin_limk, NETCAT_QUICKBAR_BUTTON_TEMPLATE_SETTINGS)->icon('dev-templates')->click('nc_form(this.href); return false');
        }
        $navbar->more->add_btn($admin_link, NETCAT_QUICKBAR_BUTTON_ADMIN)->icon('mod-default');
        //--------------------------------------------------------------------------
    } else {
        $navbar->quickmenu->add_btn('#', NETCAT_QUICKBAR_BUTTON_EDITMODE)->disabled()->title(NETCAT_QUICKBAR_BUTTON_EDITMODE_UNAVAILABLE_FOR_LONGPAGE)->click('return false')->modificator('default-cursor');
    }
    // AJAX Loader
    $navbar->tray->add_btn('#')->compact()->icon_large('navbar-loader')->id('nc-navbar-loader')->style('display:none');
    // Иконка с сообщениями
    if ($perm->isAccess(NC_PERM_REPORT)) {
        $navbar->tray->add_btn($ADMIN_PATH . '#tools.systemmessages')->compact()->title($ANY_SYSTEM_MESSAGE ? BEGINHTML_ALARMON : BEGINHTML_ALARMOFF, true)->icon_large('system-message')->id('trayMessagesIcon')->disabled(!$ANY_SYSTEM_MESSAGE);
    }
    // Меню пользователя
    $logout_link = $MODULE_VARS['auth'] ? $SUB_FOLDER . $HTTP_ROOT_PATH . "modules/auth/?logoff=1&amp;REQUESTED_FROM=" . $REQUEST_URI . "&amp;REQUESTED_BY=" . $REQUEST_METHOD : $ADMIN_PATH . "unauth.php";
    $navbar->tray->add_btn('#', $perm->getLogin())->click('return false')->title(BEGINHTML_USER . ': ' . $perm->getLogin())->htext(BEGINHTML_USER)->dropdown()->div(NETCAT_ADMIN_AUTH_PERM . " <span class='nc-text-grey'>" . str_replace('"', '\\"', join(', ', Permission::get_all_permission_names_by_id($AUTH_USER_ID))) . "</span><hr class='nc-hr'>" . $nc_core->ui->btn('#', NETCAT_ADMIN_AUTH_CHANGE_PASS)->click('nc_password_change(); return false')->light()->text_darken()->left() . $nc_core->ui->btn($logout_link, NETCAT_ADMIN_AUTH_LOGOUT)->red()->right())->class_name('nc-padding-10');
    //--------------------------------------------------------------------------
    // $navbar
    $navbar_html = (string) $navbar->fixed();
    $navbar_html .= "\n<script type='text/javascript'>\n\nvar padding = Math.round(parseInt(jQuery('body').css('padding-top')) + parseInt(jQuery('body').css('margin-top')) + jQuery('div.nc-navbar').height());\njQuery('body').css({marginTop:padding+'px', position:'relative'});\n\njQuery('div.nc-navbar li.nc--dropdown > a').click(function(){\n    jQuery(this.parentNode).addClass('nc--clicked');\n    return false;\n}).parent().mouseleave(function(){\n    var ob = this\n    jQuery._navbar_menu_timeout = setTimeout(function(){\n       jQuery(ob).removeClass('nc--clicked');\n    }, 500);\n}).mouseover(function(){\n    if (jQuery(this).hasClass('nc--clicked')) {\n        try {clearTimeout(jQuery._navbar_menu_timeout)} catch(e) {};\n    }\n}).find('li a').click(function(){\n    jQuery('div.nc-navbar li.nc--dropdown').removeClass('nc--clicked');\n    jQuery('div.nc-navbar li.nc--clicked').removeClass('nc--clicked');\n});\njQuery('body').click(function(){\n    jQuery('div.nc-navbar>ul>li.nc--clicked').removeClass('nc--clicked')\n})\n</script>";
    // Содержание модального окна быстрого изменения пароля
    //TODO: Сделать загрузку содержимого окна через ajax
    $navbar_html .= "\n<div id='nc_password_change' class='nc-shadow-large nc--hide nc-admin'>\n    <form style='width:350px; line-height:20px' class='nc-form' method='post' action='" . $ADMIN_PATH . "user/index.php'>\n        <div class='nc-padding-15'>\n            <h2 class='nc-h2'>" . NETCAT_ADMIN_AUTH_CHANGE_PASS . "</h2>\n            <hr class='nc-hr' style='margin:5px -15px 15px'>\n            <div>\n                <label>" . CONTROL_USER_NEWPASSWORD . "</label><br>\n                <input class='nc--wide' type='password' name='Password1' maxlength='32' placeholder='" . CONTROL_USER_NEWPASSWORD . "' />\n            </div>\n            <div>\n                <label>" . CONTROL_USER_NEWPASSWORDAGAIN . "</label><br>\n                <input class='nc--wide' type='password' name='Password2' maxlength='32' placeholder='" . CONTROL_USER_NEWPASSWORDAGAIN . "' />\n            </div>\n            <input type='hidden' name='UserID' value='" . $AUTH_USER_ID . "' />\n            <input type='hidden' name='phase' value='7' />\n            " . $nc_core->token->get_input() . "\n        </div>\n    </form>\n    <div class='nc-form-actions'>\n        <script type='text/javascript'>function nc_password_change_submit(){jQuery('#nc_password_change form').submit();}</script>\n        <button class='nc-btn nc--bordered nc--red nc--right' onclick='jQuery.modal.close()' type='button'>" . CONTROL_BUTTON_CANCEL . "</button>\n        <button class='nc_admin_metro_button nc-btn nc--blue nc--right' onclick='nc_password_change_submit()'>" . NETCAT_REMIND_SAVE_SAVE . "</button>\n    </div>\n</div>\n<!-- /#nc_password_change -->";
    $addon = "<!-- Netcat QuickBar -->\n" . "<script type='text/javascript' src='" . $ADMIN_PATH . "js/classes/nc_cookies.class.js'></script>\n" . "<script type='text/javascript' src='" . $ADMIN_PATH . "js/classes/nc_drag.class.js'></script>\n" . "<script type='text/javascript' src='" . $ADMIN_PATH . "js/lang/" . $lang . ".js?" . $LAST_LOCAL_PATCH . "' charset='" . $nc_core->NC_CHARSET . "'></script>\n                <link rel='stylesheet' href='" . $ADMIN_PATH . "/js/codemirror/lib/codemirror.css'>\n                <script src='" . $ADMIN_PATH . "js/codemirror/lib/codemirror.js'></script>\n                <script src='" . $ADMIN_PATH . "js/codemirror/mode/xml.js'></script>\n                <script src='" . $ADMIN_PATH . "js/codemirror/mode/mysql.js'></script>\n                <script src='" . $ADMIN_PATH . "js/codemirror/mode/javascript.js'></script>\n                <script src='" . $ADMIN_PATH . "js/codemirror/mode/css.js'></script>\n                <script src='" . $ADMIN_PATH . "js/codemirror/mode/clike.js'></script>\n                <script src='" . $ADMIN_PATH . "js/codemirror/mode/php.js'></script>\n                <script type='text/javascript'>\n                    var nc_token = '" . $nc_core->token->get(+$AUTH_USER_ID) . "';\n                </script>\n                <script type='text/javascript'>\n                    jQuery(function () {\n\n                        function getEditorTypeById(id) {\n                            if(id == 'Query') {\n                                return 'text/x-mysql';\n                            }\n                            return 'text/x-php';\n                        }\n\n                        if(true){\n\n                            window.CMEditors = [];\n\n                            function createCMEditor(ind, el) {\n                                var init = true;\n                                return function () {\n                                    if(init) {\n                                        var h = jQuery(el).height();\n                                        window.CMEditors[ind] = CodeMirror.fromTextArea(el,{\n                                            lineNumbers: true,\n                                            mode: getEditorTypeById(jQuery(el).attr('id')),\n                                            indentUnit: 4\n                                        });\n                                        window.CMEditors[ind].id = jQuery(el).attr('id');\n                                        var scrollEl = jQuery(window.CMEditors[ind].getScrollerElement());\n                                        scrollEl.height(h);\n                                    }\n                                    else {\n                                        var h = jQuery(window.CMEditors[ind].getScrollerElement()).height();\n                                        window.CMEditors[ind].toTextArea();\n                                        jQuery(el).height(h);\n                                    }\n                                    init = !init;\n                                }\n                            }\n\n                            jQuery('textarea').each(function (ind, el) {\n                                return null;\n                                var prev0 =  jQuery(el).prev(), prev = prev0.prev(), prevPrev = prev.prev(),\n                                prev0F = prev0.filter('div.resize_block').children(), prevF = prev.filter('div.resize_block').children(), prevPrevF = prevPrev.filter('div.resize_block').children();\n                                prevF.add(prev0F).add(prevPrevF).each(function (i, e) {\n                                    jQuery(e).bind('click', function () {\n                                        var idd = jQuery(this).attr('href').substr(1);\n                                        for(var k in window.CMEditors) {\n                                            if(window.CMEditors[k].id == idd) {\n                                                var scrollEl = jQuery(window.CMEditors[k].getScrollerElement());\n                                                if(jQuery(this).hasClass('textarea_shrink')) {\n                                                    scrollEl.height(scrollEl.height() + 20);\n                                                }\n                                                else if(scrollEl.height() > 120) {\n                                                    scrollEl.height(scrollEl.height() - 20);\n                                                }\n                                                break;\n                                            }\n                                        }\n                                    });\n                                });\n                                jQuery(el).after(jQuery('<input>').attr({type: 'checkbox', id: 'cmtext'+ind})\n                                .click(createCMEditor(ind, el))\n                                .after(jQuery('<label>').attr('for', 'cmtext'+ind).html(' " . NETCAT_SETTINGS_CODEMIRROR_SWITCH . "')));\n                            });\n                        }\n                    });\n                    jQuery('body').attr('style', 'overflow-y: auto;');\n                </script>\n                <!-- для диалога генерации альтернативных форм -->\n                <script type='text/javascript'>\n                    var SUB_FOLDER = '" . $SUB_FOLDER . "';\n                    var NETCAT_PATH = '" . $SUB_FOLDER . $HTTP_ROOT_PATH . "';\n                    var ADMIN_PATH = '" . $ADMIN_PATH . "';\n                    var ADMIN_LANG = '" . MAIN_LANG . "';\n                    var NC_CHARSET = '" . $nc_core->NC_CHARSET . "';\n                    var ICON_PATH = '" . $ADMIN_TEMPLATE . " + img/';\n                    var NETCAT_REMIND_SAVE_TEXT = '" . NETCAT_REMIND_SAVE_TEXT . "';\n                </script>" . "<script>\n                    function showhide(val, val2) {\n                        var obj=document.getElementById(val)\n                        var obj2=document.getElementById(val2)\n                        obj.className=(obj.className=='show_add')? 'hide_add': 'show_add'\n                        obj2.className=(obj2.className=='blue')? 'white': 'blue'\n                }\n                </script>";
    $addon .= $navbar_html;
    if ($File_Mode) {
        $addon = str_replace("\\\"", "\"", $addon);
    }
    switch (true) {
        case nc_preg_match("/\\<\\s*?frameset.*?\\>/im", $buffer):
            break;
        case nc_preg_match("/\\<\\s*?body.*?\\>/im", $buffer):
            $preg_pattern = "/(\\<\\s*?body.*?\\>){1}/im";
            $preg_replacement = "\$1\n" . $addon;
            break;
        case nc_preg_match("/\\<\\s*?html\\s*?\\>/im", $buffer):
            $preg_pattern = "/(\\<\\s*?html\\s*?\\>){1}/im";
            $preg_replacement = "\$1\n<body>" . $addon . "</body>";
            break;
    }
    if ($preg_pattern && $preg_replacement) {
        $buffer = nc_preg_replace($preg_pattern, $preg_replacement, $buffer);
    }
    return $buffer;
}
Esempio n. 3
0
function nc_browse_cc($browse_template)
{
    global $db;
    global $admin_mode, $admin_url_prefix;
    global $current_cc, $current_sub;
    global $cc_in_sub, $cc_array, $cc_keyword, $use_multi_sub_class;
    global $REQUEST_URI, $SUB_FOLDER;
    // this happens when non-existent sub requested in admin mode
    if (!$current_sub["Subdivision_ID"]) {
        return "";
    }
    // cache section
    if (nc_module_check_by_keyword("cache") && $current_cc['Cache_Access_ID'] == 1 && $browse_template['nocache'] != true) {
        $nc_cache_browse = nc_cache_browse::getObject();
        try {
            // check cached data
            $cached_data = $nc_cache_browse->read($current_cc, $browse_template, $REQUEST_URI, $current_cc['Cache_Lifetime']);
            if ($cached_data != -1) {
                // debug info
                $cache_debug_info = "Read, catalogue[" . $current_cc['Catalogue_ID'] . "], sub[" . $current_cc['Subdivision_ID'] . "], cc[" . $current_cc['Sub_Class_ID'] . "], Access_ID[" . $current_cc['Cache_Access_ID'] . "], Lifetime[" . $current_cc['Cache_Lifetime'] . "], bytes[" . strlen($cached_data) . "]";
                $nc_cache_browse->debugMessage($cache_debug_info, __FILE__, __LINE__);
                // return cache
                return $cached_data;
            }
        } catch (Exception $e) {
            // for debug
            $nc_cache_browse->errorMessage($e);
        }
    }
    $sort_by = $browse_template['sortby'] ? $browse_template['sortby'] : "`Priority`";
    if (!$admin_mode) {
        $check_cond = " AND `Checked` = 1";
    } else {
        $check_cond = "";
    }
    // cc_in_sub has all templates in sub
    $data = array();
    if ($sort_by == 'Priority' && $GLOBALS['sub'] == $current_sub["Subdivision_ID"]) {
        foreach ((array) $cc_in_sub as $row) {
            if ($admin_mode || $row["Checked"] == 1) {
                $data[] = $row;
            }
        }
    }
    if (empty($data)) {
        $data = $db->get_results("SELECT `Sub_Class_ID`, `Sub_Class_Name`, `EnglishName`\n               FROM `Sub_Class`\n              WHERE `Subdivision_ID` = '" . $current_sub["Subdivision_ID"] . "'" . $check_cond . " ORDER BY " . $sort_by, ARRAY_A);
    }
    $data_count = sizeof($data);
    if (!$data_count || $data_count < 2) {
        return null;
    }
    $result = $browse_template['prefix'];
    $array_result = array();
    $routing_module_enabled = nc_module_check_by_keyword('routing');
    $current_page_url = urldecode(strtok($REQUEST_URI, '?'));
    for ($i = 0; $i < $data_count; $i++) {
        $nav_name = $data[$i]["Sub_Class_Name"];
        if ($admin_mode) {
            $nav_url = $admin_url_prefix . "?catalogue=" . $current_sub["Catalogue_ID"] . "&amp;sub=" . $current_sub["Subdivision_ID"] . "&amp;cc=" . $data[$i]["Sub_Class_ID"];
        } else {
            if ($routing_module_enabled) {
                $nav_url = nc_routing::get_infoblock_path($data[$i]["Sub_Class_ID"]);
            } else {
                $nav_url = $SUB_FOLDER . $current_sub["Hidden_URL"] . $data[$i]["EnglishName"] . ".html";
            }
        }
        if ($data[$i]["Sub_Class_ID"] == $current_cc["Sub_Class_ID"] && ($cc_keyword || !$use_multi_sub_class)) {
            if ($browse_template['active_link'] && ($nav_url == $REQUEST_URI || $nav_url == $current_page_url || $SUB_FOLDER . $current_sub['Hidden_URL'] . $current_cc['EnglishName'] . ".html" == $current_page_url)) {
                $current_template = $browse_template['active_link'];
            } else {
                $current_template = $browse_template['active'];
            }
            $array_result[$i] = $current_template;
        } else {
            $array_result[$i] = $browse_template['unactive'];
        }
        $array_result[$i] = str_replace("%NAME", $nav_name, $array_result[$i]);
        $array_result[$i] = str_replace("%URL", $nav_url, $array_result[$i]);
    }
    $result .= join($browse_template['divider'], $array_result);
    $result .= $browse_template['suffix'];
    // cache section
    if (nc_module_check_by_keyword("cache") && $current_cc['Cache_Access_ID'] == 1 && is_object($nc_cache_browse) && $browse_template['nocache'] != true) {
        try {
            $bytes = $nc_cache_browse->add($current_cc, $browse_template, $REQUEST_URI, $result);
            // debug info
            if ($bytes) {
                $cache_debug_info = "Written, catalogue[" . $current_cc['Catalogue_ID'] . "], sub[" . $current_cc['Subdivision_ID'] . "], cc[" . $current_cc['Sub_Class_ID'] . "], Access_ID[" . $current_cc['Cache_Access_ID'] . "], Lifetime[" . $current_cc['Cache_Lifetime'] . "], bytes[" . $bytes . "]";
                $nc_cache_browse->debugMessage($cache_debug_info, __FILE__, __LINE__, "ok");
            }
        } catch (Exception $e) {
            // for debug
            $nc_cache_browse->errorMessage($e);
        }
    }
    return $result;
}
Esempio n. 4
0
/**
 * Возвращает путь к инфоблоку с указанным идентификатором.
 *
 * @param int $infoblock_id Идентификатор инфоблока
 * @param string $action Действие: index|add|search|subscribe
 * @param string $format Формат ответа: html|rss|xml
 * @param string|null $date Дата, которую следует добавить к пути (формат даты: YYYY, YYYY-mm, YYYY-mm-dd)
 * @param array $variables
 * @return string|nc_routing_path|false
 */
function nc_infoblock_path($infoblock_id, $action = 'index', $format = 'html', $date = null, array $variables = null)
{
    if (nc_module_check_by_keyword('routing')) {
        return nc_routing::get_infoblock_path($infoblock_id, $action, $format, $date, $variables);
    } else {
        try {
            $nc_core = nc_core::get_object();
            $infoblock_data = $nc_core->sub_class->get_by_id($infoblock_id);
            if (!$action) {
                $action = $infoblock_data['DefaultAction'];
            }
            $folder_path = $nc_core->SUB_FOLDER . $infoblock_data['Hidden_URL'];
            if ($date && !$nc_core->get_component($infoblock_data['Class_ID'])->get_date_field()) {
                // у указанного компонента нет поля типа event!
                $date = null;
            }
            return $folder_path . ($date ? str_replace("-", "/", $date) . "/" : "") . ($action != 'index' ? $action . "_" : "") . $infoblock_data['EnglishName'] . "." . $format . nc_array_to_url_query($variables);
        } catch (Exception $e) {
            return false;
        }
    }
}
Esempio n. 5
0
function nc_subclass_show_export($type, $sub_id, $cc_id, $show_name = 0, $from_sub = 0)
{
    $nc_core = nc_Core::get_object();
    $db = $nc_core->db;
    $sub_id = +$sub_id;
    $cc_id = +$cc_id;
    if (!in_array($type, array('rss', 'xml'))) {
        return;
    }
    $Array = $db->get_row("SELECT `Allow" . strtoupper($type) . "`, `Sub_Class_Name`,`Class_ID`, `EnglishName` FROM `Sub_Class` WHERE `Sub_Class_ID` = '" . $cc_id . "' ", ARRAY_A);
    $class_id = $Array['Class_ID'];
    $name = $show_name ? "<b>" . $Array['Sub_Class_Name'] . "</b> " : "";
    $export_class_id = $db->get_var("SELECT `Class_ID` FROM `Class` WHERE `Type` = '" . $type . "' AND `ClassTemplate` = '" . $class_id . "' ");
    $File_Mode = nc_get_file_mode('Class', $class_id);
    $html = "<div>";
    if (!$export_class_id) {
        $html .= "<font>" . sprintf(constant("CONTROL_CLASS_COMPONENT_TEMPLATE_FOR_" . strtoupper($type) . "_DOESNT_EXIST"), $name) . "</font>";
        $html .= "<br/>";
        $html .= "<a  onClick='parent.nc_form(this.href); location.reload(); return false;' href='" . $nc_core->ADMIN_PATH . "class/index.php?fs={$File_Mode}&" . $nc_core->token->get_url() . "&amp;from_sub=" . $sub_id . ($from_sub ? "" : "&amp;from_cc=" . $cc_id) . "&amp;Type=" . $type . "&amp;base=auto&amp;phase=1411&amp;ClassID=" . $class_id . "'>" . constant("CONTROL_CLASS_COMPONENT_TEMPLATE_CREATE_FOR_" . strtoupper($type)) . "</a>";
    } else {
        $host = $nc_core->catalogue->get_by_id($nc_core->sub_class->get_by_id($cc_id, 'Catalogue_ID'), 'Domain');
        if (nc_module_check_by_keyword('routing')) {
            $link = "http://{$host}" . nc_routing::get_infoblock_path($cc_id, 'index', $type);
        } else {
            $link = $nc_core->SUB_FOLDER . $db->get_var("SELECT `Hidden_URL` FROM `Subdivision` WHERE `Subdivision_ID` = '" . $sub_id . "' ");
            $link = 'http://' . $host . $link . $Array['EnglishName'] . "." . $type;
        }
        $html .= "<input type='checkbox' id='Allow" . strtoupper($type) . "" . $cc_id . "' name='Allow" . strtoupper($type) . "" . $cc_id . "' value='1' " . ($Array["Allow" . strtoupper($type) . ""] ? " checked" : "") . " /><label for='Allow" . strtoupper($type) . "" . $cc_id . "'>" . constant("CONTROL_CLASS_COMPONENT_TEMPLATE_TURN_ON_" . strtoupper($type)) . " " . $name . "</label>";
        $html .= "  ( ";
        if ($Array["Allow" . strtoupper($type) . ""]) {
            $html .= "<a target='_blank' href='" . $link . "'>" . CONTROL_CLASS_COMPONENT_TEMPLATE_VIEW . "</a>, ";
        }
        $html .= " <a  onClick='parent.nc_form(this.href); return false; ' href='" . $nc_core->ADMIN_PATH . "class/index.php?fs=" . $File_Mode . "&phase=4&amp;ClassID=" . $export_class_id . "'>" . CONTROL_CLASS_COMPONENT_TEMPLATE_EDIT . "</a> )";
    }
    $html .= "</div>";
    return $html;
}