function deleteModule()
{
    // get id__module
    $id__module = (isset($_GET['id']) and is_numeric($_GET['id'])) ? $_GET['id'] : 0;
    if (empty($id__module)) {
        return true;
    }
    // get module-object
    $Module = new ts_Module($id__module);
    // delete
    if (!$Module->deleteModule()) {
        // error
        $_SESSION['admin_error'] = 'ERROR__DELETEMODULE';
        return false;
    }
    $_SESSION['admin_info'] = 'INFO__DELETEMODULE';
    return true;
}
 /** Validate source code
  * @param bool $force_update
  *	Force to get new list from database (not a cached one from obj-var)
  *
  * @return array
  */
 public function getModules($force_update = false)
 {
     global $Database, $Config;
     // already in obj-var?
     if (!$force_update and isset($this->modules) and !empty($this->modules)) {
         return $this->modules;
     }
     // get module-ids from database
     $sql = "SELECT id__module as id__module\n\t\tFROM #__modules\n\t\tORDER BY id__module ASC;";
     $result = $Database->doSelect($sql);
     if ($result === false) {
         return false;
     }
     // get available sources
     $subfolders = ts_FileHandler::getSubfolders($Config->get('dir_data') . '/source/modules/');
     if (!is_array($subfolders)) {
         return false;
     }
     // get module-objects and save them in obj-var
     $modules_files = array();
     foreach ($subfolders as $index => $value) {
         $modules_files[] = new ts_Module(false, $value);
     }
     // add already deleted modules and rearrange
     $this->modules = array();
     foreach ($modules_files as $index => $Value) {
         $this->modules[$Value->getInfo('name') . '__' . $Value->getInfo('nameid')] = $Value;
     }
     foreach ($result as $index => $values) {
         $Module = new ts_Module($values['id__module']);
         if (!isset($this->modules[$Module->getInfo('name') . '__' . $Module->getInfo('nameid')])) {
             $this->modules[$Module->getInfo('name') . '__' . $Module->getInfo('nameid')] = $Module;
         }
     }
     // sort
     ksort($this->modules);
     // sort modules by dependencies
     usort($this->modules, array($this, 'cb_sortByDependencies'));
     $this->modules = array_reverse($this->modules);
     return $this->modules;
 }
function updateModule()
{
    global $Config, $Parser;
    // get Parser object
    $ModuleHandler = new ts_ModuleHandler();
    $modules_all = $ModuleHandler->getModules(true);
    $Parser = new ts_Parser($Config->get('prefix'), $modules_all, $Config->get('debug_mode'));
    // get id__module
    $id__module = (isset($_GET['id']) and is_numeric($_GET['id'])) ? $_GET['id'] : 0;
    if (empty($id__module)) {
        return true;
    }
    // get module-object
    $Module = new ts_Module($id__module);
    // update
    if (!$Module->updateModule()) {
        // error
        $_SESSION['admin_error'] = 'ERROR__UPDATEMODULE';
        return false;
    }
    $_SESSION['admin_info'] = 'INFO__UPDATEMODULE';
    return true;
}