<?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/sectionIdxDB.php');
require_once (LIB_PATH.'/common/categoryDB.php');
require_once (LIB_PATH.'/common/pageIdxDB.php');
require_once (LIB_PATH.'/common/pageView.php');
require_once (LIB_PATH.'/common/sectionuserDB.php');
class Admin_admin_contents_page_Reject extends pageIdxDB
{
	var $_p = 0;//保存後戻してるため
	var $pageData = null;
	
	function prepare($view)
	{
		$this->_mprev = $this->getRequest('mprev') ? true : false;
		$view->assign("mprev",$this->_mprev);
		$this->_p = $this->getRequest('p') ? $this->getRequest('p') : 0;
		$this->_pidx_code = $this->getRequest('pidx_code') ? $this->getRequest('pidx_code') : "";
		$this->_mprev = $this->getRequest('mprev') ? 1 : 0;
		$this->pageData = $this->getTmpData($this->_pidx_code);
		$this->_sidx_code = $this->pageData["pidx_sidx_code"];
		$this->_cat_code =  $this->pageData["pidx_cat_code"];
		if(is_numeric($this->_sidx_code)) {
			$this->_sidx_data = sectionIdxDB::getData($this->_sidx_code,$this->_mprev);
		}
		if(is_numeric($this->_cat_code)) {
			$this->_cat_data = categoryDB::getData($this->_cat_code,$this->_mprev);
		}
		$this->_preURL = pageView::getSiteURL($this->_sidx_data["sidx_dir"],$c=$this->_cat_data["cat_dir"],$this->pageData["pidx_url"],$this->_sidx_data["sidx_ssl"],$prev=true,$this->_mprev);
		return null;
	}

	function perform($view)
	{
		$this->_form = new HTML_QuickForm('form','post',$_SERVER['PHP_SELF'],'',null,true);
		$this->_form->addElement('hidden','pidx_code', $this->_pidx_code);
		$this->_form->addElement('hidden','p', $this->_p);
		$this->_form->addElement('hidden','mprev', $this->_mprev);
		$this->_form->addElement('hidden','sidx_code', $this->_sidx_code);
		$this->_form->addElement('hidden','cat_code', $this->_cat_code);
		$this->_form->addElement('textarea','factor', null,array('id'=>'factor','style'=>'width:100%','rows'=>10));
		$this->_form->addRule('factor','・「却下理由」を入力してください','required',null,$this->erchk);
		$this->_form->addRule('pidx_code','・「ページID」が不明です。お手数ですが、ページ管理より再度アクセスしてください。','required',null,$this->erchk);
		$this->_form->addRule('sidx_code','・「グローバルメニューID」が不明です。お手数ですが、ページ管理より再度アクセスしてください。','required',null,$this->erchk);
		$this->_form->addRule('cat_code','・「ローカルメニューID」が不明です。お手数ですが、ページ管理より再度アクセスしてください。','required',null,$this->erchk);
		$errors = null;
		if($this->getRequest("BTNreject")) {
			if($this->_form->validate()){
				if($this->setPidxView($this->_pidx_code,-1)) {
					//メール送信
					require_once (LIB_PATH.'/common/commonMail.php');
					$from = ADMIN_MAIL;
					$subject = "[".SITENAME."] 作成ページの公開が却下されました";
					//本文生成
					$msg = SITENAME." 作成担当様\n\n";
					$msg .= "公開申請中の下記ページが承認されませんでした。内容を再確認ください。\n";
					$msg .= "-------------------------------\n";
					$msg .= "　ページ情報\n";
					$msg .= "-------------------------------\n";
					$msg .= "プレビュー用URL：".$this->_preURL."\n";
					$msg .= "ページタイトル：".$this->pageData["pidx_title"]."\n\n";
					$msg .= "-------------------------------\n";
					$msg .= "　却下理由\n";
					$msg .= "-------------------------------\n";
					$msg .= $_REQUEST["factor"]."\n\n";
					$msg .= "管理画面はこちらから\n";
					$msg .= WWW_SSL."/admin/index.php";
					//送信先アドレス一覧取得　管理者、及び当セクションの担当者全員
					$sendtrgets = null;
					$sendtrgets = sectionuserDB::getPersonofCharge($this->_sidx_data["sidx_code"]);
					if(!is_array($sendtrgets)) {
						$this->_form->setElementError("","送信先アドレスが一件もみつかりませんでした。");
					} else {
						foreach($sendtrgets as $key=>$val) {
							if(!commonMail::sendMail($val["usr_id"], $subject, $msg, $from)) {
								$this->_form->setElementError("","ページの公開承認却下の処理は完了しましたが、メール送信に失敗しました。");
								break;
							}
						}
						$closeJs = '<script type="text/javascript"><!--// 
										window.onload=function(){
											alert("公開却下のメールを管理者、及び登録担当者宛に送信しました。\nページ一覧へ戻ります。");
											location.href="index.php?cat_code='.$this->_cat_code.'&sidx_code='.$this->_sidx_code.'&p='.$this->_p.'";
										};
									//--></script>';
						if($this->_mprev) {
							$closeJs = '<script type="text/javascript"><!--// 
										window.onload=function(){
											alert("公開却下のメールを管理者、及び登録担当者宛に送信しました。\nページ一覧へ戻ります。");
											location.href="index2.php?cat_code='.$this->_cat_code.'&sidx_code='.$this->_sidx_code.'&p='.$this->_p.'";
										};
									//--></script>';
						}

						$this->_form->setElementError("","公開却下のメールを管理者、及び登録担当者宛に送信しました。".$closeJs);
					}
				} else {
					$this->_form->setElementError("","却下に失敗しました");
				}
			}
		}
		//登録エラー時
		if(!empty($this->_form->_errors)) {
			$view->assign('ERROR',$this->_form->_errors);
			foreach($this->_form->_errors as $key => $val) {
				$this->_form->updateElementAttr($key, array("class"=>"err"));
			}
		}
		$view->assign('sidx_data',$this->_sidx_data);
		$view->assign('cat_data',$this->_cat_data);
		$view->assign('sidx_code',$this->_sidx_data["sidx_code"]);
		$view->assign('cat_code',$this->_cat_data["cat_code"]);
		$view->assign('pidx_data',$this->pageData);
		
		$view->assign('preURL',$this->_preURL);
		$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($view);
		$this->_form->accept($renderer);
		$view->assign('form',$renderer->toArray());
		
        return 'contents/page/reject.tpl';
	}
}
?>
