MoPhpBB - помогите немного доработать.

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
moblex
phpBB 1.0.0
Сообщения: 1
Стаж: 19 лет 2 месяца

MoPhpBB - помогите немного доработать.

Сообщение moblex »

Скачал мобильную версию форума phpbb - Mobile Online phpBB (mophpbb).

General Information
===================
Mobile Online phpBB (mophpbb), the first one in Mobile Online Style series, is a phpBB2 add-on module. It enables user to access phpBB2 forum from mobile/cellular phone or PDA through WAP, xHTML (XHTML-MP) and HTML (simple text only) interfaces.


Поставил, в принципе все устраивает, но хотелось бы, чтобы когда смотришь определенную тему форума, она выводилась полностью (или хотябы несколько сообщений), а не показывала сообщения этой темы по одному. Помогите разобраться, вот код файла (post.php), который нужно доделать:

<?php
require 'sys.php';

$userdata = session_pagestart($user_ip, PAGE_INDEX);

require 'lib.php';

$opt['topic_id'] = mo_get_get_opt('topic_id');
$opt['index'] = mo_get_get_opt('index');
$opt['topic_index'] = mo_get_get_opt('topic_index');

if ( !$opt['topic_id'] )
{
mo_echo_header($mo_lang['post'], 'index.php');
mo_echo_msg($mo_lang['topic_not_exist']);
mo_echo_br();
mo_echo_url($mo_lang['continue'], 'index.php');
mo_echo_hr();
mo_echo_url($mo_lang['menu'], 'menu.php');
mo_echo_sp();
mo_echo_url($mo_lang['home'], 'index.php');
mo_echo_footer();
exit(0);
}

list($post_id, $poster_id) = mo_get_posts($opt['topic_id'], $opt['index']);
list($subject, $message) = mo_get_posts_text($post_id);
list($username, $password, $email) = mo_get_users($poster_id);
list($forum_id, $topic_replies) = mo_get_topics($opt['topic_id']);
list($cat_id, $forum_topics, $auth_read, $auth_post, $auth_reply) =
mo_get_forums($forum_id);

$is_auth = array();
$is_auth = auth(AUTH_READ, $forum_id, $userdata);

if ( !$is_auth['auth_read'] && !$userdata['session_logged_in'] )
{
mo_echo_header($mo_lang['post'], 'login.php', $mo_var['refresh_timer'],
'redirect', 'post.php', 'topic_id', $opt['topic_id'],
'index', $opt['index'], 'topic_index', $opt['topic_index']);
mo_echo_msg($mo_lang['login_entry']);
mo_echo_br();
mo_echo_url($mo_lang['login'], 'login.php', 'redirect', 'post.php',
'topic_id', $opt['topic_id'], 'index', $opt['index'],
'topic_index', $opt['topic_index']);
mo_echo_hr();
mo_echo_url($mo_lang['topics'], 'topic.php', 'forum_id', $forum_id,
'index', $opt['topic_index']);
mo_echo_br();
mo_echo_url($mo_lang['menu'], 'menu.php');
mo_echo_sp();
mo_echo_url($mo_lang['home'], 'index.php');
mo_echo_footer();
exit(0);
}

if ( !$is_auth['auth_read'] )
{
mo_echo_header($mo_lang['post']);
if ( $auth_read == AUTH_REG )
{
mo_echo_msg($mo_lang['registered_read_only']);
mo_echo_hr();
}
elseif ( $auth_read == AUTH_ACL )
{
mo_echo_msg($mo_lang['granted_read_only']);
mo_echo_hr();
}
elseif ( $auth_read == AUTH_MOD )
{
mo_echo_msg($mo_lang['moderator_read_only']);
mo_echo_hr();
}
mo_echo_url($mo_lang['topics'], 'topic.php', 'forum_id', $forum_id,
'index', $opt['topic_index']);
mo_echo_br();
mo_echo_url($mo_lang['menu'], 'menu.php');
mo_echo_sp();
mo_echo_url($mo_lang['home'], 'index.php');
mo_echo_footer();
exit(0);
}

