最初に読んでね ダウンロード 検索 ユーザー登録する 連絡 マイストア ログイン  
必読のこと
 
本体/MOD/STYLE/IMAGE 開発・改良(≒改悪)・日本語化計画の場。

投稿する前に最初に読んでください。


独り言「ルールを早く作らんと・・・」
 
トピックに返信する 【アイデア】 mophpbb 1.6.2 改造 / Mobile Online phpBB このエントリーを含むはてなブックマーク
ページ直接移動 1, 2  次のページへ≫
mophpbb 1.6.2 改造 / Mobile Online phpBB
hiikun
あどみん
あどみん

登録日: 2005.03.16
記事: 830
所在地: 大阪府
引用付きで返信する
mophpbb のまとめ

◆導入部
◆改造部 (for 1.6.2)


最終編集者 hiikun [ 2007/09/24(月) 14:57 ]

_________________

Arrow 【ニューリリース】2.0.23/3.0.0

マイホームノートアイテム探索小都市
ユーザーのプロフィールを表示hiikun の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
mophpbbによるphpBBのモバイルコンテンツ
Xing
投稿中級者さん
投稿中級者さん

登録日: 2006.01.13
記事: 38
所在地: 山形帝國
引用付きで返信する
携帯で閲覧と投稿を可能にするmophpbbというMOD(?)を見つけたので報告します。
これは海外のスクリプトなので、ひょっとしたら日本語環境下で不具合があるかもしれません。
私の環境では今のところ不具合は出ていません。

まず本体をこちらからダウンロードします。
2006/05/15現在、最新バージョンは1.6.1です。
アーカイブを解凍し、任意のフォルダへアップロードします。
ここでは/forum/の下に「mobile」というフォルダを作り、そこにアップロードしました。
日本語環境で使う場合、/mobile/の下にlang_japanese.phpというファイルが必要です。
デフォルトでlang_english.phpがあるので、とりあえずこれをコピーしてリネームし、アップロードします。
/forum/mobile/cfg.phpを環境に合わせて修正します。
フォーラムディレクトリの下に設置した場合、特に編集する必要は無いようです。
ホスト側の/forum/mobile/の下に「logs」フォルダを作り、パーミッションを「707」等に設定します。
ほとんどの携帯はcssファイルをimportできないので、/forum/mobile/html.phpの該当部分を修正します。
(外国の携帯はできるのかな・・・?)
修正箇所は33行目付近にあります。

 <style type="text/css" media="all">@import "html.css";</style>

これを以下のようにコメントアウトします。

 <!--<style type="text/css" media="all">@import "html.css";</style>-->

とりあえず、これでインストールは完了です。
通常は/forum/mobile/で使えるはずです。

SQLのデータや言語ファイルをEUC-JPにしている場合、大抵の携帯は文字化けします。
これを解決するには、.htaccessでhttp_output等を設定しなければなりません。
これについてはこちらを参考にしました。
/forum/mobile/に.htaccessをアップロードし、中身を以下のように設定します。

 #////////////////////////////////////////////
 php_value output_handler mb_output_handler
 php_value default_charset Shift_JIS
 php_value mbstring.language Japanese
 php_flag mbstring.encoding_translation On
 php_value mbstring.http_input auto
 php_value mbstring.http_output SJIS
 php_value mbstring.internal_encoding EUC-JP
 php_value mbstring.substitute_character none
 #////////////////////////////////////////////

ひょっとしたら、サーバによってはできないかもしれません。
私が設置したサーバはXreaですが、とりあえずこれで解決できました。

モバイル版フォーラムは、PC版とほぼ同じ機能が使えます。
データベースはモバイル版とPC版で同じものを使っているので、二つで同じ情報が共有ができます。
今のところ不具合はありませんが、できれば修正したい部分がいくつかあります。

 ・ユーザ非登録者の投稿でユーザ名が自動的にGuestになる(ユーザ名を入力できない)
 ・1ポストで長大なテキストがある場合、これを分割表示できない(おそらく携帯で全てを表示できない)
 ・BB codeが反映されない(タグがそのまま表示されてしまう)
 ・index.phpで開いたときに、loginリンクがあればいいなぁ・・・

