FC2ブログ

Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事にトラックバックする(FC2ブログユーザー)
http://eccubememo.blog52.fc2.com/tb.php/23-d03e7a42

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

「お届け日」プルダウンに”指定”の日付を表示させない

「お届け日」プルダウンに”指定”の日付を表示させない
ということで、「特定」じゃなくて「指定」です。
ソースにベタ書きはスマートとやらじゃないなどと言う人がいたりいなかったりするのでマスタ化してみました。はいはい。一理ありますよ。はいはい。
がしかし、それと大して変わらずお手軽の範疇ではあります。


1) テーブル作成
テーブル名: dtb_nodeliv_date
カラム:
nodeliv_id   integer  (primarykey)
nodeliv_date   date

create文:
CREATE TABLE dtb_nodeliv_date (
nodeliv_id integer NOT NULL,
nodeliv_date date
);
ALTER TABLE ONLY dtb_nodeliv_date
ADD CONSTRAINT nodeliv_id_primarykey PRIMARY KEY (nodeliv_id);

テーブルのデータは、
nodeliv_id | nodeliv_date
1 | 2011/12/31
2 | 2012/01/01

などと、表示させたくない日付を入れておく。行数不問。


2) ソース変更
2.4系は data/class/pages/shopping/LC_Page_Shopping_Payment.php の、
function:lfGetDelivDate(), lfGetDateArray()
2.11系は data/class/helper/SC_Helper_Purchase.php の、
function:getDelivDate(), getDateArray())

※2.4.4系、2.11系の上記functionの中身は殆ど同じ。
以下、青字部分が追加部分。
________________________________________

    /* お届け日一覧を取得する */
    function lfGetDelivDate() {
(2.11の場合)function getDelivDate() {

      ・・・
      ・・・
      ・・・

        break;
      default:
        //お届け日が設定されていない場合
        $start_day = "";
        break;
      }

      //NGお届け日取得
      $objQuery = new SC_Query();  //(2.4系の場合この行不要、2.11系の場合要)
      $arrNoDelivDate = $objQuery->select("nodeliv_date", "dtb_nodeliv_date");


      //お届け可能日のスタート値から、お届け日の配列を取得する
      $arrDelivDate = $this->lfGetDateArray($start_day, DELIV_DATE_END_MAX, $arrNoDelivDate);
      }
    return $arrDelivDate;
  }


    //お届け可能日のスタート値から、お届け日の配列を取得する
    function lfGetDateArray($start_day, $end_day, $arrNoDelivDate=null) {
(2.11の場合)function getDateArray($start_day, $end_day, $arrNoDelivDate=null) {

        ・・・
        ・・・
        ・・・

        // 集計
        for ($i = $start_day; $i < $max_day; $i++) {
          // 基本時間から日数を追加していく
          $tmp_time = $now_time + ($i * 24 * 3600);
          list($y, $m, $d, $w) = explode(" ", date("Y m d w", $tmp_time));

          $flg_stop = false;
          foreach ($arrNoDelivDate as $nodeliv) {
            list($ny, $nm, $nd) = explode('-', $nodeliv["nodeliv_date"]);
            if (($ny == $y)&&($nm == $m)&&($nd == $d)) {
              $flg_stop = true;
              break;
            }
          }


        if (!$flg_stop) {
          $val = sprintf("%04d/%02d/%02d(%s)", $y, $m, $d, $arrWDAY[$w]);
          $arrDate[$val] = $val;
        }

      }
    } else {
      $arrDate = false;
    }
    return $arrDate;
________________________________________

プルダウンはあくまで「お届け日」なので、運用の際は一応注意。

以上!


この記事にトラックバックする(FC2ブログユーザー)
http://eccubememo.blog52.fc2.com/tb.php/23-d03e7a42

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

Appendix

プロフィール

modezo

Author:modezo
モデゾー

思いたって書き始めたのが随分出来てからなので実は書くことがあんまりない。

全記事表示リンク

全ての記事を表示する

 

newsing

にほんブログ村 IT技術ブログ 自社サイト運用へ
にほんブログ村

ブランド和牛一覧
近江牛ステーキ・しゃぶしゃぶ
SEOTOOLS999|相互リンクSEO-P-Link ver3.5
匹夫の勇|相互リンクSEO-P-Link ver3.5
頓珍漢|相互リンクSEO-P-Link ver3.5

Googleページランク表示ツール PagerankExplore

あわせて読みたい

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。