Форум русской поддержки Joomla!® CMS
05.12.2016, 00:28:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Правило AlphaUserPoints 1.8.9 снятие баллов за продление объявления в AdsManager 2.9.13

 (Прочитано 1670 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« : 24.12.2015, 00:28:57 »

 Cheesy Помогите правильно прикрутить правило AUP для доски в функции продления объявления.
Функция:
Показать текстовый блок
Код правила:
Показать текстовый блок

Суть в том, чтобы когда пользователь продлял объявление с него списывались баллы, но если баллов не достаточно, то функция не выполнялась.

P.S.   +  в репу гарантирую. Azn
« Последнее редактирование: 24.12.2015, 03:46:10 от Ishti39 » Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #1 : 24.12.2015, 01:25:03 »

Код:
<?php
require_once JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
$UserAUP = AlphaUserPointsHelper::getUserInfo( '', JFactory::getUser()->get('id') );
$sum_points = 500;// сумма баллов которые будет списано с пользователя

if($UserAUP->points >= $sum_points)
{
// выполняем метод renewContent();
$this->renewContent();

// и списываем необходимое кол-во баллов
$UserText = 'С Вашего счета было списано <b>'.$sum_points.'</b> баллов!';
AlphaUserPointsHelper::newpoints( 'sysplgaup_renewad', $UserAUP->referreid, "", $UserText, '-'.$sum_points, $UserText);
}
else
{
// выводим сообщение что недостаточно баллов...
}

?>
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #2 : 24.12.2015, 01:33:05 »

Код:
<?php
require_once JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
$UserAUP = AlphaUserPointsHelper::getUserInfo( '', JFactory::getUser()->get('id') );
$sum_points = 500;// сумма баллов которые будет списано с пользователя

if($UserAUP->points >= $sum_points)
{
// выполняем метод renewContent();
$this->renewContent();

// и списываем необходимое кол-во баллов
$UserText = 'С Вашего счета было списано <b>'.$sum_points.'</b> баллов!';
AlphaUserPointsHelper::newpoints( 'sysplgaup_renewad', $UserAUP->referreid, "", $UserText, '-'.$sum_points, $UserText);
}
else
{
// выводим сообщение что недостаточно баллов...
}

?>
Подскажи пожалуйста, куда енто вставить?
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #3 : 24.12.2015, 01:38:40 »

Подскажи пожалуйста, куда енто вставить?

там где вызываешь метод renewContent()
Вместо этой строчки которая вызывает этот метод вставляй этот код....

И не забудь заменить
Код:
$this->renewContent();
на правильный код который вызывает этот метод...
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #4 : 24.12.2015, 01:46:53 »

там где вызываешь метод renewContent()
Вместо этой строчки которая вызывает этот метод вставляй этот код....

И не забудь заменить
Код:
$this->renewContent();
на правильный код который вызывает этот метод...
У меня в \components\com_adsmanager\views\details\tmpl в default.php есть вывод текстовой кнопки Продлить объявление, как этот код правильно вмонтировать?

$target = TRoute::_("index.php?option=com_adsmanager&task=renew&catid".$this->content->category."&id=".$this->content->id);
                        echo "<a href='".$target."'>".JText::_('ADSMANAGER_RENEW_CONTENT')."</a>";
            echo "&nbsp;";
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #5 : 24.12.2015, 01:53:43 »

Если ты говоришь что это функция продления renewContent, то ее и ищи где она вызывается...
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #6 : 24.12.2015, 01:57:18 »

Если ты говоришь что это функция продления renewContent, то ее и ищи где она вызывается...
вот в этом default.php и вызывается или может я что то не то понимаю?
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #7 : 24.12.2015, 02:01:17 »

Если ты говоришь что это функция продления renewContent, то ее и ищи где она вызывается...
есть ещё в файле controller.php:
Показать текстовый блок
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #8 : 24.12.2015, 02:06:53 »

есть ещё в файле controller.php:

Ну вот, начало нашел, теперь найди файл модель ( Путь тебе уже указан, имя будет content.php )
в этом файле найди эту функцию и допиши код который я тебе дал...

Только для начала определи, какой отрезок кода в этой функции выполняет важную для тебя функцию - Продления
Пробуй методом тыка узнать!
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #9 : 24.12.2015, 02:19:10 »

Ну вот, начало нашел, теперь найди файл модель ( Путь тебе уже указан, имя будет content.php )
в этом файле найди эту функцию и допиши код который я тебе дал...

Только для начала определи, какой отрезок кода в этой функции выполняет важную для тебя функцию - Продления
Пробуй методом тыка узнать!
яж в самом первом посте и прописал эту функцию из этого content.php, надо в неё код правильно прописать AUP, у меня уже само правило создано в админке, там и сумма указана и сообщения указаны
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #10 : 24.12.2015, 02:23:09 »

Какая переменная содержим суммы списанных баллов?
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #11 : 24.12.2015, 02:28:58 »

Какая переменная содержим суммы списанных баллов?
поставил -40 баллов
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #12 : 24.12.2015, 02:30:06 »

Какая переменная содержим суммы списанных баллов?
смысл то какой, что когда начинает вызываться функция renewContent сначала проверяется код правила AUP, есть ли средства на счету у пользователя, если есть, то они списываются и продолжается дальше выполнятся функция renewContent, если не достаточно средств, то функция не выполняеться и выводиться сообщение
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #13 : 24.12.2015, 02:41:57 »

смысл то какой, что когда начинает вызываться функция renewContent сначала проверяется код правила AUP, есть ли средства на счету у пользователя, если есть, то они списываются и продолжается дальше выполнятся функция renewContent, если не достаточно средств, то функция не выполняеться и выводиться сообщение

попробуй вот так...
Код
<?php
  function renewContent($contentid, $ad_duration)
  {
  require_once JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
  $UserAUP = AlphaUserPointsHelper::getUserInfo( '', JFactory::getUser()->get('id') );
  $sum_points = 500;// сумма баллов которые будет списано с пользователя
 
  if($UserAUP->points >= $sum_points)
  {
  $UserText = 'С Вашего счета было списано <b>'.$sum_points.'</b> баллов!';
  $iser_points = AlphaUserPointsHelper::newpoints( 'sysplgaup_renewad', $UserAUP->referreid, "", $UserText, '-'.$sum_points, $UserText);
 
  if($iser_points)
  {
  $this->_db->setQuery( "SELECT expiration_date FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
  $expiration_date = $this->_db->loadResult();
  $time = strtotime($expiration_date);
  if ($time < time())
  {
  $time = time();
  }
  $time = $time + ( $ad_duration * 3600 *24);
  $newdate = date("Y-m-d H:i:s",$time);
 
  $this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate', date_created = NOW(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid."");//TODO and recall_mail_sent = 1
  $this->_db->query();
  }
  }
  else
  {
  echo 'не хватает баллов!';
  }
  }
?>
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #14 : 24.12.2015, 02:51:39 »

попробуй вот так...
Код
<?php
  function renewContent($contentid, $ad_duration)
  {
  require_once JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
  $UserAUP = AlphaUserPointsHelper::getUserInfo( '', JFactory::getUser()->get('id') );
  $sum_points = 500;// сумма баллов которые будет списано с пользователя
 
  if($UserAUP->points >= $sum_points)
  {
  $UserText = 'С Вашего счета было списано <b>'.$sum_points.'</b> баллов!';
  $iser_points = AlphaUserPointsHelper::newpoints( 'sysplgaup_renewad', $UserAUP->referreid, "", $UserText, '-'.$sum_points, $UserText);
 
  if($iser_points)
  {
  $this->_db->setQuery( "SELECT expiration_date FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
  $expiration_date = $this->_db->loadResult();
  $time = strtotime($expiration_date);
  if ($time < time())
  {
  $time = time();
  }
  $time = $time + ( $ad_duration * 3600 *24);
  $newdate = date("Y-m-d H:i:s",$time);
 
  $this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate', date_created = NOW(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid."");//TODO and recall_mail_sent = 1
  $this->_db->query();
  }
  }
  else
  {
  echo 'не хватает баллов!';
  }
  }
?>
никакой реакции, только сообщение вылезло, что объявление продлено и всё, дата не обновилась и сумма не списалась Sad
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #15 : 24.12.2015, 02:53:21 »

системные сообщения вообще можно не прописывать, они уже прописаны
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #16 : 24.12.2015, 02:54:47 »

функция renewContent без правила AUP работает, я его проверял
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #17 : 24.12.2015, 02:56:45 »

никакой реакции, только сообщение вылезло, что объявление продлено и всё, дата не обновилась и сумма не списалась Sad

тогда добавь к условию if($iser_points) если...
Код
<?php else
  {
  echo 'проблемы с выполнением правила AUP';
  } ?>
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #18 : 24.12.2015, 03:10:39 »

никакой реакции, только сообщение вылезло, что объявление продлено и всё, дата не обновилась и сумма не списалась Sad

покажи какой код у тебя получился?
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #19 : 24.12.2015, 03:29:30 »

покажи какой код у тебя получился?
не получается по этому коду, я сейчас вот так вставил:
Показать текстовый блок

объявление продлилось, хотя баллов на счету не хватало, вылезло сообщение:

Системное сообщение

У вас не хватает Баллов!Ваше объявление продлено
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #20 : 24.12.2015, 12:25:50 »

покажи какой код у тебя получился?
Что надо ещё дописать? Sad
« Последнее редактирование: 24.12.2015, 12:43:07 от Ishti39 » Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #21 : 24.12.2015, 21:28:17 »

покажи какой код у тебя получился?
Cheesy NewUsers посмотри, что у меня не так получилось  Shocked
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #22 : 24.12.2015, 21:38:26 »

Cheesy NewUsers посмотри, что у меня не так получилось  Shocked

Я тебе дал готовый код. Ты знаешь куда его надо вставить...
Посмотри внимательно на свой и мой код...
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #23 : 25.12.2015, 19:07:53 »

Я тебе дал готовый код. Ты знаешь куда его надо вставить...
Посмотри внимательно на свой и мой код...
NewUsers я не знаю как правильно вставить:
<?php else
         {
            echo 'проблемы с выполнением правила AUP';
         } ?>
я в рнр неособо понимаю и у меня там в content.php с этими знаками <?php....?> не вставляется, можешь полностью с доработками и без этих <?php....?> знаков написать?
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #24 : 25.12.2015, 19:22:14 »

Попробуй!

* content.rar (6.59 Кб - загружено 14 раз.)
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #25 : 25.12.2015, 19:38:25 »

Попробуй!
Написало:Ваше объявление продлено!Дата не изменилась никак, а про баллы вообще тишина  Sad
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #26 : 25.12.2015, 19:42:00 »

Создай новое правило для AUP
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #27 : 25.12.2015, 19:45:37 »

Создай новое правило для AUP
с таким же Уникальным именем функции sysplgaup_renewad?
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #28 : 25.12.2015, 19:55:49 »

с таким же Уникальным именем функции sysplgaup_renewad?

А смысл его тогда создавать, если создашь с таким же именем. Конечно новое пропиши!
Не забудь изменить имя плагина в файле....
Записан
Ishti39
Осваиваюсь на форуме
***

Репутация: +8/-0
Offline Offline

Пол: Мужской
Сообщений: 140



« Ответ #29 : 25.12.2015, 20:03:37 »

А смысл его тогда создавать, если создашь с таким же именем. Конечно новое пропиши!
Не забудь изменить имя плагина в файле....

тоже самое  Sad ничего не изменилось Cry
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet