Перейти к содержанию

Nicolas

Пользователи
  • Постов

    15
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Nicolas

  1. Поковырялся в исходнике обработки postTopic, проблему нашел в этой строке:

     

     

    try
    			{
    
    				if ( $_postClass->addTopic() === FALSE )

     

     

    после вызова addTopic настает гробовая тишина. Не срабатывает в том числе и Exeption.

     

    P.S.

    Кстати, а в чем может быть проблема, не могу авторизироваться на официальном форуме IPB, что бы подергать разработчиков. Сообщает, что пароль неверный, хотя даже прохожу полностью восстановление пароля (раз 5 уже это делал) и ввожу даже предложенный пароль системой восстановления.

  2. Ну судя по исходникам есть небольшие изменения, но чисто косметические, там логирование вынесено в отдельный метод.

     

    /**
    	 * Posts a topic to the board remotely
    	 * 
    	 * @param	string  $api_key		Authentication Key
    	 * @param	string  $api_module		Module
    	 * @param	string	$member_field	Member field to check (valid: "id", "email", "username", "displayname")
    	 * @param	string	$member_key		Member key to check for
    	 * @param	integer	$forum_id		Forum id to post in
    	 * @param	string	$topic_title	Topic title
    	 * @param	string	$topic_description	Topic description
    	 * @param	string	$post_content	Posted content
    	 * @return	string	xml
    	 */	
    	public function postTopic( $api_key, $api_module, $member_field, $member_key, $forum_id, $topic_title, $topic_description, $post_content )
    	{
    		//-----------------------------------------
    		// INIT
    		//-----------------------------------------
    
    		$api_key                = IPSText::md5Clean( $api_key );
    		$api_module             = IPSText::parseCleanValue( $api_module );
    		$member_field           = IPSText::parseCleanValue( $member_field );
    		$member_key             = IPSText::parseCleanValue( $member_key );
    		$topic_title            = IPSText::parseCleanValue( $topic_title );
    		$forum_id			    = intval( $forum_id );
    		$UNCLEANED_post_content = $post_content;
    		
    		//-----------------------------------------
    		// Authenticate
    		//-----------------------------------------
    		
    		if ( $this->__authenticate( $api_key, $api_module, 'postTopic' ) !== FALSE )
    		{
    			//-----------------------------------------
    			// Add log
    			//-----------------------------------------
    			
    			$this->addLogging( $api_key );
    
    			//-----------------------------------------
    			// Member field...
    			//-----------------------------------------
    			
    			$member	= IPSMember::load( $member_key, 'all', $member_field );
    			
    			//-----------------------------------------
    			// Got a member?
    			//-----------------------------------------
    			
    			if ( ! $member['member_id'] )
    			{
    				$this->classApiServer->apiSendError( '10', "IP.Board could not locate a member using $member_key / $member_field" );
    			}
    			
    			//-----------------------------------------
    			// Get some classes
    			//-----------------------------------------
    
    			ipsRegistry::getAppClass( 'forums' );
    
    			require_once( IPSLib::getAppDir( 'forums' ) . '/sources/classes/post/classPost.php' );/*noLibHook*/
    			$classToLoad = IPSLib::loadLibrary( IPSLib::getAppDir( 'forums' ) . '/sources/classes/post/classPostForms.php', 'classPostForms', 'forums' );
    			$_postClass = new $classToLoad( $this->registry );
    			
    			/* reset forum list to allow all access */
    			$this->registry->getClass('class_forums')->strip_invisible = false;
    			$this->registry->getClass('class_forums')->forumsInit();
    				
    			//-----------------------------------------
    			// Set the data
    			//-----------------------------------------
    		
    			$_postClass->setIsPreview( false );
    			$_postClass->setForumData( $this->registry->getClass('class_forums')->forum_by_id[ $forum_id ] );
    			$_postClass->setForumID( $forum_id );
    			$_postClass->setPostContent( $UNCLEANED_post_content );
    			$_postClass->setAuthor( $member['member_id'] );
    			$_postClass->setPublished( true );
    			$_postClass->setSettings( array( 'enableSignature' => 1,
    												   'enableEmoticons' => 1,
    												   'post_htmlstatus' => 0,
    												   'enableTracker'   => 0 ) );
    			$_postClass->setTopicTitle( $topic_title );
    
    			# Switch off perm checks
    			$_postClass->setBypassPermissionCheck(true);
    			/**
    			 * And post it...
    			 */
    			try
    			{
    				if ( $_postClass->addTopic() === FALSE )
    				{
    					$this->classApiServer->apiSendError( '10', "IP.Board could not post the topic: " . $_postClass->getPostError() );
    				}
    			}
    			catch( Exception $error )
    			{
    				$this->classApiServer->apiSendError( '10', "IP.Board post class exception: " . $error->getMessage() );
    			}
    
    			$this->classApiServer->apiSendReply( array( 
    														'result'   => 'success',
    														'topic_id' => $_postClass->getTopicData('tid')
    												)	);
    			exit();
    		}
    	}

     

     

     

    При этом всем, метод fetchMember нормально работает, как и до апгрейда...

    Весь процесс отладки еще усложняет тот факт, что с XML-RPC я работаю с Flash приложения, и при обработке ответа от postTopic не возвращается ответ в формате XML-RPC, так как обработчик "обваливается" на неверном формате.

  3. Ну такой способ не подходит, так как, я хочу лишь попробовать. Смайлы давно уже используем, есть предположение, что многим может не понравиться идея с смайлами из Skype (хотя они мне очень нравятся)

    Да и неплохо иметь несколько наборов...

    Ладно, буду пробовать.

  4. А кто то пробовал разместить Shoutbox Global в sidebar, где живут хуки : последние темы, тэги?

    В шапке форума размещать нет желания, а на отдельной странице, Shoutbox практически никто не пользуется. Чат полностью потерял всю свою полезность, без использования Global хука.

    Может уже есть "подшаманенные" версии свежих Shoutbox для sidebar?

  5. В обычном никаких ошибок, но я вообще не уважаю ошибки, если есть ошибки, значит не все хорошо.

    В обычном режиме большинство хуков не работает, особенно если хук связан с выводом какой либо информации в темплейты.

    Simple points вообще нигде не выводится, кроме как в отдельной страничке Points.

    Хук - Кто был сегодня на форуме, не выводится тоже, хоть настроен и включен.

  6. Похоже что хуки не работают, точнее те что нужны.

    Допустим Simple Points (в настройках мода указываешь, что бы очки выводились в профиле пользователя, при этом совсем ничего не происходит), кто сегодня был на сайте (Должен же список выводится, при этом ничего.).

    Как можно заставить хуки работать?

    В режиме Dev выводится

    
    Fatal error: Call to a member function userHoverCard() on a non-object in Z:\home\overseers.in.ua\www\forum\admin\sources\base\ipsMember.php on line 158
    
    
    Если включить Performance mode (который отключает хуки)
    
    Fatal error: Call to a member function boardIndexTemplate() on a non-object in Z:\home\overseers.in.ua\www\forum\admin\applications\forums\modules_public\forums\boards.php on line 87
    
    

  7. Вообще реально с 3.0.х версии, перегруженной различными модами, из-за которых пришлось даже слегка модифицировать таблицы пользователей (дополнительная система очков к примеру), то есть много различных вкраплений кода, в исходные коды форума, сделать апгрейд до 3.3.3 ?

×
×
  • Создать...