<?php /* $Id: function.inc.php 6206 2012-02-10 10:12:34Z denis $ */ $NETCAT_FOLDER = join(strstr(__FILE__, "/") ? "/" : "\\", array_slice(preg_split("/[\\/\\\\]+/", __FILE__), 0, -4)) . (strstr(__FILE__, "/") ? "/" : "\\"); include_once $NETCAT_FOLDER . "vars.inc.php"; global $MODULE_FOLDER; // include need classes include_once $MODULE_FOLDER . "cache/nc_cache.class.php"; include_once $MODULE_FOLDER . "cache/nc_cache_list.class.php"; include_once $MODULE_FOLDER . "cache/nc_cache_full.class.php"; include_once $MODULE_FOLDER . "cache/nc_cache_browse.class.php"; include_once $MODULE_FOLDER . "cache/nc_cache_function.class.php"; include_once $MODULE_FOLDER . "cache/nc_cache_io.class.php"; // modules classes if (nc_module_check_by_keyword("calendar", 0)) { include_once $MODULE_FOLDER . "cache/modules/nc_cache_calendar.class.php"; } // load objects for inside_admin events nc_cache_browse::getObject(); nc_cache_full::getObject(); nc_cache_list::getObject(); nc_cache_function::getObject(); if (nc_module_check_by_keyword("calendar", 0)) { nc_cache_calendar::getObject(); }
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; }