また、このままだとメニュー部分が英語表記になります。
そのままでも支障は無いと思いますが、気が向いたら日本言語ファイルを作るかもしれません。

余談ですが、この他にも閲覧のみ可能にするphpBBToGoというMODがあります。
これもhtaccessでhttp_output等を設定すれば、日本語環境下で使えるようです。
ただし、このMODはパーミッション関係なく指定したIDのフォーラムを閲覧可能にします。
使い方を誤ると閲覧制限しているフォーラムを公開してしまうことになるかもしれません。
また、開発元サイトの更新がストップして長いようなので、将来性は無いかもしれません。
そのうち、このMODの設置方法も書いてみようかと思います。

phpBBの利用者が少ないせいか、モバイルコンテンツ化の情報がとても少ないですね。
もしphpBBを携帯で利用したい人がいたら、参考にしてください。
ユーザーのプロフィールを表示Xing の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
mophpbbの
Xing
投稿中級者さん
投稿中級者さん

登録日: 2006.01.13
記事: 38
所在地: 山形帝國
引用付きで返信する
日本言語ファイルを作ってみました。
間違ってる部分があるかもしれませんが、欲しい方はこちらからどうぞ。
下のほうにある追記の部分からダウンロードできます。
ユーザーのプロフィールを表示Xing の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
Mobile Online Style
UTA
投稿中級者さん
投稿中級者さん

登録日: 2005.11.10
記事: 52
引用付きで返信する
Mobile Online Style
http://www.mobileonlinestyle.com/
http://www.phpbb.com/phpBB/viewtopic.php?t=304949
日本語ファイルあり!

日本語ファイルを作られた方のインストール例。(感謝)
http://xing.xrea.jp/public/blog/archives/2006/05/post_16.php

 textベースの表示です。ログイン認証も可能。
 BBCODE,Smileには未対応のようですが、あっさり動きました。 これはゞ( ̄ー ̄ )イイかもです!

 失礼しましました。
 既出でした、ペコm(_ _;m)三(m;_ _)mペコ


*) FOMAでセッション切れ(自動でログアウト)します。 IPが変わるからでしょうか,,
  IPがころころ変わりますし、、
  session_pagestart($user_ip, $thispage_id)  対策は....(・Θ・Wink
ユーザーのプロフィールを表示UTA の記事をすべて検索プライベートメッセージを送信
UTA
投稿中級者さん
投稿中級者さん

登録日: 2005.11.10
記事: 52
引用付きで返信する
引 用:
##########################################################
#
# Mobile Online Style FOMA対応化
#
# phpBB 2.0.20
#
###########################################################
#
# 20050526 V0.1(Mobile Online Style 1.6.2 )
#
###########################################################
#
# Mobile Online Style
# http://www.mobileonlinestyle.com/
# http://www.phpbb.com/phpBB/viewtopic.php?t=304949
#
###########################################################
# 感謝!
# 日本語化ファイル Xingさん
# セッション関係 hirozouさん
#
# セキュリティ上、必要に応じて getCarrier関数に
# 判定を増やしてもよいかもしれません。
#
##########################################################
#
#----[OPEN]-----------------------------------------
#
mo/lib.php
#
##---[FIND]--------------------------------ーーーーーーーー
#
#
if ( $mo_enable_nuke )
{
$userdata = session_pagestart($user_ip, $page_id, $nukeuser);
#
##---[BEFORE ADD]--------------------------------
#

$str_agent = getCarrier($_SERVER["HTTP_USER_AGENT"]);
if($str_agent == 0){
$url="$phpbb_root_path";
header("Location:". $url);
exit;
}
#
##---[FIND]--------------------------------
#
$userdata = session_pagestart($user_ip, $page_id, $nukeuser);
#
##---[REPLASE TO ]--------------------------------
#
$userdata = session_pagestart_mobile($user_ip, $page_id, $nukeuser);
#
##---[FIND]--------------------------------
#
$userdata = session_pagestart($user_ip, $page_id);
#
##---[REPLASE TO ]--------------------------------
#
$userdata = session_pagestart_mobile($user_ip, $page_id);
#
##---[FIND]--------------------------------
#
?>
#
##---[BEFORE ADD]--------------------------------
#
##########################################################################
// Japan 200505
// Checks for a given user session, tidies session table and updates user
// sessions at each page refresh
//
function session_pagestart_mobile($user_ip, $thispage_id)
{
global $db, $lang, $board_config;
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;

$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];

$current_time = time();
unset($userdata);

if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )
{
$sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
$session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
$sessionmethod = SESSION_METHOD_COOKIE;
}
else
{
$sessiondata = array();
$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
$sessionmethod = SESSION_METHOD_GET;
}

//
if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
{
$session_id = '';
}

$thispage_id = (int) $thispage_id;

//
// Does a session exist?
//
if ( !empty($session_id) )
{
//
// session_id exists so go ahead and attempt to grab all
// data in preparation
//
$sql = "SELECT u.*, s.*
FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
WHERE s.session_id = '$session_id'
AND u.user_id = s.session_user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);
}

