$root = "../"; $level = 1; while ($level < 10 && !file_exists($root . '/framework/class.secure.php')) { $root .= "../"; $level += 1; } if (file_exists($root . '/framework/class.secure.php')) { include $root . '/framework/class.secure.php'; } else { trigger_error(sprintf("[ <b>%s</b> ] Can't include class.secure.php!", $_SERVER['SCRIPT_NAME']), E_USER_ERROR); } } // // include snippets // $snippets = CAT_Helper_Addons::get_addons(0, 'module', 'snippet'); foreach ($snippets as $s) { $file = CAT_Helper_Directory::sanitizePath(CAT_PATH . '/modules/' . $s['VALUE'] . '/include.php'); if (file_exists($file)) { include $file; } } /* 'one liners' */ function get_page_link($page_id) { return CAT_Helper_Page::properties($page_id, 'link'); } function language_menu() { global $page_id; return CAT_Page::getInstance($page_id)->getLanguageMenu();
} if (file_exists($root . '/framework/class.secure.php')) { include $root . '/framework/class.secure.php'; } else { trigger_error(sprintf("[ <b>%s</b> ] Can't include class.secure.php!", $_SERVER['SCRIPT_NAME']), E_USER_ERROR); } } $backend = CAT_Backend::getInstance('admintools'); $user = CAT_Users::getInstance(); $lang = CAT_Helper_I18n::getInstance(); // this will redirect to the login page if the permission is not set $user->checkPermission('admintools', 'admintools', false); global $parser; // get tools // ----- TODO: PERMISSIONS ----- $tools = CAT_Helper_Addons::get_addons(0, 'module', 'tool'); if (count($tools)) { foreach ($tools as $tool) { // check if the user is allowed to see this item if (!$user->get_permission($tool['directory'], $tool['type'])) { continue; } // check if a module description exists for the displayed backend language $module_description = false; $icon = false; $language_file = CAT_PATH . '/modules/' . $tool['VALUE'] . '/languages/' . $user->lang()->getLang() . '.php'; if (true === file_exists($language_file)) { require $language_file; } // Check whether icon is available for the admintool if (file_exists(CAT_PATH . '/modules/' . $tool['VALUE'] . '/icon.png')) {
$client = new Zend\Http\Client($current['source'], array('timeout' => $current['timeout'], 'adapter' => 'Zend\\Http\\Client\\Adapter\\Proxy', 'proxy_host' => $current['proxy_host'], 'proxy_port' => $current['proxy_port'])); $client->setHeaders(array('Pragma' => 'no-cache', 'Cache-Control' => 'no-cache')); try { $response = $client->send(); if ($response->getStatusCode() != '200') { $error = "Unable to load source " . "(using Proxy: " . (isset($current['proxy_host']) && $current['proxy_host'] != '' ? 'yes' : 'no') . ")<br />" . "Status: " . $response->getStatus() . " - " . $response->getMessage() . ($debug ? "<br />" . var_dump($client->getLastRequest()) : NULL) . "<br />"; $version = 'unknown'; } else { $version = $response->getBody(); } } catch (Exception $e) { $error = "Unable to load source " . "(using Proxy: " . (isset($current['proxy_host']) && $current['proxy_host'] != '' ? 'yes' : 'no') . ")<br />" . $e->getMessage() . "<br />"; $version = 'unknown'; } if ($version && $version != 'unknown') { if (CAT_Helper_Addons::getInstance()->versionCompare($version, CAT_VERSION, '>')) { $newer = true; } } $fh = @fopen(CAT_Helper_Directory::sanitizePath(dirname(__FILE__) . '/../data/.last'), 'w'); if (is_resource($fh)) { fputs($fh, time() . '|' . $version); fclose($fh); } } else { $version = isset($last_version) && $last_version != '' ? $last_version : $version; } global $parser; $parser->setPath(dirname(__FILE__) . '/../templates/default'); $parser->output('widget.tpl', array('error' => $error, 'version' => $version, 'newer' => $newer, 'last' => CAT_Helper_DateTime::getInstance()->getDate($last) . ' ' . CAT_Helper_DateTime::getInstance()->getTime($last), 'CAT_VERSION' => CAT_VERSION, 'uri' => $_SERVER['SCRIPT_NAME'], 'missing_mailer_libs' => count(CAT_Helper_Addons::getLibraries('mail')), 'missing_wysiwyg' => count(CAT_Helper_Addons::get_addons(NULL, 'module', 'wysiwyg'))));
/** * * @access public * @return **/ public static function get_init_pages() { // frontend pages $pages = CAT_Helper_Page::getPages(); $frontend_pages = array(); foreach ($pages as $page) { $frontend_pages[$page['menu_title']] = 'pages/modify.php?page_id=' . $page['page_id']; } // admin tools $tools = CAT_Helper_Addons::get_addons(NULL, 'module', 'tool'); $admin_tools = array(); foreach ($tools as $tool) { $admin_tools[$tool['name']] = 'admintools/tool.php?tool=' . $tool['directory']; } // backend pages $backend_pages = CAT_Backend::getPages(); return array('backend_pages' => $backend_pages, 'frontend_pages' => $frontend_pages, 'admin_tools' => $admin_tools); }
/** * **/ function getLanguages() { $langs = CAT_Helper_Addons::get_addons(0, 'language'); $data = array(); foreach ($langs as $addon) { $l_codes[$addon['NAME']] = $addon['VALUE']; $l_names[$addon['NAME']] = entities_to_7bit($addon['NAME']); // sorting-problem workaround } asort($l_names); $counter = 0; foreach ($l_names as $l_name => $v) { $data[$counter]['CODE'] = $l_codes[$l_name]; $data[$counter]['NAME'] = $l_name; $data[$counter]['SELECTED'] = DEFAULT_LANGUAGE == $l_codes[$l_name] ? true : false; $counter++; } return $data; }
$root = "../"; $level = 1; while ($level < 10 && !file_exists($root . '/framework/class.secure.php')) { $root .= "../"; $level += 1; } if (file_exists($root . '/framework/class.secure.php')) { include $root . '/framework/class.secure.php'; } else { trigger_error(sprintf("[ <b>%s</b> ] Can't include class.secure.php!", $_SERVER['SCRIPT_NAME']), E_USER_ERROR); } } $tpl_data = array(); $backend = CAT_Backend::getInstance('Addons', 'addons'); $users = CAT_Users::getInstance(); $addons = CAT_Helper_Addons::get_addons(); $counter = 0; $seen_dirs = array(); $tpl_data['addons'] = array(); $tpl_data['not_installed_addons'] = array('modules' => array(), 'templates' => array(), 'languages' => array()); $tpl_data['groups'] = $users->get_groups('', '', false); $tpl_data['username'] = $users->get_display_name(); // for new addons global $parser; foreach ($addons as $addon) { // check if the user is allowed to see this item if (!$users->get_permission($addon['directory'], $addon['type'])) { $seen_dirs[] = $addon['directory']; continue; } // ==================================================
$file->process(CAT_Helper_Directory::sanitizePath(CAT_PATH . '/modules/blackcatFilter/filter/')); if (!$file->processed) { $upload_error = $file->error; } else { $data['name'] = $file->file_dst_name_body; } // filter must have the same name as the file // the file will be renamed by the upload helper if it already // exists, so we use the destination name here } } if (count($errors) || $upload_error) { $showit = true; } else { $backend->db()->query("INSERT INTO `:prefix:mod_filter` VALUES ( :name, :module, :desc, :code, :active )", array('name' => $data['name'], 'module' => $data['module_name'], 'desc' => $data['description'], 'code' => $data['code'], 'active' => $data['active'])); if ($backend->db()->isError()) { $errors[] = $backend->db()->getError(); } } } // get available filters $filters = array(); $result = $backend->db()->query("SELECT * FROM `:prefix:mod_filter`"); if ($result->numRows()) { while (false !== ($row = $result->fetch())) { $filters[] = $row; } } $parser->setPath(dirname(__FILE__) . '/templates/default'); $parser->output('tool.tpl', array('filters' => $filters, 'showit' => $showit, 'missing' => $errors, 'modules' => CAT_Helper_Addons::get_addons('blackcatFilter', 'module'), 'upload_error' => $upload_error, 'errors' => implode('<br />', $errors) . '<br />' . $upload_error));
} } else { $_SESSION['USE_DEFAULT_TIME_FORMAT'] = true; unset($_SESSION['CAT_TIME_FORMAT']); } if ($_SESSION['CAT_DATE_FORMAT'] != '') { if (isset($_SESSION['USE_DEFAULT_DATE_FORMAT'])) { unset($_SESSION['USE_DEFAULT_DATE_FORMAT']); } } else { $_SESSION['USE_DEFAULT_DATE_FORMAT'] = true; unset($_SESSION['CAT_DATE_FORMAT']); } } if (count($errors) > 0) { $message = implode("<br />", $errors); } else { $message = $user->lang()->translate('Details saved successfully') . "!<br /><br />"; $show_form = false; } } unset($submit_ok); // get available languages, mark currently used $languages = CAT_Helper_Addons::get_addons(isset($language) && $language !== LANGUAGE ? $language : LANGUAGE, 'language'); global $parser; $parser->setPath(CAT_PATH . '/templates/' . DEFAULT_TEMPLATE . '/templates/' . CAT_Registry::get('DEFAULT_THEME_VARIANT')); // if there's a template for this in the current frontend template $parser->setFallbackPath(dirname(__FILE__) . '/templates/default'); // fallback to default dir $parser->output('account_preferences_form', array('show_form' => $show_form, 'languages' => $languages, 'timezones' => CAT_Helper_DateTime::getTimezones(), 'current_tz' => CAT_Helper_DateTime::getTimezone(), 'date_formats' => CAT_Helper_DateTime::getDateFormats(), 'current_df' => CAT_Helper_DateTime::getDefaultDateFormatShort(), 'time_formats' => CAT_Helper_DateTime::getTimeFormats(), 'current_tf' => CAT_Helper_DateTime::getDefaultTimeFormat(), 'PREFERENCES_URL' => PREFERENCES_URL, 'USER_ID' => $user->get_user_id(), 'DISPLAY_NAME' => $user->get_display_name(), 'GET_EMAIL' => $user->get_email(), 'RESULT_MESSAGE' => $message, 'AUTH_MIN_LOGIN_LENGTH' => AUTH_MIN_LOGIN_LENGTH)); unset($_SESSION['result_message']);
$tpl_data['PAGES_LIST'] = getPagesList('maintenance_page', CAT_Registry::get('MAINTENANCE_PAGE')); $tpl_data['ERR_PAGES_LIST'] = getPagesList('err_page_404', CAT_Registry::get('ERR_PAGE_404')); break; case 'users': $tpl_data['groups'] = $users->get_groups(CAT_Registry::get('FRONTEND_SIGNUP'), '', false); break; case 'datetime': $tpl_data['languages'] = getLanguages(); $tpl_data['timezones'] = getTimezones(); $tpl_data['charsets'] = getCharsets(); $tpl_data['dateformats'] = getDateformats(); $tpl_data['timeformats'] = getTimeformats(); break; case 'searchblock': $tpl_data['search'] = getSearchSettings(); $tpl_data['search_templates'] = isset($tpl_data['search']['template']) ? CAT_Helper_Addons::get_addons($tpl_data['search']['template'], 'template', 'template') : array(); $s_selected = isset($tpl_data['search']['cfg_search_use_page_id']) ? $tpl_data['search']['cfg_search_use_page_id'] : ''; $tpl_data['PAGES_LIST'] = getPagesList('search_cfg_search_use_page_id', $s_selected, true); break; case 'server': $tpl_data['WORLD_WRITEABLE_SELECTED'] = CAT_Registry::get('STRING_FILE_MODE') == '0666' && CAT_Registry::get('STRING_DIR_MODE') == '0777' ? true : false; break; case 'mail': $tpl_data['CATMAILER_LIBS'] = getMailerLibs(); if (!isset($tpl_data['values']['catmailer_smtp_timeout'])) { $tpl_data['values']['catmailer_smtp_timeout'] = 30; } break; case 'security': $admin =& $backend; require_once CAT_PATH . '/framework/CAT/Helper/Captcha/WB/captcha.php';
if (is_array($val->sanitizePost('module_permissions'))) { foreach ($val->sanitizePost('module_permissions') as $selected_name) { // Check, whether the activated module is also 1 if (in_array($selected_name, $modlist)) { $modules[] = $selected_name; } } } $modules = sizeof($modules) > 0 ? $modules : $modlist; $module_permissions = implode(',', $modules); // ============================ // ! Get template permissions // ============================ $templates = array(); $template_permissions = ''; $installed_mods = CAT_Helper_Addons::get_addons(NULL, 'template'); $modlist = array(); foreach ($installed_mods as $mod) { array_push($modlist, $mod['directory']); } if (is_array($val->sanitizePost('template_permissions'))) { foreach ($val->sanitizePost('template_permissions') as $selected_name) { if (in_array($selected_name, $modlist)) { $templates[] = $selected_name; } } } if (count($templates)) { $template_permissions = implode(',', $templates); } else { $template_permissions = '';