if ( !isset($_GET['index']) || !isset($_GET['topic_index']) )
{
mo_update_topics('view', $opt['topic_id']);
}

mo_echo_header($mo_lang['post']);

mo_echo_url($mo_lang['author'] . ':');
mo_echo_br();
mo_echo_msg($username);
if ( $subject )
{
mo_echo_br();
mo_echo_url($mo_lang['subject'] . ':');
mo_echo_br();
mo_echo_msg($subject);
}
mo_echo_br();
mo_echo_url($mo_lang['message'] . ':');
mo_echo_br();
mo_echo_msg($message);

mo_echo_hr();
if ( $opt['index'] < $topic_replies )
{
mo_echo_url($mo_lang['next'], 'post.php', 'topic_id', $opt['topic_id'],
'index', $opt['index']+1, 'topic_index', $opt['topic_index']);
mo_echo_sp();
}
mo_echo_url($mo_lang['topics'], 'topic.php', 'forum_id', $forum_id,
'index', $opt['topic_index']);
if ( $opt['index'] > 0 )
{
mo_echo_sp();
mo_echo_url($mo_lang['prev'], 'post.php', 'topic_id', $opt['topic_id'],
'index', $opt['index']-1, 'topic_index', $opt['topic_index']);
}

if ( $opt['index'] < $topic_replies && $topic_replies >= $mo_var['long_topic'] )
{
mo_echo_br();
mo_echo_url($mo_lang['last'], 'post.php', 'topic_id', $opt['topic_id'],
'index', $topic_replies, 'topic_index', $opt['topic_index']);
}
if ( $opt['index'] > 0 && $topic_replies >= $mo_var['long_topic'] )
{
if ( $opt['index'] < $topic_replies ) mo_echo_sp();
else mo_echo_br();
mo_echo_url($mo_lang['first'], 'post.php', 'topic_id', $opt['topic_id'],
'index', 0, 'topic_index', $opt['topic_index']);
}

mo_echo_br();
mo_echo_url($mo_lang['reply'], 'reply.php', 'topic_id', $opt['topic_id'],
'post_index', $opt['index'], 'topic_index', $opt['topic_index']);

mo_echo_br();
mo_echo_url($mo_lang['menu'], 'menu.php');
mo_echo_sp();
mo_echo_url($mo_lang['home'], 'index.php');

mo_echo_footer();
?>
svtol
phpBB 1.2.0
Сообщения: 12
Стаж: 19 лет

Сообщение svtol »

Слушай а как ты заставил русский коректно отбражать?
У меня все криво.
Объединение обманутых вклдачиков Сбербанка.
http://dcv.al.ru/
Аватара пользователя
newsbee
phpBB 1.2.1
Сообщения: 27
Стаж: 19 лет
Откуда: WWW

Сообщение newsbee »

Русский начинает работать, если заменить wap.php на прилагаемый код.

К сожалению у меня читаются по-русски только топики и сообщения, а все служебные команды (ввод, пароль, и т.д.) все равно "по-гречески". Но может из-за провайдерских настроек с локалью.

Может, кто проверит, как у кого работает? Кстати версию надо обновить на 1.6.1 - была маленькая проблема в яз. файле.

Может у меня с телефоном нетак, проверьте бутд: http://www.fusionclub.ru/forums/mo/index.php?type=wap

Ну конечно, нужно английский lang перевести на русский (или у меня попросить).

Код: Выделить всё

