latham
2011-05-25 f99b37f56dad8e3a1f844f8d3b33ee1ba4b86d62
interface/web/dashboard/dashboard.php
@@ -92,35 +92,69 @@
if($_SESSION["s"]["user"]["typ"] == 'admin') {
   $new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt');
   $new_version = trim($new_version);
   if($new_version != ISPC_APP_VERSION) {
      $info[] = array('info_msg' => 'There is a new Version of ISPConfig 3 available! <a href="http://www.ispconfig.org/ispconfig-3/download">See more...</a>');
   $v1 = ISPC_APP_VERSION;
   $v2 = $new_version;
   $this_version = explode(".",ISPC_APP_VERSION);
   $this_fullversion = (($this_version[0] < 10) ? '0'.$this_version[0] : $this_version[0]) .
             (($this_version[1] < 10) ? '0'.$this_version[1] : $this_version[1]) .
             (($this_version[2] < 10) ? '0'.$this_version[2] : $this_version[2]) .
             (($this_version[3] < 10) ? (($this_version[3] < 1) ? '00' : '0'.$this_version[3]) : $this_version[3]);
   $new_version = explode(".",$new_version);
   $new_fullversion =  (($new_version[0] < 10) ? '0'.$new_version[0] : $new_version[0]) .
             (($new_version[1] < 10) ? '0'.$new_version[1] : $new_version[1]) .
             (($new_version[2] < 10) ? '0'.$new_version[2] : $new_version[2]) .
             (($new_version[3] < 10) ? (($new_version[3] < 1) ? '00' : '0'.$new_version[3]) : $new_version[3]);
   if($new_fullversion > $this_fullversion) {
      $info[] = array('info_msg' => 'There is a new Version of ISPConfig 3 available!<br>' .
         'This Version: ' . $v1 . '<br>' .
         'New Version : ' . $v2 .
         '<br><br><a href="http://www.ispconfig.org/ispconfig-3/download" target="ISPC">See more...</a>');
   }
}
$app->tpl->setloop('info', $info);
/*
 * Show all modules, the user is allowed to use
*/
$modules = explode(',', $_SESSION['s']['user']['modules']);
$mod = array();
if(is_array($modules)) {
   foreach($modules as $mt) {
      if(is_file('../' . $mt . '/lib/module.conf.php')) {
         if(!preg_match("/^[a-z]{2,20}$/i", $mt)) die('module name contains unallowed chars.');
         include_once('../' . $mt.'/lib/module.conf.php');
         /* We don't want to show the dashboard */
         if ($mt != 'dashboard') {
            $mod[] = array(   'modules_title'    => $app->lng($module['title']),
                  'modules_startpage'   => $module['startpage'],
                  'modules_name'     => $module['name']);
         }
      }
/* Load the dashlets*/
$dashlet_list = array();
$handle = @opendir(ISPC_WEB_PATH.'/dashboard/dashlets');
while ($file = @readdir ($handle)) {
    if ($file != '.' && $file != '..' && !is_dir($file)) {
        $dashlet_name = substr($file,0,-4);
      $dashlet_class = 'dashlet_'.$dashlet_name;
      include_once(ISPC_WEB_PATH.'/dashboard/dashlets/'.$file);
      $dashlet_list[$dashlet_name] = new $dashlet_class;
   }
   $app->tpl->setloop('modules', $mod);
}
/* Which dashlets in which column */
/******************************************************************************/
$leftcol_dashlets = array('modules','invoices');
$rightcol_dashlets = array('limits');
/******************************************************************************/
/* Fill the left column */
$leftcol = array();
foreach($leftcol_dashlets as $name) {
   if(isset($dashlet_list[$name])) {
      $leftcol[]['content'] = $dashlet_list[$name]->show();
   }
}
$app->tpl->setloop('leftcol', $leftcol);
/* Fill the right columnn */
$rightcol = array();
foreach($rightcol_dashlets as $name) {
   if(isset($dashlet_list[$name])) {
      $rightcol[]['content'] = $dashlet_list[$name]->show();
   }
}
$app->tpl->setloop('rightcol', $rightcol);
//* Do Output
$app->tpl->pparse();