From: <ber...@us...> - 2010-09-08 22:29:35
|
Revision: 2334 http://ganglia.svn.sourceforge.net/ganglia/?rev=2334&view=rev Author: bernardli Date: 2010-09-08 22:29:27 +0000 (Wed, 08 Sep 2010) Log Message: ----------- [web] Replace TemplatePower with Dwoo PHP Templating Engine. Dwoo is new/modified BSD-licensed, same as Ganglia. Reviewed-by: Jesse Becker <ha...@gm...> Reviewed-by: Kostas Georgiou <k.g...@gm...> Modified Paths: -------------- trunk/monitor-core/web/cluster_view.php trunk/monitor-core/web/conf.php.in trunk/monitor-core/web/footer.php trunk/monitor-core/web/grid_tree.php trunk/monitor-core/web/header.php trunk/monitor-core/web/host_view.php trunk/monitor-core/web/index.php trunk/monitor-core/web/meta_view.php trunk/monitor-core/web/physical_view.php trunk/monitor-core/web/show_node.php trunk/monitor-core/web/templates/default/cluster_view.tpl trunk/monitor-core/web/templates/default/footer.tpl trunk/monitor-core/web/templates/default/grid_tree.tpl trunk/monitor-core/web/templates/default/header.tpl trunk/monitor-core/web/templates/default/host_view.tpl trunk/monitor-core/web/templates/default/meta_view.tpl trunk/monitor-core/web/templates/default/physical_view.tpl trunk/monitor-core/web/templates/default/show_node.tpl Removed Paths: ------------- trunk/monitor-core/web/class.TemplatePower.inc.php Property Changed: ---------------- trunk/monitor-core/web/ Property changes on: trunk/monitor-core/web ___________________________________________________________________ Added: svn:externals + dwoo http://svn.dwoo.org/trunk/lib/ Deleted: trunk/monitor-core/web/class.TemplatePower.inc.php =================================================================== --- trunk/monitor-core/web/class.TemplatePower.inc.php 2010-09-07 23:04:00 UTC (rev 2333) +++ trunk/monitor-core/web/class.TemplatePower.inc.php 2010-09-08 22:29:27 UTC (rev 2334) @@ -1,868 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4: */ -// +----------------------------------------------------------------------+ -// | TemplatePower: | -// | offers you the ability to separate your PHP code and your HTML | -// +----------------------------------------------------------------------+ -// | | -// | Copyright (C) 2001,2002 R.P.J. Velzeboer, The Netherlands | -// | | -// | This program is free software; you can redistribute it and/or | -// | modify it under the terms of the GNU General Public License | -// | as published by the Free Software Foundation; either version 2 | -// | of the License, or (at your option) any later version. | -// | | -// | This program is distributed in the hope that it will be useful, | -// | but WITHOUT ANY WARRANTY; without even the implied warranty of | -// | 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, write to the Free Software | -// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | -// | 02111-1307, USA. | -// | | -// | Author: R.P.J. Velzeboer, ro...@co... The Netherlands | -// | | -// +----------------------------------------------------------------------+ -// | http://templatepower.codocad.com | -// +----------------------------------------------------------------------+ -// -// $Id$ - -define("T_BYFILE", 0); -define("T_BYVAR", 1); - -define("TP_ROOTBLOCK", '_ROOT'); - -class TemplatePowerParser -{ - var $tpl_base; //Array( [filename/varcontent], [T_BYFILE/T_BYVAR] ) - var $tpl_include; //Array( [filename/varcontent], [T_BYFILE/T_BYVAR] ) - var $tpl_count; - - var $parent = Array(); // $parent[{blockname}] = {parentblockname} - var $defBlock = Array(); - - var $rootBlockName; - var $ignore_stack; - - var $version; - - /** - * TemplatePowerParser::TemplatePowerParser() - * - * @param $tpl_file - * @param $type - * @return - * - * @access private - */ - function TemplatePowerParser( $tpl_file, $type ) - { - $this->version = '3.0.1'; - - $this->tpl_base = Array( $tpl_file, $type ); - $this->tpl_count = 0; - $this->ignore_stack = Array( false ); - } - - /** - * TemplatePowerParser::__errorAlert() - * - * @param $message - * @return - * - * @access private - */ - function __errorAlert( $message ) - { - print( '<br>'. $message .'<br>\r\n'); - } - - /** - * TemplatePowerParser::__prepare() - * - * @return - * - * @access private - */ - function __prepare() - { - $this->defBlock[ TP_ROOTBLOCK ] = Array(); - $tplvar = $this->__prepareTemplate( $this->tpl_base[0], $this->tpl_base[1] ); - - $initdev["varrow"] = 0; - $initdev["coderow"] = 0; - $initdev["index"] = 0; - $initdev["ignore"] = false; - - $this->__parseTemplate( $tplvar, TP_ROOTBLOCK, $initdev ); - $this->__cleanUp(); - } - - /** - * TemplatePowerParser::__cleanUp() - * - * @return - * - * @access private - */ - function __cleanUp() - { - for( $i=0; $i <= $this->tpl_count; $i++ ) - { - $tplvar = 'tpl_rawContent'. $i; - unset( $this->{$tplvar} ); - } - } - - /** - * TemplatePowerParser::__prepareTemplate() - * - * @param $tpl_file - * @param $type - * @return - * - * @access private - */ - function __prepareTemplate( $tpl_file, $type ) - { - $tplvar = 'tpl_rawContent'. $this->tpl_count; - - if( $type == T_BYVAR ) - { - $this->{$tplvar}["content"] = preg_split('/\n/', $tpl_file, -1, PREG_SPLIT_DELIM_CAPTURE); - } - else - { - $this->{$tplvar}["content"] = @file( $tpl_file ) or - die( $this->__errorAlert('TemplatePower Error: Couldn\'t open [ '. $tpl_file .' ]!')); - } - - $this->{$tplvar}["size"] = sizeof( $this->{$tplvar}["content"] ); - - $this->tpl_count++; - - return $tplvar; - } - - /** - * TemplatePowerParser::__parseTemplate() - * - * @param $tplvar - * @param $blockname - * @param $initdev - * @return - * - * @access private - */ - function __parseTemplate( $tplvar, $blockname, $initdev ) - { - $coderow = $initdev["coderow"]; - $varrow = $initdev["varrow"]; - $index = $initdev["index"]; - $ignore = $initdev["ignore"]; - - while( $index < $this->{$tplvar}["size"] ) - { - if ( preg_match('/<!--[ ]?(START|END) IGNORE -->/', $this->{$tplvar}["content"][$index], $ignreg) ) - { - if( $ignreg[1] == 'START') - { - //$ignore = true; - array_push( $this->ignore_stack, true ); - } - else - { - //$ignore = false; - array_pop( $this->ignore_stack ); - } - } - else - { - if( !end( $this->ignore_stack ) ) - { - if( preg_match('/<!--[ ]?(START|END|INCLUDE|INCLUDESCRIPT|REUSE) BLOCK : (.+)-->/', $this->{$tplvar}["content"][$index], $regs)) - { - //remove trailing and leading spaces - $regs[2] = trim( $regs[2] ); - - if( $regs[1] == 'INCLUDE') - { - $include_defined = true; - - //check if the include file is assigned - if( isset( $this->tpl_include[ $regs[2] ]) ) - { - $tpl_file = $this->tpl_include[ $regs[2] ][0]; - $type = $this->tpl_include[ $regs[2] ][1]; - } - else - if (file_exists( $regs[2] )) //check if defined as constant in template - { - $tpl_file = $regs[2]; - $type = T_BYFILE; - } - else - { - $include_defined = false; - } - - if( $include_defined ) - { - //initialize startvalues for recursive call - $initdev["varrow"] = $varrow; - $initdev["coderow"] = $coderow; - $initdev["index"] = 0; - $initdev["ignore"] = false; - - $tplvar2 = $this->__prepareTemplate( $tpl_file, $type ); - $initdev = $this->__parseTemplate( $tplvar2, $blockname, $initdev ); - - $coderow = $initdev["coderow"]; - $varrow = $initdev["varrow"]; - } - } - else - if( $regs[1] == 'INCLUDESCRIPT' ) - { - $include_defined = true; - - //check if the includescript file is assigned by the assignInclude function - if( isset( $this->tpl_include[ $regs[2] ]) ) - { - $include_file = $this->tpl_include[ $regs[2] ][0]; - $type = $this->tpl_include[ $regs[2] ][1]; - } - else - if (file_exists( $regs[2] )) //check if defined as constant in template - { - $include_file = $regs[2]; - $type = T_BYFILE; - } - else - { - $include_defined = false; - } - - if( $include_defined ) - { - ob_start(); - - if( $type == T_BYFILE ) - { - if( !@include_once( $include_file ) ) - { - $this->__errorAlert( 'TemplatePower Error: Couldn\'t include script [ '. $include_file .' ]!' ); - exit(); - } - } - else - { - eval( "?>" . $include_file ); - } - - $this->defBlock[$blockname]["_C:$coderow"] = ob_get_contents(); - $coderow++; - - ob_end_clean(); - } - } - else - if( $regs[1] == 'REUSE' ) - { - //do match for 'AS' - if (preg_match('/(.+) AS (.+)/', $regs[2], $reuse_regs)) - { - $originalbname = trim( $reuse_regs[1] ); - $copybname = trim( $reuse_regs[2] ); - - //test if original block exist - if (isset( $this->defBlock[ $originalbname ] )) - { - //copy block - $this->defBlock[ $copybname ] = $this->defBlock[ $originalbname ]; - - //tell the parent that he has a child block - $this->defBlock[ $blockname ]["_B:". $copybname ] = ''; - - //create index and parent info - $this->index[ $copybname ] = 0; - $this->parent[ $copybname ] = $blockname; - } - else - { - $this->__errorAlert('TemplatePower Error: Can\'t find block \''. $originalbname .'\' to REUSE as \''. $copybname .'\''); - } - } - else - { - //so it isn't a correct REUSE tag, save as code - $this->defBlock[$blockname]["_C:$coderow"] = $this->{$tplvar}["content"][$index]; - $coderow++; - } - } - else - { - if( $regs[2] == $blockname ) //is it the end of a block - { - break; - } - else //its the start of a block - { - //make a child block and tell the parent that he has a child - $this->defBlock[ $regs[2] ] = Array(); - $this->defBlock[ $blockname ]["_B:". $regs[2]] = ''; - - //set some vars that we need for the assign functions etc. - $this->index[ $regs[2] ] = 0; - $this->parent[ $regs[2] ] = $blockname; - - //prepare for the recursive call - $index++; - $initdev["varrow"] = 0; - $initdev["coderow"] = 0; - $initdev["index"] = $index; - $initdev["ignore"] = false; - - $initdev = $this->__parseTemplate( $tplvar, $regs[2], $initdev ); - - $index = $initdev["index"]; - } - } - } - else //is it code and/or var(s) - { - //explode current template line on the curly bracket '{' - $sstr = explode( '{', $this->{$tplvar}["content"][$index] ); - - reset( $sstr ); - - if (current($sstr) != '') - { - //the template didn't start with a '{', - //so the first element of the array $sstr is just code - $this->defBlock[$blockname]["_C:$coderow"] = current( $sstr ); - $coderow++; - } - - while (next($sstr)) - { - //find the position of the end curly bracket '}' - $pos = strpos( current($sstr), "}" ); - - if ( ($pos !== false) && ($pos > 0) ) - { - //a curly bracket '}' is found - //and at least on position 1, to eliminate '{}' - - //note: position 1 taken without '{', because we did explode on '{' - - $strlength = strlen( current($sstr) ); - $varname = substr( current($sstr), 0, $pos ); - - if (strstr( $varname, ' ' )) - { - //the varname contains one or more spaces - //so, it isn't a variable, save as code - $this->defBlock[$blockname]["_C:$coderow"] = '{'. current( $sstr ); - $coderow++; - } - else - { - //save the variable - $this->defBlock[$blockname]["_V:$varrow" ] = $varname; - $varrow++; - - //is there some code after the varname left? - if( ($pos + 1) != $strlength ) - { - //yes, save that code - $this->defBlock[$blockname]["_C:$coderow"] = substr( current( $sstr ), ($pos + 1), ($strlength - ($pos + 1)) ); - $coderow++; - } - } - } - else - { - //no end curly bracket '}' found - //so, the curly bracket is part of the text. Save as code, with the '{' - $this->defBlock[$blockname]["_C:$coderow"] = '{'. current( $sstr ); - $coderow++; - } - } - } - } - else - { - $this->defBlock[$blockname]["_C:$coderow"] = $this->{$tplvar}["content"][$index]; - $coderow++; - } - } - - $index++; - } - - $initdev["varrow"] = $varrow; - $initdev["coderow"] = $coderow; - $initdev["index"] = $index; - - return $initdev; - } - - - /** - * TemplatePowerParser::version() - * - * @return - * @access public - */ - function version() - { - return $this->version; - } - - /** - * TemplatePowerParser::assignInclude() - * - * @param $iblockname - * @param $value - * @param $type - * - * @return - * - * @access public - */ - function assignInclude( $iblockname, $value, $type=T_BYFILE ) - { - $this->tpl_include["$iblockname"] = Array( $value, $type ); - } -} - -class TemplatePower extends TemplatePowerParser -{ - var $index = Array(); // $index[{blockname}] = {indexnumber} - var $content = Array(); - - var $currentBlock; - var $showUnAssigned; - var $serialized; - var $globalvars = Array(); - var $prepared; - - /** - * TemplatePower::TemplatePower() - * - * @param $tpl_file - * @param $type - * @return - * - * @access public - */ - function TemplatePower( $tpl_file='', $type= T_BYFILE ) - { - TemplatePowerParser::TemplatePowerParser( $tpl_file, $type ); - - $this->prepared = false; - $this->showUnAssigned = false; - $this->serialized = false; //added: 26 April 2002 - } - - /** - * TemplatePower::__deSerializeTPL() - * - * @param $stpl_file - * @param $tplvar - * @return - * - * @access private - */ - function __deSerializeTPL( $stpl_file, $type ) - { - if( $type == T_BYFILE ) - { - $serializedTPL = @file( $stpl_file ) or - die( $this->__errorAlert('TemplatePower Error: Can\'t open [ '. $stpl_file .' ]!')); - } - else - { - $serializedTPL = $stpl_file; - } - - $serializedStuff = unserialize( join ('', $serializedTPL) ); - - $this->defBlock = $serializedStuff["defBlock"]; - $this->index = $serializedStuff["index"]; - $this->parent = $serializedStuff["parent"]; - } - - /** - * TemplatePower::__makeContentRoot() - * - * @return - * - * @access private - */ - function __makeContentRoot() - { - $this->content[ TP_ROOTBLOCK ."_0" ][0] = Array( TP_ROOTBLOCK ); - $this->currentBlock = &$this->content[ TP_ROOTBLOCK ."_0" ][0]; - } - - /** - * TemplatePower::__assign() - * - * @param $varname - * @param $value - * @return - * - * @access private - */ - function __assign( $varname, $value) - { - if( sizeof( $regs = explode('.', $varname ) ) == 2 ) //this is faster then preg_match - { - $ind_blockname = $regs[0] .'_'. $this->index[ $regs[0] ]; - - $lastitem = sizeof( $this->content[ $ind_blockname ] ); - - $lastitem > 1 ? $lastitem-- : $lastitem = 0; - - $block = &$this->content[ $ind_blockname ][ $lastitem ]; - $varname = $regs[1]; - } - else - { - $block = &$this->currentBlock; - } - - $block["_V:$varname"] = $value; - - } - - /** - * TemplatePower::__assignGlobal() - * - * @param $varname - * @param $value - * @return - * - * @access private - */ - function __assignGlobal( $varname, $value ) - { - $this->globalvars[ $varname ] = $value; - } - - - /** - * TemplatePower::__outputContent() - * - * @param $blockname - * @return - * - * @access private - */ - function __outputContent( $blockname ) - { - $numrows = sizeof( $this->content[ $blockname ] ); - - for( $i=0; $i < $numrows; $i++) - { - $defblockname = $this->content[ $blockname ][$i][0]; - - for( reset( $this->defBlock[ $defblockname ]); $k = key( $this->defBlock[ $defblockname ]); next( $this->defBlock[ $defblockname ] ) ) - { - if ($k[1] == 'C') - { - print( $this->defBlock[ $defblockname ][$k] ); - } - else - if ($k[1] == 'V') - { - $defValue = $this->defBlock[ $defblockname ][$k]; - - if( !isset( $this->content[ $blockname ][$i][ "_V:". $defValue ] ) ) - { - if( isset( $this->globalvars[ $defValue ] ) ) - { - $value = $this->globalvars[ $defValue ]; - } - else - { - if( $this->showUnAssigned ) - { - //$value = '{'. $this->defBlock[ $defblockname ][$k] .'}'; - $value = '{'. $defValue .'}'; - } - else - { - $value = ''; - } - } - } - else - { - $value = $this->content[ $blockname ][$i][ "_V:". $defValue ]; - } - - print( $value ); - - } - else - if ($k[1] == 'B') - { - if( isset( $this->content[ $blockname ][$i][$k] ) ) - { - $this->__outputContent( $this->content[ $blockname ][$i][$k] ); - } - } - } - } - } - - function __printVars() - { - var_dump($this->defBlock); - print("<br>--------------------<br>"); - var_dump($this->content); - } - - - /********** - public members - ***********/ - - /** - * TemplatePower::serializedBase() - * - * @return - * - * @access public - */ - function serializedBase() - { - $this->serialized = true; - $this->__deSerializeTPL( $this->tpl_base[0], $this->tpl_base[1] ); - } - - /** - * TemplatePower::showUnAssigned() - * - * @param $state - * @return - * - * @access public - */ - function showUnAssigned( $state = true ) - { - $this->showUnAssigned = $state; - } - - /** - * TemplatePower::prepare() - * - * @return - * - * @access public - */ - function prepare() - { - if (!$this->serialized) - { - TemplatePowerParser::__prepare(); - } - - $this->prepared = true; - - $this->index[ TP_ROOTBLOCK ] = 0; - $this->__makeContentRoot(); - } - - /** - * TemplatePower::newBlock() - * - * @param $blockname - * @return - * - * @access public - */ - function newBlock( $blockname ) - { - $parent = &$this->content[ $this->parent[$blockname] .'_'. $this->index[$this->parent[$blockname]] ]; - - $lastitem = sizeof( $parent ); - $lastitem > 1 ? $lastitem-- : $lastitem = 0; - - $ind_blockname = $blockname .'_'. $this->index[ $blockname ]; - - if ( !isset( $parent[ $lastitem ]["_B:$blockname"] )) - { - //ok, there is no block found in the parentblock with the name of {$blockname} - - //so, increase the index counter and create a new {$blockname} block - $this->index[ $blockname ] += 1; - - $ind_blockname = $blockname .'_'. $this->index[ $blockname ]; - - if (!isset( $this->content[ $ind_blockname ] ) ) - { - $this->content[ $ind_blockname ] = Array(); - } - - //tell the parent where his (possible) children are located - $parent[ $lastitem ]["_B:$blockname"] = $ind_blockname; - } - - //now, make a copy of the block defenition - $blocksize = sizeof( $this->content[ $ind_blockname ] ); - - $this->content[ $ind_blockname ][ $blocksize ] = Array( $blockname ); - - //link the current block to the block we just created - $this->currentBlock = &$this->content[ $ind_blockname ][ $blocksize ]; - } - - /** - * TemplatePower::assignGlobal() - * - * @param $varname - * @param $value - * @return - * - * @access public - */ - function assignGlobal( $varname, $value ) - { - if (is_array( $varname )) - { - foreach($varname as $var => $value) - { - $this->__assignGlobal( $var, $value ); - } - } - else - { - $this->__assignGlobal( $varname, $value ); - } - } - - - /** - * TemplatePower::assign() - * - * @param $varname - * @param $value - * @return - * - * @access public - */ - function assign( $varname, $value='' ) - { - if (is_array( $varname )) - { - foreach($varname as $var => $value) - { - $this->__assign( $var, $value ); - } - } - else - { - $this->__assign( $varname, $value ); - } - } - - /** - * TemplatePower::gotoBlock() - * - * @param $blockname - * @return - * - * @access public - */ - function gotoBlock( $blockname ) - { - if ( isset( $this->defBlock[ $blockname ] ) ) - { - $ind_blockname = $blockname .'_'. $this->index[ $blockname ]; - - //get lastitem indexnumber - $lastitem = sizeof( $this->content[ $ind_blockname ] ); - - $lastitem > 1 ? $lastitem-- : $lastitem = 0; - - //link the current block - $this->currentBlock = &$this->content[ $ind_blockname ][ $lastitem ]; - } - } - - /** - * TemplatePower::getVarValue() - * - * @param $varname - * @return - * - * @access public - */ - function getVarValue( $varname ) - { - if( sizeof( $regs = explode('.', $varname ) ) == 2 ) //this is faster then preg_match - { - $ind_blockname = $regs[0] .'_'. $this->index[ $regs[0] ]; - - $lastitem = sizeof( $this->content[ $ind_blockname ] ); - - $lastitem > 1 ? $lastitem-- : $lastitem = 0; - - $block = &$this->content[ $ind_blockname ][ $lastitem ]; - $varname = $regs[1]; - } - else - { - $block = &$this->currentBlock; - } - - return $block["_V:$varname"]; - } - - /** - * TemplatePower::printToScreen() - * - * @return - * - * @access public - */ - function printToScreen() - { - if ($this->prepared) - { - $this->__outputContent( TP_ROOTBLOCK .'_0' ); - } - else - { - $this->__errorAlert('TemplatePower Error: Template isn\'t prepared!'); - } - } - - /** - * TemplatePower::getOutputContent() - * - * @return - * - * @access public - */ - function getOutputContent() - { - ob_start(); - - $this->printToScreen(); - - $content = ob_get_contents(); - - ob_end_clean(); - - return $content; - } -} -?> \ No newline at end of file Modified: trunk/monitor-core/web/cluster_view.php =================================================================== --- trunk/monitor-core/web/cluster_view.php 2010-09-07 23:04:00 UTC (rev 2333) +++ trunk/monitor-core/web/cluster_view.php 2010-09-08 22:29:27 UTC (rev 2334) @@ -1,10 +1,10 @@ <?php /* $Id$ */ -$tpl = new TemplatePower( template("cluster_view.tpl") ); -$tpl->assignInclude("extra", template("cluster_extra.tpl")); -$tpl->prepare(); +$tpl = new Dwoo_Template_File( template("cluster_view.tpl") ); +$data = new Dwoo_Data(); +$data->assign("extra", template("cluster_extra.tpl")); -$tpl->assign("images","./templates/$template_name/images"); +$data->assign("images","./templates/$template_name/images"); $cpu_num = !$showhosts ? $metrics["cpu_num"]['SUM'] : cluster_sum("cpu_num", $metrics); $load_one_sum = !$showhosts ? $metrics["load_one"]['SUM'] : cluster_sum("load_one", $metrics); @@ -26,46 +26,46 @@ } if(isset($cluster['HOSTS_UP'])) { - $tpl->assign("num_nodes", intval($cluster['HOSTS_UP'])); + $data->assign("num_nodes", intval($cluster['HOSTS_UP'])); } else { - $tpl->assign("num_nodes", 0); + $data->assign("num_nodes", 0); } if(isset($cluster['HOSTS_DOWN'])) { - $tpl->assign("num_dead_nodes", intval($cluster['HOSTS_DOWN'])); + $data->assign("num_dead_nodes", intval($cluster['HOSTS_DOWN'])); } else { - $tpl->assign("num_dead_nodes", 0); + $data->assign("num_dead_nodes", 0); } -$tpl->assign("cpu_num", $cpu_num); -$tpl->assign("localtime", date("Y-m-d H:i", $cluster['LOCALTIME'])); +$data->assign("cpu_num", $cpu_num); +$data->assign("localtime", date("Y-m-d H:i", $cluster['LOCALTIME'])); if (!$cpu_num) $cpu_num = 1; $cluster_load15 = sprintf("%.0f", ((double) $load_fifteen_sum / $cpu_num) * 100); $cluster_load5 = sprintf("%.0f", ((double) $load_five_sum / $cpu_num) * 100); $cluster_load1 = sprintf("%.0f", ((double) $load_one_sum / $cpu_num) * 100); -$tpl->assign("cluster_load", "$cluster_load15%, $cluster_load5%, $cluster_load1%"); +$data->assign("cluster_load", "$cluster_load15%, $cluster_load5%, $cluster_load1%"); $avg_cpu_num = find_avg($clustername, "", "cpu_num"); if ($avg_cpu_num == 0) $avg_cpu_num = 1; $cluster_util = sprintf("%.0f", ((double) find_avg($clustername, "", "load_one") / $avg_cpu_num ) * 100); -$tpl->assign("cluster_util", "$cluster_util%"); +$data->assign("cluster_util", "$cluster_util%"); $cluster_url=rawurlencode($clustername); -$tpl->assign("cluster", $clustername); +$data->assign("cluster", $clustername); # # Summary graphs # $graph_args = "c=$cluster_url&$get_metric_string&st=$cluster[LOCALTIME]"; -$tpl->assign("graph_args", $graph_args); +$data->assign("graph_args", $graph_args); if (!isset($optional_graphs)) $optional_graphs = array(); +$optional_graphs_data = array(); foreach ($optional_graphs as $g) { - $tpl->newBlock('optional_graphs'); - $tpl->assign('name',$g); - $tpl->assign('graph_args',$graph_args); - $tpl->gotoBlock('_ROOT'); + $optional_graphs_data[$g]['name'] = $g; + $optional_graphs_data[$g]['graph_args'] = $graph_args; } +$data->assign('optional_graphs_data', $optional_graphs_data); # # Correctly handle *_report cases and blank (" ") units @@ -79,11 +79,18 @@ else { $units = ""; } -$tpl->assign("metric","$metricname $units"); -$tpl->assign("sort", $sort); -$tpl->assign("range", $range); -$tpl->assign("checked$showhosts", "checked"); +$data->assign("metric","$metricname $units"); +$data->assign("sort", $sort); +$data->assign("range", $range); +$showhosts_levels = array( + 2 => array('checked'=>'', 'name'=>'Auto'), + 1 => array('checked'=>'', 'name'=>'Same'), + 0 => array('checked'=>'', 'name'=>'None'), +); +$showhosts_levels[$showhosts]['checked'] = 'checked'; +$data->assign("showhosts_levels", $showhosts_levels); + $sorted_hosts = array(); $down_hosts = array(); $percent_hosts = array(); @@ -138,13 +145,13 @@ $name_url = rawurlencode($name); $pie_args .= "&$name_url=$n,$color"; } - $tpl->assign("pie_args", $pie_args); + $data->assign("pie_args", $pie_args); # Host columns menu defined in header.php - $tpl->newBlock('columns_size_dropdown'); - $tpl->assign("cols_menu", $cols_menu); - $tpl->assign("size_menu", $size_menu); - $tpl->newBlock('node_legend'); + $data->assign("columns_size_dropdown", 1); + $data->assign("cols_menu", $cols_menu); + $data->assign("size_menu", $size_menu); + $data->assign("node_legend", 1); } else { @@ -155,12 +162,12 @@ $down_color = $load_colors["down"]; $pie_args .= "&Up=$cluster[HOSTS_UP],$up_color"; $pie_args .= "&Down=$cluster[HOSTS_DOWN],$down_color"; - $tpl->assign("pie_args", $pie_args); + $data->assign("pie_args", $pie_args); } # No reason to go on if we have no up hosts. if (!is_array($hosts_up) or !$showhosts) { - $tpl->printToScreen(); + $dwoo->output($tpl, $data); return; } @@ -190,7 +197,6 @@ foreach ( $sorted_hosts as $host => $value ) { - $tpl->newBlock ("sorted_list"); $host_url = rawurlencode($host); $host_link="\"?c=$cluster_url&h=$host_url&$get_metric_string\""; @@ -274,11 +280,14 @@ $cell .= $pre . "network_report" . $post; } - $tpl->assign("metric_image", $cell); - if (! ($i++ % $hostcols) ) - $tpl->assign ("br", "</tr><tr>"); + $sorted_list[$host]["metric_image"] = $cell; + if (! ($i++ % $hostcols) ) { + $sorted_list[$host]["br"] = "</tr><tr>"; + } else { + $sorted_list[$host]["br"] = ""; + } } -$tpl->printToScreen(); +$data->assign("sorted_list", $sorted_list); +$dwoo->output($tpl, $data); ?> - Modified: trunk/monitor-core/web/conf.php.in =================================================================== --- trunk/monitor-core/web/conf.php.in 2010-09-07 23:04:00 UTC (rev 2333) +++ trunk/monitor-core/web/conf.php.in 2010-09-08 22:29:27 UTC (rev 2334) @@ -21,6 +21,9 @@ $gmetad_root = "@varstatedir@/ganglia"; $rrds = "$gmetad_root/rrds"; +# Where Dwoo (PHP templating engine) store compiled templates +$dwoo_compiled_dir = "$gmetad_root/dwoo"; + # Where to find filter configuration files, if not set filtering # will be disabled #$filter_dir = "$gmetad_root/filters"; Modified: trunk/monitor-core/web/footer.php =================================================================== --- trunk/monitor-core/web/footer.php 2010-09-07 23:04:00 UTC (rev 2333) +++ trunk/monitor-core/web/footer.php 2010-09-08 22:29:27 UTC (rev 2334) @@ -1,24 +1,24 @@ <?php /* $Id$ */ -$tpl = new TemplatePower( template("footer.tpl") ); -$tpl->prepare(); -$tpl->assign("webfrontend-version",$version["webfrontend"]); +$tpl = new Dwoo_Template_File( template("footer.tpl") ); +$data = new Dwoo_Data(); +$data->assign("webfrontend_version",$version["webfrontend"]); if ($version["rrdtool"]) { - $tpl->assign("rrdtool-version",$version["rrdtool"]); + $data->assign("rrdtool_version",$version["rrdtool"]); } -$tpl->assign("templatepower-version", $tpl->version); -if ($version["gmetad"]) { - $tpl->assign("webbackend-component", "gmetad"); - $tpl->assign("webbackend-version",$version["gmetad"]); +$backend_components = array("gmetad", "gmetad-python", "gmond"); + +foreach ($backend_components as $backend) { + if (isset($version[$backend])) { + $data->assign("webbackend_component", $backend); + $data->assign("webbackend_version",$version[$backend]); + break; + } } -elseif ($version["gmond"]) { - $tpl->assign("webbackend-component", "gmond"); - $tpl->assign("webbackend-version", $version["gmond"]); -} -$tpl->assign("parsetime", sprintf("%.4f", $parsetime) . "s"); +$data->assign("parsetime", sprintf("%.4f", $parsetime) . "s"); -$tpl->printToScreen(); +$dwoo->output($tpl, $data); ?> Modified: trunk/monitor-core/web/grid_tree.php =================================================================== --- trunk/monitor-core/web/grid_tree.php 2010-09-07 23:04:00 UTC (rev 2333) +++ trunk/monitor-core/web/grid_tree.php 2010-09-08 22:29:27 UTC (rev 2334) @@ -1,9 +1,9 @@ <?php /* $Id$ */ -$tpl = new TemplatePower( template("grid_tree.tpl") ); -$tpl->prepare(); +$tpl = new Dwoo_Template_File( template("grid_tree.tpl") ); +$data = new Dwoo_Data(); -$tpl->assign("self", "$self"); +$data->assign("self", "$self"); # Not as complicated as before. No depth-first-search, and # we only show our immediate children. @@ -14,7 +14,7 @@ array_pop($ancestors); if (count($ancestors)) { - $tpl->newBlock("parentgrid"); + $data->assign("parentgrid", 1); $parentgridtable = ""; $parentgridstack = array(); @@ -26,8 +26,7 @@ "<a href=\"$link?t=yes&gw=back&gs=$parentgridstack_url\">$name</a></td></tr>\n"; } - $tpl->assign("parents", $parentgridtable); - $tpl->gotoBlock("_ROOT"); + $data->assign("parents", $parentgridtable); } $gridtable=""; @@ -35,7 +34,7 @@ # Publish our children. if ($n = count($grid)) { - $tpl->assign("n", $n); + $data->assign("n", $n); foreach ($grid as $source => $attrs) { if ($source == $self) continue; @@ -56,9 +55,8 @@ $gridtable .= "</tr></table>"; } -$tpl->assign("children", $gridtable); +$data->assign("children", $gridtable); +$dwoo->output($tpl, $data); -$tpl->printToScreen(); - ?> Modified: trunk/monitor-core/web/header.php =================================================================== --- trunk/monitor-core/web/header.php 2010-09-07 23:04:00 UTC (rev 2333) +++ trunk/monitor-core/web/header.php 2010-09-08 22:29:27 UTC (rev 2334) @@ -68,21 +68,21 @@ list($parentgrid, $parentlink) = explode("@", $gridstack[count($gridstack)-2]); } -$tpl = new TemplatePower( template("$header.tpl") ); -$tpl->prepare(); -$tpl->assign("page_title", $title); -$tpl->assign("refresh", $default_refresh); +$tpl = new Dwoo_Template_File( template("$header.tpl") ); +$data = new Dwoo_Data(); +$data->assign("page_title", $title); +$data->assign("refresh", $default_refresh); # Templated Logo image -$tpl->assign("images","./templates/$template_name/images"); +$data->assign("images","./templates/$template_name/images"); -$tpl->assign( "date", date("r")); +$data->assign( "date", date("r")); # The page to go to when "Get Fresh Data" is pressed. if (isset($page)) - $tpl->assign("page",$page); + $data->assign("page",$page); else - $tpl->assign("page","./"); + $data->assign("page","./"); # # Used when making graphs via graph.php. Included in most URLs @@ -101,27 +101,30 @@ $node_url=rawurlencode($hostname); # Make some information available to templates. -$tpl->assign("cluster_url", $cluster_url); +$data->assign("cluster_url", $cluster_url); +$alt_view = ""; if ($context=="cluster") { - $tpl->assign("alt_view", "<a href=\"./?p=2&c=$cluster_url\">Physical View</a>"); + $alt_view = "<a href=\"./?p=2&c=$cluster_url\">Physical View</a>"; } elseif ($context=="physical") { - $tpl->assign("alt_view", "<a href=\"./?c=$cluster_url\">Full View</a>"); + $alt_view = "<a href=\"./?c=$cluster_url\">Full View</a>"; } elseif ($context=="node") { - $tpl->assign("alt_view", - "<a href=\"./?c=$cluster_url&h=$node_url&$get_metric_string\">Host View</a>"); + $alt_view = + "<a href=\"./?c=$cluster_url&h=$node_url&$get_metric_string\">Host View</a>"; } elseif ($context=="host") { - $tpl->assign("alt_view", - "<a href=\"./?p=2&c=$cluster_url&h=$node_url\">Node View</a>"); + $alt_view = + "<a href=\"./?p=2&c=$cluster_url&h=$node_url\">Node View</a>"; } +$data->assign("alt_view", $alt_view); + # Build the node_menu $node_menu = ""; @@ -216,7 +219,7 @@ $node_menu .= hiddenvar("js", $jobstart); $node_menu .= hiddenvar("jr", $jobrange); -$tpl->assign("node_menu", $node_menu); +$data->assign("node_menu", $node_menu); //////////////////// Build the metric menu //////////////////////////////////// @@ -238,6 +241,7 @@ # # If there are graphs present, show ranges. # +$range_menu = ""; if (!$physical) { $context_ranges = array_keys( $time_ranges ); if ($jobrange) @@ -256,12 +260,14 @@ } $range_menu .= "</SELECT>\n"; - $tpl->assign("range_menu", $range_menu); } +$data->assign("range_menu", $range_menu); + # # Only show metric list if we have some and are in cluster context. # +$metric_menu = ""; if (is_array($context_metrics) and $context == "cluster") { $metric_menu = "<B>Metric</B> " @@ -278,13 +284,14 @@ } $metric_menu .= "</SELECT>\n"; - $tpl->assign("metric_menu", $metric_menu ); } +$data->assign("metric_menu", $metric_menu ); # # Show sort order if there is more than one physical machine present. # +$sort_menu = ""; if ($context == "meta" or $context == "cluster") { $context_sorts[]="ascending"; @@ -312,8 +319,8 @@ } $sort_menu .= "</SELECT>\n"; - $tpl->assign("sort_menu", $sort_menu ); } +$data->assign("sort_menu", $sort_menu ); if ($context == "physical" or $context == "cluster" or $context == 'host' ) { @@ -360,6 +367,9 @@ } $metric_cols_menu .= "</SELECT>\n"; } + +$custom_time = ""; + if ($context == "meta" or $context == "cluster" or $context == "host") { $examples = "Feb 27 2007 00:00, 2/27/2007, 27.2.2007, now -1 week," @@ -373,16 +383,21 @@ $custom_time .= "><input type=\"submit\" value=\"Go\">\n"; $custom_time .= "<input type=\"button\" value=\"Clear\" onclick=\"ganglia_submit(1)\">\n"; $custom_time .= $calendar; - $tpl->assign("custom_time", $custom_time); - $tpl->assign("custom_time_head", $calendar_head); + $data->assign("custom_time_head", $calendar_head); } +else + { + $data->assign("custom_time_head", ""); + } +$data->assign("custom_time", $custom_time); + # Make sure that no data is cached.. header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); # Date in the past header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); # always modified header ("Cache-Control: no-cache, must-revalidate"); # HTTP/1.1 header ("Pragma: no-cache"); # HTTP/1.0 -$tpl->printToScreen(); +$dwoo->output($tpl, $data); ?> Modified: trunk/monitor-core/web/host_view.php =================================================================== --- trunk/monitor-core/web/host_view.php 2010-09-07 23:04:00 UTC (rev 2333) +++ trunk/monitor-core/web/host_view.php 2010-09-08 22:29:27 UTC (rev 2334) @@ -1,27 +1,27 @@ <?php /* $Id$ */ -$tpl = new TemplatePower( template("host_view.tpl") ); -$tpl->assignInclude("extra", template("host_extra.tpl")); -$tpl->prepare(); +$tpl = new Dwoo_Template_File( template("host_view.tpl") ); +$data = new Dwoo_Data(); +$data->assign("extra", template("host_extra.tpl")); -$tpl->assign("cluster", $clustername); -$tpl->assign("host", $hostname); -$tpl->assign("node_image", node_image($metrics)); -$tpl->assign("sort",$sort); -$tpl->assign("range",$range); +$data->assign("cluster", $clustername); +$data->assign("host", $hostname); +$data->assign("node_image", node_image($metrics)); +$data->assign("sort",$sort); +$data->assign("range",$range); if($hosts_up) - $tpl->assign("node_msg", "This host is up and running."); + $data->assign("node_msg", "This host is up and running."); else - $tpl->assign("node_msg", "This host is down."); + $data->assign("node_msg", "This host is down."); $cluster_url=rawurlencode($clustername); -$tpl->assign("cluster_url", $cluster_url); -$tpl->assign("graphargs", "h=$hostname&$get_metric_string&st=$cluster[LOCALTIME]"); +$data->assign("cluster_url", $cluster_url); +$data->assign("graphargs", "h=$hostname&$get_metric_string&st=$cluster[LOCALTIME]"); # For the node view link. -$tpl->assign("node_view","./?p=2&c=$cluster_url&h=$hostname"); +$data->assign("node_view","./?p=2&c=$cluster_url&h=$hostname"); # No reason to go on if this node is down. if ($hosts_down) @@ -30,10 +30,10 @@ return; } -$tpl->assign("ip", $hosts_up['IP']); -$tpl->newBlock('columns_dropdown'); -$tpl->assign("metric_cols_menu", $metric_cols_menu); -$tpl->assign("size_menu", $size_menu); +$data->assign("ip", $hosts_up['IP']); +$data->assign('columns_dropdown', 1); +$data->assign("metric_cols_menu", $metric_cols_menu); +$data->assign("size_menu", $size_menu); $g_metrics_group = array(); foreach ($metrics as $name => $v) @@ -118,60 +118,63 @@ # Show string metrics if (is_array($s_metrics)) { + $s_metrics_data = array(); ksort($s_metrics); foreach ($s_metrics as $name => $v ) { # RFM - If units aren't defined for metric, make it be the empty string ! array_key_exists('UNITS', $v) and $v['UNITS'] = ""; - $tpl->newBlock("string_metric_info"); if (isset($v['TITLE'])) { - $tpl->assign("name", $v['TITLE']); + $s_metrics_data[$name]["name"] = $v['TITLE']; } else { - $tpl->assign("name", $name); + $s_metrics_data[$name]["name"] = $name; } if( $v['TYPE']=="timestamp" or (isset($always_timestamp[$name]) and $always_timestamp[$name])) { - $tpl->assign("value", date("r", $v['VAL'])); + $s_metrics_data[$name]["value"] = date("r", $v['VAL']); } else { - $tpl->assign("value", $v['VAL'] . " " . $v['UNITS']); + $s_metrics_data[$name]["value"] = $v['VAL'] . " " . $v['UNITS']; } } } +$data->assign("s_metrics_data", $s_metrics_data); # Add the average node utilization to the time & string metrics section: $avg_cpu_num = find_avg($clustername, $hostname, "cpu_num"); if ($avg_cpu_num == 0) $avg_cpu_num = 1; $cluster_util = sprintf("%.0f", ((double) find_avg($clustername, $hostname, "load_one") / $avg_cpu_num ) * 100); -$tpl->assign("name", "Avg Utilization (last $range)"); -$tpl->assign("value", "$cluster_util%"); +$data->assign("name", "Avg Utilization (last $range)"); +$data->assign("value", "$cluster_util%"); # Show constant metrics. if (isset($c_metrics) and is_array($c_metrics)) { + $c_metrics_data = array(); ksort($c_metrics); foreach ($c_metrics as $name => $v ) { - $tpl->newBlock("const_metric_info"); if (isset($v['TITLE'])) { - $tpl->assign("name", $v['TITLE']); + $c_metrics_data[$name]["name"] = $v['TITLE']; } else { - $tpl->assign("name", $name); + $c_metrics_data[$name]["name"] = $name; } - $tpl->assign("value", "$v[VAL] $v[UNITS]"); + $c_metrics_data[$name]["value"] = "$v[VAL] $v[UNITS]"; } } +$data->assign("c_metrics_data", $c_metrics_data); # Show graphs. if ( is_array($g_metrics) && is_array($g_metrics_group) ) { + $g_metrics_group_data = array(); ksort($g_metrics_group); foreach ( $g_metrics_group as $group => $metric_array ) @@ -179,27 +182,26 @@ if ( $group == "" ) { $group = "no_group"; } - $tpl->newBlock("vol_group_info"); - $tpl->assign("group", $group); $c = count($metric_array); - $tpl->assign("group_metric_count", $c); + $g_metrics_group_data[$group]["group_metric_count"] = $c; $i = 0; ksort($g_metrics); foreach ( $g_metrics as $name => $v ) { if ( in_array($name, $metric_array) ) { - $tpl->newBlock("vol_metric_info"); - $tpl->assign("graphargs", $v['graph']); - $tpl->assign("alt", "$hostname $name"); + $g_metrics_group_data[$group]["metrics"][$name]["graphargs"] = $v['graph']; + $g_metrics_group_data[$group]["metrics"][$name]["alt"] = "$hostname $name"; + $g_metrics_group_data[$group]["metrics"][$name]["desc"] = ""; if (isset($v['description'])) - $tpl->assign("desc", $v['description']); + $g_metrics_group_data[$group]["metrics"][$name]["desc"] = $v['description']; + $g_metrics_group_data[$group]["metrics"][$name]["new_row"] = ""; if ( !(++$i % $metriccols) && ($i != $c) ) - $tpl->assign("new_row", "</TR><TR>"); + $g_metrics_group_data[$group]["metrics"][$name]["new_row"] = "</TR><TR>"; } } } } - -$tpl->printToScreen(); +$data->assign("g_metrics_group_data", $g_metrics_group_data); +$dwoo->output($tpl, $data); ?> Modified: trunk/monitor-core/web/index.php =================================================================== --- trunk/monitor-core/web/index.php 2010-09-07 23:04:00 UTC (rev 2333) +++ trunk/monitor-core/web/index.php 2010-09-08 22:29:27 UTC (rev 2334) @@ -6,7 +6,20 @@ include_once "./get_context.php"; include_once "./ganglia.php"; include_once "./get_ganglia.php"; -include_once "./class.TemplatePower.inc.php"; +include_once "./dwoo/dwooAutoload.php"; + +try + { + $dwoo = new Dwoo($dwoo_compiled_dir); + } +catch (Exception $e) + { + global $dwoo_compiled_dir; + print "<H4>There was an error initializing the Dwoo PHP Templating Engine: ". + $e->getMessage() . "<br><br>The compile directory should be owned and writable by the apache user.</H4>"; + exit; + } + # Usefull for addons. $GHOME = "."; Modified: trunk/monitor-core/web/meta_view.php =================================================================== --- trunk/monitor-core/web/meta_view.php 2010-09-07 23:04:00 UTC (rev 2333) +++ trunk/monitor-core/web/meta_view.php 2010-09-08 22:29:27 UTC (rev 2334) @@ -1,26 +1,15 @@ <?php /* $Id$ */ -$tpl = new TemplatePower( template("meta_view.tpl") ); -$tpl->prepare(); +$tpl = new Dwoo_Template_File( template("meta_view.tpl") ); +$data = new Dwoo_Data(); discover_filters(); -foreach ($filter_defs as $filter_def) -{ - $filter_shortname = $filter_def["shortname"]; - $tpl->newBlock("filter_block"); - $tpl->assign("filter_shortname", $filter_shortname); - $tpl->assign("filter_name", $filter_def["name"]); - foreach ($filter_def["choices"] as $choice) - { - $tpl->newBlock("filter_choice_block"); - $tpl->assign("filter_choice", $choice); - if($choose_filter[$filter_shortname] == $choice) - $tpl->assign("selected", "selected"); - } +if ( !empty($filter_defs) ) { + $data->assign("filters", $filter_defs); + $data->assign("choose_filter", $choose_filter); } - # Find the private clusters. But no one is emabarrassed in the # control room (public only!). if ( $context != "control" ) { @@ -79,6 +68,8 @@ asort($sorted_sources); } +$sources = array(); + # Display the sources. The first is ourself, the rest are our children. foreach ( $sorted_sources as $source => $val ) { @@ -139,70 +130,64 @@ if ($avg_cpu_num == 0) $avg_cpu_num = 1; $cluster_util = sprintf("%.0f", ((double) find_avg($clusname, "", "load_one") / $avg_cpu_num ) * 100); - $tpl->newBlock ("source_info"); - $tpl->assign("name", $name ); - $tpl->assign("cpu_num", $m["cpu_num"]['SUM']); - $tpl->assign("url", $url); - $tpl->assign("class", $class); - if (isset($num_sources)) - $tpl->assign("Sources: $num_sources"); + $sources[$source]["name"] = $name; + $sources[$source]["cpu_num"] = $m["cpu_num"]['SUM']; + $sources[$source]["url"] = $url; + $sources[$source]["class"] = $class; + # Initialize some variables for the $sources array to be past to the template since private sources + # may not have these defined + $sources[$source]["alt_view"] = ""; + $sources[$source]["cluster_load"] = ""; + $sources[$source]["cluster_util"] = ""; + $sources[$source]["num_dead_nodes"] = ""; + $sources[$source]["range"] = ""; + $sources[$source]["graph_url"] = ""; + $sources[$source]["base64img"] = ""; + + if ($localtime) + $sources[$source]["localtime"] = "<font size=\"-1\">Localtime:</font><br> " + . date("Y-m-d H:i", $localtime); + # I dont like this either, but we need to have private clusters because some # users are skittish about publishing the load info. if (!isset($private[$source]) or !$private[$source]) { - $tpl->assign("alt_view", "<FONT SIZE=\"-2\">$alt_url</FONT>"); - # Each block has a different namespace, so we need to redefine variables. - $tpl->newBlock("public"); - if ($localtime) - $tpl->assign("localtime", "<font size=\"-1\">Localtime:</font><br> " - . date("Y-m-d H:i", $localtime) ); + $sources[$source]["alt_view"] = "<FONT SIZE=\"-2\">$alt_url</FONT>"; + $sources[$source]["public"] = 1; if ($cluster_load) - $tpl->assign("cluster_load", "<font size=\"-1\">Current Load Avg (15, 5, 1m):</font>" - ."<br> <b>$cluster_load</b>"); + $sources[$source]["cluster_load"] = "<font size=\"-1\">Current Load Avg (15, 5, 1m):</font>" + ."<br> <b>$cluster_load</b>"; if (isset($cluster_util)) - $tpl->assign("cluster_util", "<font size=\"-1\">Avg Utilization (last $range):</font>" - ."<br> <b>$cluster_util%</b>"); - $tpl->assign("cpu_num", $m["cpu_num"]['SUM']); - $tpl->assign("num_nodes", $grid[$source]["HOSTS_UP"] ); - $tpl->assign("num_dead_nodes", $grid[$source]["HOSTS_DOWN"] ); - $tpl->assign("range", $range); - $tpl->assign("name", $name ); - $tpl->assign("url", $url); - $tpl->assign("graph_url", $graph_url); + $sources[$source]["cluster_util"] = "<font size=\"-1\">Avg Utilization (last $range):</font>" + ."<br> <b>$cluster_util%</b>"; + $sources[$source]["num_nodes"] = $grid[$source]["HOSTS_UP"]; + $sources[$source]["num_dead_nodes"] = $grid[$source]["HOSTS_DOWN"]; + $sources[$source]["range"] = $range; + $sources[$source]["graph_url"] = $graph_url; if(isset($base64img)) { - $tpl->assign("base64img", $base64img); + $sources[$source]["base64img"] = $base64img; } if ( $source == $self ) { - $tpl->newBlock("self_summary_graphs"); - $tpl->assign("range", $range); - $tpl->assign("name", $name ); - $tpl->assign("url", $url); - $tpl->assign("graph_url", $graph_url); + $sources[$source]["self_summary_graphs"] = 1; } else { - $tpl->newBlock("summary_graphs"); - $tpl->assign("range", $range); - $tpl->assign("name", $name ); - $tpl->assign("url", $url); - $tpl->assign("graph_url", $graph_url); + $sources[$source]["summary_graphs"] = 1; } - } else { - $tpl->newBlock("private"); - $tpl->assign("num_nodes", $grid[$source]["HOSTS_UP"] + $grid[$source]["HOSTS_DOWN"] ); - $tpl->assign("cpu_num", $m["cpu_num"]['SUM']); - if ($localtime) - $tpl->assign("localtime", "<font size=\"-1\">Localtime:</font><br> " - . date("Y-m-d H:i",$localtime)); + $sources[$source]["private"] = 1; + $sources[$source]["num_nodes"] = $grid[$source]["HOSTS_UP"] + $grid[$source]["HOSTS_DOWN"]; } } +$data->assign("sources", $sources); +$snap_rows = array(); + # Show load images. if ($show_meta_snapshot=="yes") { - $tpl->newBlock("show_snapshot"); - $tpl->assign("self", "$self $meta_designator"); + $data->assign("show_snapshot", 1); + $data->assign("self", "$self $meta_designator"); foreach ($sorted_sources as $c=>$value) { if ($c==$self) continue; @@ -236,7 +221,6 @@ { $snapnames = ""; $snapimgs = ""; - $tpl->newBlock("snap_row"); foreach(range(0, $cols-1) as $j) { $k = $i + $j; @@ -253,11 +237,12 @@ } $snapimgs .= "<img src=\"$Images[$k]\" alt=\"$names[$k]\" border=0 align=top></a></td>\n"; } - $tpl->assign("names", $snapnames); - $tpl->assign("images", $snapimgs); + $snap_rows[$i]["names"] = $snapnames; + $snap_rows[$i]["images"] = $snapimgs; $i += $cols; } + $data->assign("snap_rows", $snap_rows); } -$tpl->printToScreen(); +$dwoo->output($tpl, $data); ?> Modified: trunk/monitor-core/web/physical_view.php =================================================================== --- trunk/monitor-core/web/physical_view.php 2010-09-07 23:04:00 UTC (rev 2333) +++ trunk/monitor-core/web/physical_view.php 2010-09-08 22:29:27 UTC (rev 2334) @@ -13,17 +13,19 @@ # ($metrics, $clusters, $hosts) are set, and header.php # already called. -$tpl = new TemplatePower( template("physical_view.tpl") ); -$tpl->prepare(); -$tpl->assign("cluster",$clustername); +$tpl = new Dwoo_Template_File( template("physical_view.tpl") ); +$data = new Dwoo_Data(); +$data->assign("cluster",$clustername); $cluster_url=rawurlencode($clustername); -$tpl->assign("cluster_url",$cluster_url); +$data->assign("cluster_url",$cluster_url); +$verbosity_levels = array('3' => "", '2' => "", '1' => ""); + # Assign the verbosity level. Can take the value of the 'p' CGI variable. $verbose = $physical ? $physical : 2; -# The name of the variable changes based on the level. Nice. -$tpl->assign("checked$verbose","checked"); +$verbosity_levels[$verbose] = "checked"; +$data->assign("verbosity_levels", $verbosity_levels); # # Give the capacities of this cluster: total #CPUs, Memory, Disk, etc. @@ -34,27 +36,29 @@ $Disk = cluster_sum("disk_total", $metrics); $Disk = $Disk ? sprintf("%.1f GB", $Disk) : "Unknown"; list($most_full, $most_full_host) = cluster_min("part_max_used", $metrics); -$tpl->assign("CPUs", $CPUs); -$tpl->assign("Memory... [truncated message content] |