Skip to content

Бот на IPB 3.X.X

Здравствуйте, решил поставить форум IPB 3.x.x. т.к я с ним работал, и нормально его знаю.

 

Но столкнулся с проблемой. Мне нужно реализовать бота на форум хотел в нем реализовать, что как только на игровом сервере назначили бан игроку. ТО в соответствующем разделе назовем "Баны", бот отписывался.

 

Ник:

Причина:

Дата окончания бана:

 

Так же что бы бот мог из темы где игроки отписывались на добавление в список исключения (для доступа на игровой сервер) что бы бот автоматом его добавлял.

Где найти модуль как настроить, или его только под заказ?

 

Подскажите пожалуйста.

Featured Replies

Используйте classPost. Содержит методы addReply и addTopic.

 

Как-то так:

<?php

define('IPS_ENFORCE_ACCESS', true);
require_once( 'initdata.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

$registry = ipsRegistry::instance();
$registry->init();

$classToLoad = IPSLib::loadLibrary( IPSLib::getAppDir( 'forums' ) . '/sources/classes/post/classPost.php', 'classPost', 'forums' );
$post = new $classToLoad( $registry );

$post->setForumID( 1 ); 
$post->setAuthor( 1 );
$post->setPostContent( "[i]Hello[/i] [b]there![/b]" );
$post->setTopicTitle('Hi!');
$post->setPublishedRedirectSkip( true );

if($post->addTopic()) {
echo 'Тема успешно создана';
} else {
echo 'Ошибка: '.$post->_postErrors;
}

?>

  • 2 years later...

Ответ в теме [addReply] (3.3x, 3.4x)

Topic Posting Library (classPost.php)

 

setForumID - ид форума где находится тема

setTopicID - ид темы

setAuthor - ид автора

 

define('IPS_ENFORCE_ACCESS', true);
require_once( 'initdata.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

$registry = ipsRegistry::instance();
$registry->init();

$classToLoad = IPSLib::loadLibrary( IPSLib::getAppDir( 'forums' ) . '/sources/classes/post/classPost.php', 'classPost', 'forums' );
$post = new $classToLoad( $registry );

$post->setForumID(2);
$post->setTopicID(34);
$post->setAuthor(1);
$post->setPublished(true);
$post->setPostContent('My api post');

if($post->addReply()) {
   echo 'Сообщение успешно добавлено';
} else {
   echo 'Ошибка: '.$post->_postErrors;
}

Ответ в теме [addReply] (для более старых версии 3.1x, 3.2x)

 

define('IPS_ENFORCE_ACCESS', true);
require_once( 'initdata.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

$registry = ipsRegistry::instance();
$registry->init();

$classToLoad = IPSLib::loadLibrary( IPSLib::getAppDir( 'forums' ) . '/sources/classes/post/classPost.php', 'classPost', 'forums' );
$post = new $classToLoad( $registry );

$post->setForumID(2);
$post->setForumData($registry->class_forums->getForumById($post->getForumID()));
$post->setTopicID(34);
$post->setTopicData($registry->topics->getTopicById($post->getTopicID()));
$post->setAuthor(1);
$post->setPublished(true);
$post->setPostContent('My api post');

if($post->addReply()) {
   echo 'Сообщение успешно добавлено';
} else {
   echo 'Ошибка: '.$post->_postErrors;
}

@siv1987,

Извиняюсь, а что это за код, для чего он?

  • 7 months later...

Ответ в теме [addReply] (для более старых версии 3.1x, 3.2x)

Я так понял что нужно создать файл с таким текстом? А куда его разместить?

Я так понял что нужно создать файл с таким текстом?
Да. Куда хотите. Создали файл reply.php с указанным содержимым, поместили его в корень форума. Каждый раз при обращении к forum/reply.php будет публиковаться ответ.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.