Добавить платное действие на форум

#1 24 марта 2013 в 23:38
Приветствую уважаемые!
Нужен специалист который поможет добавить платное действие на форум с помощью биллинга.
Сейчас доступно оплачивать создание темы на форуме. Мне нужно добавить оплату за добавление сообщения.

Цену и сроки можно в личку.
#2 25 марта 2013 в 04:47
Ну а мне добавить вознаграждение за ответы в компонент "вопросы и ответы"
#3 25 марта 2013 в 18:49
Уважаемые! Неужели никто не сможет мне помочь!?
Или может быть не хочет:(
#4 25 марта 2013 в 18:55
чуть позже опишу как сделать (если есть интерес сделать самому), там ничего сложного. Пока можете ознакомиться instantcms.ru/billing/api.html
#6 25 марта 2013 в 20:10
Fuze, Спасибо огромное, я конечно попробую сделать сам, но сомневаюсь что получится:)
#7 25 марта 2013 в 20:30
1. Создаем в директории /components/forum файл install.php с содержанием

  1.  
  2. <?php
  3.  
  4. function info_component_forum(){
  5.  
  6. $_component['title'] = 'Форум';
  7. $_component['description'] = '';
  8. $_component['link'] = 'forum';
  9. $_component['author'] = 'InstantCMS team';
  10. $_component['internal'] = '0';
  11. $_component['version'] = '1.11';
  12.  
  13. return $_component;
  14.  
  15. }
  16.  
  17. // ========================================================================== //
  18.  
  19. function install_component_forum(){
  20. return true;
  21. }
  22.  
  23. // ========================================================================== //
  24.  
  25. function upgrade_component_forum(){
  26.  
  27. if (cmsCore::getInstance()->isComponentInstalled('billing')){
  28.  
  29. cmsCore::loadClass('billing');
  30.  
  31. cmsBilling::registerAction('forum', array(
  32. 'name' => 'add_forum_post',
  33. 'title' => 'Добавление поста на форуме')
  34. );
  35.  
  36. }
  37.  
  38. return true;
  39.  
  40. }
  41.  
  42. // ========================================================================== //
  43.  
  44. function remove_component_forum(){
  45. return true;
  46. }
  47.  
  48. // ========================================================================== //
  49.  
  50. ?>
2. Далее в файле /components/forum/frontend.php после строк
  1.  
  2. if($last_post){
  3. $last_post['content'] = preg_replace('/\[hide(.*?)\](.*?)\[\/hide\]/sui', '', $last_post['content']);
  4. $last_post['content'] = preg_replace('/\[hide(.*?)\](.*?)$/sui', '', $last_post['content']);
  5. $quote_nickname = $inDB->get_field('cms_users', "id = '{$last_post['user_id']}'", 'nickname');
  6. $last_post['content'] = '[quote='.$quote_nickname.']'."\r\n".$last_post['content']."\r\n".'[/quote]'."\r\n\r\n";
  7. $pagetitle = $_LANG['REPLY_FULL_QUOTE'];
  8. }
Добавить
  1.  
  2. if (IS_BILLING){
  3. cmsBilling::checkBalance('forum', 'add_forum_post');
  4. }
И наконец перед строкой
  1. $post_id = $model->addPost(array(
добавляем
  1.  
  2. if ($do=='newpost'){
  3. if (IS_BILLING) {
  4. cmsBilling::process('forum', 'add_forum_post');
  5. }
  6. }
  7.  
После чего в админке перейти в установку компонентов и нажать обновить компонент форум.
Не проверял, но должно все работать)

Fuze, гляньте пожалуйста и эту тему instantcms.ru/forum/thread14525.html#130584

Роман
Глянул, с ходу не скажу
#8 25 марта 2013 в 21:19
Fuze, Спасибо, сегодня попробую…
#9 25 марта 2013 в 21:40

Пока можете ознакомиться instantcms.ru/billing/api.html

Fuze
Там нет информации об пополнении/списании с конкретного юзера по ид, а не текущего.
#10 25 марта 2013 в 21:49

Там нет информации об пополнении/списании с конкретного юзера по ид, а не текущего.

lokanaft
  1. cmsBilling::process('forum', 'add_forum_post', $cost, $author_array);
#11 25 марта 2013 в 21:53
Так что же там, в $author_array должно быть?)
#12 25 марта 2013 в 22:00

Так что же там, в $author_array должно быть?)

lokanaft
  1. $author_array = $inDB->get_fields('cms_users', "id='{$user_id}'", '*');
#13 25 марта 2013 в 22:03

Там нет информации об пополнении/списании с конкретного юзера по ид, а не текущего.

lokanaft
Тоже как то пришлось столкнуться с этим. Заказывали как-то доработку. Открываем админку биллинга и изучаем примененные методы. Ничего сложного. В моем случае нужно было списать с одного юзера и начислить другому. Есть два метода cmsBilling::process() и cmsBilling::pay(), параметры уже не помню. Ищем в файлах админки применение и делаем по подобию. И ещё, если нужно напрямую с балансом работать, то он извлекается из $inUser->balance, если не ошибаюсь.
#14 25 марта 2013 в 22:14
Fuze, Марат, спасибо.
#15 26 марта 2013 в 00:06
Fuze, Не получилось:( Файл install.php не работает…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.