差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
web:e107 [2008/01/04] – 作成 administratorweb:e107 [不明な日付] (現在) – 外部編集 (不明な日付) 127.0.0.1
行 1: 行 1:
 +====== e107の改造 ======
  
 +
 +
 +
 +===== 日本語化ファイル =====
 +[[http://e107jp.stellar8.com/|e107で遊ぼう屋]]で公開されているv.0.7.5用の日本語化ファイルに追記して、v.0.7.11用にしたものです。
 +
 +{{:web:files:e107.zip}} (2008/01/07版)
 +
 +本家英語版のファイルと重複するファイルはないので、初めて導入する場合は、上記のファイルを解凍し、そのままアップロードするだけです。
 +
 +===== news.phpをインデックスとしてアクセス =====
 +%%http://e107.tpot.tk/%%としてアクセスしても、%%http://e107.tpot.tk/news.php%%と飛ばされてしまうが、そのまま%%http://e107.tpot.tk/%%としてアクセスするための技。.htaccessに次のコードを入れる。<code>DirectoryIndex news.php</code>
 +
 +===== 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>を<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]."\n";
 + }
 + }
 + }
 +}</code>とし、改行を加える。
 +
 +===== サイドバーのコメントの表示をカスタマイズ =====
 +サイドバーにフォーラムのコメント一覧とニュースなどのコメント一覧を並べると、書式の違いが気になります。それを統一します。
 +  * サイドバーのフォーラムのコメント一覧はテンプレートがありません。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;」の行の間に<code php>   if( $position == 'text' )
 +     return mb_encode_mimeheader( mb_convert_encoding( $str , mb_internal_encoding() , 'auto' ),"UTF-8", "B", "\n" );</code>を挿入する。
 +
 +
 +
 +===== ニュース投稿で'&lt;'と'&gt;'が変換されてしまう =====
 +記事の中で、'%%<%%'や'%%>%%'を説明するために'&lt;'と'&gt;'を使っても、再度編集しようと読み込むと'%%<%%'や'%%>%%'になってしまう。
 +  - e107_admin/newspost.phpを開く
 +  - 次の行を探す<code php>$_POST['data'] = $tp->toForm($_POST['data']);</code>
 +  - その直下に<code php>$_POST['data'] = str_replace(array("&lt;", "&gt;"), array("&amp;lt;", "&amp;gt;"), $_POST['data']);</code>を挿入。