e107の改造

日本語化ファイル

e107で遊ぼう屋で公開されているv.0.7.5用の日本語化ファイルに追記して、v.0.7.11用にしたものです。

e107.zip (2008/01/07版)

本家英語版のファイルと重複するファイルはないので、初めて導入する場合は、上記のファイルを解凍し、そのままアップロードするだけです。

news.phpをインデックスとしてアクセス

http://e107.tpot.tk/としてアクセスしても、http://e107.tpot.tk/news.phpと飛ばされてしまうが、そのままhttp://e107.tpot.tk/としてアクセスするための技。.htaccessに次のコードを入れる。

DirectoryIndex news.php

theme.phpの改行が削除されるのを回避する

  • テーマのtheme.phpにGoogleの広告のコードを記述しても、改行が削除されて広告が表示されない。それを回避する。e107_themes/templetes/header_default.phpを開く。<code php>if (!function_exists(“parseheader”)) {
function parseheader($LAYOUT){
	global $tp;
	$tmp = explode("\n", $LAYOUT);
	for ($c=0; $c < count($tmp); $c++) {
		if (preg_match("/{.+?}/", $tmp[$c])) {
			echo $tp -> parseTemplate($tmp[$c]);
		} else {
			echo $tmp[$c];
		}
	}
}

}</code>を

if (!function_exists("parseheader")) {
	function parseheader($LAYOUT){
		global $tp;
		$tmp = explode("\n", $LAYOUT);
		for ($c=0; $c < count($tmp); $c++) {
			if (preg_match("/{.+?}/", $tmp[$c])) {
				echo $tp -> parseTemplate($tmp[$c]);
			} else {
				echo $tmp[$c]."\n";
			}
		}
	}
}

とし、改行を加える。

サイドバーのコメントの表示をカスタマイズ

サイドバーにフォーラムのコメント一覧とニュースなどのコメント一覧を並べると、書式の違いが気になります。それを統一します。

  • サイドバーのフォーラムのコメント一覧はテンプレートがありません。e107_plugin/forum/newforumpost_menu.phpの下の方に記述があります。
  • それ以外のコメント一覧は、e107_plugin/comment_menu/comment_menu_templete.phpの上の方に記述があります。
  • お好みに形式を変更してください。

サイドバーのコメントのユーザー名の更新に対応する

  • コメントのユーザー名は書き込んだ時点での表示名なので、その後ユーザーが表示名を変更しても以前のままです。そこで、ユーザーIDからユーザー名を取得し、表示名で更新するようにしました。
  • e107_handlers/comment_class.phpを開き、function getCommentDataの中の次の部分を探してください。<code php>//author

$comment_author_id = substr($row['comment_author'] , 0, strpos($row['comment_author'] , “.”)); $comment_author_name = substr($row['comment_author'] , (strpos($row['comment_author'] , “.”)+1));</code>

  • この直下に次のコードを追加します。<code php>if($sql2 → db_Select(“user”, “user_name”, “user_id='”.$comment_author_id.“' ”))
{
	$row2 = $sql2 -> db_Fetch();
	$comment_author_name = ($row2['user_name'] ? $row2['user_name'] : $comment_author_name);
}</code>

FAQプラグインの不具合

FAQプラグイン(ver.4.2)で、コメントをつけると、該当するFAQではなく、違うFAQにコメントがついてしまいます。それを修正します。

  • e107_plugins/faq/faq.phpを開きます。
  • “// Actions”とコメントアウトしてある行を探します。
  • $tmp[2]を$tmp[3]にします。(2を3にするだけ)<code php>if (IsSet($_POST['commentsubmit']))

{

$tmp = explode(".", e_QUERY);
$faq_from = intval($tmp[0]);
$action = "cat";
$idx = intval($tmp[2]);
$pid = (IsSet($_POST['pid']) ? $_POST['pid'] : 0);
$cobj->enter_comment($_POST['author_name'], $_POST['comment'], "faq", $idx, $pid, $_POST['subject']);
$e107cache->clear("nq_faqtop_menu");

} // Actions +++++++++++++++++++++++++++++</code>

FAQプラグインのコメントをサイドバーに

FAQプラグイン(ver.4.2)で、コメントをつけても、サイドバーのコメント一覧に表示されません。

  • e107_handlers/comment_class.phpを開きます。
  • function getCommentDataの「// '3' was FAQ」とコメントアウトしている行を探します。
  • 処理内容を加えます。<code php>case '3' : // FAQ
if($sql2 -> db_Select("faq", "*", "faq_id='".$row['comment_item_id']."' "))
{
	$row2 = $sql2 -> db_Fetch();
		
	$ret['comment_type'] = COMLAN_TYPE_3;
	$ret['comment_title'] = $tp -> toHTML($row2['faq_question'], TRUE,'emotes_off, no_make_clickable');
	$ret['comment_url'] = e_BASE."e107_plugins/faq/faq.php?0.cat."
		.$row2['faq_parent'].".".$row['comment_item_id'];
}
break;</code>

メールのタイトルが途中で途切れるのを防ぐ

e107から送信されるメールは、UTF-8で新しいメールソフトでは文字化けしません。ただし、タイトルが途中で欠けてしまします。

  • e107_handlers/phpmailer/class.phpmailer.phpを開き、次の行を探す。<code php> /**
  • Encode a header string to best of Q, B, quoted or none.
  • @access private
  • @return string */ function EncodeHeader ($str, $position = 'text') { $x = 0;</code>
  • 「function…」の行と次の「$x = 0;」の行の間に

       if( $position == 'text' )
     return mb_encode_mimeheader( mb_convert_encoding( $str , mb_internal_encoding() , 'auto' ),"UTF-8", "B", "\n" );

    を挿入する。

ニュース投稿で'&lt;'と'&gt;'が変換されてしまう

記事の中で、'<'や'>'を説明するために'<'と'>'を使っても、再度編集しようと読み込むと'<'や'>'になってしまう。

  • e107_admin/newspost.phpを開く
  • 次の行を探す

    $_POST['data'] = $tp->toForm($_POST['data']);
  • その直下に

    $_POST['data'] = str_replace(array("&lt;", "&gt;"), array("&amp;lt;", "&amp;gt;"), $_POST['data']);

    を挿入。