/** * @param $cc_env * @param int $nc_ctpl * @param $type * @return null */ protected function inherit($cc_env, $nc_ctpl = 0, $type) { // system superior object $nc_core = nc_Core::get_object(); if (empty($cc_env)) { global $perm; // error message if (is_object($perm) && $perm->isSupervisor()) { // backtrace info $debug_backtrace_info = debug_backtrace(); // choose error if (isset($debug_backtrace_info[2]['function']) && $debug_backtrace_info[2]['function'] == "nc_objects_list") { // error info for the supervisor trigger_error(sprintf(NETCAT_FUNCTION_OBJECTS_LIST_CC_ERROR, $debug_backtrace_info[2]['args'][1]), E_USER_WARNING); } else { // error info for the supervisor trigger_error(sprintf(NETCAT_FUNCTION_LISTCLASSVARS_ERROR_SUPERVISOR, $cc), E_USER_WARNING); } } return null; } $nc_tpl_in_cc = 0; if ($cc_env['Class_Template_ID'] && !$nc_ctpl) { $nc_tpl_in_cc = $cc_env['Class_Template_ID']; } $class_env = $nc_core->component->get_for_cc($cc_env['Sub_Class_ID'], $cc_env['Class_ID'], $nc_ctpl, $nc_tpl_in_cc, $type); foreach ((array) $class_env as $key => $val) { if (!array_key_exists($key, $cc_env) || $cc_env[$key] == "") { $cc_env[$key] = $val; } } if ($cc_env["NL2BR"] == -1) { $cc_env["NL2BR"] = $class_env["NL2BR"]; } if ($cc_env["AllowTags"] == -1) { $cc_env["AllowTags"] = $class_env["AllowTags"]; } if ($cc_env["UseCaptcha"] == -1) { $cc_env["UseCaptcha"] = $class_env["UseCaptcha"]; } if ($nc_core->modules->get_by_keyword("cache")) { if ($cc_env["CacheForUser"] == -1) { $cc_env["CacheForUser"] = $class_env["CacheForUser"]; } } if ($class_env['CustomSettingsTemplate']) { require_once $nc_core->ADMIN_FOLDER . "array_to_form.inc.php"; $a2f = new nc_a2f($class_env['CustomSettingsTemplate'], 'CustomSettings'); $a2f->set_value($cc_env['CustomSettings']); $cc_env["Sub_Class_Settings"] = $a2f->get_values_as_array(); } $cc_env['sysTbl'] = intval($class_env['System_Table_ID']); $sub_env = $nc_core->subdivision->get_by_id($cc_env["Subdivision_ID"]); $inherited_params = array('Read_Access_ID', 'Write_Access_ID', 'Edit_Access_ID', 'Checked_Access_ID', 'Delete_Access_ID', 'Subscribe_Access_ID', 'Moderation_ID'); if ($nc_core->modules->get_by_keyword("cache")) { $inherited_params[] = 'Cache_Access_ID'; $inherited_params[] = 'Cache_Lifetime'; } foreach ($inherited_params as $v) { if (!$cc_env[$v]) { $cc_env[$v] = $sub_env[$v]; } } $cc_env['Subdivision_Name'] = $sub_env['Subdivision_Name']; $cc_env['Hidden_URL'] = $sub_env['Hidden_URL']; $Domain = $nc_core->catalogue->get_by_id($cc_env['Catalogue_ID'], 'Domain'); $cc_env['Hidden_Host'] = $Domain ? $Domain : $nc_core->DOMAIN_NAME; return $cc_env; }
setcookie("QUICK_BAR_CLOSED", -1, time() + $nc_core->get_variable("ADMIN_AUTHTIME"), "/", $cookie_domain); } else { setcookie("QUICK_BAR_CLOSED", 1, time() + $nc_core->get_variable("ADMIN_AUTHTIME"), "/", $cookie_domain); } } } if ($nc_core->template->get_current("CustomSettings") && $nc_core->subdivision->get_current('Template_ID') == $template) { require_once $nc_core->ADMIN_FOLDER . "array_to_form.inc.php"; $nc_a2f = new nc_a2f($nc_core->template->get_current("CustomSettings")); $nc_a2f->set_value($nc_core->subdivision->get_current("TemplateSettings")); $template_settings = $nc_a2f->get_values_as_array(); } if ($nc_core->template->get_current("CustomSettings") && $nc_core->subdivision->get_current('Template_ID') != $template) { require_once $nc_core->ADMIN_FOLDER . "array_to_form.inc.php"; $nc_a2f = new nc_a2f($nc_core->template->get_current("CustomSettings"), array()); $template_settings = $nc_a2f->get_values_as_array(); } if ($nc_core->inside_admin) { // output interface settings (add 'em to the footer before </body>) $UI_CONFIG = new ui_config_objects($cc); $js_code = '".$UI_CONFIG->to_json()."'; if ($template_footer && nc_preg_match("/(<\\/body>)/i", $template_footer, $regs)) { $template_footer = str_replace($regs[1], $js_code . $regs[1], $template_footer); } else { $template_footer .= $js_code; } } #if ($quick_mode && nc_quickbar_permission()) { # $template_footer = nc_cut_jquery($template_footer); #} } elseif ($admin_modal) {
function ListClassVars($cc, $user_table_mode, $nc_ctpl = 0) { global $db, $perm; global $MODULE_VARS, $DOMAIN_NAME; global $cc_in_sub, $nc_core; global $current_cc; $nc_ctpl = intval($nc_ctpl); // cache section if (0 && $nc_core->modules->get_by_keyword("cache")) { try { $nc_cache_function = nc_cache_function::getObject(); $cc_data = $db->get_row("SELECT `Catalogue_ID`, `Subdivision_ID`, `Sub_Class_ID`\n FROM `Sub_Class` WHERE `Sub_Class_ID` = '" . intval($cc) . "'", ARRAY_A); // make uniqe string concat parameters for this function $data_string = $user_table_mode . "-" . serialize($MODULE_VARS['auth']) . "-" . $DOMAIN_NAME . "-" . $nc_ctpl; // check cached data $cached_data = $nc_cache_function->read($cc_data, $data_string, $MODULE_VARS['cache']['DEFAULT_LIFETIME']); if ($cached_data != -1) { // debug info $cache_debug_info = "Readed, catalogue[" . $cc_data['Catalogue_ID'] . "], sub[" . $cc_data['Subdivision_ID'] . "], cc[" . $cc_data['Sub_Class_ID'] . "], Access_ID[-], Lifetime[-], bytes[" . strlen($cached_data) . "]"; $nc_cache_function->debugMessage($cache_debug_info, __FILE__, __LINE__); // return cache if not eval flag setted $Array = unserialize($cached_data); return $Array; } } catch (Exception $e) { // for debug $nc_cache_function->errorMessage($e); } } if (!$user_table_mode) { $Array = array(); if ($cc_in_sub) { foreach ($cc_in_sub as $row) { if ($row["Sub_Class_ID"] == $cc) { $Array = $row; break; } } } if (empty($Array)) { $Array = $db->get_row("SELECT * FROM `Sub_Class` WHERE `Sub_Class_ID` = '" . intval($cc) . "'", ARRAY_A); } if ($current_cc['Sub_Class_ID'] == $cc && $nc_core->get_page_type() == 'rss') { $class_cond = "`Type` = 'rss' AND `ClassTemplate` = '" . $Array["Class_ID"] . "' "; } else { if ($nc_ctpl) { $class_cond = "`Class_ID` = '" . $nc_ctpl . "'"; } else { // use class template or not? $class_cond = "`Class_ID` = '" . ($Array["Class_Template_ID"] ? $Array["Class_Template_ID"] : $Array["Class_ID"]) . "'"; } } if ($nc_core->inside_admin) { $class_env = $db->get_row("SELECT * FROM Class WHERE `Type` = 'inside_admin' AND `ClassTemplate` = '" . $Array["Class_ID"] . "' LIMIT 1 ", ARRAY_A); } if (!$nc_core->inside_admin && $nc_core->admin_mode) { $class_env = $db->get_row("SELECT * FROM Class WHERE `Type` = 'admin_mode' AND `ClassTemplate` = '" . $Array["Class_ID"] . "' LIMIT 1 ", ARRAY_A); } } else { $user_table_id = $db->get_var("SELECT `System_Table_ID` FROM `System_Table` WHERE `System_Table_Name` = 'User'"); $class_cond = "`System_Table_ID` = '" . $user_table_id . "'"; $Array["System_Table_ID"] = $user_table_id; $Array["Subdivision_ID"] = $MODULE_VARS['auth']['USER_LIST_SUB']; $Array["EnglishName"] = $MODULE_VARS['auth']['USER_KEYWORD']; } //выйдем из функции, если $cc указан неверно if (!$Array) { // error message if (is_object($perm) && $perm->isSupervisor()) { // backtrace info $debug_backtrace_info = debug_backtrace(); // choose error if (isset($debug_backtrace_info[1]['function']) && $debug_backtrace_info[1]['function'] == "nc_objects_list") { // error info for the supervisor trigger_error(sprintf(NETCAT_FUNCTION_OBJECTS_LIST_CC_ERROR, $cc), E_USER_WARNING); } else { // error info for the supervisor trigger_error(sprintf(NETCAT_FUNCTION_LISTCLASSVARS_ERROR_SUPERVISOR, $cc), E_USER_WARNING); } } return NULL; } // inherit from Class if (!$class_env) { $class_env = $db->get_row("SELECT * FROM `Class` WHERE " . $class_cond, ARRAY_A); } if ($class_env['CustomSettingsTemplate']) { require_once $GLOBALS['ADMIN_FOLDER'] . "array_to_form.inc.php"; $a2f = new nc_a2f($class_env['CustomSettingsTemplate'], $Array['CustomSettings'], 'CustomSettings'); $Array["Sub_Class_Settings"] = $a2f->get_values_as_array(); } foreach ($class_env as $key => $val) { if ($Array[$key] == "") { $Array[$key] = $val; } } if ($Array["NL2BR"] == -1) { $Array["NL2BR"] = $class_env["NL2BR"]; } if ($Array["AllowTags"] == -1) { $Array["AllowTags"] = $class_env["AllowTags"]; } if ($Array["UseCaptcha"] == -1) { $Array["UseCaptcha"] = $class_env["UseCaptcha"]; } if ($nc_core->modules->get_by_keyword("cache")) { if ($Array["CacheForUser"] == -1) { $Array["CacheForUser"] = $class_env["CacheForUser"]; } } if ($Array["Subdivision_ID"]) { $parent_sub = $Array["Subdivision_ID"]; $Domain = $db->get_var("SELECT Catalogue.Domain FROM `Catalogue`\n LEFT JOIN `Subdivision` ON Subdivision.Catalogue_ID = Catalogue.Catalogue_ID\n WHERE Subdivision.Subdivision_ID = '" . $parent_sub . "'"); $HiddenHost = $Domain ? strchr($Domain, ".") ? $Domain : $Domain . "." . $DOMAIN_NAME : $DOMAIN_NAME; while ($parent_sub) { $ParentArray = GetSubdivisionByID($parent_sub); if ($Array["Subdivision_ID"] == $parent_sub) { $Array["Subdivision_Name"] = $ParentArray["Subdivision_Name"]; $Array["Hidden_URL"] = $ParentArray["Hidden_URL"]; $Array["Hidden_Host"] = $HiddenHost; } if (!$Array["Read_Access_ID"]) { $Array["Read_Access_ID"] = $ParentArray["Read_Access_ID"]; } if (!$Array["Write_Access_ID"]) { $Array["Write_Access_ID"] = $ParentArray["Write_Access_ID"]; } if (!$Array["Edit_Access_ID"]) { $Array["Edit_Access_ID"] = $ParentArray["Edit_Access_ID"]; } if (!$Array["Delete_Access_ID"]) { $Array["Delete_Access_ID"] = $ParentArray["Delete_Access_ID"]; } if (!$Array["Checked_Access_ID"]) { $Array["Checked_Access_ID"] = $ParentArray["Checked_Access_ID"]; } if (!$Array["Subscribe_Access_ID"]) { $Array["Subscribe_Access_ID"] = $ParentArray["Subscribe_Access_ID"]; } if ($nc_core->modules->get_by_keyword("cache")) { if (!$Array["Cache_Access_ID"]) { $Array["Cache_Access_ID"] = $ParentArray["Cache_Access_ID"]; } if (!$Array["Cache_Lifetime"]) { $Array["Cache_Lifetime"] = $ParentArray["Cache_Lifetime"]; } } if (!$Array["Moderation_ID"]) { $Array["Moderation_ID"] = $ParentArray["Moderation_ID"]; } $parent_sub = $ParentArray["Parent_Sub_ID"]; } if (!$Array["Catalogue_ID"]) { $Array["Catalogue_ID"] = $ParentArray["Catalogue_ID"]; } } if ($Array["Catalogue_ID"] == $GLOBALS["catalogue"]) { $ParentArray = $GLOBALS["current_catalogue"]; } else { $ParentArray = $db->get_row("SELECT * FROM `Catalogue` WHERE `Catalogue_ID` = '" . $Array["Catalogue_ID"] . "'", ARRAY_A); } if (!$Array["Read_Access_ID"]) { $Array["Read_Access_ID"] = $ParentArray["Read_Access_ID"]; } if (!$Array["Write_Access_ID"]) { $Array["Write_Access_ID"] = $ParentArray["Write_Access_ID"]; } if (!$Array["Edit_Access_ID"]) { $Array["Edit_Access_ID"] = $ParentArray["Edit_Access_ID"]; } if (!$Array["Subscribe_Access_ID"]) { $Array["Subscribe_Access_ID"] = $ParentArray["Subscribe_Access_ID"]; } if (!$Array["Delete_Access_ID"]) { $Array["Delete_Access_ID"] = $ParentArray["Delete_Access_ID"]; } if (!$Array["Checked_Access_ID"]) { $Array["Checked_Access_ID"] = $ParentArray["Checked_Access_ID"]; } if ($nc_core->modules->get_by_keyword("cache")) { if (!$Array["Cache_Access_ID"]) { $Array["Cache_Access_ID"] = $ParentArray["Cache_Access_ID"]; } if (!$Array["Cache_Lifetime"]) { $Array["Cache_Lifetime"] = $ParentArray["Cache_Lifetime"]; } } if (!$Array["Moderation_ID"]) { $Array["Moderation_ID"] = $ParentArray["Moderation_ID"]; } // cache section if ($nc_core->modules->get_by_keyword("cache") && $Array['Cache_Access_ID'] == 1 && is_object($nc_cache_function)) { try { $bytes = $nc_cache_function->add($Array, $data_string, serialize($Array)); // debug info if ($bytes) { $cache_debug_info = "Writed, catalogue[" . $Array['Catalogue_ID'] . "], sub[" . $Array['Subdivision_ID'] . "], cc[" . $Array['Sub_Class_ID'] . "], Access_ID[-], Lifetime[-], bytes[" . $bytes . "]"; $nc_cache_function->debugMessage($cache_debug_info, __FILE__, __LINE__, "ok"); } } catch (Exception $e) { // for debug $nc_cache_function->errorMessage($e); } } $Array['sysTbl'] += 0; return $Array; }