public function action()
	{
		$user 		= $this->hasAuthorative();
		$xml 		= $this->getXML();
		$xml		= $this->makeMenu($xml);
		$siteXML 	= $this->_generic->getSiteXML();
		$langs 		= $this->_lang->getSiteLangs();
		
		$errors = array();
		
		if ($this->_http->getParam("reload") == "true")
		{
			$alias = SLS_String::trimSlashesFromString($this->_http->getParam("alias"));
			$domain = SLS_String::trimSlashesFromString($this->_http->getParam("domain"));
			$lang = SLS_String::trimSlashesFromString($this->_http->getParam("lang"));
			$cdn = $this->_http->getParam("cdn");
			if ($cdn != 'true') 
				$cdn = 'false';
			if (SLS_String::endsWith(trim($domain),"/"))
				$domain = SLS_String::substrBeforeLastDelimiter(trim($domain),"/");
			
			$result = $siteXML->getTag("//configs/domainName/domain[@alias='".$alias."']");
			
			if (empty($alias))
				array_push($errors,"You must choose an alias for your domain name.");
			else if (!empty($result))
				array_push($errors,"This alias is already used by another domain, please choose another.");
			if (empty($domain))
				array_push($errors,"You must fill your domain name.");			
			else if (!SLS_String::isValidUrl("http://".$domain))
				array_push($errors,"This domain is not a valid url.");
				
			if (empty($errors))
			{
				$str_xml = '<domain alias="'.$alias.'" js="true" isSecure="false" cdn="'.$cdn.'" lang="'.$lang.'">'.
								'<![CDATA['.$domain.']]>'.
							'</domain>';
				$siteXML->appendXMLNode("//configs/domainName",$str_xml);
				$siteXML->saveXML($this->_generic->getPathConfig("configSecure")."site.xml");
				$this->_generic->forward("SLS_Bo","GlobalSettings");
			}
			else
			{
				$xml->startTag("domain");
					$xml->addFullTag("alias",$alias,true);
					$xml->addFullTag("domain",$domain,true);
					$xml->addFullTag("cdn",$cdn,true);
					$xml->addFullTag("lang",$lang,true);
				$xml->endTag("domain");
			}
		}
		
		$langsBinded = $siteXML->getTags("//configs/domainName/domain/@lang");		
		foreach($langs as $lang)
			if (in_array($lang,$langsBinded))
				unset($langs[array_shift(array_keys($langs,$lang))]);
		$xml->startTag("langs");		
		foreach($langs as $lang)
			$xml->addFullTag("lang",$lang,true);
		$xml->endTag("langs");
		
		$xml->startTag("errors");
		foreach($errors as $error)
			$xml->addFullTag("error",$error,true);
		$xml->endTag("errors");
		
		$this->saveXML($xml);		
	}
	/**
	 * Format recordsets
	 * 
	 * @param SLS_XMLToolBox $xml
	 * @param array PDO $recordsets
	 * @param string $fkRecursiveExists
	 * @return SLS_XMLToolBox $xml modified
	 */
	public function formatRecordsets($xml,$recordsets,$fkRecursiveExists="")
	{	
		$xml->startTag("entities");
		for($i=0 ; $i<$count=count($recordsets) ; $i++)
		{
			$xml->startTag("entity",array("gap" => $this->_gap));
			foreach($recordsets[$i] as $key => $value)
			{	
				if (array_key_exists($key,$this->_columns) && ($this->_columns[$key]["list"] == "true" || $key == $this->_object->getPrimaryKey()))
				{
					$hashExists = $this->_xmlFilter->getTag("//sls_configs/entry[@table='".strtolower($this->_db_alias."_".$this->_columns[$key]["table"])."' and @column='".$key."' and @filter='hash']/@hash");
					
					if (!empty($this->_columns[$key]["specific_type"]))
					{
						switch($this->_columns[$key]["specific_type"])
						{
							case "email":
								if (SLS_String::validateEmail($value))
									$value = "<a href='mailto:".$value."' target='_blank' class='sls-bo-color-text'>".$value."</a>";
								break;
							case "url":
								if (SLS_String::isValidUrl($value))
									$value = "<a href='".$value."' target='_blank' class='sls-bo-color-text'>".SLS_String::substrAfterLastDelimiter($value,"://")."</a>";
								break;
							case "file";
								switch($this->_columns[$key]["specific_type_extended"])
								{
									case "all":
										if (!empty($value) && file_exists($this->_generic->getPathConfig("files").$value))
											$value = "<a href='".SLS_String::getUrlFile($value)."' target='_blank' class='sls-bo-color-text'>".SLS_String::substrAfterLastDelimiter($value,"/")."</a>";
										break;
									case "img":
										if (!empty($value) && file_exists($this->_generic->getPathConfig("files").$value))
											$value = "<a href='".SLS_String::getUrlFile($value)."' target='_blank'><img class='sls-image' sls-image-src='".((!empty($this->_columns[$key]["image_thumb"])) ? SLS_String::getUrlFileImg($value,$this->_columns[$key]["image_thumb"]) : SLS_String::getUrlFile($value))."' alt='".SLS_String::substrAfterLastDelimiter($value,"/")."' title='".SLS_String::substrAfterLastDelimiter($value,"/")."' /></a>";
										break;
								}
								break;
							case "color":
								$rgb = SLS_String::hex2RGB($value);
								$value = "<div class='sls-bo-box-color' style='color:".((((0.213 * $rgb["red"]) + (0.715 * $rgb["green"]) + (0.072 * $rgb["blue"])) < 0.5) ? "#FFF" : "#000").";background-color:#".$value."'>#".$value."</div>";
								break;
						}
					}
					if ($this->_columns[$key]["html_type"] == "input_textarea")
						$value = "<p>".SLS_String::trimStringToLength(strip_tags($value),150)."</p>";
					if (!empty($hashExists))
						$value = "********";
						
					$xml->addFullTag($key,$value,true);
				}
			}			
			if (!empty($fkRecursiveExists))
			{
				$this->_gap++;
				$xml = $this->getFkChildrens($xml,$fkRecursiveExists,$recordsets[$i]->{$this->_object->getPrimaryKey()});
				$this->_gap--;
			}
			$xml->endTag("entity");
		}
		$xml->endTag("entities");
		
		return $xml;
	}