/** * getInstanceメソッド * * このクラスのオブジェクトを生成する。 * 既に生成されていたら、前回と同じものを返す。 * * @return object $instance */ public static function getInstance() { if (!self::$_instance) { self::$_instance = new self(); } return self::$_instance; }
// セッション変数の破棄 $returnSessOBJ->unsetAll(); // 送信されたデータを設定 $mailElements["from_address"] = $param["from_address"]; $mailElements["from_name"] = $param["from_name"]; $mailElements["pc_to_address"] = $param["pc_to_address"]; $mailElements["mb_to_address"] = $param["mb_to_address"]; $mailElements["subject"] = $param["subject"]; $mailElements["text_body"] = $param["text_body"]; $tags = array("sesKey"); $POSTparam = $requestOBJ->makePostTag($tags); $URLparam = $requestOBJ->makeGetTag($tags); $smartyOBJ->assign("POSTparam", $POSTparam); $smartyOBJ->assign("reloadParam", $POSTparam); $AdmOrderingOBJ = AdmOrdering::getInstance(); $AdminUserOBJ = AdmUser::getInstance(); $AdmSupportMailOBJ = AdmSupportMail::getInstance(); // セッションにセットします if ($param["sesKey"]) { $sesKey = $param["sesKey"]; $searchValue = $orderingSearchSessOBJ->{$param}["sesKey"]; } else { $execMsgSessOBJ->errMsg[] = "パラメータがありません"; header("location: ./?action_ordering_OrderingSearchList=1&" . $URLparam); exit; } $AdmOrderingOBJ->setWhereString($searchValue); $smartyOBJ->assign("whereContents", $AdmOrderingOBJ->getWhereContents()); // サポートメール定型文の取得 $supportMailList = $AdmSupportMailOBJ->getSupportMailListForSelect(); $smartyOBJ->assign("supportMailList", $supportMailList);
/** * itemDisplayConditionCheckメソッド * * 商品表示条件チェック処理 * * @param integer $data 商品データ * @param integer $userId ユーザデータ * @return array $data 表示条件に合った情報データ */ public function itemDisplayConditionCheck($data, $userData) { // 引数が不正ならFALSE if (!is_array($data) || !is_array($userData)) { return FALSE; } //ユニットクラスのインスタンス生成 $UnitOBJ = Unit::getInstance(); //注文クラスのインスタンス生成 $OrderingOBJ = Ordering::getInstance(); /************************ [情報表示条件] *****************************/ /* unit_id = TRUE; // ユニットID(表示) */ /* except_unit_id = FALSE; // ユニットID(非表示)*/ /* item_id = TRUE; // 購入商品ID(表示) */ /* except_item_id = FALSE; // 購入商品ID(非表示)*/ /* user_search_conditions_id = TRUE; // 検索条件保存ID(表示)*/ /* except_user_search_conditions_id = FALSE; // 購入商品ID(非表示)*/ /*********************************************************************/ //ユニットID(表示)チェック if ($data["unit_id"]) { // ユニットIDが「無ければ」情報閲覧不可 if (!$UnitOBJ->isInUnitUser($userData["user_id"], $data["unit_id"])) { return FALSE; } } //ユニットID(非表示)チェック if ($data["except_unit_id"]) { // ユニットIDが「有れば」情報閲覧不可 if ($UnitOBJ->isInUnitUser($userData["user_id"], $data["except_unit_id"])) { return FALSE; } } // 購入商品ID(表示)チェック if ($data["item_id"]) { // ユニットIDが「無ければ」情報閲覧不可 if (!$OrderingOBJ->isBoughtItem($userData["user_id"], $data["item_id"])) { return FALSE; } } // 購入商品ID(非表示)チェック if ($data["except_item_id"]) { // ユニットIDが「有れば」情報閲覧不可 if ($OrderingOBJ->isBoughtItem($userData["user_id"], $data["except_item_id"])) { return FALSE; } } // 検索条件保存ID(表示)※「AND検索→すべて該当する場合/OR検索→1つでも該当する場合」⇒ 表示 if ($data["user_search_conditions_id"]) { // 管理用ユーザークラスのインスタンス生成 $AdmUserOBJ = AdmUser::getInstance(); $searchConditionAry = explode(",", $data["user_search_conditions_id"]); $searchConditionIdCount = count($searchConditionAry); foreach ($searchConditionAry as $val) { $searchSaveData = ""; $searchValue = ""; if ($searchSaveData = $AdmUserOBJ->getUserSearchConditionData($val)) { $searchValue = unserialize($searchSaveData["search_condition"]); $columnArray = ""; $whereArray = ""; $columnArray[] = "user_id"; $whereArray = $AdmUserOBJ->setWhereString($searchValue); $whereArray[] = "user_id = " . $userData["user_id"]; $sql = $this->makeSelectQuery("v_user_profile", $columnArray, $whereArray); // ユーザー検索情報の取得 if (!$this->executeQuery($sql, "fetchRow")) { // 検索結果が取れてこなかった場合 if ($data["user_search_conditions_type"]) { // AND検索(1つでも該当なしならFALSE) return FALSE; } else { // OR検索(該当なしなら件数からマイナス) $searchConditionIdCount--; } } else { // 検索結果が取れてきた場合(OR検索) if (!$data["user_search_conditions_type"]) { // OR検索(1つでも該当したらループ抜ける) break; } } } } // (OR検索で)1件も該当なしならFALSE if ($searchConditionIdCount == 0) { return FALSE; } } // 検索条件保存ID(非表示) ※「AND検索→すべて該当する場合/OR検索→1つでも該当する場合」⇒ 非表示 if ($data["except_user_search_conditions_id"]) { // 管理用ユーザークラスのインスタンス生成 $AdmUserOBJ = AdmUser::getInstance(); $exceptSearchConditionAry = explode(",", $data["except_user_search_conditions_id"]); $exceptSearchConditionIdCount = count($exceptSearchConditionAry); foreach ($exceptSearchConditionAry as $val) { $searchSaveData = ""; $searchValue = ""; if ($searchSaveData = $AdmUserOBJ->getUserSearchConditionData($val)) { $searchValue = unserialize($searchSaveData["search_condition"]); $columnArray = ""; $whereArray = ""; $columnArray[] = "user_id"; $whereArray = $AdmUserOBJ->setWhereString($searchValue); $whereArray[] = "user_id = " . $userData["user_id"]; $sql = $this->makeSelectQuery("v_user_profile", $columnArray, $whereArray); // ユーザー検索情報の取得 if ($this->executeQuery($sql, "fetchRow")) { // 検索結果が取れてきた場合 if ($data["except_user_search_conditions_type"]) { // AND検索(「該当あり」なら件数からマイナス) $exceptSearchConditionIdCount--; } else { // OR検索(「非表示」なので、1件でも「該当あり」ならFALSE) return FALSE; } } else { // 検索結果が取れてこない場合(AND検索) if ($data["except_user_search_conditions_type"]) { // AND検索(1件でも該当なしならループ抜ける) break; } } } } // AND検索の場合はすべて「該当あり」ならFALSE if ($exceptSearchConditionIdCount == 0) { return FALSE; } } // 曜日間の情報表示縛り設定 if ($data["is_display_week"] != 0) { if ($data["display_week_string"]) { //その週の日曜日の日付(weekStartDate)を取得します $nowDate = mktime(0, 0, 0, date("m"), date("d"), date("Y")); $nowDateArray = getdate($nowDate); $nowWeekNum = $nowDateArray['wday']; //指定日の曜日番号 $weekStartDate = date("Y-m-d", $nowDate - $nowWeekNum * 24 * 60 * 60); $currentWeekArray = explode("-", $weekStartDate); //設定値を取得、整形します $displayWeekStringArray = explode("_", $data["display_week_string"]); $startValueArray = explode(",", $displayWeekStringArray[0]); $lastValueArray = explode(",", $displayWeekStringArray[1]); //その週での表示開始、終了曜日 $firstWeekNum = $startValueArray[0]; $lastWeekNum = $lastValueArray[0]; $startTimeArray = explode(":", $startValueArray[1]); $lastTimeArray = explode(":", $lastValueArray[1]); //その週での開始日時、終了日時を取得します $StartDatetime = mktime($startTimeArray[0], $startTimeArray[1], $startTimeArray[2], $currentWeekArray[1], $currentWeekArray[2] + $firstWeekNum, $currentWeekArray[0]); $lastDatetime = mktime($lastTimeArray[0], $lastTimeArray[1], $lastTimeArray[2], $currentWeekArray[1], $currentWeekArray[2] + $lastWeekNum, $currentWeekArray[0]); //現時点でのタイムスタンプ $nowTime = time(); //表示する場合 if ($data["is_display_week"] == 1) { if ($StartDatetime > $nowTime or $lastDatetime < $nowTime) { return FALSE; } /* //金曜(5)~月曜(1)設定の場合 if($StartDatetime > $lastDatetime){ //『表示終了時刻(月曜設定)より前か、表示開始時刻(金曜設定)より後』の条件満たす排他的論理和 if( ($StartDatetime < $nowTime) XOR ($lastDatetime > $nowTime) ){ //おkなので何もしません }else{ return FALSE; } }else{ if( ($StartDatetime > $nowTime) OR ($lastDatetime < $nowTime) ){ return FALSE; } } */ //表示しない場合 } elseif ($data["is_display_week"] == 2) { if ($StartDatetime < $nowTime and $lastDatetime > $nowTime) { return FALSE; } } } } return TRUE; }
/** * convertUserDataメソッド * * 任意のユーザーデータの取得 * * @param integer $userId ユーザーid * @return array $convertArray コンバート配列 */ protected function convertUserData($userId) { if (!is_numeric($userId)) { return FALSE; } // ユーザーデータの取得 $AdmUserOBJ = AdmUser::getInstance(); $userData = $AdmUserOBJ->getUserData($userId); // 変換内容の取得 $dataList = self::keyConvertData($this->_configOBJ->define->CONVERT_TYPE_USER); if ($dataList) { while ($data = array_shift($dataList)) { $convertArray[$data["key_name"]] = $userData[$data["contents"]]; } } return $convertArray; }
/** * コンストラクタ。 */ function __construct() { parent::__construct(); }