function cache() { admin::components('shiftable'); db::table('pages'); db::where('site_id', ADMIN_SITE_ID); db::where('page_pub', '2', '!='); db::order('page_map'); $res = db::select(); while ($row = mysql_fetch_assoc($res)) { if ($row['page_cache'] == '1') { $row['page_cache'] = ' checked="checked"'; } else { $row['page_cache'] = ''; } if ($row['page_folder'] == '/') { $page_path = 'http://' . ADMIN_SITE; } else { $page_path = 'http://' . ADMIN_SITE . '' . $row['page_folder']; } $row['page_line'] = $row['page_title']; if ($row['page_dynamic'] == '0') { $row['page_line'] = $row['page_line'] . ' <a href="' . $page_path . '" style="top: 0;" class="ico ico16 ico_goto" title="Посмотреть на сайте"> </a>'; } $page_tree[$row['page_parent']][$row['page_id']] = $row; } s::tree('page_tree', $page_tree); }
function setup() { db::table('pages_content'); db::where('page_id', PAGE_ID); db::where('content_pub', '1'); db::order('content_id'); $res = db::select('content'); $i = 0; if ($res) { while ($row = mysql_fetch_assoc($res)) { $i++; s::set('page_content' . $i, $row['content']); } } db::table('pages_files'); db::where('page_id', PAGE_ID); $r = db::select(); if (db::rows() != 0) { s::section('page_files_show'); } while ($a = mysql_fetch_assoc($r)) { $a['file_icon'] = files::getFileIco($a['file_type']); $a['file_size'] = files::parseSizeSmart($a['file_size']); s::roll('page_files', $a); } }
function getMenus($site_id) { db::table('menus'); db::where('site_id', $site_id); db::where('menu_pub', '1'); db::order('menu_title'); $res = db::select(); while ($row = mysql_fetch_assoc($res)) { s::roll('menus', $row); } }
function getBlocks($site_id = 1) { db::table('blocks'); db::where('site_id', $site_id); db::where('block_pub', '1'); db::order('block_name'); $res = db::select(); while ($row = mysql_fetch_assoc($res)) { s::roll('blocks', $row); } }
function view() { db::table('admin_log_actions'); db::join('admin_users', 'admin_log_actions', 'user_id'); db::order('log_date', 'DESC'); db::limit(30); $res = db::select(); while ($row = mysql_fetch_assoc($res)) { $row['log_date'] = dt::format('%d.%m.%Y %H:%M', $row['log_date']); s::roll('logs_list', $row); } }
function view() { db::table('news'); db::order('news_date', 'DESC'); $res = db::select(); while ($row = mysql_fetch_assoc($res)) { $row = filter::get('news_pub', array('unpub', 'pub'), $row); $row['news_title'] = strip_tags($row['news_title']); $row['news_date'] = dt::date2print('%d %F %Y, %H:%i', $row['news_date']); s::roll('news', $row); } }
function show() { $event = web::getEvent(); if ($event === false) { $year = date('Y'); } else { $year = $event; } s::set('info_date_select', htmlspecialchars($year)); $sql = "SELECT `section_year` as date FROM `info_sections` WHERE `section_view`='0' GROUP BY `date` ORDER BY `date` DESC"; $res = db::query($sql); $rows = mysql_num_rows($res); if ($rows > 1) { s::add('info_date_selector', '<ul class="years">'); while ($row = mysql_fetch_assoc($res)) { if ($row['date'] == $year) { $row['date'] = '<li><span>' . $row['date'] . '</span></li>'; } else { $row['date'] = '<li><a href="' . web::get('page_folder') . '' . $row['date'] . '/">' . $row['date'] . '</a></li>'; } s::add('info_date_selector', $row['date']); } s::add('info_date_selector', '</ul>'); } $files = array(); db::table('info_files'); $r = db::select(); while ($a = mysql_fetch_assoc($r)) { $files[$a['section_id']][] = $a; } db::table('info_sections'); db::order('section_order', 'DESC'); db::where('section_year', $year); $r = db::select(); if (db::rows() == 0) { web::error404(); } while ($a = mysql_fetch_assoc($r)) { if ($a['section_view'] == '0') { s::roll('sections', $a); } else { s::roll('sections_view', $a); } if (isset($files[$a['section_id']])) { foreach ($files[$a['section_id']] as $v) { $v['file_icon'] = files::getFileIco($v['file_type']); $v['file_size'] = files::parseSizeSmart($v['file_size']); s::roll('items' . $a['section_id'], $v); } } } }
function getTmpls($site_id = 1) { db::table('templates'); db::where('site_id', $site_id); db::where('tmpl_pub', '1'); db::order('tmpl_name'); $res = db::select(); if (db::rows() == 0) { s::section('no_data'); } else { s::section('yes_data'); } while ($row = mysql_fetch_assoc($res)) { s::roll('tmpls', $row); } }
function show() { $list = params::get('list'); $event = web::getEvent(); if ($event === false) { $year = date('Y'); } else { $year = $event; } s::set('news_date_select', htmlspecialchars($year)); $sql = "SELECT DATE_FORMAT(`news_date`, '%Y') as date FROM `news` GROUP BY `date` ORDER BY `date` DESC"; $res = db::query($sql); $rows = mysql_num_rows($res); if ($rows > 1) { s::add('news_date_selector', '<ul class="years">'); while ($row = mysql_fetch_assoc($res)) { if ($row['date'] == $year) { $row['date'] = '<li><span>' . $row['date'] . '</span></li>'; } else { $row['date'] = '<li><a href="' . web::get('page_folder') . '' . $row['date'] . '/">' . $row['date'] . '</a></li>'; } s::add('news_date_selector', $row['date']); } s::add('news_date_selector', '</ul>'); } db::table('news'); db::where('news_pub', '1'); db::where('news_date', $year . '-01-01 00:00:00', '>='); db::where('news_date', $year . '-12-31 23:59:59', '<='); db::order('news_date', 'DESC'); if ($list !== false) { db::limit($list); } $res = db::select(); if (db::rows() == 0) { web::error404(); } while ($row = mysql_fetch_assoc($res)) { $row['news_date'] = dt::date2print('%d %F %Y', $row['news_date']); s::roll('news', $row); } }
function dump() { $tables = implode(', ', self::$tables); $conf = implode(', ', self::$conf); db::table('admin_log_trash'); db::order('log_id', 'DESC'); db::limit(31, 100); $res = db::select('log_id'); if (db::rows() > 0) { while ($row = mysql_fetch_assoc($res)) { self::delete($row['log_id']); } } if (self::$files) { $log_tmpl = 1; } else { $log_tmpl = 0; } db::table('admin_log_trash'); db::insert('', 'NOW()', '', $tables, $conf, '', $log_tmpl, ADMIN_USER_ID); $log_id = mysql_insert_id(); dump::tables(self::$tables); dump::backup(SYS_ROOT . 'var/trash/' . $log_id . '_base.zip'); if (self::$conf) { foreach (self::$conf as $v) { zipfile::add(SYS_ROOT . 'conf/web/' . $v . '.ini'); } zipfile::create(SYS_ROOT . 'var/trash/' . $log_id . '_conf.zip'); } if (self::$files) { foreach (self::$files as $v) { zipfile::add($v); } zipfile::create(SYS_ROOT . 'var/trash/' . $log_id . '_files.zip'); } }
function view() { db::table('admin_log_trash'); db::limit(30); db::order('log_date', 'DESC'); $res = db::select(); while ($row = mysql_fetch_assoc($res)) { if ($row['log_restored'] != '0000-00-00 00:00:00') { $row['log_restored'] = dt::date2print('%H:%i:%s<br />%d %F %y', $row['log_restored']); } else { $row['log_restored'] = ''; } $row['log_date'] = dt::date2print('%H:%i:%s<br />%d %F %y', $row['log_date']); $tables = ''; $array = explode(",", $row['log_tables']); foreach ($array as $v) { if (!empty($v)) { $tables .= T_ . $v . '<br />'; } } $row['log_tables'] = $tables; s::roll('basket', $row); } }
function livesearch() { $search = params::get('search'); if (empty($search)) { self::view(); return true; } db::table('blocks'); db::where('site_id', ADMIN_SITE_ID); db::whereGroup(array('block_name', $search, 'LIKE'), 'OR', array('block_title', $search, 'LIKE')); db::order('block_name'); $res = db::select(); while ($row = mysql_fetch_assoc($res)) { if ($row['block_pub'] == '1') { $row['block_pub'] = 'pub'; } else { $row['block_pub'] = 'unpub'; } if (empty($row['block_title'])) { $row['block_title'] = $row['block_name']; } s::roll('blocks', $row); } }
function showPoints($menu_id = false) { if (!$menu_id) { $menu_id = params::get('menu_id'); } $menu_tree = array(); db::table('menus_points'); db::where('menu_id', $menu_id); db::order('point_order'); $res = db::select(); if (db::rows() == 0) { buffer::setTmpl(); return false; } while ($row = mysql_fetch_assoc($res)) { if ($row['point_pub'] == '1') { $row['point_pub'] = '_pub'; } else { $row['point_pub'] = '_unpub'; } $menu_tree[$row['point_parent']][$row['point_id']] = $row; } s::tree('menu_tree', $menu_tree); }
function loadGroupSetups() { $array = ini::parse(SYS_ROOT . 'conf/global/apps.ini'); $check = array(); foreach ($array as $k => $v) { if ($v) { $check['apps'][$k] = 1; s::roll('apps', array('app' => $k, 'app_title' => $v['title'])); } } $rules = ini::parse(SYS_ROOT . 'conf/admin/rules.ini'); foreach ($rules as $k => $v) { s::roll('rules', array('rule' => $k, 'rule_name' => $v)); } db::table('admin_sites'); db::order('site_domain'); $res = db::select(); while ($row = mysql_fetch_assoc($res)) { $check['sites'][$row['site_id']] = 1; s::roll('sites', $row); } return $check; }
public function loadPageData() { $arr_t = self::$page_tree; unset($arr_t[0], $arr_t[1]); $arr = array(); $arr[0] = self::$page_tree[0]; $arr[1] = self::$page_tree[1]; $i = 2; foreach ($arr_t as $k => $v) { $v = string::clearBoth($v); $t = explode('/', $v); $count = count($t); $tt = array(); $g = array(); // start matrix for ($z = 1; $z <= $count; $z++) { $g = $t; $g[$z] = str_replace($t[$z], '[dynamic]', $t[$z]); $tt = implode('/', $g); $arr[$i] = '/' . string::clearBoth($tt) . '/'; $i++; } $matrix = array(); $x = 1; $y = 2; for ($z = 0; $z < $count * 2; $z++) { $m = $x + $y; if ($m < $count) { $matrix[] = array($x, $m); $y++; } elseif ($m == $count) { $x++; $y = 2; } } foreach ($matrix as $u => $r) { $g = $t; $g[$r[0]] = str_replace($t[$r[0]], '[dynamic]', $t[$r[0]]); $g[$r[1]] = str_replace($t[$r[1]], '[dynamic]', $t[$r[1]]); $tt = implode('/', $g); $arr[$i] = '/' . string::clearBoth($tt) . '/'; $i++; } // end matrix } $list_path = ""; foreach ($arr as $v) { if (!empty($v)) { $list_path .= "'" . $v . "',"; } } $list_path = ereg_replace(",\$", "", $list_path); db::table('pages'); db::join('templates', 'pages', 'tmpl_id'); db::where('page_folder', $list_path, 'IN'); db::where('site_id', SITE_ID, '=', 'pages'); db::order('page_level'); $res = db::select(); $t_pages = array(); $path_pages = array(); if (db::rows() > 0) { while ($row = mysql_fetch_assoc($res)) { $t_pages[] = $row; } } $max_level = arrays::maxKey($t_pages, 'page_level'); $new_array = arrays::sliceByKey($t_pages, $max_level, 'page_level'); $tested = array(); $et = explode('/', string::clearBoth(URI_SELF)); /* Data of current page */ if ($new_array) { foreach ($new_array as $k => $v) { $folder = explode('/', string::clearBoth($v['page_folder'])); $tested[$k] = 0; foreach ($folder as $d => $f) { if (isset($et[$d])) { if ($f == $et[$d]) { $tested[$k]++; } } } } $path_pages[] = self::$page = $t_pages[arrays::maxValueKey($tested)]; } else { $path_pages[] = self::$page = arrays::lastValue($t_pages); } $t_pages = array_reverse($t_pages); $parent = self::$page['page_parent']; if ($parent != 0) { foreach ($t_pages as $k => $v) { if ($v['page_id'] != $parent && $v['page_folder'] != '/') { unset($t_pages[$k]); } else { $path_pages[] = $v; $parent = $v['page_parent']; } } } self::$pages = array_reverse($path_pages); unset($t_pages, $path_pages); }
function edit() { events::observe('save', 'pages', 'savePage'); events::observer(); if (events::detect('save')) { return true; } if (events::detect('restore')) { self::restoreVersion(events::get('restore')); } admin::components('tabs', 'validator', 'upload'); if (settings::get('pages', 'redactor')) { admin::components('redactor'); s::section('redactor'); } $page_id = admin::get('id'); appPages::getPagesSelect(ADMIN_SITE_ID, $page_id); appPages::getParentPages(ADMIN_SITE_ID, true); appTemplates::getTmpls(ADMIN_SITE_ID); db::table('pages'); db::where('page_id', $page_id); $row = db::assoc(); s::set('page_link', '<a href="' . self::getUrl($row['page_folder']) . '">Посмотреть страницу на сайте</a>'); if ($row['page_dynamic'] == '1') { $row['page_folder'] = ''; } else { if ($row['page_folder'] != '/') { $row['page_folder'] = string::clearBoth($row['page_folder']); $arr = explode('/', $row['page_folder']); $row['page_folder'] = arrays::lastValue($arr); } } f::set('page_content', $row['page_content'], 0); f::set($row); s::set('page_id', $page_id); db::table('pages_files'); db::where('page_id', $page_id); $r = db::select(); while ($a = mysql_fetch_assoc($r)) { $a['file_type'] = files::getFileIco($a['file_type']); s::roll('page_files', $a); } /* Load versions */ db::table('pages_versions'); db::where('page_id', $page_id); db::order('version_date', 'DESC'); $res = db::select(); $versions = array(); while ($row = mysql_fetch_assoc($res)) { $versions[$row['version_date']][$row['content_id']] = array('version_id' => $row['version_id'], 'content_id' => $row['content_id'], 'version_content' => $row['version_content']); } foreach ($versions as $k => $v) { s::roll('versions', array('date' => dt::date2print('%H:%i:%s %d.%m.%Y', $k), 'version_date' => $k, 'id' => md5($k))); foreach ($v as $d => $f) { $f['version_content'] = htmlspecialchars('{non}' . $f['version_content'] . '{/non}'); s::roll('versions_' . md5($k), $f); } } }
function loadSiteMenu() { db::table('menus'); db::join('menus_points', 'menus', 'menu_id'); db::where('point_pub', '1'); db::where('site_id', SITE_ID, '=', 'menus'); db::where('menu_pub', '1'); db::order('point_order'); $res = db::select(); while ($row = mysql_fetch_assoc($res)) { self::$menu[$row['menu_name']][$row['point_parent']][$row['point_id']] = $row; self::$menu_id[$row['menu_name']] = $row['menu_id']; self::$menu_by_id[$row['menu_id']] = $row['menu_name']; } }
function orderByRand() { self::$order = "ORDER BY RAND() "; }
function sections() { db::table('info_sections'); db::order('section_order', 'DESC'); $r = db::select(); while ($a = mysql_fetch_assoc($r)) { if ($a['section_view'] == '1') { $a['section_view'] = 'виден всегда'; } else { $a['section_view'] = ''; } s::roll('sections', $a); } }
function saveVersion($tmpl_id, $code) { db::table('templates_versions'); db::where('tmpl_id', $tmpl_id); db::where('version_code', $code); db::order('version_date', 'DESC'); db::limit(1); db::select(); if (db::rows() == 0) { /* delete over 20 */ db::table('templates_versions'); db::where('tmpl_id', $tmpl_id); db::order('version_date', 'DESC'); db::limit(20, 100); db::delete(); db::table('templates_versions'); db::insert('', 'NOW()', $code, '', '', $tmpl_id, ADMIN_USER_ID, ADMIN_SITE_ID); } }
function getPagesSelect($site_id = 1) { $page_tree = array(); db::table('pages'); db::where('site_id', $site_id); db::where('page_pub', '1'); db::order('page_map'); $res = db::select('page_parent', 'page_id', 'page_title', 'page_pub'); while ($row = mysql_fetch_assoc($res)) { $page_tree[$row['page_parent']][$row['page_id']] = $row; } self::_getPagesSelect($page_tree); }
function start() { self::observerLogout('adminlogoff'); db::connect(); define('LANG_INDEX', SYS_INDEX); $lang = lang::gets(LANG_INDEX); define('STYLE_PATH', SYS_DIR . 'gui/' . SYS_STYLE . '/'); s::set('STYLE_PATH', 'http://' . SERVER . STYLE_PATH); define('GUI_PATH', SYS_DIR . 'gui/'); s::set('GUI_PATH', 'http://' . SERVER . GUI_PATH); s::set('SERVER', SERVER); s::set('SYS_PATH', 'http://' . SERVER . SYS_DIR); s::set('SYS_DIR', SYS_DIR); /* Authentification */ $sys_tmpl = 'common'; $sys_tmpl = 'common'; if (!self::observer()) { $sys_tmpl = 'login'; s::set('title', 'Legenda'); self::display($sys_tmpl, $lang); return true; } self::groupRules(); self::map(); self::adapter(); s::set('admin_title', self::$map['title']); s::set('admin_header', self::$map['title']); s::set('admin_mode', self::$map['mode']); define('APP', APPS . self::$map['app'] . '/'); s::set('APP', APP); define('MODULE', APP . self::$map['module'] . '/'); s::set('MODULE', MODULE); /* Get sites list */ db::table('admin_sites'); $res = db::select(); if (db::rows() > 1) { $str = '<div class="popup popupSimple" id="site_list_load_popup" style="display: none;"><ul>'; while ($row = mysql_fetch_assoc($res)) { if (self::$sites_excl) { if (!isset(self::$sites_excl[$row['site_id']])) { continue; } } if ($row['site_id'] == ADMIN_USER_SITE_ID) { define('ADMIN_SITE', $row['site_domain']); s::set('ADMIN_SITE', ADMIN_SITE); s::set('admin_site_selector', ' <a href="javascript:void(null);" class="ico ico11 ico_popup popupLoad" id="site_list_load"> </a>'); } else { $str .= '<li><a class="popup_right" title="Перейти на сайт" href="http://' . $row['site_domain'] . '"></a><a href="javascript:void(null);" title="Выбрать сайт" onclick="sysSetSite(' . $row['site_id'] . ');">' . $row['site_domain'] . '</a></li>'; } } $str .= '</ul></div>'; s::set('admin_site_list', $str); } else { $row = mysql_fetch_assoc($res); define('ADMIN_SITE', $row['site_domain']); s::set('ADMIN_SITE', ADMIN_SITE); } define('ADMIN_SITE_ID', ADMIN_USER_SITE_ID); s::set('ADMIN_SITE_ID', ADMIN_USER_SITE_ID); /* Action tmpls */ if (self::$map['rule'] == 'all') { $rule_folder = 'all/'; } else { $rule_folder = RULE . '/'; } // context_menu $context_tmpl = MODULE . $rule_folder . self::$map['action'] . '.context.html'; s::set('admin_context_menu', files::get($context_tmpl)); // area $area_tmpl = MODULE . $rule_folder . self::$map['action'] . '.html'; s::set('admin_area', files::get($area_tmpl)); // sidebar $sidebar_tmpl = MODULE . $rule_folder . self::$map['action'] . '.bar.html'; s::set('admin_sidebar', files::get($sidebar_tmpl)); /* App CSS and JS */ $app_css = 'apps/' . self::$map['app'] . '/' . self::$map['app'] . '.css'; $app_js = 'apps/' . self::$map['app'] . '/' . self::$map['app'] . '.js'; if (file_exists(SYS_ROOT . $app_css)) { self::insertCSS('http://' . SERVER . SYS_DIR . $app_css); } if (file_exists(SYS_ROOT . $app_js)) { self::insertJS('http://' . SERVER . SYS_DIR . $app_js); } /* Module CSS and JS */ $module_css = 'apps/' . self::$map['app'] . '/' . self::$map['module'] . '/' . self::$map['module'] . '.css'; $module_js = 'apps/' . self::$map['app'] . '/' . self::$map['module'] . '/' . self::$map['module'] . '.js'; if (file_exists(SYS_ROOT . $module_css)) { self::insertCSS('http://' . SERVER . SYS_DIR . $module_css); } if (file_exists(SYS_ROOT . $module_js)) { self::insertJS('http://' . SERVER . SYS_DIR . $module_js); } /* Legenda app, module and action */ load::appSetup(self::$map['app']); load::moduleSetup(self::$map['app'], self::$map['module']); load::module(self::$map['app'], self::$map['module'], self::$map['action']); /* User log */ adminUser::update('user_date_last', 'NOW()', ADMIN_USER_ID); /* Action log */ db::table('admin_log_actions'); db::where('log_path', URI_SELF); db::where('user_id', ADMIN_USER_ID); db::order('log_date', 'DESC'); db::limit(1); db::select('log_id'); if (db::rows() == 0) { db::table('admin_log_actions'); db::insert('', 'NOW()', self::get('app'), self::get('module'), self::get('action'), URI_SELF, self::get('title'), ADMIN_USER_ID); } /* Legenda display */ self::adminMenu(); self::display($sys_tmpl, $lang); }
function sections() { $dir = IMAGES_ROOT . 'sections/'; $dir_path = IMAGES_PATH . 'sections/'; db::table('catalog_sections'); db::order('section_order'); $r = db::select(); while ($a = mysql_fetch_assoc($r)) { $file = $dir . $a['section_id'] . '.jpg'; if (file_exists($file)) { $a['section_img'] = '<img src="' . $dir_path . $a['section_id'] . '.jpg' . '" />'; } s::roll('sections', $a); } }
function saveVersion($app, $tmpl_file, $code) { db::table('templates_versions'); db::where('app', $app); db::where('tmpl_file', $tmpl_file); db::where('version_code', $code); db::order('version_date', 'DESC'); db::limit(1); db::select(); if (db::rows() == 0) { /* delete over 10 */ db::table('templates_versions'); db::where('app', $app); db::where('tmpl_file', $tmpl_file); db::order('version_date', 'DESC'); db::limit(10, 100); db::delete(); db::table('templates_versions'); db::insert('', 'NOW()', $code, $app, $tmpl_file, 0, ADMIN_SITE_ID); } }
function showCard($item_id, $section_id) { $dir_path = IMAGES_PATH . 'items/'; db::table('catalog_items'); db::where('item_id', $item_id); $item = db::assoc(); if (db::rows() == 0) { web::error404(); } db::table('catalog_sections'); db::where('section_id', $section_id); $section = db::assoc(); s::set('page_title', $item['item_name']); s::set('page_header', $item['item_name']); s::set('add_path', '<a href="/catalog/' . $section['section_id'] . '/">' . $section['section_name'] . '</a> <span>→</span>'); s::set($item); db::table('catalog_items_photos'); db::where('item_id', $item_id); $r = db::select(); if (db::rows() > 1) { s::section('item_photos_show'); } $i = 0; while ($a = mysql_fetch_assoc($r)) { $i++; if ($i == 1) { $a['act'] = 'act'; s::set('big_pic', '<img src="' . $dir_path . $a['file_id'] . '.jpg' . '" width="268" alt="" />'); } $a['file_path'] = $dir_path . $a['file_id'] . '_m.jpg'; s::roll('item_photos', $a); } db::table('catalog_items_files'); db::where('item_id', $item_id); $r = db::select(); if (db::rows() != 0) { s::section('item_files_show'); } while ($a = mysql_fetch_assoc($r)) { $a['file_icon'] = files::getFileIco($a['file_type']); $a['file_size'] = files::parseSizeSmart($a['file_size']); s::roll('item_files', $a); } db::table('catalog_items_parts'); db::where('item_id', $item_id); db::order('part_id'); $r = db::select(); if (db::rows() > 1) { s::section('item_parts_show'); } $i = 0; while ($a = mysql_fetch_assoc($r)) { s::roll('parts', $a); } }