<?php
function mo_echo_header($title, $link = '', $timer = 0, $key1 = '', $value1 = '', 
    $key2 = '', $value2 = '', $key3 = '', $value3 = '', $key4 = '', $value4 = '', 
    $key5 = '', $value5 = '')
{
	global $board_config;
	global $mo_lang;
	global $mo_var;
	
	if ( $title == $mo_lang['home'] )
	{
		$title = $board_config['sitename'];
	}
	
	header('Content-type: text/vnd.wap.wml');
	echo '<?xml version="1.0"?>' . "\n";
?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 
    "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta forua="true" http-equiv="Cache-Control" content="max-age=0" />
<meta name="character-set=UTF-8" content="charset" />
</head>
<?php
	if ( $link )
	{
		$link = mo_get_link($link, $key1, $value1, $key2, $value2, 
		    $key3, $value3, $key4, $value4, $key5, $value5);
?>
<card id="card" title="<?php echo $title; ?>" newcontext="true" 
    ontimer="<?php echo $link; ?>">
<timer value="<?php if ( $timer ) echo $timer*10; else echo 1; ?>" />
<?php
	}
	else
	{
?>
<card id="card" title="<?php echo $title; ?>" newcontext="true">
<?php
	}
?>
<p>
<?php
}

function mo_echo_paragraph_begin()
{
}

function mo_echo_desc()
{
	global $board_config;
?>
<?php cor_print($board_config['site_desc']."\n"); ?> 
<?php
}

function mo_echo_msg($msg)
{
?>
<?php cor_print($msg."\n"); ?> 
<?php
}

function mo_echo_url($title, $link = '', $key1 = '', $value1 = '', 
    $key2 = '', $value2 = '', $key3 = '', $value3 = '', $key4 = '', $value4 = '', 
    $key5 = '', $value5 = '')
{
	if ( $link )
	{
		$link = mo_get_link($link, $key1, $value1, $key2, $value2, 
		    $key3, $value3, $key4, $value4, $key5, $value5);
?>
<anchor><?php cor_print($title); ?><go href="<?php echo $link; ?>" /></anchor>
<?php
	}
	else
	{
?>
<b><?php cor_print($title); ?></b>
<?php
	}
}

function mo_echo_hr()
{
?>
<br/>++++++++<br/>
<?php
}

function mo_echo_br()
{
?>
<br/>
<?php
}

function mo_echo_sp()
{
?>
<br/><?php
}

function mo_echo_base_link()
{
	$link = "http://www.mobileonlinestyle.com/mobileonlinestyle.wml";
	$title = "Mobile Online Style";
?>
Powered by&nbsp;<anchor><?php echo $title."\n"; ?>
    <go href="<?php echo $link; ?>" /></anchor>
<?php
}

function mo_echo_paragraph_end()
{
}

function mo_echo_footer()
{
?>
</p>
</card>
</wml>
<?php
}

function cor_print($str_to_corr) 
{ // funkcija korrekttnogo vivoda na ekran rus jazika 
for ($i=0;$i<strlen($str_to_corr);$i++){ 
$symb=substr($str_to_corr,$i,1); 
$symb_code=ord($symb); 
if ($symb_code>191 and $symb_code<256) { 
$symb_code=$symb_code-176; 
$symb_code=base_convert($symb_code,10,16); 
echo "&#x04".$symb_code.";";} 
elseif ($symb_code==184 or $symb_code==168) { 
if ($symb_code==184) { 
echo "&#x0415;";} 
else { 
echo "&#x0451;";}} 
else { 
echo $symb; 
}}}

function mo_echo_login($username = '', $login = 0, $redirect = '')
{
	global $mo_lang;
	global $mo_var;
	
	$login++;
	if ( !$redirect )
	{
		$link = mo_get_link('login.php', 'login', $login);
	}
	else
	{
		$link = mo_get_link('login.php', 'login', $login, 'redirect', $redirect);
	}
?>
<b><?php echo $mo_lang['username']; ?>:</b><br/>
<input type="text" name="username" size="<?php echo $mo_var['input_size']; ?>" 
    value="<?php echo $username; ?>" emptyok="false" />
<b><?php echo $mo_lang['password']; ?>:</b><br/>
<input type="password" name="password" size="<?php echo $mo_var['input_size']; ?>" 
    value="" emptyok="false" />
<anchor><?php echo $mo_lang['submit']; ?><go href="<?php echo $link; ?>" method="post">
    <postfield name="username" value="$(username)" />
    <postfield name="password" value="$(password)" />
    </go></anchor>
<?php
}

