Ejemplo n.º 1
0
    private function valid_tree()
    {
        $v = $this->__(w('page'));
        if (!f($v['page'])) {
            _fatal();
        }
        $v['field'] = is_numb($v['page']) ? 'id' : 'alias';
        $sql = 'SELECT *
			FROM _tree
			WHERE tree_?? = ?
			LIMIT ??';
        if (!($tree = _fieldrow(sql_filter($sql, $v['field'], $v['page'], 1)))) {
            if ($v['field'] == 'alias' && $v['page'] != 'tree') {
                _xfs($v['page']);
            }
            _fatal();
        }
        return $tree;
    }
Ejemplo n.º 2
0
    function valid_tree()
    {
        $v = $this->__(array('page'));
        if (empty($v['page'])) {
            _fatal();
        }
        $v['field'] = 'alias';
        if (preg_match('#^\\d+$#is', $v['page'])) {
            $v['field'] = 'id';
        }
        $sql = 'SELECT *
			FROM _tree
			WHERE tree_' . $this->_escape($v['field']) . " = '" . $this->_escape($v['page']) . "'\n\t\t\tLIMIT 1";
        if (!($tree = $this->_fieldrow($sql))) {
            if ($v['field'] == 'alias' && $v['page'] != 'tree') {
                $_REQUEST['module'] = $v['page'];
                _xfs();
            }
            _fatal();
        }
        return $tree;
    }
Ejemplo n.º 3
0
error_reporting(E_ALL);
if (@ini_get('register_globals')) {
    foreach ($_REQUEST as $var_name => $void) {
        unset(${$var_name});
    }
}
if (!defined('XFS')) {
    define('XFS', './');
}
if (!defined('DD')) {
    define('DD', 'mysql');
}
if (!defined('CA')) {
    define('CA', 'sha1');
}
if (!defined('REQC')) {
    define('REQC', strtolower(ini_get('request_order')) == 'gp');
}
foreach (array('core', 'dd/' . DD, 'styles', 'session') as $w) {
    $f_core = XFS . 'core/' . $w . '.php';
    if (!@file_exists($f_core)) {
        exit;
    }
    @(require_once $f_core);
}
foreach (w((!defined('NDB') ? 'db ' : '') . 'style user core') as $w) {
    ${$w} = new $w();
}
if (!defined('XCORE')) {
    _xfs();
}
Ejemplo n.º 4
0
     $arg = request_var('args');
     if (f($arg)) {
         foreach (explode('.', $arg) as $v) {
             $el = explode(':', $v);
             if (isset($el[0]) && isset($el[1]) && f($el[0])) {
                 $warg[$el[0]] = $el[1];
             }
         }
     }
     if (isset($_POST) && count($_POST)) {
         $_POST = _utf8($_POST);
         $warg = array_merge($warg, $_POST);
     }
 }
 if ($p_dir) {
     _xfs(isset($warg['x1']) ? $warg['x1'] : '', $mod, $warg);
 } else {
     _lib_define();
     $warg_x = 0;
     foreach ($warg as $warg_k => $warg_v) {
         if (preg_match('/x\\d+/i', $warg_k)) {
             $warg_x = str_replace('x', '', $warg_k);
         }
     }
     if ($wdir !== false) {
         for ($i = 0; $i < $warg_x; $i++) {
             $warg['x' . ($i + 1)] = isset($warg['x' + ($i + 2)]) ? $warg['x' + ($i + 2)] : '';
         }
     }
 }
 if (defined('MY_TIMEZONE') && !f(ini_get('date.timezone')) && function_exists('date_default_timezone_set')) {
Ejemplo n.º 5
0
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];

error_reporting(E_ALL);
//error_reporting(E_ERROR | E_WARNING | E_PARSE);

if (@ini_get('register_globals')) {
	foreach ($_REQUEST as $var_name => $void) {
		unset(${$var_name});
	}
}

if (!defined('XFS')) define('XFS', './');

require_once(XFS . 'core/functions.php');
require_once(XFS . 'core/db.mysql.php');
require_once(XFS . 'core/styles.php');
require_once(XFS . 'core/session.php');

foreach (w('database style user core') as $w) $$w = new $w;

if (!defined('XCORE')) _xfs();