$userdata = $db->sql_fetchrow($result);

//
// Did the session exist in the DB?
//
if ( isset($userdata['user_id']) )
{
//
// Do not check IP assuming equivalence, if IPv4 we'll check only first 24
// bits ... I've been told (by vHiker) this should alleviate problems with
// load balanced et al proxies while retaining some reliance on IP security.
//
$ip_check_s = substr($userdata['session_ip'], 0, 6);
# $ip_check_u = substr($user_ip, 0, 6);
$ip_check_u = $ip_check_s; ###### 200605


if ($ip_check_s == $ip_check_u)
{
$SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';

//
// Only update session DB a minute or so after last update
//
if ( $current_time - $userdata['session_time'] > 60 )
{
// A little trick to reset session_admin on session re-usage
$update_admin = (!defined('IN_ADMIN') && $current_time - $userdata['session_time'] > ($board_config['session_length']+60)) ? ', session_admin = 0' : '';

$sql = "UPDATE " . SESSIONS_TABLE . "
SET session_time = $current_time, session_page = $thispage_id$update_admin
WHERE session_id = '" . $userdata['session_id'] . "'";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
}

if ( $userdata['user_id'] != ANONYMOUS )
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_session_time = $current_time, user_session_page = $thispage_id
WHERE user_id = " . $userdata['user_id'];
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
}
}

session_clean($userdata['session_id']);

setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
}

return $userdata;
}
}
}

//
// If we reach here then no (valid) session exists. So we'll create a new one,
// using the cookie user_id if available to pull basic user prefs.
//
$user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;

if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )
{
message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);
}

return $userdata;

}
//********************************************************
//* キャリアの取得 getCarrier * BY hirozou
//********************************************************
//* キャリアのの取得 *
//********************************************************
//* 引数 $str_user_agent :[I ] HTTP_USER_AGENT *
//* 戻り値 :キャリア *
//********************************************************
//* HTTP_USER_AGENTの例: *
//* DoCoMo/1.0/D501i *
//* DoCoMo/1.0/D210i/c10 *
//* DoCoMo/2.0 F2051(c100;TB) *
//* DoCoMo/1.0/D505i/c20/TB/W20H10 *
//* DoCoMo/2.0 F902i(c100;TB;W23H12) *
//* DoCoMo/2.0 N2001(c10) *
//* J-PHONE/[ブラウザバージョン]/[機種名] *
//* J-PHONE/[ブラウザバージョン]/[機種名]/[端末シリアル番号]
//* KDDI-SA31 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0 *
//* UP.Browser/3.01-HI02 UP.Link/3.2.1.2 *
//********************************************************
function getCarrier($str_user_agent) {
if(ereg("DoCoMo\/1\.0\/", $str_user_agent)) {
return 1;
} else if(ereg("DoCoMo\/2\.0", $str_user_agent)) {
return 1;
} else if(ereg("J-PHONE\/", $str_user_agent)) {
return 2;
} else if(ereg("UP\.Browser\/", $str_user_agent)) {
if(ereg("^UP\.Browser\/", $str_user_agent)) {
//先頭にUP.Browserの文言がある場合は、HDML端末
return -1;
}
return 3;
} else {
return 0;
}
}
ユーザーのプロフィールを表示UTA の記事をすべて検索プライベートメッセージを送信
トピックへのリンクを昇順にするには?
t_m_miyako
投稿初級者さん
投稿初級者さん

