Esempio n. 1
0
 /**
  * getInstanceメソッド
  *
  * このクラスのオブジェクトを生成する。
  * 既に生成されていたら、前回と同じものを返す。
  *
  * @return object $instance
  */
 public static function getInstance()
 {
     if (!self::$_instance) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
Esempio n. 2
0
$errSessOBJ = new ComSessionNamespace("err_msg");
$returnSessOBJ = new ComSessionNamespace("return");
$smartyOBJ->assign("value", $returnSessOBJ->return);
// セッション変数の破棄
$returnSessOBJ->unsetAll();
// エラーメッセージの取得
if ($errSessOBJ->errMsg) {
    $errMsg = implode("<br>", $errSessOBJ->errMsg);
    $smartyOBJ->assign("errMsg", $errMsg);
    // セッション変数の破棄
    $errSessOBJ->unsetAll();
}
// カートから商品IDを取り出す
$cartSessOBJ = new ComSessionNamespace("cart");
$ItemIdList = $cartSessOBJ->itemId;
$OrderingOBJ = Ordering::getInstance();
$ItemOBJ = Item::getInstance();
// 引継ぎデータ
$tags = array("odid");
$FORMparam = $requestOBJ->makePostTag($tags);
// formに付加するPOST用
$URLparam = $requestOBJ->makeGetTag($tags);
// URLに付加するGET用
$smartyOBJ->assign("FORMparam", $FORMparam);
$smartyOBJ->assign("URLparam", $URLparam);
// 注文情報の取得
if (!($orderingData = $OrderingOBJ->getOrderingDataFromAccessKey($param["odid"], $comUserData["user_id"]))) {
    // トランザクション開始
    $OrderingOBJ->beginTransaction();
    // 商品の有効性を確認
    if ($ItemIdList) {
Esempio n. 3
0
 /**
  * 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;
 }
Esempio n. 4
0
 /**
  *
  * access_keyの重複が無い様にaccess_keyを返す。
  *
  *
  * @param int $data キー生成に使用するデータ
  *
  * @return string accessKey を連想配列で返す
  */
 public function getNewAccessKey($data)
 {
     if (!$data) {
         return FALSE;
     }
     $OrderingOBJ = Ordering::getInstance();
     return $OrderingOBJ->getNewAccessKey($data);
 }