function info($file, $key = false) { self::$file_info = array(); $array = explode(".", $file); self::$file_info['size'] = @filesize($file); self::$file_info['type'] = arrays::lastValue($array); self::$file_info['name'] = str_replace('.' . self::$file_info['type'], '', $file); self::$file_info['image'] = false; if (self::$file_info['type'] == 'JPG' || self::$file_info['type'] == 'jpg' || self::$file_info['type'] == 'gif' || self::$file_info['type'] == 'png') { self::$file_info['image'] = true; } if (!$key) { return self::$file_info; } else { return self::$file_info[$key]; } }
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); } } }
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); }