/** Das Projekt wird mithilfe der remmove Funktion gelöscht * * @return bool true, false im Fehlerfall * @author Lorze Widmer */ public function removeProject() { //Berechtigungen werden überprüft if (!$this->editable) { return; } //Die Hauptdatei $pid.rar wird gepackt if (!getRAR()->execute('addFile', array('source' => SYS_SHARE_PROJECTS . $this->pid . '.rar', 'destination' => SYS_TRASH_FOLDER . 'projects.rar'))) { return $this->throwError('A technical error occurred. The Project couldn`t be removed because of you >:('); } //Alle Versionsdateien werden gepackt foreach ($this->getVersions() as $value) { $path = SYS_SHARE_PROJECTS . $this->pid . '-v' . $value; if (!is_file($path)) { continue; } if (!getRAR()->execute('addFile', array('source' => $path, 'destination' => SYS_TRASH_FOLDER . 'projects.rar'))) { return $this->throwError('A technical error occurred. The Project couldn`t be removed because of you >:('); } } //Datenbankeinträge werden gelöscht if (getMethods()->remove(self::TYPE_PROJECT, $this->pid)) { // Werte entfernen, da Objekt nicht zerstört werden kann $this->data = null; $this->pid = NULL; $this->info = null; $this->editable = false; $this->versions = null; return true; } return $this->throwError('A technical error occurred. The list has not been removed.'); }
return true; } return false; } $dirs = array('../app', '../library/Axis', '../scripts'); $files = array(); $filesUsage = array(); foreach ($dirs as $dir) { $files = array_merge($files, rglob($dir . '/*.php')); $filesUsage = array_merge($filesUsage, rglob($dir . '/*.php')); $filesUsage = array_merge($filesUsage, rglob($dir . '/*.phtml')); } $methods = array(); $methodToFile = array(); foreach ($files as $file) { $_methods = getMethods($file); foreach ($_methods as $method) { $methods[$method] = 0; if (!isset($methodToFile[$method])) { $methodToFile[$method] = array(); } $methodToFile[$method][] = $file; } } echo "Methods: " . count($methods) . "\n"; /* * Looking for unused methods */ foreach ($filesUsage as $file) { $content = file_get_contents($file); foreach ($methods as $method => $cnt) {
/** Löscht die Liste. * * Mit dem Löschen der Liste werden noch folgende Schritte ausgeführt: * Bei Prüfungslisten: * - Die Prüfungen werden für ein Backup archiviert * Bei Projektlisten: * - Die Projekte werden von der Liste entfernt * * @return boolean Bei Erfolg true, ansonsten false. */ public function remove() { switch ($this->type) { case 0: if (!getDB()->query('removeListFromProjects', array('id' => $this->data->id))) { return $this->throwError('A technical error occurred. The list has not been removed.'); } break; case 1: // TODO prüfungen archvieren nach SYS_TRASH break; } $um = getMethods(); // UserMethods Objekt erhalten um Liste zu löschen if ($um->remove(self::TYPE_LIST, $this->data->id)) { // Werte entfernen, da Objekt nicht zerstört werden kann $this->data = null; $this->permitted = false; $this->type = null; return true; } return $this->throwError('A technical error occurred. The list has not been removed.'); }