フロント画面に関しては追加処置を完了し、
現在、管理画面への追加処置を行なっているのですが、「顧客マスタ」で、躓いています。
『version-2_11-dev/data/class_extends/』
SC_Customer_Ex.php
require_once CLASS_REALDIR . 'SC_CustomerList.php';
class SC_CustomerList_Ex extends SC_CustomerList {
}
を
require_once CLASS_REALDIR . 'SC_CustomerList.php';
class SC_CustomerList_Ex extends SC_CustomerList {
    function SC_CustomerList($array, $mode = '') {
        parent::SC_SelectSql($array);
        $masterData = new SC_DB_MasterData_Ex();
        $objDb = new SC_Helper_DB_Ex();
        $dbFactory = SC_DB_DBFactory_Ex::getInstance();
        if($mode == "") {
            // 会員本登録会員で削除していない会員
            $this->setWhere("status = 2 AND del_flg = 0 ");
            // 登録日を示すカラム
            $regdate_col = 'dtb_customer.update_date';
        }
        if($mode == 'customer') {
            $this->setWhere( " del_flg = 0 ");
            // 登録日を示すカラム
            $regdate_col = 'dtb_customer.update_date';
        }
        // 顧客ID
        if (!isset($this->arrSql['search_customer_id'])) $this->arrSql['search_customer_id'] = "";
        if ( strlen($this->arrSql['search_customer_id']) > 0 ) {
            $this->setWhere( "customer_id =  ?" );
            $this->arrVal[] = $this->arrSql['search_customer_id'];
        }
        // 名前
        if (!isset($this->arrSql['search_name'])) $this->arrSql['search_name'] = "";
        if ( strlen($this->arrSql['search_name']) > 0 ) {
            $this->setWhere("(" . $dbFactory->concatColumn(array("name01", "name02")) . " LIKE ?)" );
            $searchName = $this->addSearchStr($this->arrSql['search_name']);
            $this->arrVal[] = mb_ereg_replace("[ ]+","",$searchName);
        }
        // 名前(カナ)
        if (!isset($this->arrSql['search_kana'])) $this->arrSql['search_kana'] = "";
        if ( strlen($this->arrSql['search_kana']) > 0 ) {
            $this->setWhere("(" . $dbFactory->concatColumn(array("kana01", "kana02")) . " LIKE ?)" );
            $searchKana = $this->addSearchStr($this->arrSql['search_kana']);
            $this->arrVal[] = mb_ereg_replace("[ ]+","",$searchKana);
        }
        
        // & hideki-s '11.05.18
        // 会社名
        if (!isset($this->arrSql['search_company_name'])) $this->arrSql['search_company_name'] = "";
        if ( strlen($this->arrSql['search_company_name']) > 0 ) {
            $this->setWhere( "company_name LIKE ?" );
            $searchCompanyName = $this->addSearchStr($this->arrSql['search_company_name']);
            $this->arrVal[] = mb_ereg_replace("[ ]+","",$searchCompanyName);
        }
        
        // 部署名
        if (!isset($this->arrSql['search_section_name'])) $this->arrSql['search_section_name'] = "";
        if ( strlen($this->arrSql['search_section_name']) > 0 ) {
            $this->setWhere( "section_name LIKE ?" );
            $searchSectionName = $this->addSearchStr($this->arrSql['search_section_name']);
            $this->arrVal[] = mb_ereg_replace("[ ]+","",$searchSectionName);
        }
        
        // (代表)機番
        if (!isset($this->arrSql['search_example_kiban'])) $this->arrSql['search_example_kiban'] = "";
        if ( strlen($this->arrSql['search_example_kiban']) > 0 ) {
            $this->setWhere( "example_kiban LIKE ?" );
            $searchExampleKiban = $this->addSearchStr($this->arrSql['search_example_kiban']);
            $this->arrVal[] = mb_ereg_replace("[ ]+","",$searchExampleKiban);
        }
        // hideki-s & '11.05.18
        
        // 都道府県
        if (!isset($this->arrSql['search_pref'])) $this->arrSql['search_pref'] = "";
        if ( strlen($this->arrSql['search_pref']) > 0 ) {
            $this->setWhere( "pref = ?" );
            $this->arrVal[] = $this->arrSql['search_pref'];
        }
.....
}
として「function SC_CustomerList($array, $mode = '') 」をオーバライドしたいのですが、無視される様です。
引用:
とあるので、なんとか実現出来ないかと試案しているのですが、現在の小生の力量では、打開策が見出せずにいます。
何方か、お知恵を拝借出来る方は見えませんでしょうか?
小生が追った道筋を以下に記します。長いです。。。
1.『version-2_11-dev/html/admin/customer/』
index.php
// {{{ requires
require_once '../require.php';
require_once CLASS_EX_REALDIR . 'page_extends/admin/customer/LC_Page_Admin_Customer_Ex.php';
// }}}
// {{{ generate page
$objPage = new LC_Page_Admin_Customer_Ex();
register_shutdown_function(array($objPage, 'destroy'));
$objPage->init();
$objPage->process();
↓
2.『version-2_11-dev/data/class_extends/page_extends/admin/customer/』
LC_Page_Admin_Customer_Ex.php
class LC_Page_Admin_Customer_Ex extends LC_Page_Admin_Customer {
    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process() {
        parent::process();
    }
↓
3.『version-2_11-dev/data/class/pages/admin/customer/』
LC_Page_Admin_Customer.php
    function action() {
        // モードによる処理切り替え
        switch ($this->getMode()) {
        case 'search':
            list($this->tpl_linemax, $this->arrData, $this->objNavi) = $this->lfDoSearch($objFormParam->getHashArray());
            $this->arrPagenavi = $this->objNavi->arrPagenavi;
            break;
「$this->lfDoSearch($objFormParam->getHashArray())」
↓
    /**
     * 顧客一覧を検索する処理
     *
     * @param array $arrParam 検索パラメーター連想配列
     * @return array( integer 全体件数, mixed 顧客データ一覧配列, mixed SC_PageNaviオブジェクト)
     */
    function lfDoSearch($arrParam) {
        return SC_Helper_Customer_Ex::sfGetSearchData($arrParam);
    }
「SC_Helper_Customer_Ex::sfGetSearchData($arrParam)」
↓
4.『version-2_11-dev/data/class_extends/helper_extends/』
SC_Helper_Customer_Ex.php
(追加処置を行なっています。)
class SC_Helper_Customer_Ex extends SC_Helper_Customer {
    /**
     * 会員共通
     *
     * @param SC_FormParam $objFormParam SC_FormParam インスタンス
     * @access public
     * @return void
     */
    function sfCustomerCommonParam (&$objFormParam) {
        $objFormParam->addParam("お名前(フリガナ・名)", 'kana02', STEXT_LEN, 'CKV', array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
        // & hideki-s '11.05.11
        $objFormParam->addParam("会社名", 'company_name', MTEXT_LEN, 'aKV', array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
        $objFormParam->addParam("部署名", 'section_name', MTEXT_LEN, 'aKV', array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
        $objFormParam->addParam("(代表)機番", 'example_kiban', MTEXT_LEN, 'aKV', array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
        // hideki-s & '11.05.11
        
        $objFormParam->addParam("郵便番号1", "zip01", ZIP01_LEN, 'n', array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK"));
    }
    
    /**
     * 顧客検索パラメーター(管理画面用)
     *
     * @param SC_FormParam $objFormParam SC_FormParam インスタンス
     * @access public
     * @return void
     */
    function sfSetSearchParam(&$objFormParam) {
        $objFormParam->addParam('都道府県', 'search_pref', INT_LEN, 'n', array("NUM_CHECK","MAX_LENGTH_CHECK"));
        // & hideki-s '11.05.17
        $objFormParam->addParam("会社名", 'search_company_name', MTEXT_LEN, 'KVa', array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
        $objFormParam->addParam("部署名", 'search_section_name', MTEXT_LEN, 'KVa', array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
        $objFormParam->addParam("(代表)機番", 'search_example_kiban', MTEXT_LEN, 'KVa', array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
        // hideki-s & '11.05.17
        
        $objFormParam->addParam('誕生日(開始年)', 'search_b_start_year', 4, 'n', array("NUM_CHECK","MAX_LENGTH_CHECK"));
    }
}
↓
5.『version-2_11-dev/data/class/helper/』
SC_Helper_Customer.php
    /**
     * 顧客一覧検索をする処理(ページング処理付き、管理画面用共通処理)
     *
     * @param array $arrParam 検索パラメーター連想配列
     * @return array( integer 全体件数, mixed 顧客データ一覧配列, mixed SC_PageNaviオブジェクト)
     */
    function sfGetSearchData($arrParam) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $objSelect = new SC_CustomerList_Ex($arrParam, 'customer');
        $page_max = SC_Utils_Ex::sfGetSearchPageMax($arrParam['search_page_max']);
        $disp_pageno = $arrParam['search_pageno'];
        if($disp_pageno == 0) {
            $disp_pageno = 1;
        }
        $offset = intval($page_max) * (intval($disp_pageno) - 1);
        $objSelect->setLimitOffset($page_max, $offset);
        $arrData = $objQuery->getAll($objSelect->getList(), $objSelect->arrVal);
        // 該当全体件数の取得
        $linemax = $objQuery->getOne($objSelect->getListCount(), $objSelect->arrVal);
        // ページ送りの取得
        $objNavi = new SC_PageNavi_Ex($arrParam['search_pageno'],
                                    $linemax,
                                    $page_max,
                                    'fnNaviSearchOnlyPage',
                                    NAVI_PMAX);
        return array($linemax, $arrData, $objNavi);
    }
「$objSelect = new SC_CustomerList_Ex($arrParam, 'customer')
$objSelect->arrVal」
6.『version-2_11-dev/data/class_extends/』
SC_Customer_Ex.php
require_once CLASS_REALDIR . 'SC_CustomerList.php';
class SC_CustomerList_Ex extends SC_CustomerList {
}
↑にて「function SC_CustomerList($array, $mode = '') 」をオーバライドしたいのですが、無視されてしまうので、
↓の様に、今は、クラスを直修正しています。
7.『version-2_11-dev/data/class/』
SC_CustomerList.php
class SC_CustomerList extends SC_SelectSql_Ex {
    var $arrColumnCSV;
    function SC_CustomerList($array, $mode = '') {
        parent::SC_SelectSql($array);
        $masterData = new SC_DB_MasterData_Ex();
        $objDb = new SC_Helper_DB_Ex();
        $dbFactory = SC_DB_DBFactory_Ex::getInstance();
        if($mode == "") {
            // 会員本登録会員で削除していない会員
            $this->setWhere("status = 2 AND del_flg = 0 ");
            // 登録日を示すカラム
            $regdate_col = 'dtb_customer.update_date';
        }
        if($mode == 'customer') {
            $this->setWhere( " del_flg = 0 ");
            // 登録日を示すカラム
            $regdate_col = 'dtb_customer.update_date';
        }
        // 顧客ID
        if (!isset($this->arrSql['search_customer_id'])) $this->arrSql['search_customer_id'] = "";
        if ( strlen($this->arrSql['search_customer_id']) > 0 ) {
            $this->setWhere( "customer_id =  ?" );
            $this->arrVal[] = $this->arrSql['search_customer_id'];
        }
        // 名前
        if (!isset($this->arrSql['search_name'])) $this->arrSql['search_name'] = "";
        if ( strlen($this->arrSql['search_name']) > 0 ) {
            $this->setWhere("(" . $dbFactory->concatColumn(array("name01", "name02")) . " LIKE ?)" );
            $searchName = $this->addSearchStr($this->arrSql['search_name']);
            $this->arrVal[] = mb_ereg_replace("[ ]+","",$searchName);
        }
        // 名前(カナ)
        if (!isset($this->arrSql['search_kana'])) $this->arrSql['search_kana'] = "";
        if ( strlen($this->arrSql['search_kana']) > 0 ) {
            $this->setWhere("(" . $dbFactory->concatColumn(array("kana01", "kana02")) . " LIKE ?)" );
            $searchKana = $this->addSearchStr($this->arrSql['search_kana']);
            $this->arrVal[] = mb_ereg_replace("[ ]+","",$searchKana);
        }
        
        // & hideki-s '11.05.18
        // 会社名
        if (!isset($this->arrSql['search_company_name'])) $this->arrSql['search_company_name'] = "";
        if ( strlen($this->arrSql['search_company_name']) > 0 ) {
            $this->setWhere( "company_name LIKE ?" );
            $searchCompanyName = $this->addSearchStr($this->arrSql['search_company_name']);
            $this->arrVal[] = mb_ereg_replace("[ ]+","",$searchCompanyName);
        }
        
        // 部署名
        if (!isset($this->arrSql['search_section_name'])) $this->arrSql['search_section_name'] = "";
        if ( strlen($this->arrSql['search_section_name']) > 0 ) {
            $this->setWhere( "section_name LIKE ?" );
            $searchSectionName = $this->addSearchStr($this->arrSql['search_section_name']);
            $this->arrVal[] = mb_ereg_replace("[ ]+","",$searchSectionName);
        }
        
        // (代表)機番
        if (!isset($this->arrSql['search_example_kiban'])) $this->arrSql['search_example_kiban'] = "";
        if ( strlen($this->arrSql['search_example_kiban']) > 0 ) {
            $this->setWhere( "example_kiban LIKE ?" );
            $searchExampleKiban = $this->addSearchStr($this->arrSql['search_example_kiban']);
            $this->arrVal[] = mb_ereg_replace("[ ]+","",$searchExampleKiban);
        }
        // hideki-s & '11.05.18
        
        // 都道府県
        if (!isset($this->arrSql['search_pref'])) $this->arrSql['search_pref'] = "";
        if ( strlen($this->arrSql['search_pref']) > 0 ) {
            $this->setWhere( "pref = ?" );
            $this->arrVal[] = $this->arrSql['search_pref'];
        }
.....