コード例 #1
0
 /**
  * Method to remove records via AJAX.
  *
  * @throws  Exception
  * @return  void
  */
 public function remove()
 {
     // Get the input
     $app = JFactory::getApplication();
     $pks = $app->input->post->get('rid', array(), 'array');
     $userId = JFactory::getUser()->get("id");
     jimport("itprism.response.json");
     $response = new ITPrismResponseJson();
     // Sanitize the input
     JArrayHelper::toInteger($pks);
     // Validate user
     if (!$userId) {
         $response->setTitle(JText::_('COM_CROWDFUNDING_FAIL'))->setText(JText::_('COM_CROWDFUNDING_ERROR_NOT_LOG_IN'))->failure();
         echo $response;
         JFactory::getApplication()->close();
     }
     // Validate primary keys
     if (!$pks) {
         $response->setTitle(JText::_('COM_CROWDFUNDING_FAIL'))->setText(JText::_('COM_CROWDFUNDING_ERROR_INVALID_REWARDS_SELECTED'))->failure();
         echo $response;
         JFactory::getApplication()->close();
     }
     $rewardId = JArrayHelper::getValue($pks, 0);
     // Validate reward owner.
     jimport("crowdfunding.validator.reward.owner");
     $validator = new CrowdFundingValidatorRewardOwner(JFactory::getDbo(), $rewardId, $userId);
     if (!$rewardId or !$validator->isValid()) {
         $response->setTitle(JText::_('COM_CROWDFUNDING_FAIL'))->setText(JText::_('COM_CROWDFUNDING_ERROR_INVALID_REWARDS_SELECTED'))->failure();
         echo $response;
         JFactory::getApplication()->close();
     }
     // Get the model
     $model = $this->getModel();
     try {
         jimport("crowdfunding.reward");
         $reward = new CrowdFundingReward(JFactory::getDbo());
         $reward->load($rewardId);
         // If the reward is part of transaction,
         // set it as trashed.
         if ($reward->isSelectedByUser()) {
             $reward->trash();
         } else {
             // Get the folder where the images are stored
             $imagesFolder = CrowdFundingHelper::getImagesFolder($userId);
             $model->remove($rewardId, $imagesFolder);
         }
     } catch (RuntimeException $e) {
         $response->setTitle(JText::_('COM_CROWDFUNDING_FAIL'))->setText($e->getMessage())->failure();
         echo $response;
         JFactory::getApplication()->close();
     } catch (Exception $e) {
         JLog::add($e->getMessage());
         $response->setTitle(JText::_('COM_CROWDFUNDING_FAIL'))->setText(JText::_('COM_CROWDFUNDING_ERROR_SYSTEM'))->failure();
         echo $response;
         JFactory::getApplication()->close();
     }
     $response->setTitle(JText::_('COM_CROWDFUNDING_SUCCESS'))->setText(JText::_('COM_CROWDFUNDING_REWARD_SUCCESSFULY_REMOVED'))->success();
     echo $response;
     JFactory::getApplication()->close();
 }
コード例 #2
0
ファイル: plugin.php プロジェクト: phpsource/CrowdFunding
 /**
  * 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;
 }
コード例 #3
0
ファイル: reward.php プロジェクト: phpsource/CrowdFunding
 /**
  * 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);
 }