function find($criteria = null, $order = null, $limit = 1000, $from = 0) { $result = $this->database->query($this->buildFindQuery($criteria, $order, $limit, $from)); if (!is_null($result->getError())) { return $result->getError(); } $projects = array(); while ($row = $result->fetchRow()) { $project = new Project(); $value = $row[0]; $project->setId($value); $value = $row[1]; $project->setName($value); $value = $row[2]; $project->setDescription($value); $value = $row[3]; $value = $this->database->toBoolean($value); $project->setMove_more($value); $value = $row[4]; $project->setCampaign($value); $value = $row[5]; $project->setSuspending($value); $value = $row[6]; $project->setEnding($value); $value = $row[7]; $project->setOwner($value); $value = $row[8]; $project->setCruid($value); $value = $row[9]; $project->setPkey($value); $value = $row[10]; $project->setRsskey($value); $value = $row[11]; $project->setR_date($value); $value = $row[12]; $project->setR_user($value); if ($order != null) { array_push($projects, $project); } else { $projects[$project->getId()] = $project; } } return $projects; }
function actionSave($currentUser) { $backUrl = $this->context->getFlowScopeAttr("backUrl"); $oldRssKey = null; $project = new Project(); $projectErrs = array(); $project->setId($this->context->getRequestAttr("id")); if (!is_null($project->getId())) { $oldProject = $this->projectDao->get($project->getId()); if (is_null($oldProject) || is_string($oldProject)) { $this->context->setRequestScopeAttr("error", "error.dberror"); if (!is_null($backUrl)) { header("Location: " . $backUrl); return true; } return false; } } $project->setName($this->context->getRequestAttr("name")); if (!is_null($project->getName())) { $project->setName(trim($project->getName())); if (strlen($project->getName()) < 1) { $project->setName(null); } } if (is_null($project->getName())) { $projectErrs["name"] = "field.error.empty"; } $project->setDescription($this->context->getRequestAttr("description")); if (!is_null($project->getDescription())) { $project->setDescription(trim($project->getDescription())); if (strlen($project->getDescription()) < 1) { $project->setDescription(null); } } $project->setCampaign($this->context->getRequestAttr("campaign")); if (!is_null($project->getCampaign())) { $project->setCampaign(trim($project->getCampaign())); if (strlen($project->getCampaign()) < 1) { $project->setCampaign(null); } } $project->setSuspending($this->context->getRequestAttr("suspending")); if (!is_null($project->getSuspending())) { $project->setSuspending(trim($project->getSuspending())); if (strlen($project->getSuspending()) < 1) { $project->setSuspending(null); } } $project->setEnding($this->context->getRequestAttr("ending")); if (!is_null($project->getEnding())) { $project->setEnding(trim($project->getEnding())); if (strlen($project->getEnding()) < 1) { $project->setEnding(null); } } $move_more = $this->context->getRequestAttr("move_more"); $project->setMove_more($move_more == 1 ? true : false); $timeZone = new DateTimeZone("Europe/Vilnius"); $time = new DateTime("now", $timeZone); $project->setR_date($time->format("Y-m-d H:i:s")); $project->setR_user($currentUser->getId()); if (is_null($project->getId())) { $project->setOwner($currentUser->getId()); $project->setCruid($this->generateCode()); $project->setPkey($this->generateCode()); $project->setRsskey($this->generateCode()); } else { $project->setCruid($oldProject->getCruid()); $project->setRsskey($oldProject->getRssKey()); } $this->context->setFlashScopeAttr("project", $project); $this->context->setFlashScopeAttr("projectErrs", $projectErrs); if (count($projectErrs) >= 1) { if (!is_null($backUrl)) { header("Location: " . $backUrl); return true; } return false; } $store = $this->storeProject($project); if (!$store) { if (!is_null($backUrl)) { header("Location: " . $backUrl); return true; } return false; } $rss = new Rss($project->getRsskey()); if (!$rss->storeProjectRssFile($project)) { $this->context->setRequestScopeAttr("errortxt", "Nepavyko sukurti/atnaujinti RSS failo!"); } /* Issaugom pasirinktas grupes */ $groups = $this->context->getRequestAttr("groups"); $selectedProjects = $this->context->getRequestAttr("selectedProjects"); if (is_null($selectedProjects) && !is_null($groups)) { $this->saveProjectGroups($project->getId(), $groups); } if (!is_null($selectedProjects) && is_null($groups)) { $this->removeProjectFromGroups($currentUser->getId(), $project->getId()); } if (!is_null($selectedProjects) && !is_null($groups)) { $toRemove = array_diff(json_decode($selectedProjects), $groups); if (count($toRemove) > 0) { foreach ($toRemove as $gp) { $this->removeFromGroup($gp, $project->getId()); } } $toAdd = array_diff($groups, json_decode($selectedProjects)); if (count($toAdd) > 0) { $this->saveProjectGroups($project->getId(), $toAdd); } } $this->cancelEdit(); if (!is_null($backUrl)) { header("Location: " . $backUrl); return true; } return false; }