メモります、つまり、メモリ増す。

呼び出し元

  • LC_Page_Products_List#action?

概要

  • カテゴリIDが空の場合、「0」を返す
  • intでない、もしくは0詰めされている、もしくは有効なカテゴリIDが存在しない場合
    • エラー画面を出力(未読)
  • カテゴリIDを返す

引数

  • カテゴリID

実装

    function lfGetCategoryId($category_id) {

        // 指定なしの場合、0 を返す
        if (empty($category_id)) return 0;

        // 正当性チェック
        if (!SC_Utils_Ex::sfIsInt($category_id)
            || SC_Utils_Ex::sfIsZeroFilling($category_id)
            || !SC_Helper_DB_Ex::sfIsRecord('dtb_category', 'category_id', (array)$category_id, 'del_flg = 0')
            ) {
            SC_Utils_Ex::sfDispSiteError(CATEGORY_NOT_FOUND);
        }

        // 指定されたカテゴリIDを元に正しいカテゴリIDを取得する。
        $arrCategory_id = SC_Helper_DB_Ex::sfGetCategoryId('', $category_id);

        if (empty($arrCategory_id)) {
            SC_Utils_Ex::sfDispSiteError(CATEGORY_NOT_FOUND);
        }

        return $arrCategory_id[0];
    }
  • SC_Utils#sfIsInt?
    • 引数が以下を満たす場合Trueを返す
      • 1バイトより大きいかつ、9バイト(INT_LEN)以下かつ、数字(小数点含む)である
  • SC_Utils#sfIsZeroFilling?
    • 引数が以下の条件を満たす場合Trueを返す
      • 長さが1バイト以上かつ、左から1文字目が文字列の「0」
  • SC_Helper_DB#sfIsRecord?
    • SC_Queryインスタンスを取得
    • 「,」もしくは「半角スペース」で$colを分割
    • $addWhereが空文字列でない場合は、WHERE文にANDで追加
    • $arrColをからWHERE分にANDで追加
    • SQLを発行し、結果が存在する場合はTrue, そうでない場合はFlaseを返す
  • SC_Utils#sfDispSiteError?
  • SC_Helper_DB#sfGetCategoryId?
    • カテゴリーIDがINTかつ、「0」でないかつ、カテゴリーマスタテーブルに該当カテゴリーIDが存在する場合
      • 該当カテゴリIDを配列にして返す
    • $colesedがTrueの場合
      • プロダクトIDがINTかつ、「0」でないかつ、製品マスタテーブルに該当プロダクトIDが、ステータスの表示/非表示に関わらず存在する場合
    • 該当プロダクトIDを配列にして返す
      • $closedがFalseの場合(デフォルト)
    • プロダクトIDがINTかつ、「0」でないかつ、製品マスタテーブルにステータスが表示の該当プロダクトIDが存在する場合
      • 製品カテゴリーテーブルから、該当プロダクトIDの所属するカテゴリーIDを配列にして返す
    • 上記いずれにも当てはまらない場合
      • 空の配列を返す

備考

    /**
     * カテゴリIDの取得
     *
     * @return integer カテゴリID
     */

MyTodo

  • lfGetCategoryIdというメソッド名が変。validateしているメソッドなので。
  • 既にカテゴリID存在チェックをしているので、SC_Helper_DB_Ex::sfGetCategoryIdは使う必要がない気がする。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます