Exemplo n.º 1
0
 /**
  * Update rewards properties - availability, distributed,...
  * @param $data
  *
  * @return CrowdFundingReward|null
  */
 protected function updateReward($data)
 {
     // Get reward.
     $keys = array("id" => JArrayHelper::getValue($data, "reward_id"), "project_id" => JArrayHelper::getValue($data, "project_id"));
     jimport("crowdfunding.reward");
     $reward = new CrowdFundingReward(JFactory::getDbo());
     $reward->load($keys);
     // DEBUG DATA
     JDEBUG ? $this->log->add(JText::_($this->textPrefix . "_DEBUG_REWARD_OBJECT"), $this->debugType, $reward->getProperties()) : null;
     // Check for valid reward.
     if (!$reward->getId()) {
         // Log data in the database
         $this->log->add(JText::_($this->textPrefix . "_ERROR_INVALID_REWARD"), $this->debugType, array("data" => $data, "reward object" => $reward->getProperties()));
         return null;
     }
     // Check for valida amount between reward value and payed by user
     $txnAmount = JArrayHelper::getValue($data, "txn_amount");
     if ($txnAmount < $reward->getAmount()) {
         // Log data in the database
         $this->log->add(JText::_($this->textPrefix . "_ERROR_INVALID_REWARD_AMOUNT"), $this->debugType, array("data" => $data, "reward object" => $reward->getProperties()));
         return null;
     }
     // Verify the availability of rewards
     if ($reward->isLimited() and !$reward->getAvailable()) {
         // Log data in the database
         $this->log->add(JText::_($this->textPrefix . "_ERROR_REWARD_NOT_AVAILABLE"), $this->debugType, array("data" => $data, "reward object" => $reward->getProperties()));
         return null;
     }
     // Increase the number of distributed rewards
     // if there is a limit.
     if ($reward->isLimited()) {
         $reward->increaseDistributed();
         $reward->updateDistributed();
     }
     return $reward;
 }
Exemplo n.º 2
0
 /**
  * Delete image
  */
 public function removeImage()
 {
     // Check for request forgeries.
     JSession::checkToken("get") or jexit(JText::_('JINVALID_TOKEN'));
     // Get item id
     $itemId = $this->input->get->getInt("id");
     $redirectOptions = array("view" => "reward", "layout" => "edit", "id" => $itemId);
     // Create an reward object.
     jimport("crowdfunding.reward");
     $reward = new CrowdFundingReward(JFactory::getDbo());
     $reward->load($itemId);
     // Check for registered user
     if (!$reward->getId()) {
         $this->displayNotice(JText::_('COM_CROWDFUNDING_ERROR_INVALID_IMAGE'), $redirectOptions);
         return;
     }
     $imagesFolder = CrowdFundingHelper::getImagesFolder($reward->getUserId());
     try {
         jimport('joomla.filesystem.folder');
         jimport('joomla.filesystem.file');
         jimport('joomla.filesystem.path');
         $model = $this->getModel();
         $model->removeImage($itemId, $imagesFolder);
     } catch (Exception $e) {
         JLog::add($e->getMessage());
         throw new Exception(JText::_('COM_CROWDFUNDING_ERROR_SYSTEM'));
     }
     $this->displayMessage(JText::_('COM_CROWDFUNDING_IMAGE_DELETED'), $redirectOptions);
 }