<?php
//  ------------------------------------------------------------------------ //
// 本模組由 tad 製作
// 製作日期：2011-04-15
// $Id:$
// ------------------------------------------------------------------------- //
/*-----------引入檔案區--------------*/
include_once "header.php";
$xoopsOption['template_main'] = "tad_web_news_tpl.html";

if(!defined('_NEWS_KIND'))define("_NEWS_KIND","news");
if(!defined('_NEWS_TOCAL_DESC'))define("_NEWS_TOCAL_DESC",_MD_TCW_NEWS_TO_CAL);
if(!defined('_SHOW_NEWS_PLACE'))define("_SHOW_NEWS_PLACE",false);
if(!defined('_SHOW_NEWS_MASTER'))define("_SHOW_NEWS_MASTER",false);
if(!defined('_SHOW_NEWS_URL'))define("_SHOW_NEWS_URL",true);
if(!defined('_SHOW_NEWS_TOCAL'))define("_SHOW_NEWS_TOCAL",true);
if(!defined('_USE_NEWS_FORM_DATETIME'))define("_USE_NEWS_FORM_DATETIME",false);
if(!defined('_USE_FCKEDITOR'))define("_USE_FCKEDITOR",true);
if(!defined('_NEWS_NL2BR'))define("_NEWS_NL2BR",false);
if(!defined('_SHOW_FULLCALENDAR'))define("_SHOW_FULLCALENDAR",false);
if(!defined('_SHOW_FULLCALENDAR_COLNAME'))define("_SHOW_FULLCALENDAR_COLNAME","NewsDate");
if(!defined('_SHOW_NEWS_UPLOAD'))define("_SHOW_NEWS_UPLOAD",true);
include_once XOOPS_ROOT_PATH."/header.php";
/*-----------function區--------------*/

