本文整理汇总了PHP中SC_DB_MasterData_Ex::registMasterData方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_DB_MasterData_Ex::registMasterData方法的具体用法?PHP SC_DB_MasterData_Ex::registMasterData怎么用?PHP SC_DB_MasterData_Ex::registMasterData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_DB_MasterData_Ex
的用法示例。
在下文中一共展示了SC_DB_MasterData_Ex::registMasterData方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: install
function install(array $arrPlugin, SC_Plugin_Installer $installer)
{
$plugin_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
$upload_plugin_dir = PLUGIN_UPLOAD_REALDIR . $arrPlugin["plugin_code"] . DIRECTORY_SEPARATOR;
$backup_plugin_dir = PLUGIN_UPLOAD_REALDIR . $arrPlugin["plugin_code"] . "_" . date("Ymd") . DIRECTORY_SEPARATOR;
if (!is_dir($backup_plugin_dir)) {
SC_Utils_Ex::sfCopyDir($upload_plugin_dir, $backup_plugin_dir);
}
SC_Helper_FileManager_Ex::deleteFile($upload_plugin_dir, false);
SC_Utils_Ex::sfCopyDir($plugin_dir . "/", $upload_plugin_dir);
SC_Utils_Ex::sfCopyDir($plugin_dir . "/copy/Smarty/templates/admin/", TEMPLATE_ADMIN_REALDIR);
SC_Utils_Ex::sfCopyDir($plugin_dir . "/copy/modules/", DATA_REALDIR . "module/");
// logo コピー
$installer->copyDirectory("copy/plugin_dir/", "");
$table = "dtb_products";
$fields = array('auto_display_status' => $this->intColumn('自動公開'), 'auto_display_start_date' => $this->timestampColumn('公開開始日'), 'auto_display_end_date' => $this->timestampColumn('公開終了日'));
$type = "timestamp";
$definition = compact("type");
foreach ($fields as $name => $define) {
$this->objDb->sfColumnExists($table, $name, $define["type"], "", true);
$this->fieldComment($installer, $table, $name, $define["comment"]);
switch ($define["type"]) {
case "timestamp":
break;
default:
continue;
}
$change = array();
$change[$name] = compact('definition');
$this->objManager->alterTable($table, compact("change"), false);
}
$this->objQuery->update("dtb_products", array(), "auto_display_start_date IS NULL", array(), array("auto_display_start_date" => "create_date"));
$masterfields = array("id" => $this->intColumn("ID"), "name" => $this->textColumn("NAME"), "rank" => $this->intColumn("RANK"));
$table = "atd_mtb_auto_display_status";
if ($this->objDb->sfColumnExists($table, "id") == false) {
$this->objManager->createTable($table, $masterfields);
}
foreach ($masterfields as $name => $define) {
$this->objDb->sfColumnExists($table, $name, $define["type"], "", true);
$this->fieldComment($installer, $table, $name, $define["comment"]);
}
$this->masterdata->deleteMasterData($table);
$this->masterdata->clearCache($table);
$this->masterdata->registMasterData($table, array(), explode(",", "常時公開,時限公開"));
// $this->insertMasterData ( "PRODUCTS_RESULT_ROWSPAN", 1, '管理画面/商品管理一覧 行結合数' );
// $this->insertMasterData ( "PRODUCTS_RESULT_COLUMN", 5, '管理画面/商品管理一覧 列位置' );
// $this->insertMasterData ( "PRODUCTS_SEARCH_AUTO_DISPLAY", 1, '検索画面表示設定(1: ON/ 0:OFF)' );
// $this->insertMasterData ( "PRODUCTS_DETAIL_AUTO_DISPLAY", 1, '検索画面表示設定(1: ON/ 0:OFF)' );
}
示例2: process
/**
* Page のプロセス.
*
* @return void
*/
function process()
{
SC_Utils_Ex::sfIsSuccess(new SC_Session());
$objView = new SC_AdminView();
$this->arrMasterDataName = $this->getMasterDataNames(array("mtb_pref", "mtb_zip", "mtb_constants"));
$masterData = new SC_DB_MasterData_Ex();
if (!isset($_POST["mode"])) {
$_POST["mode"] = "";
}
switch ($_POST["mode"]) {
case "edit":
// POST 文字列の妥当性チェック
$this->checkMasterDataName();
$this->errorMessage = $this->checkUniqueID();
if (empty($this->errorMessage)) {
// 取得したデータからマスタデータを生成
$arrData = array();
foreach ($_POST['id'] as $key => $val) {
// ID が空のデータは生成しない
if ($val != "") {
$arrData[$val] = $_POST['name'][$key];
}
}
// マスタデータを更新
$masterData->objQuery = new SC_Query();
$masterData->objQuery->begin();
$masterData->deleteMasterData($this->masterDataName, false);
// TODO カラム名はメタデータから取得した方が良い
$masterData->registMasterData($this->masterDataName, array("id", "name", "rank"), $arrData, false);
$masterData->objQuery->commit();
$this->tpl_onload = "window.alert('マスタデータの設定が完了しました。');";
}
case "show":
// POST 文字列の妥当性チェック
$this->checkMasterDataName();
// DB からマスタデータを取得
$this->arrMasterData = $masterData->getDbMasterData($this->masterDataName);
break;
default:
}
$objView->assignobj($this);
$objView->display(MAIN_FRAME);
}
示例3: registMasterData
/**
* マスターデータの登録.
*
* @access private{
* @param array $arrParams
* $_POST値
* @param SC_DB_MasterData_Ex $masterData
* SC_DB_MasterData_Ex()
* @param string $master_data_name
* 登録対象のマスターデータのテーブル名
* @return void
*/
public function registMasterData($arrParams, &$masterData, $master_data_name)
{
$arrTmp = array();
foreach ($arrParams['id'] as $key => $val) {
// ID が空のデータは生成しない
if ($val != '') {
$arrTmp[$val] = $arrParams['name'][$key];
}
}
// マスターデータを更新
$masterData->objQuery =& SC_Query_Ex::getSingletonInstance();
$masterData->objQuery->begin();
$masterData->deleteMasterData($master_data_name, false);
// TODO カラム名はメタデータから取得した方が良い
$masterData->registMasterData($master_data_name, array('id', 'name', 'rank'), $arrTmp, false);
$masterData->objQuery->commit();
}