| version 1.129, 2014/07/07 07:55:17 |
version 1.130, 2015/01/20 15:20:16 |
|
|
| * http://platon.sk/projects/Metafox/ |
* http://platon.sk/projects/Metafox/ |
| */ |
*/ |
| |
|
| /* $Platon: Metafox/functions.inc.php,v 1.128 2014-02-19 13:19:05 igor Exp $ */ |
/* $Platon: Metafox/functions.inc.php,v 1.129 2014-07-07 07:55:17 igor Exp $ */ |
| |
|
| function ezin_eval($evalcode) /* {{{ */ |
function ezin_eval($evalcode) /* {{{ */ |
| { |
{ |
| Line 2523 function ezin_get_htmlmap($lang = null) |
|
| Line 2523 function ezin_get_htmlmap($lang = null) |
|
| return $cache_ar['content']; |
return $cache_ar['content']; |
| } |
} |
| |
|
| |
/* |
| |
* Admin API |
| |
*/ |
| |
function ezin_admin_init_app($apps_dir) { |
| |
if (!file_exists($apps_dir)) { |
| |
return false; |
| |
} |
| |
global $_ezin_admin; |
| |
$apps_dirs = scandir($apps_dir); |
| |
if (is_array($apps_dirs)) foreach($apps_dirs as $app_dir) { |
| |
$app_init_file = $apps_dir.'/'.$app_dir.'/init.inc.php'; |
| |
if (!in_array($app_dir, array('.','..')) |
| |
&& is_dir($apps_dir.'/'.$app_dir) |
| |
&& file_exists($app_init_file) |
| |
&& is_readable($app_init_file)) |
| |
{ |
| |
$_ezin_admin['appsdir_curr'] = $apps_dir; |
| |
$_ezin_admin['app_curr'] = $app_dir; |
| |
require_once $app_init_file; |
| |
} |
| |
} |
| |
} |
| |
|
| |
function ezin_admin_db_check($title, $test, $test_output, $fix) { |
| |
global $_ezin_admin; |
| |
if (!is_array($_ezin_admin['db_check'])) { |
| |
$_ezin_admin['db_check'] = array(); |
| |
} |
| |
$_ezin_admin['db_check'][] = array( |
| |
'app' => $_ezin_admin['app_curr'], |
| |
'title' => $title, |
| |
'test' => $test, |
| |
'test_output' => $test_output, |
| |
'fix' => $fix, |
| |
); |
| |
} |
| |
|
| |
function ezin_admin_db_check_run() { |
| |
global $_ezin_admin; |
| |
global $ezin_sys; |
| |
global $ezin_db_handle; |
| |
if (!is_array($_ezin_admin['db_check'])) { |
| |
$_ezin_admin['db_check'] = array(); |
| |
} |
| |
$ret = array(); |
| |
foreach ($_ezin_admin['db_check'] as $check) { |
| |
$result = @mysql_query($check['test'], $ezin_db_handle) |
| |
or ezin_db_error('ezin_admin_db_check_run() [1]'); |
| |
$row = mysql_fetch_array($result, MYSQL_NUM); |
| |
@mysql_free_result($result); |
| |
if ($row === false |
| |
|| (is_array($row) |
| |
&& $row[0] != $check['test_output'])) |
| |
{ |
| |
@mysql_query($check['fix'], $ezin_db_handle) |
| |
or ezin_db_error('ezin_admin_db_check_run() [2]'); |
| |
// TEST again |
| |
$result = @mysql_query($check['test'], $ezin_db_handle) |
| |
or ezin_db_error('ezin_admin_db_check_run() [1]'); |
| |
$row = mysql_fetch_array($result, MYSQL_NUM); |
| |
@mysql_free_result($result); |
| |
if ($row === false |
| |
|| (is_array($row) |
| |
&& $row[0] != $check['test_output'])) |
| |
{ |
| |
$result = -1; // Test after fix FAILED |
| |
} else { |
| |
$result = 2; // Test after fix SUCCESSFUL |
| |
} |
| |
} else { |
| |
$result = 1; // TEST OK |
| |
} |
| |
$ret[] = array( |
| |
'app' => $check['app'], |
| |
'title' => $check['title'], |
| |
'result' => $result, |
| |
); |
| |
} |
| |
return $ret; |
| |
} |
| |
|
| |
function ezin_admin_menu_add($action, $caption, $link, $inc_file, $column, $after_action = null, $visible = true) { |
| |
global $_ezin_admin; |
| |
if (!is_array($_ezin_admin['menu'])) { |
| |
$_ezin_admin['menu'] = array(); |
| |
} |
| |
if (!is_array($_ezin_admin['menu_hashes'])) { |
| |
$_ezin_admin['menu_hashes'] = array(); |
| |
} |
| |
$menu_hash = $action.'/'.$link; |
| |
if (in_array($menu_hash, $_ezin_admin['menu_hashes'])) { |
| |
echo 'Error: Duplicate menu links "'.$menu_hash.'"'; |
| |
return false; |
| |
} |
| |
$_ezin_admin['menu_hashes'][] = $menu_hash; |
| |
$_ezin_admin['menu'][] = array( |
| |
'action' => $action, |
| |
'caption' => $caption, |
| |
'link' => $link, |
| |
'inc_file' => $inc_file, |
| |
'column' => $column, |
| |
'after_action' => $after_action, |
| |
'visible' => $visible, |
| |
'apps_dir' => $_ezin_admin['appsdir_curr'], |
| |
'app_dir' => $_ezin_admin['app_curr'], |
| |
); |
| |
} |
| |
|
| |
function ezin_admin_menu_get() { |
| |
global $_ezin_admin; |
| |
if (!is_array($_ezin_admin['menu'])) { |
| |
$_ezin_admin['menu'] = array(); |
| |
} |
| |
return $_ezin_admin['menu']; |
| |
} |
| |
|
| |
function ezin_admin_menu_info($app, $link) { |
| |
global $_ezin_admin; |
| |
if (!is_array($_ezin_admin['menu'])) { |
| |
$_ezin_admin['menu'] = array(); |
| |
} |
| |
foreach ($_ezin_admin['menu'] as $menu) { |
| |
if ($menu['app_dir'] == $app |
| |
&& $menu['link'] == $link) |
| |
{ |
| |
return $menu; |
| |
} |
| |
} |
| |
return false; |
| |
} |
| |
|
| |
function ezin_admin_app_url($app, $link) { |
| |
$info = ezin_admin_menu_info($app, $link); |
| |
if ($info == false) { |
| |
return false; |
| |
} |
| |
global $ezin_cfg, $ezin_sys; |
| |
return $ezin_cfg['url'].$ezin_sys['dir']['admin'].'/app/'.$info['app_dir'].'/'.$info['link'].'/'; |
| |
} |
| |
|
| /* Modeline for ViM {{{ |
/* Modeline for ViM {{{ |
| * vim: set ts=4: |
* vim: set ts=4: |
| * vim600: fdm=marker fdl=0 fdc=0: |
* vim600: fdm=marker fdl=0 fdc=0: |