:::

12-1 上課範例:index.php

<?php
/*** 引入檔案 ***/
include_once '../../mainfile.php';
include_once XOOPS_ROOT_PATH."/header.php";
include_once 'function.php';

/*** 函數檔 ***/

//新增記事表單
function add_form($note_sn=null){
  global $xoopsDB,$xoopsUser;

  if(empty($xoopsUser))redirect_header('index.php', 3, "請先登入。");

  if($note_sn){
    $sql="select * from ".$xoopsDB->prefix("tad_notes")." where `note_sn`='$note_sn'";
    $result=$xoopsDB->query($sql) or redirect_header('index.php', 3, mysql_error());
    $doc=$xoopsDB->fetchArray($result);
    
    $op="update";
  }else{
    $op="save";
  }


  include_once(XOOPS_ROOT_PATH."/class/xoopsformloader.php");
  $XoopsFormHiddenToken=new XoopsFormHiddenToken();
  $token=$XoopsFormHiddenToken->render();

  $option="";
  //抓取資料庫中的分類選項
  $sql="select * from ".$xoopsDB->prefix("tad_note_cate")." where cate_enable='1' order by `cate_sort`";
  $result = $xoopsDB->query($sql) or redirect_header('index.php', 3, mysql_error());
  while($cate=$xoopsDB->fetchArray($result)){
    $selected=($cate['cate_sn']==$doc['cate_sn'])?"selected":"";
    $option.="<option value='{$cate['cate_sn']}' $selected>{$cate['cate_title']}</option>";
  }
  
  //取得最大排序
  $note_sort=empty($note_sn)?get_max_sort():$doc['note_sort'];

  //取得現在時間
  $note_date=empty($note_sn)?date("Y-m-d H:i:s"):$doc['note_date'];

  $note_public1=($doc['note_public']=='1')?"checked":"";
  $note_public0=($doc['note_public']=='0')?"checked":"";


  $main="
  <script type='text/javascript' src='class/ckeditor/ckeditor.js'></script>
  <script language='javascript' type='text/javascript' src='class/DatePicker/WdatePicker.js'></script>
  <h3>記事編輯</h3>
  <form action='{$_SERVER['PHP_SELF']}' method='post'>
    <table>
      <tr><th nowrap>所屬分類</th><td>
        <select name='cate_sn'>
        <option value='0'>不分類</option>
        $option
        </select>
        </td></tr>
      <tr><th>文章標題</th><td><input type='text' name='note_title' size=40 value='{$doc['note_title']}'></td></tr>
      <tr><td colspan=2>
        <textarea name='note_content' cols=40 rows=6 class='ckeditor' id='ckeditor'>{$doc['note_content']}</textarea>
        <script type='text/javascript'>
          CKEDITOR.replace('ckeditor' , { skin : 'v2' , toolbar : 'MyToolbar' } );
        </script>
      </td></tr>
      <tr><th>發布日期</th><td><input type='text' name='note_date' value='$note_date' onClick=\"WdatePicker({skin:'whyGreen' , dateFmt:'yyyy-MM-dd HH:mm:ss'})\" class='Wdate'></td></tr>
      <tr><th>是否公開</th><td>
        <input type='radio' name='note_public' value='1' $note_public1> 是
        <input type='radio' name='note_public' value='0' $note_public0> 否
        </td></tr>
      <tr><th>排序</th><td><input type='text' name='note_sort' size=2 value='$note_sort'></td></tr>
    </table>
    $token
    <input type='hidden' name='note_sn' value='$note_sn'>
    <input type='hidden' name='op' value='$op'>
    <input type='submit' value='儲存'>

  </form>
  ";


  /*
  所屬分類 cate_sn
  文章標題 note_title
  文章內容 note_content
  發布日期 note_date
  是否公開 note_public
  排序 note_sort
  */
  return $main;
}


//儲存文章
function save(){
  global $xoopsDB , $xoopsUser;

  if(!$GLOBALS['xoopsSecurity']->check()){
    $error=implode("<br />" , $GLOBALS['xoopsSecurity']->getErrors());
    redirect_header($_SERVER['PHP_SELF'],3, $error);
  }

  $myts =& MyTextSanitizer::getInstance();
  $_POST['note_title'] = $myts->addSlashes($_POST['note_title']);
  $_POST['note_content'] = $myts->addSlashes($_POST['note_content']);
  $_POST['note_date'] = $myts->addSlashes($_POST['note_date']);
  $_POST['note_sort'] = $myts->addSlashes($_POST['note_sort']);

  $uid = empty($xoopsUser)? 0 : $xoopsUser->uid();

  $sql="insert into ".$xoopsDB->prefix("tad_notes")." (`cate_sn`, `note_title`, `note_content`, `note_date`, `note_public`, `note_count`, `uid`, `note_sort`) values('{$_POST['cate_sn']}' , '{$_POST['note_title']}' , '{$_POST['note_content']}' , '{$_POST['note_date']}' , '{$_POST['note_public']}' , '0' , '{$uid}' , '{$_POST['note_sort']}')";
  $xoopsDB->query($sql) or redirect_header('index.php', 3, mysql_error());
}

//工具列
function toolbar(){
  $main="<a href='index.php?op=add_form'>新增記事</a>";
  return $main;
}

//取得最大排序
function get_max_sort(){
  global $xoopsDB;
  
  $sql="select max(`note_sort`) from ".$xoopsDB->prefix("tad_notes")." where `note_public`='1'";
  $result=$xoopsDB->query($sql) or redirect_header('index.php', 3, mysql_error());
  list($max_sort)=$xoopsDB->fetchRow($result);
  return ++$max_sort;
}

