/**
  * Prepare and process config form
  *
  * @param void
  * @return boolean
  */
 function execute()
 {
     if (strtolower(array_var($_SERVER, 'HTTPS')) == 'on' || array_var($_SERVER, 'SERVER_PORT') == 443) {
         $protocol = 'https://';
     } else {
         $protocol = 'http://';
     }
     // if
     $request_url = without_slash($protocol . dirname($_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']));
     if (($rpos = strrpos($request_url, '/')) !== false) {
         $installation_url = substr($request_url, 0, $rpos - 7);
         // remove /public ;)
     } else {
         $installation_url = '';
     }
     // if
     $config_form_data = array_var($_POST, 'config_form');
     if (!is_array($config_form_data)) {
         $config_form_data = array('database_type' => $this->getFromStorage('database_type'), 'database_host' => $this->getFromStorage('database_host', 'localhost'), 'database_user' => $this->getFromStorage('database_user'), 'database_pass' => $this->getFromStorage('database_pass'), 'database_name' => $this->getFromStorage('database_name'), 'database_prefix' => $this->getFromStorage('database_prefix'), 'absolute_url' => $this->getFromStorage('absolute_url'));
         // array
     }
     // if
     tpl_assign('installation_url', $installation_url);
     tpl_assign('config_form_data', $config_form_data);
     if ($this->isSubmited()) {
         $database_type = (string) array_var($config_form_data, 'database_type');
         $database_host = (string) array_var($config_form_data, 'database_host');
         $database_user = (string) array_var($config_form_data, 'database_user');
         $database_pass = (string) array_var($config_form_data, 'database_pass');
         $database_name = (string) array_var($config_form_data, 'database_name');
         $database_prefix = (string) array_var($config_form_data, 'database_prefix');
         $absolute_url = (string) array_var($config_form_data, 'absolute_url');
         $connected = false;
         if ($this->database_connection = @mysql_connect($database_host, $database_user, $database_pass)) {
             $connected = @mysql_select_db(array_var($config_form_data, 'database_name'), $this->database_connection);
         }
         // if
         if ($connected) {
             $this->addToStorage('database_type', $database_type);
             $this->addToStorage('database_host', $database_host);
             $this->addToStorage('database_user', $database_user);
             $this->addToStorage('database_pass', $database_pass);
             $this->addToStorage('database_name', $database_name);
             $this->addToStorage('database_prefix', $database_prefix);
             $this->addToStorage('absolute_url', $absolute_url);
             return true;
         } else {
             $this->addError('Failed to connect to database with data you provided');
         }
         // if
     }
     // if
     $this->setContentFromTemplate('system_config_form.php');
     return false;
 }
 /**
  * Prepare and process config form
  *
  * @param void
  * @return boolean
  */
 function execute()
 {
     if (strtolower(array_var($_SERVER, 'HTTPS')) == 'on' || array_var($_SERVER, 'SERVER_PORT') == 443) {
         $protocol = 'https://';
     } else {
         $protocol = 'http://';
     }
     // if
     $request_url = without_slash($protocol . dirname($_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']));
     if (($rpos = strrpos($request_url, '/')) !== false) {
         $installation_url = substr($request_url, 0, $rpos - 7);
         // remove /public ;)
     } else {
         $installation_url = '';
     }
     // if
     $config_form_data = array_var($_POST, 'config_form');
     if (!is_array($config_form_data)) {
         $config_form_data = array('database_type' => $this->getFromStorage('database_type', 'MySQL'), 'database_host' => $this->getFromStorage('database_host', 'localhost'), 'database_user' => $this->getFromStorage('database_user', 'root'), 'database_pass' => $this->getFromStorage('database_pass'), 'database_name' => $this->getFromStorage('database_name', 'PP'), 'database_create' => $this->getFromStorage('database_create'), 'database_charset' => $this->getFromStorage('database_charset', 'utf8'), 'database_prefix' => $this->getFromStorage('database_prefix', 'PP086_'));
         // array
     }
     // if
     tpl_assign('config_form_data', $config_form_data);
     if ($this->isSubmitted()) {
         $database_type = (string) array_var($config_form_data, 'database_type');
         $database_host = (string) array_var($config_form_data, 'database_host');
         $database_user = (string) array_var($config_form_data, 'database_user');
         $database_pass = (string) array_var($config_form_data, 'database_pass');
         $database_name = (string) array_var($config_form_data, 'database_name');
         $database_create = (string) array_var($config_form_data, 'database_create');
         $database_charset = (string) array_var($config_form_data, 'database_charset');
         $database_prefix = (string) array_var($config_form_data, 'database_prefix');
         if ($this->database_connection = @mysql_connect($database_host, $database_user, $database_pass)) {
             // ---------------------------------------------------
             //  Check if we have at least 4.1
             // ---------------------------------------------------
             $mysql_version = mysql_get_server_info($this->database_connection);
             if ($mysql_version && version_compare($mysql_version, '4.1', '>=')) {
                 $this->addToStorage('database_type', $database_type);
                 $this->addToStorage('database_host', $database_host);
                 $this->addToStorage('database_user', $database_user);
                 $this->addToStorage('database_pass', $database_pass);
                 $try_select = true;
                 if ($database_create == 'yes') {
                     $try_select = false;
                     if (@mysql_select_db(array_var($config_form_data, 'database_name'), $this->database_connection)) {
                         $this->addError("Database create failed, {$database_name} exists. Choose another name or uncheck create option.");
                     } else {
                         $sql = "CREATE DATABASE `{$database_name}`";
                         if (mysql_query($sql, $this->database_connection)) {
                             $try_select = true;
                         } else {
                             $this->addError('Error creating database: ' . mysql_error());
                         }
                     }
                 }
                 if ($try_select) {
                     if (@mysql_select_db(array_var($config_form_data, 'database_name'), $this->database_connection)) {
                         $this->addToStorage('database_name', $database_name);
                         $this->addToStorage('database_charset', $database_charset);
                         $this->addToStorage('database_prefix', $database_prefix);
                         $exist = 0;
                         $result = @mysql_query("show tables like '{$database_prefix}%'", $this->database_connection);
                         while ($row = @mysql_fetch_row($result)) {
                             $exist++;
                         }
                         if ($exist == 0) {
                             return true;
                         }
                         $this->addError("There are {$exist} tables present with prefix '{$database_prefix}'. Remove those tables or use another prefix.");
                     } else {
                         $this->addError("Database '{$database_name}' not available on host '{$database_host}'.");
                     }
                 }
             } else {
                 $this->addError('Database version is ' . $mysql_version . '. Minimum is 4.1. Choose another host or upgrade.');
             }
         } else {
             $this->addError("Failed to connect to database server '{$database_host}' with user '{$database_user}' and provided password");
         }
         // if
     }
     // if
     $this->setContentFromTemplate('system_config_form.php');
     return false;
 }
$is_mdm = !empty($tables['domains']);
if (!$is_mdm) {
    $domains = array(0);
}
if (!is_array($domains)) {
    cw_flush('No domains specified');
    cw_add_top_message('No domains specified. Please select domains which should be included into the sitemap.', 'W');
    return false;
}
foreach ($domains as $domain_id) {
    if ($addons['multi_domains']) {
        $domain = cw_func_call('cw_md_domain_get', array('domain_id' => $domain_id));
    }
    $_filename = cw_sitemap_name('', false);
    if ($is_mdm) {
        $http_location = without_slash("http://" . $domain['http_host'] . $domain['web_dir']);
        $_filename = cw_sitemap_name($domain['name'], false);
    }
    $today = date('Y-m-d');
    if (($filename = cw_allow_file($_filename, true)) && ($file = cw_fopen($_filename, 'w', true))) {
        $success = true;
        $data = array('home' => array(''), 'cat_manuf' => array(), 'product' => array(), 'static' => array());
        $current_domain = $domain_id;
        $r = cw_func_call('cw_category_search', array('data' => array('status' => 1, 'all' => true)));
        unset($r[1]);
        // release navigation info
        $items =& $r[0];
        if (is_array($items)) {
            cw_flush(cw_get_langvar_by_name('lbl_categories', null, false, true));
            foreach ($items as $v) {
                cw_flush('.');
/**
 * Format path with leading slash and without trailing to make concatenation easier
 */
function with_leading_slash_only($path, $root_slash_for_empty = false)
{
    if (empty($path) && !$root_slash_for_empty) {
        return '';
    }
    return with_leading_slash(without_slash($path));
}
	/**
	 * Prepare and process config form
	 *
	 * @param void
	 * @return boolean
	 */
	function execute() {
		if((strtolower(array_var($_SERVER, 'HTTPS')) == 'on') || (array_var($_SERVER, 'SERVER_PORT') == 443)) {
			$protocol = 'https://';
		} else {
			$protocol = 'http://';
		} // if

		$request_url = without_slash($protocol . dirname($_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']));
		if(($rpos = strrpos($request_url, '/')) !== false) {
			$installation_url = substr($request_url, 0, $rpos - 7); // remove /public ;)
		} else {
			$installation_url = '';
		} // if

		$config_form_data = array_var($_POST, 'config_form');
		//var_dump($config_form_data) ; exit ;
		
		if(!is_array($config_form_data)) {
			$config_form_data = array(
	          'database_type'   	=> $this->getFromStorage('database_type'),
	          'database_host'   	=> $this->getFromStorage('database_host', 'localhost'),
	          'database_user'   	=> $this->getFromStorage('database_user'),
	          'database_pass'   	=> $this->getFromStorage('database_pass'),
	          'database_name'   	=> $this->getFromStorage('database_name'),
	          'database_prefix'		=> $this->getFromStorage('database_prefix'),
			  'database_engine' 	=> $this->getFromStorage('database_engine'),
	          'absolute_url'   		=> $this->getFromStorage('absolute_url'),
			  'plugins'    			=> $this->getFromStorage('plugins'),
			  'plugins_available' 	=> $this->scanPlugins(),
				
			); 
		} 
		tpl_assign('installation_url', $installation_url);
		tpl_assign('config_form_data', $config_form_data);

		if($this->isSubmited()) {
			$database_type   = (string) array_var($config_form_data, 'database_type');
			$database_host   = (string) array_var($config_form_data, 'database_host');
			$database_user   = (string) array_var($config_form_data, 'database_user');
			$database_pass   = (string) array_var($config_form_data, 'database_pass');
			$database_name   = (string) array_var($config_form_data, 'database_name');
			$database_prefix = (string) array_var($config_form_data, 'database_prefix');
			$database_engine = (string) array_var($config_form_data, 'database_engine');
			$absolute_url    = (string) array_var($config_form_data, 'absolute_url');
			$plugins		 = array_var($config_form_data, 'plugins');
			$connected = false;
			$this->database_connection = @mysql_connect($database_host, $database_user, $database_pass);
			if ($this->database_connection) {
				$connected = @mysql_select_db($database_name, $this->database_connection);
				if (!$connected) {
					$error = @mysql_error();
					$errno = @mysql_errno();
					if ($errno == 1049 && strpos($database_name, '`') === false) {
						// database doesn't exist. Try to create it.
						if (@mysql_query('CREATE DATABASE `' . $database_name . '`', $this->database_connection)) {
							$connected = @mysql_select_db($database_name, $this->database_connection);
						}
					}
				}
			} else {
				$error = @mysql_error();
			}

			if($connected) {
				$this->addToStorage('database_type', $database_type);
				$this->addToStorage('database_host', $database_host);
				$this->addToStorage('database_user', $database_user);
				$this->addToStorage('database_pass', $database_pass);
				$this->addToStorage('database_name', $database_name);
				$this->addToStorage('database_prefix', $database_prefix);
				$this->addToStorage('database_engine', $database_engine);
				$this->addToStorage('absolute_url', $absolute_url);
				$this->addToStorage('plugins'		, $plugins);
				return true;
			} else {
				$this->addError('Failed to connect to database with data you provided: ' . $error);
			} // if
		} // if

		$this->setContentFromTemplate('system_config_form.php');
		return false;
	} // excute
 /**
  * Paths returned at the logs are relative to repository's ROOT url and
  * the repository needs to be queried with such paths, which makes the mess
  * in case that repository's root url added to activeCollab is actually
  * pointing to a subdirectory.
  * 
  * Contacatenating fails in that case and this method takes care of that by
  * prepending the repository's root url to the requested path.
  *
  * @param string $path
  * @return string
  */
 function getRealPath($path)
 {
     $path = str_replace("//", "/", $path);
     // weird issue that sometimes happens
     $path = str_replace(":/", "://", $path);
     // make http work again
     return str_replace(' ', '%20', without_slash($this->getRepositoryRootPath()) . $path);
 }