/** * Page のアクション. * * @return void */ public function action() { $objMailHelper = new SC_Helper_Mail_Ex(); switch ($this->getMode()) { case 'edit': // 編集 if (SC_Utils_Ex::sfIsInt($_GET['template_id']) === true) { $arrMail = $objMailHelper->sfGetMailmagaTemplate($_GET['template_id']); $this->arrForm = $arrMail[0]; } break; case 'regist': // 新規登録 $objFormParam = new SC_FormParam_Ex(); $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $this->arrErr = $objFormParam->checkError(); $this->arrForm = $objFormParam->getHashArray(); if (SC_Utils_Ex::isBlank($this->arrErr)) { // エラーが無いときは登録・編集 $this->lfRegistData($objFormParam, $objFormParam->getValue('template_id')); // 自分を再読込して、完了画面へ遷移 $this->objDisplay->reload(array('mode' => 'complete')); } else { $this->arrForm['template_id'] = $objFormParam->getValue('template_id'); } break; case 'complete': // 完了画面表示 $this->tpl_mainpage = 'mail/template_complete.tpl'; break; default: break; } }
/** * Page のアクション. * * @return void */ function action() { if (strpos(HTTPS_URL, 'https://') !== FALSE) { $this->tpl_enable_ssl = TRUE; } $objFormParam = new SC_FormParam_Ex(); // パラメーターの初期化 $this->initParam($objFormParam, $_POST); if (count($_POST) > 0) { // エラーチェック $arrErr = $objFormParam->checkError(); $this->arrForm = $objFormParam->getHashArray(); //設定ファイルの権限チェック if (!is_writable(CONFIG_REALFILE)) { $arrErr['all'] = t('c_You do not have access to change T_ARG1._01', array('T_ARG1' => CONFIG_REALFILE)); } //管理画面ディレクトリのチェック $this->lfCheckAdminArea($this->arrForm, $arrErr); if (SC_Utils_Ex::isBlank($arrErr) && $this->lfUpdateAdminData($this->arrForm)) { $this->tpl_onload = "window.alert('" . t('c_Management area settings were revised. If the URL was changed, access the new URL._01') . "');"; } else { $this->tpl_onload = "window.alert('" . t('c_There is an error in the settings details. Check the settings details._01') . "');"; $this->arrErr = array_merge($arrErr, $this->arrErr); } } else { $admin_dir = str_replace('/', '', ADMIN_DIR); $this->arrForm = array('admin_dir' => $admin_dir, 'admin_force_ssl' => ADMIN_FORCE_SSL, 'admin_allow_hosts' => ''); if (defined('ADMIN_ALLOW_HOSTS')) { $allow_hosts = unserialize(ADMIN_ALLOW_HOSTS); $this->arrForm['admin_allow_hosts'] = implode("\n", $allow_hosts); } } }
/** * Page のアクション. * * @return void */ public function action() { // パラメーター管理クラス $objFormParam = new SC_FormParam_Ex(); // パラメーター設定 $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $objFormParam->setParam($_GET); $objFormParam->convParam(); // CSV_IDの読み込み $this->tpl_subno_csv = $objFormParam->getValue('tpl_subno_csv'); $this->tpl_csv_id = $this->lfGetCsvId($this->tpl_subno_csv); switch ($this->getMode()) { case 'confirm': // 入力パラメーターチェック $this->arrErr = $objFormParam->checkError(); if (SC_Utils_Ex::isBlank($this->arrErr)) { // 更新 $this->tpl_is_update = $this->lfUpdCsvOutput($this->tpl_csv_id, $objFormParam->getValue('output_list')); } break; case 'defaultset': //初期値に戻す $this->tpl_is_update = $this->lfSetDefaultCsvOutput($this->tpl_csv_id); break; default: break; } $this->arrSelected = $this->lfGetSelected($this->tpl_csv_id); $this->arrOptions = $this->lfGetOptions($this->tpl_csv_id); $this->tpl_subtitle .= '>' . $this->arrSubnaviName[$this->tpl_csv_id]; if ($this->tpl_is_update) { $this->tpl_onload = "window.alert('正常に更新されました。');"; } }
/** * Page のアクション. * * @return void */ public function action() { // パラメーター情報の初期化 $objFormParam = new SC_FormParam_Ex(); $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $objFormParam->convParam(); // 検索ワードの引き継ぎ $this->arrSearchHidden = $objFormParam->getSearchArray(); $this->arrForm = $objFormParam->getHashArray(); switch ($this->getMode()) { // 登録 case 'complete': $this->arrErr = $objFormParam->checkError(); // エラー無し if (SC_Utils_Ex::isBlank($this->arrErr)) { // レビュー情報の更新 $this->lfRegistReviewData($this->arrForm['review_id'], $objFormParam); // レビュー情報のDB取得 $this->arrForm = $this->lfGetReviewData($this->arrForm['review_id']); $this->tpl_onload = "alert('登録が完了しました。');"; } break; default: // レビュー情報のDB取得 $this->arrForm = $this->lfGetReviewData($this->arrForm['review_id']); break; } }
/** * Page のアクション. * * @return void */ public function action() { // パラメーター管理クラス $objFormParam = new SC_FormParam_Ex(); // パラメーター設定 $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $objFormParam->convParam(); // パラメーター読み込み $this->arrForm = $objFormParam->getFormParamList(); // 入力パラメーターチェック $this->arrErr = $this->lfCheckError($objFormParam); if (SC_Utils_Ex::isBlank($this->arrErr)) { // POSTのモードがsearchなら会員検索開始 switch ($this->getMode()) { case 'search': list($this->tpl_linemax, $this->arrCustomer, $this->objNavi) = $this->lfDoSearch($objFormParam->getHashArray()); $this->tpl_strnavi = $this->objNavi->strnavi; break; default: break; } } $this->setTemplate($this->tpl_mainpage); }
/** * Page のアクション. * * @return void */ public function action() { if (strpos(HTTPS_URL, 'https://') !== FALSE) { $this->tpl_enable_ssl = TRUE; } $objFormParam = new SC_FormParam_Ex(); // パラメーターの初期化 $this->initParam($objFormParam, $_POST); if (count($_POST) > 0) { // エラーチェック $arrErr = $objFormParam->checkError(); $this->arrForm = $objFormParam->getHashArray(); //設定ファイルの権限チェック if (!is_writable(CONFIG_REALFILE)) { $arrErr['all'] = CONFIG_REALFILE . ' を変更する権限がありません。'; } //管理画面ディレクトリのチェック $this->lfCheckAdminArea($this->arrForm, $arrErr); if (SC_Utils_Ex::isBlank($arrErr) && $this->lfUpdateAdminData($this->arrForm)) { $this->tpl_onload = "window.alert('管理機能の設定を変更しました。URLを変更した場合は、新しいURLにアクセスしてください。');"; } else { $this->tpl_onload = "window.alert('設定内容に誤りがあります。設定内容を確認してください。');"; $this->arrErr = array_merge($arrErr, $this->arrErr); } } else { $admin_dir = str_replace('/', '', ADMIN_DIR); $this->arrForm = array('admin_dir' => $admin_dir, 'admin_force_ssl' => ADMIN_FORCE_SSL, 'admin_allow_hosts' => ''); if (defined('ADMIN_ALLOW_HOSTS')) { $allow_hosts = unserialize(ADMIN_ALLOW_HOSTS); $this->arrForm['admin_allow_hosts'] = implode("\n", $allow_hosts); } } }
function action() { $objFormParam = new SC_FormParam_Ex(); $objFormParam->addParam("加盟店ID", "memberId", 5, "n", explode(",", "NUM_CHECK,EXIST_CHECK,NUM_COUNT_CHECK")); $objFormParam->addParam("サービスID", "serviceId", 5, "n", explode(",", "NUM_CHECK,EXIST_CHECK,NUM_COUNT_CHECK")); $objFormParam->addParam("セキュアキー", "secureKey", 32, "n", explode(",", "ALNUM_CHECK,EXIST_CHECK,NUM_COUNT_CHECK")); $objFormParam2 = new SC_FormParam_Ex(); $objFormParam2->addParam("加盟店ID", "cpid", 10, "n", explode(",", "ALNUM_CHECK,EXIST_CHECK,NUM_COUNT_CHECK")); $objFormParam2->addParam("サイトID", "siteid", 10, "n", explode(",", "ALNUM_CHECK,EXIST_CHECK,NUM_COUNT_CHECK")); $objFormParam2->addParam("セキュアキー", "secureKey1", 20, "n", explode(",", "ALNUM_CHECK,EXIST_CHECK,NUM_COUNT_CHECK")); switch ($this->getMode()) { case "edit": $objFormParam->setParam($_POST); $objFormParam->convParam(); $this->arrErr = $objFormParam->checkError(); if (SC_Utils_Ex::isBlank($this->arrErr)) { $arrConfig = $objFormParam->getHashArray(array("memberId", "serviceId", "secureKey")); SC_AuonePayment_Ex::saveConfig($arrConfig); } // キセカエタッチの $config2 = SC_AuonePayment_Ex::getConfig("free_field2"); $objFormParam2->setParam($config2); break; case "edit_kisekae": $objFormParam2->setParam($_POST); $objFormParam2->convParam(); $this->arrErr = $objFormParam2->checkError(); if (SC_Utils_Ex::isBlank($this->arrErr)) { $arrConfig = $objFormParam2->getHashArray(array("cpid", "siteid", "secureKey1")); SC_AuonePayment_Ex::saveConfig($arrConfig, "free_field2"); } // au かんたん決済の設定は 再読み込み $config = SC_AuonePayment_Ex::getConfig(); $objFormParam->setParam($config); break; default: $config = SC_AuonePayment_Ex::getConfig(); $objFormParam->setParam($config); $config2 = SC_AuonePayment_Ex::getConfig("free_field2"); $objFormParam2->setParam($config2); break; } $form = $this->createForm1($objFormParam); $form2 = $this->createForm2($objFormParam2); switch ($this->getMode()) { case "edit": $form->validate(); break; case "edit_kisekae": $form2->validate(); break; } $this->form = $form->toHtml(); $this->form2 = $form2->toHtml(); $this->tpl_mainpage = dirname(__FILE__) . "/config.tpl"; $this->setTemplate($this->tpl_mainpage); }
static function saveConfig($value = array(), $key = "free_field1", $plugin_code = "KisekaeTouch") { $objPlugin = new SC_Plugin_Util_Ex(); $arrPlugin = $objPlugin->getPluginByPluginCode($plugin_code); if (!SC_Utils_Ex::isBlank($value) && is_array($value)) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $table = 'dtb_plugin'; $where = 'plugin_code = ?'; $objQuery->update($table, array($key => serialize($value)), $where, array("KisekaeTouch")); } $config = unserialize($arrPlugin[$key]); return $config; }
public function doAction($arrParam) { $arrRequest = $this->doInitParam($arrParam); if (!$this->isParamError()) { $zipcode = $arrRequest['zip1'] . $arrRequest['zip2']; $arrAddrList = SC_Utils_Ex::sfGetAddress($zipcode); if (!SC_Utils_Ex::isBlank($arrAddrList)) { $this->setResponse('Address', array('State' => $arrAddrList[0]['state'], 'City' => $arrAddrList[0]['city'], 'Town' => $arrAddrList[0]['town'])); return true; } } return false; }
/** * ページのレイアウト情報を取得し, 設定する. * * 現在の URL に応じたページのレイアウト情報を取得し, LC_Page インスタンスに * 設定する. * * @access public * @param LC_Page $objPage LC_Page インスタンス * @param boolean $preview プレビュー表示の場合 true * @param string $url ページのURL($_SERVER['PHP_SELF'] の情報) * @param integer $device_type_id 端末種別ID * @return void */ function sfGetPageLayout(&$objPage, $preview = false, $url = "", $device_type_id = DEVICE_TYPE_PC) { // URLを元にページ情報を取得 if ($preview === false) { $url = preg_replace('|^' . preg_quote(ROOT_URLPATH) . '|', '', $url); $arrPageData = $this->getPageProperties($device_type_id, null, 'url = ?', array($url)); } else { $arrPageData = $this->getPageProperties($device_type_id, 0); } $objPage->tpl_mainpage = $this->getTemplatePath($device_type_id) . $arrPageData[0]['filename'] . ".tpl"; $objPage->arrPageLayout =& $arrPageData[0]; $objBlob = new SC_Helper_Blob_Ex(); $containerName = $objBlob->getTemplateContainerName($device_type_id); /** pageのテンプレートがなければBlobから取得する */ if (!is_file($objPage->tpl_mainpage)) { $objBlob->getBlob($containerName, $arrPageData[0]['filename'] . ".tpl", $objPage->tpl_mainpage); } // ページタイトルを設定 if (SC_Utils_Ex::isBlank($objPage->tpl_title)) { $objPage->tpl_title = $objPage->arrPageLayout['page_name']; } // 該当ページのブロックを取得し, 配置する $masterData = new SC_DB_MasterData(); $arrTarget = $masterData->getMasterData("mtb_target"); $arrBlocs = $this->getBlocPositions($device_type_id, $objPage->arrPageLayout['page_id']); // php_path, tpl_path が存在するものを, 各ターゲットに配置 foreach (array_keys($arrTarget) as $target_id) { foreach ($arrBlocs as $arrBloc) { if ($arrBloc['target_id'] != $target_id) { continue; } /* Blobからすでにファイルを取得している場合*/ if (is_file($arrBloc['tpl_path'])) { $objPage->arrPageLayout[$arrTarget[$target_id]][] = $arrBloc; } else { if ($objBlob->blobExists($containerName, $arrBloc['filename'] . ".tpl")) { $localFilename = $arrBloc['tpl_path']; $objBlob->getBlob($containerName, $arrBloc['filename'] . ".tpl", $localFilename); $objPage->arrPageLayout[$arrTarget[$target_id]][] = $arrBloc; } else { $error = "ブロックが見つかりません\n" . "tpl_path: " . $arrBloc['tpl_path'] . "\n" . "php_path: " . $arrBloc['php_path']; GC_Utils_Ex::gfPrintLog($error); } } } } // カラム数を取得する $objPage->tpl_column_num = $this->getColumnNum($objPage->arrPageLayout); }
public function doAction($arrParam) { $arrRequest = $this->doInitParam($arrParam); if (!$this->isParamError()) { $category_id = $arrRequest['BrowseNodeId']; if ($category_id && !SC_Helper_DB_Ex::sfIsRecord('dtb_category', 'category_id', (array) $category_id, 'del_flg = 0')) { $category_id = '0'; } else { if (SC_Utils_Ex::isBlank($category_id)) { $category_id = '0'; } } // LC_Page_Products_CategoryList::lfGetCategories() と相当類似しているので共通化したい $arrCategory = null; // 選択されたカテゴリ $arrChildren = array(); // 子カテゴリ $arrAll = SC_Helper_DB_Ex::sfGetCatTree($category_id, true); foreach ($arrAll as $category) { if ($category_id != 0 && $category['category_id'] == $category_id) { $arrCategory = $category; continue; } if ($category['parent_category_id'] != $category_id) { continue; } $arrGrandchildrenID = SC_Utils_Ex::sfGetUnderChildrenArray($arrAll, 'parent_category_id', 'category_id', $category['category_id']); $category['has_children'] = count($arrGrandchildrenID) > 0; $arrChildren[] = $category; } if (!SC_Utils_Ex::isBlank($arrCategory)) { $arrData = array('BrowseNodeId' => $category_id, 'Name' => $arrCategory['category_name'], 'PageURL' => HTTP_URL . 'products/list.php?category_id=' . $arr['category_id'], 'has_children' => count($arrChildren) > 0); } else { $arrData = array('BrowseNodeId' => $category_id, 'Name' => 'ホーム', 'PageURL' => HTTP_URL, 'has_children' => count($arrChildren) > 0); } if (!SC_Utils_Ex::isBlank($arrChildren)) { $arrData['Children'] = array(); foreach ($arrChildren as $category) { $arrData['Children']['BrowseNode'][] = array('BrowseNodeId' => $category['category_id'], 'Name' => $category['category_name'], 'PageURL' => HTTP_URL . 'products/list.php?category_id=' . $category['category_id'], 'has_children' => $category['has_children']); } } $this->setResponse('BrowseNode', $arrData); // TODO: Ancestors 親ノード return true; } return false; }
/** * Page のアクション. * * @return void */ public function action() { $objFormParam = new SC_FormParam_Ex(); $this->lfInitParam($objFormParam); $objFormParam->setParam($_REQUEST); $objFormParam->convParam(); $this->arrErr = $objFormParam->checkError(); $is_error = !SC_Utils_Ex::isBlank($this->arrErr); $this->device_type_id = $objFormParam->getValue('device_type_id', DEVICE_TYPE_PC); switch ($this->getMode()) { // 登録 case 'regist': $this->arrErr = $this->lfCheckError($objFormParam, $this->arrErr); if (SC_Utils_Ex::isBlank($this->arrErr)) { if ($this->doRegister($objFormParam)) { $this->tpl_onload = "alert('登録が完了しました。');"; } } break; default: break; } if (!$is_error) { // テキストエリアに表示 $header_path = $this->getTemplatePath($this->device_type_id, 'header'); $footer_path = $this->getTemplatePath($this->device_type_id, 'footer'); if ($header_path === false || $footer_path === false) { $this->arrErr['err'] = '※ ファイルの取得に失敗しました<br />'; } else { $this->header_data = file_get_contents($header_path); $this->footer_data = file_get_contents($footer_path); } } else { // 画面にエラー表示しないため, ログ出力 GC_Utils_Ex::gfPrintLog('Error: ' . print_r($this->arrErr, true)); } //サブタイトルの追加 $this->tpl_subtitle = $this->arrDeviceType[$this->device_type_id] . '>' . $this->tpl_subtitle; }
/** * Page のアクション. * * @return void */ function action() { $objDb = new SC_Helper_DB_Ex(); $objFormParam = new SC_FormParam_Ex(); $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $objFormParam->convParam(); $rank = intval($_GET['rank']); switch ($this->getMode()) { case 'search': // POST値の引き継ぎ $this->arrErr = $this->lfCheckError($objFormParam); $arrPost = $objFormParam->getHashArray(); // 入力された値にエラーがない場合、検索処理を行う。 // 検索結果の数に応じてページャの処理も入れる。 if (SC_Utils_Ex::isBlank($this->arrErr)) { $objProduct = new SC_Product_Ex(); $wheres = $this->createWhere($objFormParam, $objDb); $this->tpl_linemax = $this->getLineCount($wheres, $objProduct); $page_max = SC_Utils_Ex::sfGetSearchPageMax($arrPost['search_page_max']); // ページ送りの取得 $objNavi = new SC_PageNavi_Ex($arrPost['search_pageno'], $this->tpl_linemax, $page_max, 'fnNaviSearchOnlyPage', NAVI_PMAX); $this->tpl_strnavi = $objNavi->strnavi; // 表示文字列 $startno = $objNavi->start_row; $arrProduct_id = $this->getProducts($wheres, $objProduct, $page_max, $startno); $this->arrProducts = $this->getProductList($arrProduct_id, $objProduct); $this->arrForm = $arrPost; } break; default: break; } // カテゴリ取得 $this->arrCatList = $objDb->sfGetCategoryList(); $this->rank = $rank; $this->setTemplate('contents/recommend_search.tpl'); }
/** * Page のAction. * * @return void */ public function action() { $objFormParam = new SC_FormParam_Ex(); $this->lfInitParam($objFormParam); $objFormParam->setParam($_GET); $arrErr = $objFormParam->checkError(); if (SC_Utils_Ex::isBlank($arrErr)) { $arrForm = $objFormParam->getHashArray(); // TODO: ファイル名を直接指定するような処理は避けるべき // NO_IMAGE_REALFILE以外のファイル名が直接渡された場合、ファイル名のチェックを行う if (strlen($arrForm['image']) >= 1 && $arrForm['image'] !== NO_IMAGE_REALFILE) { if (!$this->lfCheckFileName($arrForm['image'])) { GC_Utils_Ex::gfPrintLog('invalid access :resize_image.php image=' . $arrForm['image']); } $file = SC_Utils_Ex::getSaveImagePath($arrForm['image']); } else { // 商品画像を取得する $file = $this->lfGetProductImage($arrForm); } // リサイズ画像の出力 $this->lfOutputImage($file, $arrForm['width'], $arrForm['height']); } }
function hasValue($keyname) { if (isset($_SESSION['customer'][$keyname])) { return !SC_Utils_Ex::isBlank($_SESSION['customer'][$keyname]); } return false; }
/** * エラーチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラーメッセージの配列 */ public function lfCheckError(&$objFormParam, &$arrErr, SC_Helper_Bloc_Ex &$objBloc) { $arrParams = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrParams); $objErr->arrErr =& $arrErr; $objErr->doFunc(array('ブロック名', 'bloc_name', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objErr->doFunc(array('ファイル名', 'filename', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'FILE_NAME_CHECK_BY_NOUPLOAD')); $where = 'filename = ?'; $arrValues = array($arrParams['filename']); // 変更の場合は自ブロックを除外 if (!SC_Utils_Ex::isBlank($arrParams['bloc_id'])) { $where .= ' AND bloc_id <> ?'; $arrValues[] = $arrParams['bloc_id']; } $arrBloc = $objBloc->getWhere($where, $arrValues); if (!SC_Utils_Ex::isBlank($arrBloc)) { $objErr->arrErr['filename'] = '※ 同じファイル名のデータが存在しています。別のファイル名を入力してください。<br />'; } return $objErr->arrErr; }
/** * Page のAction. * * @return void */ public function action() { $objCustomer = new SC_Customer_Ex(); $objAddress = new SC_Helper_Address_Ex(); $ParentPage = MYPAGE_DELIVADDR_URLPATH; // GETでページを指定されている場合には指定ページに戻す if (isset($_GET['page'])) { $ParentPage = htmlspecialchars($_GET['page'], ENT_QUOTES); } elseif (isset($_POST['ParentPage'])) { $ParentPage = htmlspecialchars($_POST['ParentPage'], ENT_QUOTES); } // 正しい遷移かをチェック $arrParentPageList = array(DELIV_URLPATH, MYPAGE_DELIVADDR_URLPATH, MULTIPLE_URLPATH); if (!SC_Utils_Ex::isBlank($ParentPage) && !in_array($ParentPage, $arrParentPageList)) { // 遷移が正しくない場合、デフォルトであるマイページの配送先追加の画面を設定する $ParentPage = MYPAGE_DELIVADDR_URLPATH; } $this->ParentPage = $ParentPage; /* * ログイン判定 及び 退会判定 * 未ログインでも, 複数配送設定ページからのアクセスの場合は表示する * * TODO 購入遷移とMyPageで別クラスにすべき */ if (!$objCustomer->isLoginSuccess(true) && $ParentPage != MULTIPLE_URLPATH) { $this->tpl_onload = "eccube.changeParentUrl('" . $ParentPage . "'); window.close();"; } // other_deliv_id のあるなしで追加か編集か判定しているらしい $_SESSION['other_deliv_id'] = $_REQUEST['other_deliv_id']; // パラメーター管理クラス,パラメーター情報の初期化 $objFormParam = new SC_FormParam_Ex(); $objAddress->setFormParam($objFormParam); $objFormParam->setParam($_POST); switch ($this->getMode()) { // 入力は必ずedit case 'edit': $this->arrErr = $objAddress->errorCheck($objFormParam); // 入力エラーなし if (empty($this->arrErr)) { // TODO ここでやるべきではない if (in_array($_POST['ParentPage'], $this->validUrl)) { $this->tpl_onload = "eccube.changeParentUrl('" . $this->getLocation($_POST['ParentPage']) . "'); window.close();"; } else { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); } if ($objCustomer->isLoginSuccess(true)) { $this->lfRegistData($objAddress, $objFormParam, $objCustomer->getValue('customer_id')); } else { $this->lfRegistDataNonMember($objFormParam); } if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) { // モバイルの場合、元のページに遷移 SC_Response_Ex::sendRedirect($this->getLocation($_POST['ParentPage'])); SC_Response_Ex::actionExit(); } } break; case 'multiple': // 複数配送先用 break; default: if ($_GET['other_deliv_id'] != '') { $arrOtherDeliv = $objAddress->getAddress($_SESSION['other_deliv_id'], $objCustomer->getValue('customer_id')); //不正アクセス判定 if (!$objCustomer->isLoginSuccess(true) || !$arrOtherDeliv) { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); } //別のお届け先情報取得 $objFormParam->setParam($arrOtherDeliv); } break; } $this->arrForm = $objFormParam->getFormParamList(); if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) { $this->tpl_mainpage = 'mypage/delivery_addr.tpl'; } else { $this->setTemplate('mypage/delivery_addr.tpl'); } }
/** * 登録を実行する. * * ファイルの作成に失敗した場合は, エラーメッセージを出力し, * データベースをロールバックする. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param SC_Helper_PageLayout $objLayout SC_Helper_PageLayout インスタンス * @return integer|boolean 登録が成功した場合, 登録したページID; * 失敗した場合 false */ function doRegister(&$objFormParam, &$objLayout) { $filename = $objFormParam->getValue('filename'); $arrParams['device_type_id'] = $objFormParam->getValue('device_type_id'); $arrParams['page_id'] = $objFormParam->getValue('page_id'); $arrParams['header_chk'] = intval($objFormParam->getValue('header_chk')) === 1 ? 1 : 2; $arrParams['footer_chk'] = intval($objFormParam->getValue('footer_chk')) === 1 ? 1 : 2; $arrParams['tpl_data'] = $objFormParam->getValue('tpl_data'); $arrParams['page_name'] = $objFormParam->getValue('page_name'); $arrParams['url'] = USER_DIR . $filename . '.php'; $arrParams['filename'] = USER_DIR . $filename; $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->begin(); $page_id = $this->registerPage($arrParams, $objLayout); $objBlob = new SC_Helper_Blob_Ex(); $containerName = $objBlob->getTemplateContainerName($arrParams['device_type_id']); /* * 新規登録時 * or 編集可能な既存ページ編集時かつ, PHP ファイルが存在しない場合に, * PHP ファイルを作成する. */ if (SC_Utils_Ex::isBlank($arrParams['page_id']) || $objLayout->isEditablePage($arrParams['device_type_id'], $arrParams['page_id'])) { if (!$this->createPHPFile($filename)) { $this->arrErr['err'] = '※ PHPファイルの作成に失敗しました<br />'; $objQuery->rollback(); return false; } // 新規登録時のみ $page_id を代入 $arrParams['page_id'] = $page_id; } if ($objLayout->isEditablePage($arrParams['device_type_id'], $page_id)) { $tpl_path = $objLayout->getTemplatePath($arrParams['device_type_id']) . $arrParams['filename'] . '.tpl'; } else { $tpl_path = $objLayout->getTemplatePath($arrParams['device_type_id']) . $filename . '.tpl'; } if (!$objBlob->putBlobData($containerName, $arrParams['filename'] . '.tpl', $arrParams['tpl_data'])) { $this->arrErr['err'] = '※ TPLファイルの書き込みに失敗しました<br />'; $objQuery->rollback(); return false; } //既存のTPLが存在する場合は削除しておく if (file_exists($tpl_path)) { unlink($tpl_path); } $objQuery->commit(); return $arrParams['page_id']; }
/** * Page のアクション. * * @return void */ function action() { $objFormParam = new SC_FormParam_Ex(); // パラメーターの初期化 $this->initParam($objFormParam, $_POST); $arrErrTmp = array(); $arrForm = array(); $this->mode = $this->getMode(); switch ($this->mode) { // バックアップを作成する case 'bkup': // データ型エラーチェック $arrErrTmp[1] = $objFormParam->checkError(); // データ型に問題がない場合 if (SC_Utils_Ex::isBlank($arrErrTmp[1])) { // データ型以外のエラーチェック $arrErrTmp[2] = $this->lfCheckError($objFormParam->getHashArray(), $this->mode); } // エラーがなければバックアップ処理を行う if (SC_Utils_Ex::isBlank($arrErrTmp[1]) && SC_Utils_Ex::isBlank($arrErrTmp[2])) { $arrData = $objFormParam->getHashArray(); $work_dir = $this->bkup_dir . $arrData['bkup_name'] . '/'; // バックアップデータの事前削除 SC_Helper_FileManager_Ex::deleteFile($work_dir); // バックアップファイル作成 $res = $this->lfCreateBkupData($arrData['bkup_name'], $work_dir); // バックアップデータの事後削除 SC_Helper_FileManager_Ex::deleteFile($work_dir); $arrErrTmp[3] = array(); if ($res !== true) { $arrErrTmp[3]['bkup_name'] = 'バックアップに失敗しました。(' . $res . ')'; } // DBにデータ更新 if (SC_Utils_Ex::isBlank($arrErrTmp[3])) { $this->lfUpdBkupData($arrData); } else { $arrForm = $arrData; $arrErr = $arrErrTmp[3]; } $this->tpl_onload = "alert('バックアップ完了しました');"; } else { $arrForm = $objFormParam->getHashArray(); $arrErr = array_merge((array) $arrErrTmp[1], (array) $arrErrTmp[2]); } break; // リストア // リストア case 'restore_config': case 'restore': // データベースに存在するかどうかチェック $arrErr = $this->lfCheckError($objFormParam->getHashArray(), $this->mode); // エラーがなければリストア処理を行う if (SC_Utils_Ex::isBlank($arrErr)) { $arrData = $objFormParam->getHashArray(); $msg = '「' . $arrData['list_name'] . '」のリストアを開始します。'; GC_Utils_Ex::gfPrintLog($msg); $success = $this->lfRestore($arrData['list_name'], $this->bkup_dir, $this->bkup_ext, $this->mode); $msg = '「' . $arrData['list_name'] . '」の'; $msg .= $success ? 'リストアを終了しました。' : 'リストアに失敗しました。'; $this->tpl_restore_msg .= $msg . "\n"; GC_Utils_Ex::gfPrintLog($msg); } break; // 削除 // 削除 case 'delete': // データベースに存在するかどうかチェック $arrErr = $this->lfCheckError($objFormParam->getHashArray(), $this->mode); // エラーがなければリストア処理を行う if (SC_Utils_Ex::isBlank($arrErr)) { $arrData = $objFormParam->getHashArray(); // DBとファイルを削除 $this->lfDeleteBackUp($arrData, $this->bkup_dir, $this->bkup_ext); } break; // ダウンロード // ダウンロード case 'download': // データベースに存在するかどうかチェック $arrErr = $this->lfCheckError($objFormParam->getHashArray(), $this->mode); // エラーがなければダウンロード処理を行う if (SC_Utils_Ex::isBlank($arrErr)) { $arrData = $objFormParam->getHashArray(); $filename = $arrData['list_name'] . $this->bkup_ext; $dl_file = $this->bkup_dir . $arrData['list_name'] . $this->bkup_ext; // ダウンロード開始 Header("Content-disposition: attachment; filename={$filename}"); Header("Content-type: application/octet-stream; name={$filename}"); header('Content-Length: ' . filesize($dl_file)); readfile($dl_file); exit; break; } default: break; } // 不要になった変数を解放 unset($arrErrTmp); // バックアップリストを取得する $arrBkupList = $this->lfGetBkupData('ORDER BY create_date DESC'); // テンプレートファイルに渡すデータをセット $this->arrErr = isset($arrErr) ? $arrErr : array(); $this->arrForm = isset($arrForm) ? $arrForm : array(); $this->arrBkupList = $arrBkupList; }
/** * エラーチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラーメッセージの配列 */ public function lfCheckError(&$objFormParam, &$arrErr) { $arrParams = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrParams); $objErr->arrErr =& $arrErr; $objErr->doFunc(array('CSSファイル名', 'css_name', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK', 'FILE_NAME_CHECK_BY_NOUPLOAD')); $css_name = $objFormParam->getValue('css_name'); $old_css_name = $objFormParam->getValue('old_css_name'); $device_type_id = $objFormParam->getValue('device_type_id', DEVICE_TYPE_PC); $is_error = false; // 重複チェック if (SC_Utils_Ex::isBlank($objErr->arrErr['css_name'])) { $arrCSSList = $this->getCSSList($this->getCSSDir($device_type_id)); foreach ($arrCSSList as $val) { if ($val['css_name'] == $css_name) { if (SC_Utils_Ex::isBlank($old_css_name) || $old_css_name != $css_name) { $is_error = true; } } } if ($is_error) { $objErr->arrErr['css_name'] = '※ 同じファイル名のデータが存在しています。別の名称を付けてください。<br />'; } } return $objErr->arrErr; }
/** * 支払い方法の画像があるかどうか. * * @param array $arrPayment 支払い方法の配列 * @return boolean 支払い方法の画像がある場合 true */ function hasPaymentImage($arrPayment) { foreach ($arrPayment as $val) { if (!SC_Utils_Ex::isBlank($val['payment_image'])) { return true; } } return false; }
/** * 受注データを取得して, SC_FormParam へ設定する. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param integer $order_id 取得元の受注ID * @return void */ function setOrderToFormParam(&$objFormParam, $order_id) { $objPurchase = new SC_Helper_Purchase_Ex(); // 受注詳細を設定 $arrOrderDetail = $objPurchase->getOrderDetail($order_id, false); $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrOrderDetail)); $arrShippingsTmp = $objPurchase->getShippings($order_id); $arrShippings = array(); foreach ($arrShippingsTmp as $row) { // お届け日の処理 if (!SC_Utils_Ex::isBlank($row['shipping_date'])) { $ts = strtotime($row['shipping_date']); $row['shipping_date_year'] = date('Y', $ts); $row['shipping_date_month'] = date('n', $ts); $row['shipping_date_day'] = date('j', $ts); } $arrShippings[$row['shipping_id']] = $row; } $objFormParam->setValue('shipping_quantity', count($arrShippings)); $objFormParam->setParam(SC_Utils_Ex::sfSwapArray($arrShippings)); /* * 配送商品を設定 * * $arrShipmentItem['shipment_(key)'][$shipping_id][$item_index] = 値 * $arrProductQuantity[$shipping_id] = 配送先ごとの配送商品数量 */ $arrProductQuantity = array(); $arrShipmentItem = array(); foreach ($arrShippings as $shipping_id => $arrShipping) { $arrProductQuantity[$shipping_id] = count($arrShipping['shipment_item']); foreach ($arrShipping['shipment_item'] as $item_index => $arrItem) { foreach ($arrItem as $item_key => $item_val) { $arrShipmentItem['shipment_' . $item_key][$shipping_id][$item_index] = $item_val; } } } $objFormParam->setValue('shipping_product_quantity', $arrProductQuantity); $objFormParam->setParam($arrShipmentItem); /* * 受注情報を設定 * $arrOrderDetail と項目が重複しており, $arrOrderDetail は連想配列の値 * が渡ってくるため, $arrOrder で上書きする. */ $arrOrder = $objPurchase->getOrder($order_id); $objFormParam->setParam($arrOrder); // ポイントを設定 list($db_point, $rollback_point) = SC_Helper_DB_Ex::sfGetRollbackPoint($order_id, $arrOrder['use_point'], $arrOrder['add_point'], $arrOrder['status']); $objFormParam->setValue('total_point', $db_point); $objFormParam->setValue('point', $rollback_point); if (!SC_Utils_Ex::isBlank($objFormParam->getValue('customer_id'))) { $arrCustomer = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($objFormParam->getValue('customer_id')); $objFormParam->setValue('customer_point', $arrCustomer['point']); } }
/** * 商品規格詳細の SQL を取得する. * * MEMO: 2.4系 vw_product_classに相当(?)するイメージ * * @param string $where 商品詳細の WHERE 句 * @return string 商品規格詳細の SQL */ function prdclsSQL($where = '') { $where_clause = ''; if (!SC_Utils_Ex::isBlank($where)) { $where_clause = ' WHERE ' . $where; } $sql = <<<__EOS__ ( SELECT dtb_products.*, dtb_products_class.product_class_id, dtb_products_class.product_type_id, dtb_products_class.product_code, dtb_products_class.stock, dtb_products_class.stock_unlimited, dtb_products_class.sale_limit, dtb_products_class.price01, dtb_products_class.price02, dtb_products_class.deliv_fee, dtb_products_class.point_rate, dtb_products_class.down_filename, dtb_products_class.down_realfilename, dtb_products_class.classcategory_id1 AS classcategory_id, /* 削除 */ dtb_products_class.classcategory_id1, dtb_products_class.classcategory_id2 AS parent_classcategory_id, /* 削除 */ dtb_products_class.classcategory_id2, Tcc1.class_id as class_id, Tcc1.name as classcategory_name, Tcc2.class_id as parent_class_id, Tcc2.name as parent_classcategory_name FROM dtb_products LEFT JOIN dtb_products_class ON dtb_products.product_id = dtb_products_class.product_id LEFT JOIN dtb_classcategory as Tcc1 ON dtb_products_class.classcategory_id1 = Tcc1.classcategory_id LEFT JOIN dtb_classcategory as Tcc2 ON dtb_products_class.classcategory_id2 = Tcc2.classcategory_id {$where_clause} ) as prdcls __EOS__; return $sql; }
/** * クエリを構築する. * * 検索条件のキーに応じた WHERE 句と, クエリパラメーターを構築する. * クエリパラメーターは, SC_FormParam の入力値から取得する. * * 構築内容は, 引数の $where 及び $arrValues にそれぞれ追加される. * * @param string $key 検索条件のキー * @param string $where 構築する WHERE 句 * @param array $arrValues 構築するクエリパラメーター * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param SC_FormParam $objDb SC_Helper_DB_Ex インスタンス * @return void */ function buildQuery($key, &$where, &$arrValues, &$objFormParam, &$objDb) { $dbFactory = SC_DB_DBFactory_Ex::getInstance(); switch ($key) { // 商品ID case 'search_product_id': $where .= ' AND product_id = ?'; $arrValues[] = sprintf('%d', $objFormParam->getValue($key)); break; // 商品コード // 商品コード case 'search_product_code': $where .= ' AND product_id IN (SELECT product_id FROM dtb_products_class WHERE product_code ILIKE ?)'; $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key)); break; // 商品名 // 商品名 case 'search_name': $where .= ' AND name LIKE ?'; $arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key)); break; // カテゴリ // カテゴリ case 'search_category_id': list($tmp_where, $tmp_Values) = $objDb->sfGetCatWhere($objFormParam->getValue($key)); if ($tmp_where != '') { $where .= ' AND product_id IN (SELECT product_id FROM dtb_product_categories WHERE ' . $tmp_where . ')'; $arrValues = array_merge((array) $arrValues, (array) $tmp_Values); } break; // 種別 // 種別 case 'search_status': $tmp_where = ''; foreach ($objFormParam->getValue($key) as $element) { if ($element != '') { if (SC_Utils_Ex::isBlank($tmp_where)) { $tmp_where .= ' AND (status = ?'; } else { $tmp_where .= ' OR status = ?'; } $arrValues[] = $element; } } if (!SC_Utils_Ex::isBlank($tmp_where)) { $tmp_where .= ')'; $where .= " {$tmp_where} "; } break; // 登録・更新日(開始) // 登録・更新日(開始) case 'search_startyear': $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_startyear'), $objFormParam->getValue('search_startmonth'), $objFormParam->getValue('search_startday')); $where .= ' AND update_date >= ?'; $arrValues[] = $date; break; // 登録・更新日(終了) // 登録・更新日(終了) case 'search_endyear': $date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_endyear'), $objFormParam->getValue('search_endmonth'), $objFormParam->getValue('search_endday'), true); $where .= ' AND update_date <= ?'; $arrValues[] = $date; break; // 商品ステータス // 商品ステータス case 'search_product_statuses': $arrPartVal = $objFormParam->getValue($key); $count = count($arrPartVal); if ($count >= 1) { $where .= ' ' . 'AND product_id IN (' . ' SELECT product_id FROM dtb_product_status WHERE product_status_id IN (' . SC_Utils_Ex::repeatStrWithSeparator('?', $count) . ')' . ')'; $arrValues = array_merge($arrValues, $arrPartVal); } break; default: break; } }
/** * Page のアクション. * * @return void */ function action() { // ページ送りの処理 $_REQUEST['pageno']が信頼しうる値かどうかチェックする。 $this->tpl_pageno = $this->lfCheckPageNo($_REQUEST['pageno']); $objFormParam = new SC_FormParam_Ex(); $arrErr = array(); $arrForm = array(); switch ($this->getMode()) { case 'new': // パラメーターの初期化 $this->initForm($objFormParam, $_POST); // エラーチェック $arrErr = $this->validateData($objFormParam, $_POST, $this->getMode()); $this->arrForm = $objFormParam->getHashArray(); if (SC_Utils_Ex::isBlank($arrErr)) { $this->insertMemberData($this->arrForm); // 親ウィンドウを更新後、自ウィンドウを閉じる。 $url = ADMIN_SYSTEM_URLPATH . '?pageno=' . $this->arrForm['pageno']; $this->tpl_onload = "fnUpdateParent('" . $url . "'); window.close();"; } else { // 入力された値を保持する $this->tpl_mode = $this->getMode(); $this->tpl_member_id = ''; $this->tpl_old_login_id = ''; // パスワードは保持しない $this->arrForm['password'] = ''; $this->arrForm['password02'] = ''; // エラー情報をセットする $this->arrErr = $arrErr; } break; case 'edit': // パラメーターの初期化 $this->initForm($objFormParam, $_POST, $this->getMode()); // エラーチェック $arrErr = $this->validateData($objFormParam, $_POST, $this->getMode()); $this->arrForm = $objFormParam->getHashArray(); if (SC_Utils_Ex::isBlank($arrErr)) { $this->updateMemberData($this->arrForm['member_id'], $this->arrForm); // 親ウィンドウを更新後、自ウィンドウを閉じる。 $url = ADMIN_SYSTEM_URLPATH . '?pageno=' . $this->arrForm['pageno']; $this->tpl_onload = "fnUpdateParent('" . $url . "'); window.close();"; } else { // 入力された値を保持する $this->tpl_mode = $this->getMode(); $this->tpl_member_id = $this->arrForm['member_id']; $this->tpl_old_login_id = $this->arrForm['old_login_id']; // パスワードは保持しない $this->arrForm['password'] = ''; $this->arrForm['password02'] = ''; // エラー情報をセットする $this->arrErr = $arrErr; } break; default: // $_GET['id'](member_id)が登録済みのものかチェック。 // 登録されていない場合は不正なものとして、新規扱いとする。 $clean_id = ''; $clean_mode_flg = 'new'; // idが0より大きい数字で整数の場合 if (isset($_GET['id']) && SC_Utils_Ex::sfIsInt($_GET['id']) && $_GET['id'] > 0) { if ($this->memberDataExists('member_id = ? AND del_flg = 0', $_GET['id'])) { $clean_id = $_GET['id']; $clean_mode_flg = 'edit'; } } switch ($clean_mode_flg) { case 'edit': $this->tpl_mode = $clean_mode_flg; $this->tpl_member_id = $clean_id; $this->tpl_onfocus = 'fnClearText(this.name);'; $this->arrForm = $this->getMemberData($clean_id); $this->arrForm['password'] = DEFAULT_PASSWORD; $this->arrForm['password02'] = DEFAULT_PASSWORD; $this->tpl_old_login_id = $this->arrForm['login_id']; break; case 'new': default: $this->tpl_mode = $clean_mode_flg; $this->arrForm['authority'] = -1; break; } break; } $this->setTemplate($this->tpl_mainpage); }
/** * Page のアクション. * * @return void */ function action() { $objDb = new SC_Helper_DB_Ex(); $objFormParam = new SC_FormParam_Ex(); $this->arrData = isset($_SESSION['customer']) ? $_SESSION['customer'] : ''; switch ($this->getMode()) { case 'confirm': // エラーチェック $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $objFormParam->convParam(); $objFormParam->toLower('email'); $objFormParam->toLower('email02'); $this->arrErr = $this->lfCheckError($objFormParam); // 入力値の取得 $this->arrForm = $objFormParam->getFormParamList(); if (SC_Utils_Ex::isBlank($this->arrErr)) { // エラー無しで完了画面 $this->tpl_mainpage = 'contact/confirm.tpl'; $this->tpl_title = 'お問い合わせ(確認ページ)'; } break; case 'return': $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $this->arrForm = $objFormParam->getFormParamList(); break; case 'complete': $this->lfInitParam($objFormParam); $objFormParam->setParam($_POST); $this->arrErr = $objFormParam->checkError(); $this->arrForm = $objFormParam->getFormParamList(); if (SC_Utils_Ex::isBlank($this->arrErr)) { $this->lfSendMail($this); // 完了ページへ移動する SC_Response_Ex::sendRedirect('complete.php'); SC_Response_Ex::actionExit(); } else { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); SC_Response_Ex::actionExit(); } break; default: break; } }
/** * Page のアクション. * * @return void */ function action() { // パラメーター管理クラス $objFormParam = new SC_FormParam_Ex(); $this->lfInitParamSearchCustomer($objFormParam); $objFormParam->setParam($_POST); // パラメーター読み込み $this->arrHidden = $objFormParam->getSearchArray(); // 入力パラメーターチェック $this->arrErr = SC_Helper_Customer_Ex::sfCheckErrorSearchParam($objFormParam); $this->arrForm = $objFormParam->getFormParamList(); if (!SC_Utils_Ex::isBlank($this->arrErr)) { return; } // モードによる処理切り替え switch ($this->getMode()) { // 配信先検索 case 'search': case 'back': list($this->tpl_linemax, $this->arrResults, $this->objNavi) = SC_Helper_Customer_Ex::sfGetSearchData($objFormParam->getHashArray()); $this->arrPagenavi = $this->objNavi->arrPagenavi; break; // input:検索結果画面「配信内容を設定する」押下後 // input:検索結果画面「配信内容を設定する」押下後 case 'input': $this->tpl_mainpage = 'mail/input.tpl'; break; // template:テンプレート選択時 // template:テンプレート選択時 case 'template': case 'regist_back': $this->tpl_mainpage = 'mail/input.tpl'; if (SC_Utils_Ex::sfIsInt($_POST['template_id']) === true) { $this->lfAddParamSelectTemplate($objFormParam); $this->lfGetTemplateData($objFormParam, $_POST['template_id']); // regist_back時、subject,bodyにはテンプレートを読み込むのではなく、入力内容で上書き if ($this->getMode() == 'regist_back') { $objFormParam->setParam($_POST); } } break; case 'regist_confirm': $this->tpl_mainpage = 'mail/input.tpl'; $this->lfAddParamSelectTemplate($objFormParam); $objFormParam->setParam($_POST); $this->arrErr = $objFormParam->checkError(); if (SC_Utils_Ex::isBlank($this->arrErr)) { $this->tpl_mainpage = 'mail/input_confirm.tpl'; } break; case 'regist_complete': $this->tpl_mainpage = 'mail/input.tpl'; $this->lfAddParamSelectTemplate($objFormParam); $objFormParam->setParam($_POST); $this->arrErr = $objFormParam->checkError(); if (SC_Utils_Ex::isBlank($this->arrErr)) { $this->tpl_mainpage = 'mail/index.tpl'; SC_Helper_Mail_Ex::sfSendMailmagazine($this->lfRegisterData($objFormParam)); // DB登録・送信 SC_Response_Ex::sendRedirect('./history.php'); } break; // query:配信履歴から「確認」 // query:配信履歴から「確認」 case 'query': if (SC_Utils_Ex::sfIsInt($_GET['send_id'])) { $this->arrSearchData = $this->lfGetMailQuery(); } $this->setTemplate('mail/query.tpl'); break; // query:配信履歴から「再送信」 // query:配信履歴から「再送信」 case 'retry': if (SC_Utils_Ex::sfIsInt($_GET['send_id'])) { SC_Helper_Mail_Ex::sfSendMailmagazine($_GET['send_id']); // DB登録・送信 SC_Response_Ex::sendRedirect('./history.php'); } else { $this->tpl_onload = "window.alert('メール送信IDが正しくありません');"; } break; default: break; } $this->arrForm = $objFormParam->getFormParamList(); }
/** * フォーム入力パラメーターエラーチェック * * @param array $objFormParam フォームパラメータークラス * @return array エラー配列 */ function lfCheckError(&$objFormParam) { $arrErr = $objFormParam->checkError(); if (!SC_Utils_Ex::isBlank($arrErr)) { return $arrErr; } }
/** * 会員を削除する処理 * * @param integer $customer_id 会員ID * @return boolean true:成功 false:失敗 */ public static function delete($customer_id) { $arrData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($customer_id, 'del_flg = 0'); if (SC_Utils_Ex::isBlank($arrData)) { //対象となるデータが見つからない。 return false; } // XXXX: 仮会員は物理削除となっていたが論理削除に変更。 $arrVal = array('del_flg' => '1'); SC_Helper_Customer_Ex::sfEditCustomerData($arrVal, $customer_id); return true; }
/** * メーラーバックエンドに応じたパラメーターを返す. * * @param string $backend Pear::Mail のバックエンド * @return array メーラーバックエンドに応じたパラメーターの配列 */ function getBackendParams($backend) { switch ($backend) { case 'mail': $arrParams = array(); break; case 'sendmail': $arrParams = array('sendmail_path' => '/usr/bin/sendmail', 'sendmail_args' => '-i'); break; case 'smtp': $arrParams = array('host' => $this->host, 'port' => $this->port); if (defined('SMTP_USER') && defined('SMTP_PASSWORD') && !SC_Utils_Ex::isBlank(SMTP_USER) && !SC_Utils_Ex::isBlank(SMTP_PASSWORD)) { $arrParams['auth'] = true; $arrParams['username'] = SMTP_USER; $arrParams['password'] = SMTP_PASSWORD; } break; default: trigger_error('不明なバックエンド。[$backend = ' . var_export($backend, true) . ']', E_USER_ERROR); exit; } return $arrParams; }