function mo_echo_new($forum_id, $topic_index, 
    $subject = '', $message = '', $new = 0)
{
	global $mo_lang;
	global $mo_var;
	
	$new++;
	$link = mo_get_link('new.php', 'forum_id', $forum_id, 
	    'topic_index', $topic_index, 'new', $new);
?>
<b><?php echo $mo_lang['subject']; ?>:</b><br/>
<input type="text" name="subject" size="<?php echo $mo_var['input_size']; ?>" 
    value="<?php echo $subject; ?>" emptyok="false" />
<b><?php echo $mo_lang['message']; ?>:</b><br/>
<input type="text" name="message" size="<?php echo $mo_var['input_size']; ?>" 
    value="<?php echo $message; ?>" emptyok="false" />
<anchor><?php echo $mo_lang['submit']; ?><go href="<?php echo $link; ?>" method="post">
    <postfield name="subject" value="$(subject)" />
    <postfield name="message" value="$(message)" />
    </go></anchor>
<?php
}

function mo_echo_reply($topic_id, $post_index, $topic_index, 
    $subject = '', $message = '', $reply = 0)
{
	global $mo_lang;
	global $mo_var;
	
	$reply++;
	$link = mo_get_link('reply.php', 'topic_id', $topic_id, 
	    'post_index', $post_index, 'topic_index', $topic_index, 'reply', $reply);
?>
<b><?php echo $mo_lang['subject']; ?>:</b><br/>
<input type="text" name="subject" size="<?php echo $mo_var['input_size']; ?>" 
    value="<?php echo $subject; ?>" />
<b><?php echo $mo_lang['message']; ?>:</b><br/>
<input type="text" name="message" size="<?php echo $mo_var['input_size']; ?>" 
    value="<?php echo $message; ?>" emptyok="false" />
<anchor><?php echo $mo_lang['submit']; ?><go href="<?php echo $link; ?>" method="post">
    <postfield name="subject" value="$(subject)" />
    <postfield name="message" value="$(message)" />
    </go></anchor>
<?php
}

function mo_echo_pmnew($username = '', $subject = '', $message = '', $new = 0)
{
	global $mo_lang;
	global $mo_var;
	
	$new++;
	$link = mo_get_link('pmnew.php', 'new', $new);
?>
<b><?php echo $mo_lang['to']; ?>:</b><br/>
<input type="text" name="username" size="<?php echo $mo_var['input_size']; ?>" 
   value="<?php echo $username; ?>" emptyok="false" />
<b><?php echo $mo_lang['subject']; ?>:</b><br/>
<input type="text" name="subject" size="<?php echo $mo_var['input_size']; ?>" 
   value="<?php echo $subject; ?>" emptyok="false" />
<b><?php echo $mo_lang['message']; ?>:</b><br/>
<input type="text" name="message" size="<?php echo $mo_var['input_size']; ?>" 
   value="<?php echo $message; ?>" emptyok="false" />
<anchor><?php echo $mo_lang['submit']; ?><go href="<?php echo $link; ?>" method="post">
    <postfield name="username" value="$(username)" />
    <postfield name="subject" value="$(subject)" />
    <postfield name="message" value="$(message)" />
    </go></anchor>
<?php
}

function mo_echo_pmreply($username, $subject = '', $message = '', $reply = 0)
{
	global $mo_lang;
	global $mo_var;
	
	$reply++;
	$link = mo_get_link('pmreply.php', 'reply', $reply);
?>
<b><?php echo $mo_lang['to']; ?>:</b><br/>
<input type="text" name="username" size="<?php echo $mo_var['input_size']; ?>" 
   value="<?php echo $username; ?>" emptyok="false" />
<b><?php echo $mo_lang['subject']; ?>:</b><br/>
<input type="text" name="subject" size="<?php echo $mo_var['input_size']; ?>" 
   value="<?php echo $subject; ?>" emptyok="false" />
<b><?php echo $mo_lang['message']; ?>:</b><br/>
<input type="text" name="message" size="<?php echo $mo_var['input_size']; ?>" 
   value="<?php echo $message; ?>" emptyok="false" />
<anchor><?php echo $mo_lang['submit']; ?><go href="<?php echo $link; ?>" method="post">
    <postfield name="username" value="$(username)" />
    <postfield name="subject" value="$(subject)" />
    <postfield name="message" value="$(message)" />
    </go></anchor>
<?php
}