登録日: 2006.02.13
記事: 16
引用付きで返信する
ウチのフォーラムにて携帯への対応を希望されたので、このMODにて公開する予定でいます。
(Xing様。有用なMODの紹介、ありがとうございます)

現在テストしてる段階なのですが、「topic.phpから各記事へのリンクが最初(最古)になっているのを、
最新の記事にできないのかな」
という希望が出てきました。毎回毎回最古の記事から最新記事に飛んで…だと、
正直面倒くさいみたいです。それにパケットの消費を少なくするためには、最新記事に直接飛べる方がよいですし。

なにか良い手はないでしょうか。宜しくお願いします。
ユーザーのプロフィールを表示t_m_miyako の記事をすべて検索プライベートメッセージを送信
最新書込みTopX件
UTA
投稿中級者さん
投稿中級者さん

登録日: 2005.11.10
記事: 52
引用付きで返信する
割り込んですみません。。ペコm(_ _;m)三(m;_ _)mペコ

最新書込みTopX件 ってもの。
・文字は直打ちしてます(言語ファイルは分離してません)
・echoも直接の出力してます。

*) 動くと思いますが、私のとこはかなりイジッテますので、汎用性があるか不明。

呼び出しは、menu.phpやindex.phpに
コード:
mo_echo_url("TopX", 'latest.php');
mo_echo_br();

と記入。

latest.php

コード:
<?php
require 'sys.php';

$page_id = PAGE_INDEX;

require 'lib.php';

$topics_auth = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata);
$topics_auth_sql = '';
foreach($topics_auth as $k=>$v)
{
   if( $v['auth_view'] && $v['auth_read'] )
   {
      $topics_auth_sql .= (( empty($topics_auth_sql) ) ? '': ', ') . $k;
   }
}

$top_n = 8; // TOP 8

$active_topics_sql = 'SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_views, t.topic_last_post_id ,t.topic_poster ,u.username
   FROM ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE. ' f, ' . USERS_TABLE. ' u
   WHERE t.forum_id IN (' . $topics_auth_sql . ')
      AND f.forum_id = t.forum_id
      AND t.topic_poster = u.user_id
   ORDER BY %1$s DESC
   LIMIT 0,' .$top_n;

$active_topics_sql_a = sprintf($active_topics_sql, 'topic_last_post_id');

$recent_row = array();

if( !$active_topics_a = $db->sql_query($active_topics_sql_a))
{
   echo "Error Latest.php!";
   exit;
}
$recent_row = $db->sql_fetchrowset($active_topics_a);
$db->sql_freeresult($active_topics_a);

mo_echo_header("最新カキコ");
echo "<center><a href=/>HOME</a><br>";
echo "<b>";
echo "<hr>TOP" .$top_n ."<hr>";
echo "</b></center>";

