PHPを用いたコミュニティサイト構築のオープンソースです。
PHPおよびMySQLが利用可能なサーバであれば、簡単に導入することが可能です。
XOOPS Cube日本サイトから最新の安定バージョンがダウンロードできます。
なおXOOPS Cubeとは本家XOOPSをサポートせず、日本独自のバージョンとなります。
XREAでのSSL設定は苦戦しますが、
(管理画面はログイン後SSLが使えなかった)
admin/includes/configure.php 14行目に
define('HTTP_SERVER', 'https://ss1.xrea.com/ご自身のURL');
define('HTTP_CATALOG_SERVER', 'http://ご自身のURL');
define('HTTPS_CATALOG_SERVER', 'https://ss1.xrea.com/ご自身のURL');
define('ENABLE_SSL_CATALOG', true); // secure webserver for catalog module
と記述変更することでSSLを使えるようになりました。
また、
./admin/includes/configure.php の25行目
define('DIR_WS_CATALOG_IMAGES', DIR_WS_CATALOG . 'ご自身のURLの「http://以下」/images/');
当ショッピングモールの場合は
define('DIR_WS_CATALOG_IMAGES', DIR_WS_CATALOG . 'sale.media-bros.com/images/');
となりました。
ちなみに、
./includes/configure.php の14行目あたりの記述は
define('HTTP_SERVER', 'https://ss1.xrea.com/sale.media-bros.com');
define('HTTPS_SERVER', 'https://ss1.xrea.com/sale.media-bros.com');
define('ENABLE_SSL', true); // secure webserver for checkout procedure?
と設定しました。
ショップで表示する商品一覧のスタイルを管理画面で選択できるようにしました。
product_listing_2.2ms1j.zipをダウンロードして解凍します。
XREAのメニューのデータベースからphpMyAdminにログインします。
1.以下のSQL文を使用して、データベースにレコードを追加します。
※複数データベースを使用しているなら追加するデータベースを間違えないようにしてください。
/includes/configure.php内で設定したデータベース名を確認出来ます。
そのデータベース名をクリックし、SQLのタブを選択すると、
データベース「ご自身のデータベース名」で SQL を実行するという欄が出てきますのでその中に以下の文を貼り付け、実行するをクリックします。
INSERT INTO configuration VALUES ('', '商品一覧スタイル', 'PRODUCT_LISTING_DISPLAY_STYLE', 'list', '商品一覧ページで商品を表示するスタイルを選択してください。<br><br>どのスタイルを選んでも、必ず、選択した一覧のスタイルに適切な設定を行ってください。', 8, 0, NULL, now(), '', 'tep_cfg_select_option(array(\'list\', \'columns\'),');
INSERT INTO configuration VALUES ('', '商品一覧のカラム数', 'PRODUCT_LIST_COL_NUM', '3', '商品一覧ページで表示するカラム数を入力してください。', 8, 1, NULL, now(), NULL, NULL);
2./catalogs/includes/modules/product_listing.phpをproduct_listing.oldに変更してください。
3.解凍して出来た新しいproduct_listing.phpをアップロードしてください。
これで管理画面の商品一覧表示からスタイルの変更が可能になりました!
下にスクロールし終わった時にページTOPに戻りやすく出来るよう、
「▲このページのTOPへ」のタグをそれぞれのテンプレートに追記しました。
<a name="top"></a>
をそのページの上部分(バナータグ辺り)、
<a href="#top">▲このページのTOPへ</a>
をそのページの最下部分に追記。
movable typeのテンプレートの中にアーカイブページがあります。
それをhtmlからphpに出力変更し、過去記事の「一覧表示」をしてリンクしました。
「一覧表示」のリンクは以下のように追記。
<li>・ <a href="http://open.netdrive.in/archives.php">一覧表示</a></li>
この下は
<MTArchiveList archive_type="Monthly">
<li>・ <a href="<$MTArchiveLink$>"><$MTArchiveTitle pmhc=""$></a></li>
</MTArchiveList>
による月別の自動生成です。
テンプレートのarchives.htmlをエントリーの題名のみを表示させるようカスタマイズしました。
このページは2カラムにし、メイン部分に以下のようなタグを打ち込みました
<a href="<$MTBlogURL$>">TOPページに戻る</a>
<ul class="archive-list">
<MTArchiveList archive_type="Individual">
<li class="archive-list-item"><$MTArchiveDate format="%Y.%m.%d"$>: <a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a></li>
</MTArchiveList>
</ul>
カレンダーBOXの下に
「赤の日はメールの返信をお休みさせていただきます。」
の言葉を書き足しました。
使用しているテンプレートが、
./templates/default2
ですので
./templates/default2/column_left.html の137行目の後ろに
<tr>
<td>赤の日はメールの返信をお休みさせていただきます。</td>
</tr>
を追加しました。
(文字コードの都合で文字化けする可能性がありますのでTerapadでの編集を推奨)
会員登録途中や買い物後の自動返信メールのプログラムを読み込む際エラーバグが出るのを修正しました。
1../includes/classes/email.php の496行目~
for ($i=0; $i<count($headers); $i++) {
if (is_array($headers[$i])) {
for ($j=0; $j<count($headers[$i]); $j++) {
if ($headers[$i][$j] != '') {
$xtra_headers[] = $headers[$i][$j];
}
}
}
if ($headers[$i] != '') {
$xtra_headers[] = $headers[$i];
}
}
if (!isset($xtra_headers)) {
$xtra_headers = array();
}
$this->headers = array_merge($this->headers, $xtra_headers);
$this->output = str_replace('<!--name-->', mb_convert_encoding(mb_convert_kana($to_name." 様", "KV"), 'ISO-2022-JP'), $this->output);
if (EMAIL_TRANSPORT == 'smtp') {
return mail($to_addr, $subject, $this->output, 'From: ' . $from . $this->lf . 'To: ' . $to . $this->lf . implode($this->lf, $this->headers));
} else {
return mail($to, $subject, $this->output, 'From: '.$from.$this->lf.implode($this->lf, $this->headers), '-f' . STORE_OWNER_EMAIL_ADDRESS);
}
}
を
for ($i=0; $i
for ($j=0; $j
$xtra_headers[] = $headers[$i][$j];
}
}
}
if ($headers[$i] != '') {
$xtra_headers[] = $headers[$i];
}
}
if (!isset($xtra_headers)) {
$xtra_headers = array();
}
if (EMAIL_TRANSPORT == 'smtp') {
return mail($to_addr, $subject, $this->output, 'From: ' . $from . $this->lf . 'To: ' . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers));
} else {
return mail($to, $subject, $this->output, 'From: '.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));
}
}
に変更。
2../admin/includes/classes/email.php の482行目~
if ($subject != '') {
$subject = mb_encode_mimeheader(mb_convert_kana($subject, "KV"), 'ISO-2022-JP');
}
$to = ($to_name != '')
? ('"' . mb_encode_mimeheader(mb_convert_kana($to_name." 様", "KV"), 'ISO-2022-JP') . '" <' . $to_addr . '>')
: $to_addr;
$from = ($from_name != '')
? ('"' . mb_encode_mimeheader(mb_convert_kana($from_name, "KV"), 'ISO-2022-JP') . '" <' . $from_addr. '>')
: $from_addr;
if (is_string($headers)) {
$headers = explode($this->lf, trim($headers));
}
for ($i=0; $i
for ($j=0; $j
$xtra_headers[] = $headers[$i][$j];
}
}
}
if ($headers[$i] != '') {
$xtra_headers[] = $headers[$i];
}
}
if (!isset($xtra_headers)) {
$xtra_headers = array();
}
if (EMAIL_TRANSPORT == 'smtp') {
return mail($to_addr, $subject, $this->output, 'From: ' . $from . $this->lf . 'To: ' . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers));
} else {
return mail($to, $subject, $this->output, 'From: '.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));
}
}
を
if ($subject != '')
$subject = '=?iso-2022-jp?B?' .
base64_encode(mb_convert_encoding($subject,'JIS','EUC')) . '?=';
$to = ($to_name != '')
? ('"' . mb_encode_mimeheader(mb_convert_encoding($to_name .
TEXT_KEISYOU_SAMA,'JIS','EUC')) . '" <' . $to_addr . '>')
: $to_addr;
$from = ($from_name != '')
? ('"' .
mb_encode_mimeheader(mb_convert_encoding($from_name,'JIS','EUC')) . '" <' .
$from_addr. '>')
: $from_addr;
if(is_string($headers))
$headers = explode($this->lf, trim($headers));
for($i=0; $i
for($j=0; $j
$xtra_headers[] = $headers[$i][$j];
if($headers[$i] != '')
$xtra_headers[] = $headers[$i];
}
if(!isset($xtra_headers))
$xtra_headers = array();
if (EMAIL_TRANSPORT=="smtp") {
return mail(
$to_addr,
$subject,
$this->output,
'From: ' . $from . $this->lf . 'To: ' . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers));
} else {
return mail($to, $subject, $this->output, 'From: '.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));
}
}
に変更
./includes/languages/japanese/address_book_process.php
の適当な箇所に
define('HEADING_TITLE', 'アドレス帳');
を追加
パンくずリストとは、トップページから現在表示しているページまでの階層を示したリストのことです。
今どこのページを閲覧しているか判断させやすくします。
例)
・エントリーアーカイブ
<a href="<$MTBlogURL$>">トップページ</a> >
<MTParentCategories glue=" > ">
<a href="<$MTCategoryArchiveLink$>">
<$MTCategoryLabel pmhc=""$></a>
</MTParentCategories>
> <$MTEntryTitle$>
赤字部分は「カテゴリーの表示順カスタマイズ」で追記した部分です。
このカスタマイズをしていなければ赤字部分の記載は必要ありません。
(以下も同じ)
・カテゴリーアーカイブ
<a href="<$MTBlogURL$>">トップページ</a> >
<MTParentCategories glue=" > ">
<a href="<$MTCategoryArchiveLink$>">
<$MTCategoryLabel pmhc=""$></a>
</MTParentCategories>
・日付アーカイブ
<a href="<$MTBlogURL$>">トップページ</a> >
<$MTArchiveTitle$>
を追記しました。
./account_password.phpの33行目
ENTRY_PASSWORD_CURRENT_ERROR
を
ENTRY_PASSWORD_ERROR
に修正