<?php
/*
	Copyright(c) 2010 Shift Tech Inc. All Rights Reserved.
 	http://www.shift-tech.jp/

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

require_once (LIB_PATH.'/common/unitCommon.php');
/*
DROP TABLE IF EXISTS unit_btxt CASCADE;
CREATE TABLE unit_btxt (
	pageu_code		integer,			--ユニット配列順序における登録番号
	btxt_text		text,				--テキスト
	bg_color		smallint default 0,	--背景色　0：なし　1：あり
	bdr_type		smallint default 0,	--枠線　0：なし　1：実線　2：点線
	btm_padding		smallint default 2,	--下方スペース　0:なし　1：狭　2：標準　3：広
	primary key (pageu_code)
);

DROP TABLE IF EXISTS unit_btxt_tmp CASCADE;
CREATE TABLE unit_btxt_tmp (
	pageu_code		integer,			--ユニット配列順序における登録番号
	btxt_text		text,				--テキスト
	bg_color		smallint default 0,	--背景色　0：なし　1：あり
	bdr_type		smallint default 0,	--枠線　0：なし　1：実線　2：点線
	btm_padding		smallint default 2,	--下方スペース　0:なし　1：狭　2：標準　3：広
	primary key (pageu_code)
);
*/
class bTxt extends unitCommon
{	
	//------ ユニット毎に必ず設定しなくてはならない変数 -------//
	var $_table = "unit_btxt"; 			//公開用テーブル名
	var $_tmptable = "unit_btxt_tmp";	//下書き用テーブル名
	var $columns = array(
					array("column"=>"pageu_code","conv"=>"n","tags"=>false),	//ユニット登録コード
					array("column"=>"btxt_text","conv"=>"KV","tags"=>true),		//テキスト
					array("column"=>"bg_color","conv"=>"n","tags"=>false),		//背景色
					array("column"=>"bdr_type","conv"=>"n","tags"=>false),		//枠線
					array("column"=>"btm_padding","conv"=>"n","tags"=>false)	//下方スペース
					);
	function bTxt()
	{
		$this->__construct();
	}
	
	function __construct()
	{
		unitCommon::__construct();
	}
	//-----------------
	
	//出力データセット処理（必須）
	function setDisplayData() {
		return $this->getDetail();
	}
	
	/*
	 * DBより保存データ取得
	 * 改変可能
	 */
	function getDetail() {
		$sql = "select * from ".$this->getTbl()." where pageu_code = ?";
		if(isset($this->_pageu_code)&&is_numeric($this->_pageu_code)) {
			$result = $this->db->prepare($sql,$this->_pageu_code);
			if ($result) {
				$rtn = $result->fetchRow(DB_FETCHMODE_ASSOC);
			}
		}
		return $rtn;
	}
	
	
	function setDefault()
	{
		$this->_form->setDefaults($this->getDetail());
	}
	
	//フォームエレメントの作成
	function setElements()
	{
		$this->_form->addElement('hidden','pageu_code', $this->_pageu_code,array("id"=>"pageu_code")); //ページコード
		$this->_form->addElement('textarea','btxt_text', null, array('id'=>'btxt_text','rows'=>10));
	}
	
	//フォーム入力エラーチェックの設定
	function setRules()
	{
		$this->_form->applyFilter('__ALL__','trim');
		$this->_form->_submitValues = DataBase::ConvColumnVals($this->_form->_submitValues,$this->columns); //ルールに従った値変換、タグの除去
		$this->_form->setJsWarnings('下記の項目が不正です。','');		
		$this->_form->addRule('pageu_code','・「ユニットコード」が不明です。コンテンツ管理よりやり直してください','required',null,$this->erchk);
		$this->_form->addRule('btxt_text','・テキストを入力してください。','required',null,$this->erchk);
	}
	
	//データ下書き保存処理
	function doSave($post)
	{
		$record = null;
		foreach($this->columns as $val) {
			if($post[$val["column"]]!=null){
				$record[$val["column"]] = $post[$val["column"]];
			} else {
				$record[$val["column"]] = null;
			}
		}
		
		//既存データがあるか確認
		$old_data = $this->getDetail();
		$this->db->query('BEGIN');
		//保存処理開始
		if(is_array($old_data)&& count($old_data)>0) {
			//更新
			if(!$this->db->update($this->getTbl(),$record, "pageu_code=".$record["pageu_code"])) {
				$this->db->query('ROLLBACK');
				return "・データの保存に失敗しました";
			}
		} else { //新規
			if(!$this->db->insert($this->getTbl(),$record)) {
				$this->db->query('ROLLBACK');
				return "・データの保存に失敗しました";
			}
		}
		$this->db->query('COMMIT');
		return null;
	}
}


?>