system_menu.php
1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
/**
* @author: Bunzia Alexander <nifus@mail.ru> <http://www.weblancer.net/users/nifus/>
* @copyright: Copyright (c) 2010, Bunzia Alexander
* @version: 1.0
* @license: http://www.gnu.org/copyleft/gpl.html GNU/GPL
* @package: HiLo CMS
*/
/**
* Автоматически генерирует административное меню на основе данных
* предоставляемых установленными модулями
*
* @var: array $options
* @return: str
*/
function system_menu($options){
global $MAIN_USER;
if ( empty($MAIN_USER) /*|| $MAIN_USER -> is_admin()===false*/ ){
sys_error(ERROR_500);
}
$result = array();
include_once(MAIN_SOURCE_PATH.'/modules/admin/inc/class.modules.php');
$m = new modulesQuery('m');
$m -> where_active(1);
$m -> orderby_pos('ASC');
$m -> get('m_path');
while( list($path) = $m -> row() ) {
if ( !file_exists(MAIN_SOURCE_PATH.'/modules/'.$path.'/inc/system.php') ){
continue;
}
include_once(MAIN_SOURCE_PATH.'/modules/'.$path.'/inc/system.php');
$f = $path.'_menu';
if ( !function_exists($f) ){
continue;
}
$r = $f();
if ( !is_array($r) ){
continue;
}
$row = $r[0];
unset($r[0]);
$result[] = array('title'=>$row['title'],'url'=>$row['url'],'sub'=> $r);
}
$t = new PHPTAL( false );
$t -> setSnippet('admin','system_menu');
$t -> menu = $result;
return $t -> execute();
}
define('TMPL_ADMIN_MENU',
'<div class="admin_menu" >
<ul tal:condition="menu" tal:repeat="r menu">
<li><b><a class="hide" href="${r/url}" >${r/title}</a></b>
<ul>
<li tal:condition="r/sub" tal:repeat="s r/sub"><a href="${s/url}" title="">${s/title}</a></li>
</ul>
</li>
</ul>
</div>');
?>