} 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"; // подписка на объект // действия с компонентом
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&REQUESTED_FROM=" . $REQUEST_URI . "&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; }
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"] . "&sub=" . $current_sub["Subdivision_ID"] . "&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; }
/** * Возвращает путь к инфоблоку с указанным идентификатором. * * @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; } } }
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() . "&from_sub=" . $sub_id . ($from_sub ? "" : "&from_cc=" . $cc_id) . "&Type=" . $type . "&base=auto&phase=1411&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&ClassID=" . $export_class_id . "'>" . CONTROL_CLASS_COMPONENT_TEMPLATE_EDIT . "</a> )"; } $html .= "</div>"; return $html; }