Exemple #1
0
 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();
         }
     }
 }
Exemple #3
0
 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);
 }