//tad_web_news編輯表單
function tad_web_news_form($NewsID=""){
  global $xoopsDB,$xoopsUser,$WebID,$MyWebs,$isMyWeb,$xoopsTpl;

  if(!$isMyWeb and $MyWebs){
    redirect_header($_SERVER['PHP_SELF']."?op=tad_web_news_form&WebID={$MyWebs[0]}",3, _MD_TCW_AUTO_TO_HOME);
  }elseif(empty($MyWebs)){
    redirect_header("index.php",3, _MD_TCW_NOT_OWNER);
  }


  $Class=getWebInfo($WebID);

	//抓取預設值
	if(!empty($NewsID)){
		$DBV=get_tad_web_news($NewsID);
	}else{
		$DBV=array();
	}

	//設定「NewsID」欄位預設值
	$NewsID=(!isset($DBV['NewsID']))?"":$DBV['NewsID'];

	//設定「NewsTitle」欄位預設值
	if(isset($DBV['NewsTitle'])){
    $NewsTitle=(_NEWS_KIND=="homework")?$Class['WebTitle'].date(" Y-m-d ")._MD_TCW_HOMEWORK:$DBV['NewsTitle'];
  }else{
    $NewsTitle=(_NEWS_KIND=="homework")?$Class['WebTitle'].date(" Y-m-d ")._MD_TCW_HOMEWORK:"";
  }


	//設定「NewsContent」欄位預設值
  if(isset($DBV['NewsContent'])){
    $NewsContent=(_NEWS_KIND=="homework")?_MD_TCW_HOMEWORK_DEFAULT:$DBV['NewsContent'];
  }else{
    $NewsContent=(_NEWS_KIND=="homework")?_MD_TCW_HOMEWORK_DEFAULT:"";
  }

	//設定「NewsDate」欄位預設值
	$NewsDate=(!isset($DBV['NewsDate']))?date("Y-m-d H:i:s"):$DBV['NewsDate'];

	//設定「toCal」欄位預設值
	if(!isset($DBV['toCal'])){
    $toCal=(_NEWS_KIND=="homework")?date("Y-m-d"):"";
  }else{
    $toCal=($DBV['toCal']=="0000-00-00 00:00:00")?"":$DBV['toCal'];
  }

	//設定「NewsPlace」欄位預設值
	$NewsPlace=(!isset($DBV['NewsPlace']))?"":$DBV['NewsPlace'];

	//設定「NewsMaster」欄位預設值
	$NewsMaster=(!isset($DBV['NewsMaster']))?"":$DBV['NewsMaster'];

	//設定「NewsUrl」欄位預設值
	$NewsUrl=(!isset($DBV['NewsUrl']))?"":$DBV['NewsUrl'];

	//設定「WebID」欄位預設值
	$WebID=(!isset($DBV['WebID']))?$WebID:$DBV['WebID'];

	//設定「NewsKind」欄位預設值
	$NewsKind=(!isset($DBV['NewsKind']))?"":$DBV['NewsKind'];

	//設定「NewsCounter」欄位預設值
	$NewsCounter=(!isset($DBV['NewsCounter']))?"":$DBV['NewsCounter'];

	$op=(empty($NewsID))?"insert_tad_web_news":"update_tad_web_news";
	//$op="replace_tad_web_news";

	if(!file_exists(TADTOOLS_PATH."/formValidator.php")){
   redirect_header("index.php",3, _MD_NEED_TADTOOLS);
  }
  include_once TADTOOLS_PATH."/formValidator.php";
  $formValidator= new formValidator("#myForm",true);
  $formValidator_code=$formValidator->render();

  if(_USE_FCKEDITOR){
    include_once XOOPS_ROOT_PATH."/modules/tadtools/ck.php";
    $ck=new CKEditor("tad_web","NewsContent",$NewsContent);
    $ck->setHeight(300);
    $editor=$ck->render();
  }else{
    $editor="<textarea name='NewsContent' id='NewsContent' class='span12'>$NewsContent</textarea>";
  }

  $_SHOW_NEWS_PLACE=$_SHOW_NEWS_MASTER=$_USE_NEWS_FORM_DATETIME=$_SHOW_NEWS_URL=$_SHOW_NEWS_TOCAL=$_SHOW_NEWS_UPLOAD="";

	$xoopsTpl->assign('formValidator_code',$formValidator_code);
	$xoopsTpl->assign('op',$op);
	$xoopsTpl->assign('NewsID',$NewsID);
	$xoopsTpl->assign('NewsContent_editor',$editor);
	$xoopsTpl->assign('SHOW_NEWS_UPLOAD',_SHOW_NEWS_UPLOAD);
	$xoopsTpl->assign('list_del_file',upfile::list_del_file("NewsID",$NewsID));
	$xoopsTpl->assign('SHOW_NEWS_TOCAL',_SHOW_NEWS_TOCAL);
	$xoopsTpl->assign('toCal',$toCal);
	$xoopsTpl->assign('USE_NEWS_FORM_DATETIME',_USE_NEWS_FORM_DATETIME);
	$xoopsTpl->assign('NewsDate',$NewsDate);
	$xoopsTpl->assign('SHOW_NEWS_URL',_SHOW_NEWS_URL);
	$xoopsTpl->assign('NewsUrl',$NewsUrl);
	$xoopsTpl->assign('SHOW_NEWS_MASTER',_SHOW_NEWS_MASTER);
	$xoopsTpl->assign('NewsMaster',$NewsMaster);
	$xoopsTpl->assign('SHOW_NEWS_PLACE',_SHOW_NEWS_PLACE);
	$xoopsTpl->assign('NewsPlace',$NewsPlace);
	$xoopsTpl->assign('NewsTitle',$NewsTitle);
}



