PHP Forum <-> Tapatalk

DownFall

Registered
Здравейте.

Използвам форумен софтуер, който съм писал сам. Имам желание да интегрирам към него Tapatalk. Виждам, че имат готови варианти за популярните платформи като phpbb, ipb, smf и т.н. За собствената платформа обаче нещата са малко по-различни сякаш.

Надявам се да успеете да ме насочите как точно става интеграцията с това приложение. Благодаря предварително.
 
Това Tapatalk е мобилна версия на форума ако негреша.
тоест версия на форума в която ще е съвместима ако влезеш през мобилен телефон.
 
Styl3rbg каза:
http://www.tapatalk.com/api.php

Разглеждах документацията.. Използвам за образец готовия код за phpbb и по него се ориентирам, за да пиша моя.. Докарах го до едно положение, където вече се виждам в приключение.

Преглед на категориите работи ОК.
Преглед на форумите също е ОК.
Не мога да прегледам темите обаче.. Не дава нито грешка, нито нищо.. Показва колко поста има в темата, пресмята и страниците, но си остава на "Loading.." до безкрай.. На същия хост имам инсталиран и phpbb, към който съм закачил отделен tapatalk - там работи чудесно.. Явно при мен се дъни нещо, но не мога да го схвана от къде, а вече няколко часа се взирам..

Ето го и сорса, който отговаря на "get_thread"

PHP:
<?php
if(!defined('Inc'))
	die('Direct access to this location is not allowed.');

if(!function_exists('show_topic'))
	require_once DirPath("{$context['script_path']}|includes|show_topic.inc.php");
$context['Tapatalk']['forum_id'] = (int)XML_to_text($xml -> params -> param[0] -> value -> string);
if(isset($xml -> params -> param[1] -> value -> i4))
	$context['Tapatalk']['start_num'] = (int)XML_to_text($xml -> params -> param[1] -> value -> i4);
if(isset($xml -> params -> param[2] -> value -> i4))
	$context['Tapatalk']['last_num'] = (int)XML_to_text($xml -> params -> param[2] -> value -> i4);
if(isset($context['Tapatalk']['start_num']) && isset($context['Tapatalk']['last_num']))
{
	$PostPerPage = ($context['Tapatalk']['last_num'] - $context['Tapatalk']['start_num'])+1;
	$StartNum = $context['Tapatalk']['start_num'];
	$LastNum = $context['Tapatalk']['last_num'];
}
else
{
	$PostPerPage = -1;
	$StartNum = 0;
	$LastNum = 0;
}
$Results = show_topic($context['Tapatalk']['forum_id'], $PostPerPage, $StartNum, $LastNum);
foreach($Results['data'] as $R)
{
	$xmlrpc_post = new xmlrpcval
	(
		array
		(
			'topic_id'          => new xmlrpcval($R['t_id'], 'string'),
			'post_id'           => new xmlrpcval($R['msg_id'], 'string'),
			'post_title'        => new xmlrpcval(Tapatalk_Secure_Input($R['t_name']), 'base64'),
			'post_content'      => new xmlrpcval(Tapatalk_Secure_Input($R['msg_content']), 'base64'),
			'post_author_id'    => new xmlrpcval($R['msg_author_id'], 'string'),
			'post_author_name'  => new xmlrpcval(Tapatalk_Secure_Input($R['u_display_name']), 'base64'),
			'icon_url'          => new xmlrpcval(GetAvatar('mini', $R['u_avatar']), 'string'),
			'post_time'         => new xmlrpcval($R['msg_ctime'], 'dateTime.iso8601'),
			'timestamp'         => new xmlrpcval($R['msg_ctime'], 'string'),
			// 'attachments'       => new xmlrpcval($attachments, 'array'),
			// 'is_online'         => new xmlrpcval($row['S_ONLINE'], 'boolean'),
			'can_edit'          => new xmlrpcval(false, 'boolean'),
			'can_delete'        => new xmlrpcval(false, 'boolean'),
			'can_approve'       => new xmlrpcval(false, 'boolean'),
			'is_approved'       => new xmlrpcval(true, 'boolean'),
			'can_move'          => new xmlrpcval(false, 'boolean'),
			'can_ban'           => new xmlrpcval(false, 'boolean'),
			'allow_smilies'     => new xmlrpcval(true, 'boolean'),
		), 'struct'
	);
	
	$post_list[] = $xmlrpc_post;
	unset($xmlrpc_post);
}

$response = new xmlrpcval
(
	array
	(
		'total_post_num' => new xmlrpcval($Results['total_post_num'], 'int'),
		'forum_id'       => new xmlrpcval($Results['data'][0]['b_id'], 'string'),
		'forum_name'     => new xmlrpcval(Tapatalk_Secure_Input(GetBoardName($Results['data'][0]['b_id'])), 'base64'),
		'topic_id'       => new xmlrpcval($Results['data'][0]['t_id'], 'string'),
		'topic_title'    => new xmlrpcval(Tapatalk_Secure_Input($Results['data'][0]['t_name']), 'base64'),
		'position'       => new xmlrpcval(rand(1,30), 'int'),

		'can_reply'      => new xmlrpcval(false, 'boolean'),
		'can_report'     => new xmlrpcval(false,'boolean'),
		'can_upload'     => new xmlrpcval(false, 'boolean'),
		'can_delete'     => new xmlrpcval(false, 'boolean'),
		'can_move'       => new xmlrpcval(false, 'boolean'),
		'can_subscribe'  => new xmlrpcval(false, 'boolean'),
		'can_rename'     => new xmlrpcval(false, 'boolean'),
		'is_subscribed'  => new xmlrpcval(false, 'boolean'),
		'can_stick'      => new xmlrpcval(false, 'boolean'),
		'is_sticky'      => new xmlrpcval(false, 'boolean'),
		'can_close'      => new xmlrpcval(false, 'boolean'),
		'is_closed'      => new xmlrpcval(false, 'boolean'),
		'can_approve'    => new xmlrpcval(false, 'boolean'),
		'is_approved'    => new xmlrpcval(true, 'boolean'),

		'max_attachment' => new xmlrpcval(1, 'int'),
		'max_png_size'   => new xmlrpcval(50, 'int'),
		'max_jpg_size'   => new xmlrpcval(50, 'int'),

		'posts'          => new xmlrpcval($post_list, 'array'),
	), 'struct'
);

$response = new xmlrpcresp($response);
?>
 

Back
Горе