Blame view

mobile/source/modules/admin/blocks/system_menu.php 1.69 KB
a1684257   Administrator   first commit
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>');
  ?>