Перейти к контенту

Иван_Никитаев

Пользователи
  • Число публикаций

    8
  • Регистрация

  • Последнее посещение

Недавние посетители профиля

1 099 просмотров профиля

Достижения Иван_Никитаев

  1. Рушил проблему, отправив запрос о теме вручную, а не через API, т.к. лень искать и править кривые классы $postClass->setForumData( ipsRegistry::getClass('class_forums')->forum_by_id[$forumID] ); -> include "conf_global.php"; $sql = mysql_connect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass']) or die("Unable to connect to MySQL."); mysql_select_db($INFO['sql_database'], $sql) or die ("Unable to select database."); mysql_set_charset( 'utf8' ); $q = mysql_query(" SELECT f.*,p.* FROM forums f LEFT JOIN permission_index p ON ( p.perm_type='forum' AND p.app='forums' AND p.perm_type_id=f.id ) WHERE `id` = ".$forumID); $postClass->setForumData(mysql_fetch_assoc($q)); Получилось так: <?php require_once( './initdata.php' ); require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' ); $registry = ipsRegistry::instance(); $registry->init(); require_once( IPSLib::getAppDir( 'forums' ) . '/sources/classes/post/classPost.php' ); $forumID = 107; $postClass = new classPost( $registry ); $postClass->setForumID( $forumID ); include "conf_global.php"; $sql = mysql_connect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass']) or die("Unable to connect to MySQL."); mysql_select_db($INFO['sql_database'], $sql) or die ("Unable to select database."); mysql_set_charset( 'utf8' ); $q = mysql_query(" SELECT f.*,p.* FROM forums f LEFT JOIN permission_index p ON ( p.perm_type='forum' AND p.app='forums' AND p.perm_type_id=f.id ) WHERE `id` = ".$forumID); $postClass->setForumData(mysql_fetch_assoc($q)); $postClass->setTopicTitle( "title" ); $postClass->setPostContent( "text" ); $postClass->setAuthor( 282 ); if($postClass->addTopic()) { echo("ok"); } else { echo($postClass->_postErrors."<br>".$postClass->getAuthor( 'member_id' )."<br>".$postClass->getAuthor('g_post_new_topics')."<br>".$perm_array); } ?> И все прекрасно создается.
  2. if ( $this->registry->permissions->check( 'start', $this->getForumData(), $perm_array ) === FALSE ) { if ( $this->_bypassPermChecks !== TRUE ) { throw new Exception( 'NO_START_PERM' ); } } Вот на этом месте выдает ошибку, по-моему что-то не так в этой строчке $postClass->setForumData( ipsRegistry::getClass('class_forums')->forum_by_id[$forumID] ); Массив $this->getForumData() Если у меня есть доступ к форуму Если доступа нет NULL Из-за этого выдает ошибку NO_START_PERM, где редактировать функцию $this->getForumData()? Хотя кажется быстрее будет вручную добавлять в базу, чем использовать кривое API.
  3. Единственная строка с setAuthor $this->setAuthor( array_merge( $this->getAuthor(), $group_cache[ $this->getAuthor('member_group_id') ] ) ); Вот что нашел в функции addTopic $topic = array( 'title' => $this->_topicTitle, 'title_seo' => IPSText::makeSeoTitle( $this->_topicTitle ), 'state' => $topic['state'], 'posts' => 0, 'starter_id' => $this->getAuthor('member_id'), 'starter_name' => $this->getAuthor('member_id') ? $this->getAuthor('members_display_name') : $this->request['UserName'], 'seo_first_name' => IPSText::makeSeoTitle( $this->getAuthor('member_id') ? $this->getAuthor('members_display_name') : $this->request['UserName'] ), 'start_date' => IPS_UNIX_TIME_NOW, 'last_poster_id' => $this->getAuthor('member_id'), 'last_poster_name' => $this->getAuthor('member_id') ? $this->getAuthor('members_display_name') : $this->request['UserName'], 'seo_last_name' => IPSText::makeSeoTitle( $this->getAuthor('member_id') ? $this->getAuthor('members_display_name') : $this->request['UserName'] ), 'last_post' => IPS_UNIX_TIME_NOW, 'author_mode' => $this->getAuthor('member_id') ? 1 : 0, 'poll_state' => ( count( $this->poll_questions ) AND $this->can_add_poll ) ? 1 : 0, 'last_vote' => 0, 'views' => 0, 'forum_id' => $this->getForumData('id'), 'approved' => ( $this->getPublished() === TRUE ) ? 1 : 0, 'pinned' => intval( $topic['pinned'] ), 'topic_open_time' => intval( $this->times['open'] ), 'topic_close_time' => intval( $this->times['close'] ) ); Используется ID пользователя, имя пользователя используется для версии 2.3.x Такой же код по созданию темы стоит в register.php, при регистрации пользователя проверяет IP, если IP зарегистрированного пользователя уже ранее зарегистрирован, то создается тема в разделе, к которому есть доступ только у администроторов, тема создается без проблем.
  4. Взял отсюда: http://www.ibresource.ru/ipb3/network_and_integration Если у меня есть доступ к форуму, то тема создается от автора ID 282, если я запихну код в index.php, то тема будет создана, не зависимо от того, есть у меня доступ к форуму или нет.
  5. Всем привет, проблема с API создания темы. Вот файл 1.php, находится он в корне. <?php require_once( './initdata.php' ); require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' ); $registry = ipsRegistry::instance(); $registry->init(); require_once( IPSLib::getAppDir( 'forums' ) . '/sources/classes/post/classPost.php' ); $forumID = 107; $postClass = new classPost( $registry ); $postClass->setForumID( $forumID ); $postClass->setForumData( ipsRegistry::getClass('class_forums')->forum_by_id[$forumID] ); $postClass->setTopicTitle( "title" ); $postClass->setPostContent( "text" ); $postClass->setAuthor( 282 ); $postClass->addTopic(); ?> Тема создается только если файл открыл пользователь, у которого есть доступ к форуму ID 107, если у пользователя нет доступа, то тема не создается. У пользователя ID 282 есть доступ ко всему форуму. Из-за чего могут не создаваться темы, почему проверяет права пользователя, который открыл тему, а не права пользователя ID 282? PS: Если запихнуть этот код в index.php, то тема тоже создается.
  6. В полном редактирование поставь галку http://s018.radikal.ru/i510/1201/90/fa1392090675.png
  7. В каком файле хранится текст "Ограничение доступа в АЦ" на форуме IPB 2.3.6? http://s017.radikal.ru/i401/1201/e6/45672373b353.png вот что у меня там
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.