?>
Ejemplo n.º 6
0
function _xfs($mod = false, $wdir = false, $warg = false)
{
	global $user, $style;
	
	include_once(XFS . 'core/modules.php');
	
	if ($mod === false)
	{
		$mod = request_var('module', '');
	}
	$mod = (!empty($mod)) ? $mod : 'home';
	
	$mod_dir = './base/_' . $mod;
	$p_dir = ($wdir === false && @file_exists($mod_dir) && is_dir($mod_dir)) ? true : false;
	
	if (!$p_dir)
	{
		$mod_dir = './base/_' . (($wdir !== false) ? $wdir . '/_' : '') . $mod;
		
		$mod_path = $mod_dir . '.php';
		$mod_class = '__' . $mod;
		
		if (!@file_exists($mod_path))
		{
			_fatal();
		}
		include_once($mod_path);
		
		if (!class_exists($mod_class))
		{
			_fatal();
		}
		$module = new $mod_class();
	}
	
	if ($warg === false)
	{
		$warg = array();
		$arg = request_var('args', '');
		if (!empty($arg))
		{
			foreach (explode('.', $arg) as $v)
			{
				$el = explode(':', $v);
				if (isset($el[0]) && isset($el[1]) && !empty($el[0]))
				{
					$warg[$el[0]] = $el[1];
				}
			}
		}
		
		if (isset($_POST) && count($_POST))
		{
			$_POST = _utf8($_POST);
			$warg = array_merge($warg, $_POST);
		}
	}
	
	if ($p_dir)
	{
		_xfs(((isset($warg['x1'])) ? $warg['x1'] : ''), $mod, $warg);
	}
	else
	{
		if (isset($module->auth) && $module->auth)
		{
			$v_auth_exclude = (isset($module->auth_exclude) && (isset($warg['x1']) && in_array($warg['x1'], $module->auth_exclude))) ? true : false;
			if (!$v_auth_exclude)
			{
				_login();
			}
		}
		
		$warg_x = 0;
		foreach ($warg as $warg_k => $warg_v)
		{
			if (preg_match('/x\d+/i', $warg_k))
			{
				$warg_x = str_replace('x', '', $warg_k);
			}
		}
		
		if ($wdir !== false)
		{
			for ($i = 0; $i < $warg_x; $i++)
			{
				$warg['x' . ($i + 1)] = (isset($warg['x' + ($i + 2)])) ? $warg['x' + ($i + 2)] : '';
			}
		}
	}
	
	date_default_timezone_set('America/Guatemala');
	
	$module->arg = $warg;
	$module->xlevel();
	if (!method_exists($module, $module->level['x1']))
	{
		_fatal();
	}
	
	// Session start
	$user->start(true);
	$user->setup();
	
	if (!$module->auth_access($user->data))
	{
		_fatal();
	}
	
	if (!defined('LIB')) define('LIB', '../space/');
	
	if (!defined('LIBD')) define('LIBD', _link() . str_replace('../', '', LIB));
	
	$module->module = $mod;
	
	if (@method_exists($module, 'install'))
	{
		$module->install();
	}
	
	$module->navigation('home', '', '');
	$module->navigation($module->module, '');
	
	$module->{$module->level['x1']}();
	
	if (empty($module->template))
	{
		$module->template = $mod;
	}
	
	if (@file_exists('./base/tree'))
	{
		$menu = array_map('trim', @file('./base/tree'));
		foreach ($menu as $i => $row)
		{
			if (!$i) $style->assign_block_vars('tree', array());
			
			$row = trim($row);
			$row_level = strripos($row, '*') + 1;
			preg_match('#^\*{0,} (.*?) <(.*?)>$#i', $row, $row_key);
			
			$row_mod = array(dvar(array_key(explode('/', $row_key[2]), 1), 'index'));
			
			if ($row_level > 1) $row_mod[] = array_key(explode(':', array_key(explode('.', array_key(explode('/', $row_key[2]), 2)), 0)), 1);
			
			$row_auth = implode('_', $row_mod);
			if (!$user->auth_get($row_auth)) continue;
			
			$row_style = '.row' . (($row_level == 1) ? '' : '.sub' . ($row_level - 1));
			$style->assign_block_vars('tree' . $row_style, array(
				'V_NAME' => trim(str_replace('*', '', $row_key[1])),
				'V_LINK' => _link() . substr($row_key[2], 1))
			);
		}
	}
	
	//
	// Output template
	$page_smodule = 'CONTROL_' . strtoupper($mod);
	if (is_lang($page_smodule))
	{
		$module->page_title($page_smodule);
	}
	
	$sv = array(
		'MODE' => $module->level['x1'],
		'MANAGE' => $module->level['x2'],
		'NAVIGATION' => $module->get_navigation()
	);
	_layout($module->template, $module->page_title(), $sv);
}