for ( $i = 0; $i < count($recent_row); $i++ )
{

   $recent_topic_title = $recent_row[$i]['topic_title'];
   if( mb_strlen($recent_topic_title) > 20 )
   {
      $recent_topic_title = mb_substr($recent_topic_title, 0, 20) . '...';
   }
   echo "・";
   mo_echo_url($recent_topic_title,'post.php','topic_id',$recent_row[$i]['topic_id'],'topic_index',0);
   echo "<br>  <font size=-1> ( ";
//   mo_echo_url($recent_row[$i]['username'],'viewprofile.php','user_id',$recent_row[$i]['topic_poster']);
   echo $recent_row[$i]['username'];
   echo " )</font><br><br>";

}
echo "<hr>";
mo_echo_url($mo_lang['home'], 'index.php');
mo_echo_br();
mo_echo_url($mo_lang['menu'], 'menu.php');
mo_echo_sp();
mo_echo_paragraph_end();
mo_echo_footer();

?>
ユーザーのプロフィールを表示UTA の記事をすべて検索プライベートメッセージを送信
MOPHPBBが有料化したようです
Xing
投稿中級者さん
投稿中級者さん

登録日: 2006.01.13
記事: 38
所在地: 山形帝國
引用付きで返信する
Mobile Online Style
http://www.mobileonlinestyle.com/

最近、MOPHPBBが1.7.1にバージョンアップしたんですが、この時点で有料化に移行したようです。
無料で利用する場合、トピックの投稿と返信に制限がかかります。
期待していたMODだったんですが、残念ですねぇ・・・。

ちなみに全機能を使う場合、年間29.99$かかります。
日本円にすると約3,520円です。

うちでは1.7.1にバージョンアップしましたが、やっぱり1.6.2+UTAさん改で運用しようか思案中です。 Confused

簡単なインストールメモを、うちのブログに載せました。
こちらです。
インストールに躓いた方は、参考にどうぞ。
ユーザーのプロフィールを表示Xing の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
Re: MOPHPBBが有料化したようです
hiikun
あどみん
あどみん

登録日: 2005.03.16
記事: 830
所在地: 大阪府
引用付きで返信する
Xing の記述を引用:
Mobile Online Style
http://www.mobileonlinestyle.com/

最近、MOPHPBBが1.7.1にバージョンアップしたんですが、この時点で有料化に移行したようです。
無料で利用する場合、トピックの投稿と返信に制限がかかります。
期待していたMODだったんですが、残念ですねぇ・・・。

う~ん。 Sad  商売っ気が出ちゃいましたか。 Confused

外の方々は時々そういう方針に転換しちゃったりしますよね。
スクリプト開発に時間とコストが掛かってるとは言え、オープンソースを土台にして金儲けをするのはどうかと思いますがねえ。

しかし、年額とはなあ・・・。近い将来、ユーザーは Olympus に移行すると思うんですが・・・。 Rolling Eyes

_________________

Arrow 【ニューリリース】2.0.23/3.0.0

マイホームノートアイテム探索小都市
ユーザーのプロフィールを表示hiikun の記事をすべて検索プライベートメッセージを送信投稿者のウェブサイトに移動
UTA
投稿中級者さん
投稿中級者さん

登録日: 2005.11.10
記事: 52
引用付きで返信する
( ̄▽ ̄Wink!!ガーン
 有料化ですか......  本家の方には ちょっとした改造も投稿してたのですが、もう止めます。
 
 私は、1.6.2で独自路線で行きます。っていうか、行くしかないですね。
ユーザーのプロフィールを表示UTA の記事をすべて検索プライベートメッセージを送信
【アイデア】 mophpbb 1.6.2 改造 / Mobile Online phpBB
新規投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
投票参加: 不可
添付アップロード: 不可
添付ダウンロード: 不可
All times are GMT + 9 Hours (JST)  
Page 1 of 2  

  
  
 トピックに返信する    

Board Security

2813 Attacks blocked

Powered by phpBB © phpBB Group
Design by phpBBStyles.com | Styles Database.
Traduction par : PHPBB JAPAN / UTF-8 i18n Edition : JP Support Forum
Content © phpBB2 日本語サポートフォーラム
[ Debug on | page generation = 0.21816 seconds | sql queries = 21 ]
Feed RSS 2.0
JP Support Forum
SourceForge.jp