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の広告のコードを記述しても、改行が削除されて広告が表示されない。それを回避する。e107themes/templetes/headerdefault.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]; } } } }
を
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"; } } } }
とし、改行を加える。
サイドバーのコメントの表示をカスタマイズ
サイドバーにフォーラムのコメント一覧とニュースなどのコメント一覧を並べると、書式の違いが気になります。それを統一します。
- サイドバーのフォーラムのコメント一覧はテンプレートがありません。e107plugin/forum/newforumpostmenu.phpの下の方に記述があります。
- それ以外のコメント一覧は、e107plugin/commentmenu/commentmenutemplete.phpの上の方に記述があります。
- お好みに形式を変更してください。
サイドバーのコメントのユーザー名の更新に対応する
- コメントのユーザー名は書き込んだ時点での表示名なので、その後ユーザーが表示名を変更しても以前のままです。そこで、ユーザーIDからユーザー名を取得し、表示名で更新するようにしました。
- この直下に次のコードを追加します。
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); }
FAQプラグインの不具合
FAQプラグイン(ver.4.2)で、コメントをつけると、該当するFAQではなく、違うFAQにコメントがついてしまいます。それを修正します。
- e107plugins/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 → dbSelect(“faq”, “*”, “faqid='”.$row['commentitemid'].”' “)) { $row2 = $sql2 → dbFetch(); $ret['commenttype'] = COMLANTYPE3; $ret['commenttitle'] = $tp → toHTML($row2['faqquestion'], TRUE,'emotesoff, nomakeclickable'); $ret['commenturl'] = eBASE.”e107plugins/faq/faq.php?0.cat.“ .$row2['faqparent'].”.“.$row['commentitem_id']; } break;</code> ===== メールのタイトルが途中で途切れるのを防ぐ ===== e107から送信されるメールは、UTF-8で新しいメールソフトでは文字化けしません。ただし、タイトルが途中で欠けてしまします。 * e107handlers/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;」の行の間に<code php> if( $position == 'text' ) return mbencodemimeheader( mbconvertencoding( $str , mbinternal_encoding() , 'auto' ),”UTF-8“, “B”, “\n” );</code>を挿入する。 ===== ニュース投稿で'<'と'>'が変換されてしまう ===== 記事の中で、'<'や'>'を説明するために'<'と'>'を使っても、再度編集しようと読み込むと'<'や'>'になってしまう。 - e107admin/newspost.phpを開く - 次の行を探す<code php>$POST['data'] = $tp→toForm($POST['data']);</code> - その直下に<code php>$POST['data'] = strreplace(array(”<“, ”>“), array(”&lt;“, ”&gt;“), $POST['data']);</code>を挿入。