function mo_echo_register($username = '', $email = '', $register = 0)
{
	global $mo_lang;
	global $mo_var;
	
	$register++;
	$link = mo_get_link('register.php', 'register', $register);
?>
<b><?php echo $mo_lang['username']; ?>:</b><br/>
<input type="text" name="username" size="<?php echo $mo_var['input_size']; ?>" 
    value="<?php echo $username; ?>" emptyok="false" />
<b><?php echo $mo_lang['email']; ?>:</b><br/>
<input type="text" name="email" size="<?php echo $mo_var['input_size']; ?>" 
    value="<?php echo $email; ?>" emptyok="false" />
<b><?php echo $mo_lang['password']; ?>:</b><br/>
<input type="password" name="password" size="<?php echo $mo_var['input_size']; ?>" 
    value="" emptyok="false" />
<b><?php echo $mo_lang['password_conf']; ?>:</b><br/>
<input type="password" name="password_conf" size="<?php echo $mo_var['input_size']; ?>" 
    value="" emptyok="false" />
<anchor><?php echo $mo_lang['submit']; ?><go href="<?php echo $link; ?>" method="post">
    <postfield name="username" value="$(username)" />
    <postfield name="email" value="$(email)" />
    <postfield name="password" value="$(password)" />
    <postfield name="password_conf" value="$(password_conf)" />
    </go></anchor>
<?php
}

function mo_echo_profile($username, $email = '', $profile = 0)
{
	global $mo_lang;
	global $mo_var;
	
	$profile++;
	$link = mo_get_link('updateprofile.php', 'profile', $profile);
?>
<b><?php echo $mo_lang['username']; ?>:</b><br/>
<?php echo $username; ?><br/>
<b><?php echo $mo_lang['email']; ?>:</b><br/>
<input type="text" name="email" size="<?php echo $mo_var['input_size']; ?>" 
    value="<?php echo $email; ?>" emptyok="false" />
<b><?php echo $mo_lang['password_current']; ?>:</b><br/>
<input type="password" name="password" size="<?php echo $mo_var['input_size']; ?>" 
    value="" emptyok="false" />
<b><?php echo $mo_lang['password_new']; ?>:</b><br/>
<input type="password" name="password_new" size="<?php echo $mo_var['input_size']; ?>" 
    value="" emptyok="false" />
<b><?php echo $mo_lang['password_conf']; ?>:</b><br/>
<input type="password" name="password_conf" size="<?php echo $mo_var['input_size']; ?>" 
    value="" emptyok="false" />
<anchor><?php echo $mo_lang['submit']; ?><go href="<?php echo $link; ?>" method="post">
    <postfield name="email" value="$(email)" />
    <postfield name="password" value="$(password)" />
    <postfield name="password_new" value="$(password_new)" />
    <postfield name="password_conf" value="$(password_conf)" />
    </go></anchor>
<?php
}
?>
Подробности здесь: http://www.phpbb.com/phpBB/viewtopic.ph ... 587876b8bc
x2com
phpBB 1.4.3
Сообщения: 80
Стаж: 19 лет

Сообщение x2com »

Люди, спасите-помогите!

ВОбщем поставил эту хрень, все вроде ок.
Mysql база в UTF-8, форум сам по себе нормально работает, корректно.
Одна загвоздка - кодировка в wap-версии.

В приницпе получилось сделать так, чтобы все выводилось как нужно, только вот при попытке через Wap че-нить написать все это дело написанное публикуется крякозябрами. Че делать не знаю......
Мож кто-нить подскажет, а?

Вернуться в «Поддержка модов для phpBB 2.0.x»