//新增資料到tad_web_news中
function insert_tad_web_news(){
	global $xoopsDB,$xoopsUser,$upfile;

  $uid=$xoopsUser->getVar('uid');

	$myts =& MyTextSanitizer::getInstance();
	$_POST['NewsTitle']=$myts->addSlashes($_POST['NewsTitle']);
	$_POST['NewsPlace']=$myts->addSlashes($_POST['NewsPlace']);
	$_POST['NewsMaster']=$myts->addSlashes($_POST['NewsMaster']);
	$_POST['NewsUrl']=$myts->addSlashes($_POST['NewsUrl']);
	$_POST['NewsContent']=$myts->addSlashes($_POST['NewsContent']);

  $newstime=(_USE_NEWS_FORM_DATETIME)?$_POST['NewsDate']:date("Y-m-d H:i:s");

  //if($_POST['NewsKind']=="law")$WebID=0;

	$sql = "insert into ".$xoopsDB->prefix("tad_web_news")."
	(`NewsTitle` , `NewsContent` , `NewsDate` , `toCal` , `NewsPlace` , `NewsMaster` , `NewsUrl` , `WebID` , `NewsKind` , `NewsCounter` , `uid`)
	values('{$_POST['NewsTitle']}' , '{$_POST['NewsContent']}' , '{$newstime}' , '{$_POST['toCal']}' , '{$_POST['NewsPlace']}' , '{$_POST['NewsMaster']}' , '{$_POST['NewsUrl']}' , '{$_POST['WebID']}' , '{$_POST['NewsKind']}' , '0' , '{$uid}')";
	//die($sql);
	$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());

	//取得最後新增資料的流水編號
	$NewsID=$xoopsDB->getInsertId();

	$upfile->upload_file('upfile',"NewsID",$NewsID,640);

	return $NewsID;
}

//更新tad_web_news某一筆資料
function update_tad_web_news($NewsID=""){
	global $xoopsDB,$xoopsUser,$upfile;

	$myts =& MyTextSanitizer::getInstance();
	$_POST['NewsTitle']=$myts->addSlashes($_POST['NewsTitle']);
	$_POST['NewsPlace']=$myts->addSlashes($_POST['NewsPlace']);
	$_POST['NewsMaster']=$myts->addSlashes($_POST['NewsMaster']);
	$_POST['NewsUrl']=$myts->addSlashes($_POST['NewsUrl']);
	$_POST['NewsContent']=$myts->addSlashes($_POST['NewsContent']);

  $newstime=(_USE_NEWS_FORM_DATETIME)?$_POST['NewsDate']:date("Y-m-d H:i:s");

  $anduid=onlyMine();

  if($_POST['NewsKind']=="law")$WebID=0;

	$sql = "update ".$xoopsDB->prefix("tad_web_news")." set
	 `NewsTitle` = '{$_POST['NewsTitle']}' ,
	 `NewsContent` = '{$_POST['NewsContent']}' ,
	 `NewsDate` = '{$newstime}' ,
	 `toCal` = '{$_POST['toCal']}' ,
	 `NewsPlace` = '{$_POST['NewsPlace']}' ,
	 `NewsMaster` = '{$_POST['NewsMaster']}' ,
	 `NewsUrl` = '{$_POST['NewsUrl']}'
	where NewsID='$NewsID' $anduid";
	$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());

	$upfile->upload_file('upfile',"NewsID",$NewsID,640);

	return $NewsID;
}




//以流水號秀出某筆tad_web_news資料內容
function show_one_tad_web_news($NewsID="",$show_place=false,$nl2br=false){
	global $xoopsDB,$WebID,$isAdmin,$xoopsTpl,$upfile;
	if(empty($NewsID)){
		return;
	}else{
		$NewsID=intval($NewsID);
	}
	add_tad_web_news_counter($NewsID);

	$sql = "select * from ".$xoopsDB->prefix("tad_web_news")." where NewsID='{$NewsID}'";
	$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
	$all=$xoopsDB->fetchArray($result);

	//以下會產生這些變數： $NewsID , $NewsTitle , $NewsContent , $NewsDate , $toCal , $NewsPlace , $NewsMaster , $NewsUrl , $WebID , $NewsKind , $NewsCounter ,$uid
	foreach($all as $k=>$v){
		$$k=$v;
	}

	if(empty($uid))redirect_header('index.php',3,_MD_TCW_NEWS_NOT_EXIST);

  $uid_name=XoopsUser::getUnameFromId($uid,1);

  $NewsUrlTxt=empty($NewsUrl)?"":"<div>"._MD_TCW_NEWSURL._TAD_FOR."<a href='$NewsUrl' target='_blank'>$NewsUrl</a></div>";

  $ShowCal=($toCal=="0000-00-00 00:00:00")?"":_MD_TCW_NEWSDATE._TAD_FOR.$toCal;


	$NewsContent=($nl2br)?nl2br($NewsContent):$NewsContent;

	$learn_info="";
	if($show_place){
    $showNewsMaster=empty($NewsMaster)?"":_MD_TCW_NEWS_TEACHER._TAD_FOR."<u>{$NewsMaster}</u>";
    $learn_info="<table><tr><td>"._MD_TCW_NEWSPLACE._TAD_FOR."<u>{$NewsPlace}</u></td><td>$showNewsMaster</td></tr></table>";
  }

  //是否縮圖,顯示模式 filename、num,顯示描述,顯示下載次數
  $NewsFiles=$upfile->show_files('upfile',"NewsID",$NewsID,true,false,true,false);



	$xoopsTpl->assign('isMine',isMine());
	$xoopsTpl->assign('mode','one_news');
	$xoopsTpl->assign('NewsTitle',$NewsTitle);
	$xoopsTpl->assign('NewsUrlTxt',$NewsUrlTxt);
	$xoopsTpl->assign('NewsContent',$NewsContent);
	$xoopsTpl->assign('ShowCal',$ShowCal);
	$xoopsTpl->assign('learn_info',$learn_info);
	$xoopsTpl->assign('uid_name',$uid_name);
	$xoopsTpl->assign('NewsDate',$NewsDate);
	$xoopsTpl->assign('NewsCounter',$NewsCounter);
	$xoopsTpl->assign('NewsFiles',$NewsFiles);
	$xoopsTpl->assign('NewsID',$NewsID);
	$xoopsTpl->assign('NewsInfo',sprintf(_MD_TCW_INFO,$uid_name,$NewsDate,$NewsCounter));

}


