function restoreAction() { $backupFile = new UploadedFile("backupFile"); if (!$backupFile->wasUploaded()) { return; } $gzipMode = $this->request->fileType == "gzip"; $fileName = $backupFile->getTempName(); $fp = $gzipMode ? gzopen($fileName, "r") : fopen($fileName, "r"); $inString = false; $query = ""; while (!feof($fp)) { $line = $gzipMode ? gzgets($fp) : fgets($fp); if (!$inString) { $isCommentLine = false; foreach (array("#", "--") as $commentTag) { if (strpos($line, $commentTag) === 0) { $isCommentLine = true; } } if ($isCommentLine || trim($line) == "") { continue; } } $deslashedLine = str_replace('\\', '', $line); if ((substr_count($deslashedLine, "'") - substr_count($deslashedLine, "\\'")) % 2) { $inString = !$inString; } $query .= $line; if (substr_compare(rtrim($line), ";", -1) == 0 && !$inString) { $this->database->sqlQuery($query); $query = ""; } } }
protected function beforeInit() { $this->data = $this->request->getArray(array("subject", "text", "mailsPerMinute", "newsletterType", 'fromEmail')); $message = $this->customMessage->findByPk("newsletterFooter"); $this->data['newsletterFooterDescription'] = $message->description; if ($this->data['newsletterType'] == 'csv') { $csvFile = new UploadedFile('csvFile'); if ($csvFile->wasUploaded()) { $this->data['emails'] = array_values(file($csvFile->getTempName(), FILE_IGNORE_NEW_LINES)); } else { $this->data['emails'] = array(); } } }
function saveExtraFieldsValues($item, $newItem) { $fields = $this->getCategoryFieldsWithOptions($item->categoryId); $itemId = $item->siteId; $c = new Criteria(); $c->addInnerJoin('extrafields', 'extrafields.fieldId', 'extrafieldvalues.fieldId'); $c->add('type', 'file'); $files = $this->extraFieldValue->getArray($c, 'text', 'extrafields.fieldId'); $c = new Criteria(); $c->add("itemId", $itemId); $this->extraFieldValue->del($c); foreach ($fields as $fieldId => $field) { $extraFieldValue = new ExtraFieldValueRecord(); $extraFieldValue->itemId = $itemId; $extraFieldValue->fieldId = $fieldId; if (!isset($newItem->extraField[$fieldId])) { continue; } $newItemExtraFieldData = $newItem->extraField[$fieldId]; try { switch ($field['type']) { case "text": case "textarea": $extraFieldValue->text = $newItemExtraFieldData; break; case "select": case "radio": if (!isset($field['options'][$newItemExtraFieldData])) { continue 2; } case "range": $extraFieldValue->value = $newItemExtraFieldData; break; case 'url': $extraFieldValue->text = serialize($newItemExtraFieldData); break; case "checkbox": $value = 0; foreach ($newItemExtraFieldData as $checkBoxValue) { if (!isset($field['options'][$checkBoxValue])) { continue 3; } $value += pow(2, $checkBoxValue - 1); //minus 1 because we count from 1,2,3,4.. to have 1,2,4,8 } $extraFieldValue->value = $value; break; case 'file': $file = new UploadedFile('extraField_' . $fieldId . '_file'); if (!empty($files[$fieldId])) { $data = unserialize($files[$fieldId]); } else { $data = array(); } $data['title'] = $newItemExtraFieldData['title']; if ($file->wasUploaded()) { $filesPath = CODE_ROOT_DIR . 'uploads/files/'; $file->setSavePath($filesPath); $file->save(); $fileSrc = $file->getSavedFileName(); $data['fileSrc'] = $fileSrc; } $extraFieldValue->text = serialize($data); } $extraFieldValue->save(); } catch (Exception $e) { } } $this->site->updateByPk(array("haveExtraFields" => !empty($newItem->extraField) ? "1" : "0"), $itemId); }
function savePackageAction($packageId = null) { $fields = array('name', 'amount', 'allopassId', 'allopassNumber', 'priority', 'description', 'siteDescriptionMaxLength', 'maxKeywordsCountPerSite', 'backLinkMandatory', 'siteDescriptionHtmlEnabled', 'siteDescriptionHtmlAllowedTags', 'siteDescriptionHtmlAllowedCssProperties', 'siteDescriptionMinLength'); $data = $this->request->getArray($fields); $package = empty($packageId) ? new PackageRecord() : $this->package->findByPk($packageId); $package->fromArray($data); $siteImage = new UploadedFile("uploadImage"); $siteImage->addFilter("extension", array("jpg", "png", "gif")); if ($siteImage->wasUploaded()) { $thumbsPath = Config::get("PACKAGES_THUMBS_PATH"); $siteImage->setSavePath($thumbsPath); $siteImage->save(); $newImageSrc = $siteImage->getSavedFileName(); if ($newImageSrc) { if (!empty($package->imageSrc)) { $oldFilePath = $thumbsPath . basename($package->imageSrc); if (file_exists($oldFilePath)) { unlink($oldFilePath); } } $package->imageSrc = $newImageSrc; } } $package->save(); $this->redirect($this->moduleLink("package")); }
function saveCategoryAction() { $rebuild = false; $edit = !empty($this->request->categoryId); $imageSrc = false; try { $file = new UploadedFile("categoryImage"); $file->addFilter("extension", array("jpg", "gif", "png")); //check and save image if ($file->wasUploaded()) { $file->setSavePath(CODE_ROOT_DIR . 'uploads/images_categories/'); $file->save(); $imageSrc = $file->getSavedFileName(); } } catch (Exception $e) { } if (!$edit && $imageSrc == false) { $imageSrc = 'defaultCategoryImage.gif'; } //create and save new category $fields = $this->request->getArray(array("name", "urlName", "navigationName", "title", "headerDescription", "possibleTender", "description", "metaDescription", "parentCategoryId", "forbidden")); if ($edit) { $category = $this->category->findByPk($this->request->categoryId); //handle categoryParentId change if ($category->parentCategoryId != $this->request->parentCategoryId && $category->changeParent($this->request->parentCategoryId)) { $rebuild = true; } } else { $category = new CategoryRecord(); } $category->fromArray($fields); if ($imageSrc) { if ($edit) { $category->removeImage(); } $category->imageSrc = $imageSrc; } if (empty($category->urlName)) { $category->urlName = $category->name; } $excludeCategoryId = $edit ? $category->categoryId : false; $category->urlName = $this->category->getFreeUrlName($category->urlName, $excludeCategoryId); $category->save(); if (!$edit) { $this->categoryParent->addNode($this->request->parentCategoryId, $category->categoryId); } if ($rebuild) { $this->categoryParent->moveNode($category->categoryId, $category->parentCategoryId); $this->category->updateValidatedSitesCount(); } $redirect = AppRouter::getRewrittedUrl("/admin/category/index/" . $category->parentCategoryId); $this->redirect($redirect); }