예제 #1
0
파일: item.php 프로젝트: alencarmo/OCF
 function create($fromInstall = FALSE)
 {
     global $gorumuser;
     $_S =& new AppSettings();
     $_EC = EComm::createObject();
     if (empty($this->cid)) {
         return Roll::setFormInvalid("selectCategoryNecessary");
     }
     hasAdminRights($isAdm);
     if (!$_S->showSubmitAd() && !$isAdm) {
         handleError("Permission denied");
     }
     $this->activateVariableFields();
     LocationHistory::resetPost();
     $this->initClassVars();
     LocationHistory::savePost($this);
     if (!$this->checkAgainstEarlySubmission() || !$this->checkCharacterLimit() || $this->checkMandatoryFileUpload() || !$this->checkAndSetExpirationDays() || !$_EC->checkConsumptionOfAction($purchaseItem, $consumption, $this)) {
         return;
     }
     if (!$isAdm || !isset($this->status)) {
         $this->status = $this->getImmediateAppear($consumption);
         // ha viszont isAdm, akkor a status benne van a formban
     }
     if ($this->status) {
         if ($this->expiration) {
             $this->expirationTime = Date::add($this->expiration, Date_Day);
         }
     }
     $this->setDefaultsOfFieldsThatDontAppearInForm();
     if (!isset($this->ownerId)) {
         $this->ownerId = $gorumuser->id;
     }
     parent::create();
     if (!Roll::isFormInvalid()) {
         G::load($c, $this->cid, "appcategory");
         if ($this->status) {
             $c->increaseDirectItemNum();
         }
         if ($fromInstall) {
             return;
         } elseif (!$purchaseItem) {
             Roll::addInfoText("adScheduled");
         }
         $this->storeAttachment();
         // hogyy hogy nem cName es ownerName itt 0-ra beallitva, ami bezavarhat a getEmailParams-ban:
         unset($this->cName);
         unset($this->ownerName);
         $ownerEmail = $this->getEmailParams($params, TRUE);
         if (!$isAdm) {
             $_S =& new AppSettings();
             G::load($n, Notification_adCreated, "notification");
             if ($n->active) {
                 $n->send($_S->adminEmail, $params);
             }
             G::load($n, Notification_adCreatedOwner, "notification");
             if ($n->active) {
                 $n->send($ownerEmail, $params);
             }
         }
         if ($purchaseItem) {
             $purchaseItem->save($this);
         } elseif (!$isAdm && $consumption) {
             executeQuery("UPDATE @user SET credits=credits-{$consumption} WHERE id=#id#", $gorumuser->id);
         }
         $this->sendNotificationsToSubscribedUsers($params);
         if (empty($this->nextAction)) {
             $this->nextAction = $this->getLinkCtrl();
         }
         CacheManager::resetCache($this->cid);
     }
 }