示例#1
0
 public function getItems()
 {
     $items = parent::getItems();
     require_once JPATH_COMPONENT . '/helpers/dogecointipping.php';
     foreach ($items as $row) {
         $row->balance = DogecoinTippingHelper::getBalance(array('addresses' => $row->address));
     }
     return $items;
 }
示例#2
0
 protected function addToolbar()
 {
     $state = $this->get('State');
     $canDo = DogecoinTippingHelper::getActions();
     $user = JFactory::getUser();
     $bar = JToolBar::getInstance('toolbar');
     JToolbarHelper::title(JText::_('COM_DOGECOINTIPPING_CPANEL'));
     if ($canDo->get('core.admin')) {
         JToolbarHelper::preferences('com_dogecointipping');
     }
     JHtmlSidebar::setAction('index.php?option=com_dogecointipping&view=cpanel');
 }
示例#3
0
 public function display($tpl = null)
 {
     if (count($errors = $this->get('Errors'))) {
         JError::raiseError(500, implode('<br />', $errors));
         return false;
     }
     $app = JFactory::getApplication();
     $params = $app->getparams();
     $this->assignRef('params', $params);
     $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx'));
     $pathway = $app->getPathway();
     $pathway->addItem(JText::_('COM_DOGECOINTIPPING_PATHWAY_DASHBOARD'));
     require_once JPATH_COMPONENT . '/helpers/dogecointipping.php';
     $this->address_count = DogecoinTippingHelper::getAddressCount();
     $this->inline_amount = DogecoinTippingHelper::getInlineAmount();
     $this->_prepareDocument();
     parent::display($tpl);
 }
示例#4
0
 public function doReward($from_address, $to_address, $amounts)
 {
     $address_amounts = DogecoinTippingHelper::getBalance(array('addresses' => $from_address));
     $inline_amounts = $this->getInlineAmounts($from_address);
     $withdraw_address_amount = 0;
     $withdraw_inline_amount = 0;
     $article_id = $_POST['article_id'];
     require_once JPATH_SITE . '/components/com_content/models/article.php';
     $articleModel = new ContentModelArticle();
     $article = $articleModel->getItem($article_id);
     $params = JComponentHelper::getParams('com_dogecointipping');
     $email_title = $params->get('email_title');
     $email_template = $params->get('email_template');
     $returnInfo = new stdClass();
     if ($address_amounts - 1 >= $amounts) {
         //withdraw from dogecoin address
         try {
             $withdrawInfo = $this->block_io->withdraw(array('from_addresses' => $from_address, 'to_addresses' => $this->withdraw_address, 'amounts' => $amounts));
         } catch (Exception $e) {
             throw $e;
         }
         $this->add_inline($to_address, $amounts);
         $returnInfo->status = sprintf(JText::_('COM_DOGECOINTIPPING_WITHDRAW_BLOCKIO_SUCCESS'), $from_address, $amounts);
         $withdraw_address_amount = $amounts;
     } elseif ($address_amounts > 2 && $address_amounts - 1 + $inline_amounts - 1 >= $amounts) {
         //withdraw from dogecoin address and site inline amount
         try {
             $withdrawInfo = $this->block_io->withdraw(array('from_addresses' => $from_address, 'to_addresses' => $this->withdraw_address, 'amounts' => $address_amounts - 1));
         } catch (Exception $e) {
             throw $e;
         }
         $this->add_inline($to_address, $address_amounts - 1);
         try {
             $this->rewardInline($from_address, $to_address, $amounts - $address_amounts + 1);
         } catch (Exception $e) {
             throw $e;
         }
         $returnInfo->status = sprintf(JText::_('COM_DOGECOINTIPPING_WITHDRAW_BLOCKIO_SUCCESS'), $from_address, $address_amounts - 1) . "<br>";
         $returnInfo->status .= sprintf(JText::_('COM_DOGECOINTIPPING_WITHDRAW_INLINE_SUCCESS'), $amounts - $address_amounts + 1);
         $withdraw_address_amount = $address_amounts - 1;
         $withdraw_inline_amount = $amounts - $address_amounts + 1;
     } elseif ($inline_amounts - 1 >= $amounts) {
         //withdraw from site inline amount
         try {
             $withdrawInfo = $this->rewardInline($from_address, $to_address, $amounts);
         } catch (Exception $e) {
             throw $e;
         }
         $returnInfo->status = sprintf(JText::_('COM_DOGECOINTIPPING_WITHDRAW_INLINE_SUCCESS'), $amounts);
         $withdraw_inline_amount = $amounts;
     } else {
         // no money
         throw new Exception(JText::_('COM_DOGECOINTIPPING_WITHDRAW_NO_ENOUGH_MONEY'));
     }
     $desc = $_POST['reward_desc'];
     $to_userid = $_POST['to_userid'];
     $query_string = $_POST['query_string'];
     $data = new stdClass();
     $data->from_user_id = JFactory::getUser()->id;
     $data->to_user_id = $to_userid;
     $data->amount = $amounts;
     $data->desc = $desc;
     $data->payment_result = $returnInfo->status;
     $data->query_string = $query_string;
     $data->address_amount = $withdraw_address_amount;
     $data->inline_amount = $withdraw_inline_amount;
     $data->created = JFactory::getDate()->toSql();
     $data->article_id = $article_id;
     JFactory::getDBO()->insertObject('#__dogecointipping_reward', $data);
     $user = JFactory::getUser();
     $email_body = JString::str_ireplace('{from_user}', $user->name, $email_template);
     $email_body = JString::str_ireplace('{amount}', $amounts, $email_body);
     $article_url = JURI::root() . 'index.php?' . $query_string;
     $email_body = JString::str_ireplace('{article}', '<a href="' . $article_url . '" target="_blank">' . $article->title . '</a>', $email_body);
     $this->sendMail($to_userid, $email_title, $email_body);
     return $returnInfo;
 }