//新增tad_web_news計數器
function add_tad_web_news_counter($NewsID=''){
	global $xoopsDB;
	$sql = "update ".$xoopsDB->prefix("tad_web_news")." set `NewsCounter`=`NewsCounter`+1 where `NewsID`='{$NewsID}'";
	$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
}


//刪除tad_web_news某筆資料資料
function delete_tad_web_news($NewsID=""){
	global $xoopsDB,$xoopsUser,$upfile;
  $anduid=onlyMine();
	$sql = "delete from ".$xoopsDB->prefix("tad_web_news")." where NewsID='$NewsID' $anduid";
	$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
  $upfile->del_files("","NewsID",$NewsID);
}


//以流水號取得某筆tad_web_news資料
function get_tad_web_news($NewsID=""){
	global $xoopsDB;
	if(empty($NewsID))return;
	$sql = "select * from ".$xoopsDB->prefix("tad_web_news")." where NewsID='$NewsID'";
	$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
	$data=$xoopsDB->fetchArray($result);
	return $data;
}

/*-----------執行動作判斷區----------*/
$op=(empty($_REQUEST['op']))?"":$_REQUEST['op'];
$NewsID=(empty($_REQUEST['NewsID']))?"":intval($_REQUEST['NewsID']);

$xoopsTpl->assign( "news_kind" , _NEWS_KIND) ;

common_template($interface_menu,$WebID);

switch($op){
  //替換資料
  case "replace_tad_web_news":
  replace_tad_web_news();
  header("location: {$_SERVER['PHP_SELF']}");
  break;

  //新增資料
  case "insert_tad_web_news":
  $NewsID=insert_tad_web_news();
  header("location: {$_SERVER['PHP_SELF']}?NewsID=$NewsID");
  break;

  //更新資料
  case "update_tad_web_news":
  update_tad_web_news($NewsID);
  header("location: {$_SERVER['PHP_SELF']}?NewsID={$NewsID}");
  break;

  //輸入表格
  case "tad_web_news_form":
  tad_web_news_form($NewsID);
  break;

  //刪除資料
  case "delete_tad_web_news":
  delete_tad_web_news($NewsID);
  header("location: {$_SERVER['PHP_SELF']}");
  break;




  //預設動作
  default:
  if(empty($NewsID)){
  	list_tad_web_news($WebID,_NEWS_KIND,null);

  	if(_SHOW_FULLCALENDAR){
      $xoopsTpl->assign('show_fullcalendar',true);
    }
  }else{
  	show_one_tad_web_news($NewsID,_SHOW_NEWS_PLACE,_NEWS_NL2BR);
  }
  break;

}

/*-----------秀出結果區--------------*/
include_once XOOPS_ROOT_PATH.'/footer.php';
?>