ITOBEN STYLE > EC-CUBE2.12:メルマガのバックナンバーをMYページから閲覧 2012年10月11日カテゴリー:未分類 EC-CUBE2.12:メルマガのバックナンバーをMYページから閲覧 MYページで、過去に配信されたメルマガを閲覧できるようにする。 管理画面上で削除したメルマガは表示されない。 ▼ここでのカスタマイズファイルをすべてダウンロードできます。 必要な箇所だけコピーしてご利用ください。 他のカスタマイズも含まれている場合がありますので、ファイルの上書きは絶対におやめください。 こちらから(facebookユーザーのみ) 1 メルマガ一覧をMYページに表示するかしないか、 会員自身に配信されたメルマガのみを表示するか、それともすべてのメルマガを表示するか、 以上の2点についてmtb_constantsテーブルに登録する。 [php] INSERT INTO mtb_constants (id, name, rank, remarks) VALUES (‘MAILMAGA_SHOW’, ‘true’, 1426, ‘MYページでのメルマガ一覧ページの表示(true:表示する,false:表示しない)’); INSERT INTO mtb_constants (id, name, rank, remarks) VALUES (‘MAILMAGA_CUSTOMER’, ‘false’, 1427, ‘表示するメルマガ(true:会員自身に配信されたメルマガのみ表示 false:すべてのメルマガを表示)’) [/php] ★システム設定>パラメーター設定を開き、「この内容で登録する」をクリック。 2 ページングに、jQuery Paginateを利用する。 http://th3silverlining.com/2010/04/15/pajination-a-jquery-pagination-plugin/ (1)上記アドレスより、jquery.pajinate.jsをダウンロードし、 ■html/js/jquery.pajinateフォルダに置く。 (2)スタイルシートを(1)と同じフォルダに置く。 ■html/js/jquery.pajinate/styles.css [css] div#paging_container .ellipse{ float: left; } div#paging_container .page_navigation { padding-bottom: 10px; } div#paging_container .page_navigation a { padding:3px 5px; margin:2px; color:white; text-decoration:none; float: left; font-family: Tahoma; font-size: 12px; background-color:#DB5C04; } div#paging_container .active_page{ background-color:white !important; color:black !important; } div.page_navigation { margin-bottom:30px; } div#paging_container ul#title { clear:both; } div#paging_container ul#title li { background-color:#EFEFEF; border: 1px solid #CCC; border-bottom:none; } div#paging_container .date { float:left; width:20%; text-align:center; padding:5px; border-right:#CCC 1px solid; } div#paging_container .backnumber { float:right; width:76%; padding:5px; } div#paging_container ul#title .backnumber { text-align:center; } div#paging_container ul.content { border:#CCC 1px solid; border-bottom:none; } div#paging_container ul.content li { border-bottom:#CCC 1px solid; } [/css] (3)■data/Smarty/templates/default/site_frame.tpl 追加 [php] [/php] 3 メルマガ一覧ページとバックナンバープレビューページを新規作成 (1)■html/mypage/mailmaga.php [php] init(); $objPage->process(); ?> [/php] (2)■html/mypage/mailmaga_view.php [php] init(); $objPage->process(); ?> [/php] (3)■data/class_extends/page_extends/mypage/LC_Page_Mypage_Mailmaga_Ex.php [php] [/php] (4)■data/class_extends/page_extends/mypage/LC_Page_Mypage_Mailmaga_view_Ex.php [php] [/php] (5)■data/class/pages/mypage/LC_Page_Mypage_Mailmaga.php [php] tpl_subtitle = ‘メルマガ一覧’; $this->tpl_mypageno = ‘mailmaga’; } /** * Page のプロセス. * * @return void */ function process() { parent::process(); } /** * Page のAction. * * @return void */ function action() { $objCustomer = new SC_Customer_Ex(); $customer_id = $objCustomer->getvalue(‘customer_id’); //データ取得 $objQuery =SC_Query_Ex::getSingletonInstance(); $this->arrRet = array(); $this->arrRetMulti = array(); //取得1 $arrRet = $objQuery->select(“*”, “dtb_send_history”, “del_flg = 0 order by start_date DESC”); //データベースからデータの取得ができたか if(isset($arrRet)){ $this->arrRet = $arrRet; } //取得2 $arrRetMulti = $objQuery->select(“*”, “dtb_send_customer join dtb_send_history on dtb_send_customer.send_id=dtb_send_history.send_id”, “dtb_send_history.del_flg = 0 AND dtb_send_customer.customer_id = $customer_id order by start_date DESC”); //データベースからデータの取得ができたか if(isset($arrRet)){ $this->arrRetMulti = $arrRetMulti; } } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } } ?> [/php] (6)■data/class/pages/mypage/LC_Page_Mypage_Mailmaga_view.php [php] tpl_subtitle = ‘バックナンバープレビュー’; $this->tpl_mainpage = ‘mypage/mailmaga_view.tpl’; } /** * Page のプロセス. * * @return void */ function process() { $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { $objMailHelper = new SC_Helper_Mail_Ex(); switch ($this->getMode()) { case ‘template’: if (SC_Utils_Ex::sfIsInt($_GET[‘template_id’])){ $arrMail = $objMailHelper->sfGetMailmagaTemplate($_GET[‘template_id’]); $this->mail = $arrMail[0]; } break; case ‘history’; if (SC_Utils_Ex::sfIsInt($_GET[‘send_id’])){ $arrMail = $objMailHelper->sfGetSendHistory($_GET[‘send_id’]); $this->mail = $arrMail[0]; } break; case ‘presend’; $this->mail[‘body’] = $_POST[‘body’]; default: } $this->setTemplate($this->tpl_mainpage); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } } ?> [/php] (7)■data/Smarty/templates/default/mypage/mailmaga.tpl メルマガのビュー画面を開くのに、「ポップアップウィンドウを中央に表示する」が適用されている。 class=”popupwindow” rel=”windowReview” ← 適用しない場合は、削除し、target=”_blank”などと記述する。 [php] 配信日 バックナンバー メルマガ配信まで、もうしばらくお待ちください。 現在メルマガバックナンバーはありません。 [/php] (8)■data/Smarty/templates/default/mypage/mailmaga_view.tpl [php] [/php] 4 ナビメニューに追加する ■data/Smarty/templates/default/mypage/navi.tpl 「会員状態」と「退会状態」の2カ所に追加 [php] selected“> メルマガ一覧 [/php] [php] 5 データベースにページを登録 メルマガ一覧とバックナンバープレビュー [php] INSERT INTO dtb_pagelayout (device_type_id, page_id, page_name, url, filename, header_chk, footer_chk, edit_flg, author, description, keyword, update_url, create_date, update_date) VALUES (10, 30, ‘MYページ/メルマガ一覧’, ‘mypage/mailmaga.php’, ‘mypage/mailmaga’, 1, 1, 2, NULL, NULL, NULL, NULL, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP); INSERT INTO dtb_pagelayout (device_type_id, page_id, page_name, url, filename, header_chk, footer_chk, edit_flg, author, description, keyword, update_url, create_date, update_date) VALUES (10, 31, ‘MYページ/バックナンバープレビュー’, ‘mypage/mailmaga_view.php’, ‘mypage/mailmaga_view’, 1, 1, 2, NULL, NULL, NULL, NULL, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP) [/php] 6 メルマガ一覧ページにブロックを配置
MYページで、過去に配信されたメルマガを閲覧できるようにする。
管理画面上で削除したメルマガは表示されない。
▼ここでのカスタマイズファイルをすべてダウンロードできます。
必要な箇所だけコピーしてご利用ください。
他のカスタマイズも含まれている場合がありますので、ファイルの上書きは絶対におやめください。
こちらから(facebookユーザーのみ)
1 メルマガ一覧をMYページに表示するかしないか、
会員自身に配信されたメルマガのみを表示するか、それともすべてのメルマガを表示するか、
以上の2点についてmtb_constantsテーブルに登録する。
[php]
INSERT INTO mtb_constants (id, name, rank, remarks) VALUES (‘MAILMAGA_SHOW’, ‘true’, 1426, ‘MYページでのメルマガ一覧ページの表示(true:表示する,false:表示しない)’);
INSERT INTO mtb_constants (id, name, rank, remarks) VALUES (‘MAILMAGA_CUSTOMER’, ‘false’, 1427, ‘表示するメルマガ(true:会員自身に配信されたメルマガのみ表示 false:すべてのメルマガを表示)’)
[/php]
★システム設定>パラメーター設定を開き、「この内容で登録する」をクリック。
2 ページングに、jQuery Paginateを利用する。
http://th3silverlining.com/2010/04/15/pajination-a-jquery-pagination-plugin/
(1)上記アドレスより、jquery.pajinate.jsをダウンロードし、
■html/js/jquery.pajinateフォルダに置く。
(2)スタイルシートを(1)と同じフォルダに置く。
■html/js/jquery.pajinate/styles.css
[css]
div#paging_container .ellipse{
float: left;
}
div#paging_container .page_navigation {
padding-bottom: 10px;
}
div#paging_container .page_navigation a {
padding:3px 5px;
margin:2px;
color:white;
text-decoration:none;
float: left;
font-family: Tahoma;
font-size: 12px;
background-color:#DB5C04;
}
div#paging_container .active_page{
background-color:white !important;
color:black !important;
}
div.page_navigation {
margin-bottom:30px;
}
div#paging_container ul#title {
clear:both;
}
div#paging_container ul#title li {
background-color:#EFEFEF;
border: 1px solid #CCC;
border-bottom:none;
}
div#paging_container .date {
float:left;
width:20%;
text-align:center;
padding:5px;
border-right:#CCC 1px solid;
}
div#paging_container .backnumber {
float:right;
width:76%;
padding:5px;
}
div#paging_container ul#title .backnumber {
text-align:center;
}
div#paging_container ul.content {
border:#CCC 1px solid;
border-bottom:none;
}
div#paging_container ul.content li {
border-bottom:#CCC 1px solid;
}
[/css]
(3)■data/Smarty/templates/default/site_frame.tpl 追加
[php]
[/php]
3 メルマガ一覧ページとバックナンバープレビューページを新規作成
(1)■html/mypage/mailmaga.php
[php]
init();
$objPage->process();
?>
[/php]
(2)■html/mypage/mailmaga_view.php
[php]
init();
$objPage->process();
?>
[/php]
(3)■data/class_extends/page_extends/mypage/LC_Page_Mypage_Mailmaga_Ex.php
[php]
[/php]
(4)■data/class_extends/page_extends/mypage/LC_Page_Mypage_Mailmaga_view_Ex.php
[php]
[/php]
(5)■data/class/pages/mypage/LC_Page_Mypage_Mailmaga.php
[php]
tpl_subtitle = ‘メルマガ一覧’;
$this->tpl_mypageno = ‘mailmaga’;
}
/**
* Page のプロセス.
*
* @return void
*/
function process() {
parent::process();
}
/**
* Page のAction.
*
* @return void
*/
function action() {
$objCustomer = new SC_Customer_Ex();
$customer_id = $objCustomer->getvalue(‘customer_id’);
//データ取得
$objQuery =SC_Query_Ex::getSingletonInstance();
$this->arrRet = array();
$this->arrRetMulti = array();
//取得1
$arrRet = $objQuery->select(“*”, “dtb_send_history”, “del_flg = 0 order by start_date DESC”);
//データベースからデータの取得ができたか
if(isset($arrRet)){
$this->arrRet = $arrRet;
}
//取得2
$arrRetMulti = $objQuery->select(“*”, “dtb_send_customer join dtb_send_history on dtb_send_customer.send_id=dtb_send_history.send_id”, “dtb_send_history.del_flg = 0 AND dtb_send_customer.customer_id = $customer_id order by start_date DESC”);
//データベースからデータの取得ができたか
if(isset($arrRet)){
$this->arrRetMulti = $arrRetMulti;
}
}
/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}
}
?>
[/php]
(6)■data/class/pages/mypage/LC_Page_Mypage_Mailmaga_view.php
[php]
tpl_subtitle = ‘バックナンバープレビュー’;
$this->tpl_mainpage = ‘mypage/mailmaga_view.tpl’;
}
/**
* Page のプロセス.
*
* @return void
*/
function process() {
$this->action();
$this->sendResponse();
}
/**
* Page のアクション.
*
* @return void
*/
function action() {
$objMailHelper = new SC_Helper_Mail_Ex();
switch ($this->getMode()) {
case ‘template’:
if (SC_Utils_Ex::sfIsInt($_GET[‘template_id’])){
$arrMail = $objMailHelper->sfGetMailmagaTemplate($_GET[‘template_id’]);
$this->mail = $arrMail[0];
}
break;
case ‘history’;
if (SC_Utils_Ex::sfIsInt($_GET[‘send_id’])){
$arrMail = $objMailHelper->sfGetSendHistory($_GET[‘send_id’]);
$this->mail = $arrMail[0];
}
break;
case ‘presend’;
$this->mail[‘body’] = $_POST[‘body’];
default:
}
$this->setTemplate($this->tpl_mainpage);
}
/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}
}
?>
[/php]
(7)■data/Smarty/templates/default/mypage/mailmaga.tpl
メルマガのビュー画面を開くのに、「ポップアップウィンドウを中央に表示する」が適用されている。
class=”popupwindow” rel=”windowReview” ← 適用しない場合は、削除し、target=”_blank”などと記述する。
[php]
[/php]
(8)■data/Smarty/templates/default/mypage/mailmaga_view.tpl
[php]
[/php]
4 ナビメニューに追加する
■data/Smarty/templates/default/mypage/navi.tpl 「会員状態」と「退会状態」の2カ所に追加
[php]
メルマガ一覧
[/php]
[php]
メルマガ一覧とバックナンバープレビュー
[php]
INSERT INTO dtb_pagelayout (device_type_id, page_id, page_name, url, filename, header_chk, footer_chk, edit_flg, author, description, keyword, update_url, create_date, update_date) VALUES (10, 30, ‘MYページ/メルマガ一覧’, ‘mypage/mailmaga.php’, ‘mypage/mailmaga’, 1, 1, 2, NULL, NULL, NULL, NULL, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
INSERT INTO dtb_pagelayout (device_type_id, page_id, page_name, url, filename, header_chk, footer_chk, edit_flg, author, description, keyword, update_url, create_date, update_date) VALUES (10, 31, ‘MYページ/バックナンバープレビュー’, ‘mypage/mailmaga_view.php’, ‘mypage/mailmaga_view’, 1, 1, 2, NULL, NULL, NULL, NULL, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
[/php]
6 メルマガ一覧ページにブロックを配置