//顯示文章列表或單一文章
function show_doc($note_sn=''){
  global $xoopsDB,$xoopsUser,$xoopsModuleConfig;

  $now_uid=($xoopsUser)?$xoopsUser->uid():"";

  $myts =& MyTextSanitizer::getInstance();

  if(empty($note_sn)){
    $sql="select * from ".$xoopsDB->prefix("tad_notes")." where `note_public`='1' order by note_sort";
    
    //PageBar(資料數, 每頁顯示幾筆資料, 最多顯示幾個頁數選項);
    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
    $total=$xoopsDB->getRowsNum($result);

    $navbar = new PageBar($total,$xoopsModuleConfig['show_num'], 10);
    $mybar = $navbar->makeBar();
    $bar= sprintf(_BP_TOOLBAR,$mybar['total'],$mybar['current'])."{$mybar['left']}{$mybar['center']}{$mybar['right']}";
    $sql.=$mybar['sql'];
    //分頁工具列為 $bar
    
    $result=$xoopsDB->query($sql) or redirect_header('index.php', 3, mysql_error());
    $main="<table>";
    while($doc=$xoopsDB->fetchArray($result)){

      $doc['note_title'] = $myts->htmlSpecialChars($doc['note_title']);
      $doc['note_date'] = $myts->htmlSpecialChars($doc['note_date']);
    
      $tool=($doc['uid']==$now_uid)?"<a href='index.php?op=del&note_sn={$doc['note_sn']}'>刪除</a> |
      <a href='index.php?op=modify&note_sn={$doc['note_sn']}'>修改</a>":"";
    
      $main.="<tr>
      <td><a href='index.php?note_sn={$doc['note_sn']}'>{$doc['note_title']}</a></td>
      <td>{$doc['note_date']}</td>
      <td>{$tool}</td>
      </tr>";
    }
    $main.="</table>
    <div align='center'>$bar</div>";
  }else{
    $sql="select * from ".$xoopsDB->prefix("tad_notes")." where `note_sn`='$note_sn' and `note_public`='1'";
    $result=$xoopsDB->query($sql) or redirect_header('index.php', 3, mysql_error());
    $doc=$xoopsDB->fetchArray($result);
    
    $doc['note_title'] = $myts->htmlSpecialChars($doc['note_title']);
    $doc['note_date'] = $myts->htmlSpecialChars($doc['note_date']);
    $doc['note_content'] = $myts->displayTarea($doc['note_content'], 1, 1, 0, 1, 0);

    $main="
    <h1>{$doc['note_title']}</h1>
    <div>".sprintf(_MD_TADNOTE_POST_DATE,$doc['note_date'])."</div>
    <div>{$doc['note_content']}</div>
    ";
  }
  return $main;
}


//刪除函數
function del_note($note_sn=null){
  global $xoopsDB;

  $sql="delete from ".$xoopsDB->prefix("tad_notes")." where note_sn='$note_sn'";
  $xoopsDB->queryF($sql) or redirect_header('index.php', 3, mysql_error());
}


function update(){
  global $xoopsDB , $xoopsUser;

  if(!$GLOBALS['xoopsSecurity']->check()){
    $error=implode("<br />" , $GLOBALS['xoopsSecurity']->getErrors());
    redirect_header($_SERVER['PHP_SELF'],3, $error);
  }

  $myts =& MyTextSanitizer::getInstance();
  $_POST['note_title'] = $myts->addSlashes($_POST['note_title']);
  $_POST['note_content'] = $myts->addSlashes($_POST['note_content']);
  $_POST['note_date'] = $myts->addSlashes($_POST['note_date']);
  $_POST['note_sort'] = $myts->addSlashes($_POST['note_sort']);

  $uid = empty($xoopsUser)? 0 : $xoopsUser->uid();

  $sql="update ".$xoopsDB->prefix("tad_notes")." set `cate_sn`='{$_POST['cate_sn']}' , `note_title`='{$_POST['note_title']}', `note_content`='{$_POST['note_content']}', `note_date`='{$_POST['note_date']}', `note_public`='{$_POST['note_public']}',   `note_sort`='{$_POST['note_sort']}' where `note_sn`='{$_POST['note_sn']}'";
  $xoopsDB->queryF($sql) or redirect_header('index.php', 3, mysql_error());
}

/*** 流程判斷 ***/
$op = empty($_REQUEST['op'])? "" : $_REQUEST['op'];
$note_sn = empty($_REQUEST['note_sn'])? "" : intval($_REQUEST['note_sn']);


switch($op){

  case "del":
  del_note($note_sn);
  header("location:index.php");
  break;

  case "modify":
  $main=add_form($note_sn);
  break;


  case "save":
  save();
  header("location:index.php");
  break;
  

  case "update":
  update();
  header("location:index.php");
  break;


  case "add_form":
  $main=add_form();
  break;

	default:
	$main=show_doc($note_sn);
	break;
}

/*** 輸出 ***/
$current1=($_SERVER['REQUEST_URI']=="/~tad0616/modules/tad_note/index.php")?"class='current'":"";
$current2=($_SERVER['REQUEST_URI']=="/~tad0616/modules/tad_note/index.php?op=add_form")?"class='current'":"";

echo "
<link rel='stylesheet' href='menu/menu_style.css' type='text/css' />
<ul id='menu'>
   <li><a href='index.php' target='_self' title='所有記事' $current1>所有記事</a></li>
   <li><a href='index.php?op=add_form' target='_self' title='新增記事' $current2>新增記事</a></li>
</ul>
";
echo $main;


include_once XOOPS_ROOT_PATH.'/footer.php';
?>

:::

搜尋

QR Code 區塊

https%3A%2F%2Fwww.tad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D22%26tbdsn%3D629

書籍目錄

展開 | 闔起

線上使用者

21人線上 (4人在瀏覽線上書籍)

會員: 0

訪客: 21

更多…