TemplateEngine = new TemplateEngine($config); $this->config = $config; $str = '{ "PuppetModule": { "options": { "dependency": { "description": "Modules that are needed to be installed for this module", "required": false, "value": [ ], "syntax": "^[a-zA-Z0-9_+\\\\./-]+(\\\\[[<=>]+[a-zA-Z0-9_+\\\\.-]+\\\\])?$", "type": "list", "display": "Module dependencies" }, "version": { "description": "The version of the puppet module", "required": true, "value": "", "syntax": "^[a-zA-Z0-9_+.-]+$", "type": "string", "display": "Module version" }, "name": { "description": "The name of the puppet module", "required": true, "value": "", "syntax": "^[a-zA-Z0-9_+.-]+$", "type": "string", "display": "Module name" }, "description": { "required": false, "type": "string", "display": "Module description", "value": "", "description": "Text briefly describing the module contents" } }, "container": [ "PuppetManifest", "PuppetFile", "PuppetTemplate" ], "name": "Module", "description": "Puppet module" }, "root": { "options": { }, "container": [ "PuppetModule" ], "name": "Root", "description": "The root item" } }'; $this->itemConfig = json_decode($str, TRUE); $this->TemplateEngine->load($this->itemConfig); // Check for the root object if(!isset($this->itemConfig['root'])){ echo 'No root!'; } // Set current item to 'root'. $this->currentItemDescriptor = &$this->itemConfig['root']; $this->currentItemValues = array(); $this->currentItem = array(); $this->addItem('root','root',array()); $this->setCurrentItem('root'); $this->addItem('PuppetModule','test1', array( 'version' => 1, 'name' => 'test1', 'description' => 'Test Module') ); $this->addItem('PuppetModule','test2', array( 'version' => 1, 'name' => 'test2', 'description' => 'Test Module') ); $this->setCurrentItem('test1'); $this->addItem('PuppetTemplate','temp1',array('name' => 'temp1', 'file' => 'kekse.tpl')); $this->setCurrentItem('root'); } function renderNavigator($array = NULL) { $array = ($array == NULL)? $this->currentItemValues['root']: $array; $str = "