/**
  * Public function that creates a single instance
  */
 public static function getInstance()
 {
     if (!isset(self::$_instance)) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 /**
  * Handle drawing item sizes list
  *
  * @param array $tag_params
  * @param array $chilren
  */
 public function tag_SizeList($tag_params, $children)
 {
     $manager = ShopItemSizesManager::getInstance();
     $conditions = array();
     $selected = isset($tag_params['selected']) ? fix_id($tag_params['selected']) : -1;
     // get items
     $items = $manager->getItems($manager->getFieldNames(), $conditions);
     // create template
     $template = $this->_parent->loadTemplate($tag_params, 'size_list_item.xml');
     $template->setMappedModule($this->name);
     // parse template
     if (count($items) > 0) {
         foreach ($items as $item) {
             $params = array('id' => $item->id, 'name' => $item->name, 'selected' => $selected, 'item_delete' => url_MakeHyperlink($this->_parent->getLanguageConstant('delete'), window_Open('shop_item_size_delete', 400, $this->_parent->getLanguageConstant('title_size_delete'), false, false, url_Make('transfer_control', 'backend_module', array('module', $this->name), array('backend_action', 'sizes'), array('sub_action', 'delete'), array('id', $item->id)))), 'item_values' => url_MakeHyperlink($this->_parent->getLanguageConstant('values'), window_Open('shop_item_size_values', 400, $this->_parent->getLanguageConstant('title_size_values'), true, true, url_Make('transfer_control', 'backend_module', array('module', $this->name), array('backend_action', 'sizes'), array('sub_action', 'values_show'), array('definition', $item->id)))));
             $template->restoreXML();
             $template->setLocalParams($params);
             $template->parse();
         }
     }
 }