
<script type="text/javascript" src="jquery-1.8.1.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.8.1");
google.load("jqueryui", "1.7.2");
</script>
<script type="text/javascript">
$(document).ready(function(){
//jquery語法
});
</script>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>jquery測試</title>
<script type="text/javascript" src="jquery-1.8.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#tbl').hide();
$('.box').click(function(){
$('#tbl').fadeIn('slow');
$('.box').css("color","blue").css("font-size","2em");
});
$('button').click(function(){
$('#tbl').fadeOut('slow');
$('.box').css("color","red").css("font-size","1em");
});
$('#my_name').change(function(){
$('.box').append("嗨!" + $('#my_name').val());
});
});
</script>
</head>
<body>
<div class='box'>
點我填寫功能表
</div>
<table id='tbl'>
<tr>
<th>姓名</th>
<td><input type="text" name="my_name" id="my_name"></td>
</tr>
<tr>
<th>性別</th>
<td>
<input type="radio" name="sex" value="男" id="sex_b">男
<input type="radio" name="sex" value="女" id="sex_g">女
</td>
</tr>
<tr id="tel">
<th>電話</th>
<td><input type="text" name="my_tel" value="留個電話吧~"></td>
</tr>
<tr>
<td colspan=2><button>關閉</button></td>
</tr>
</table>
</body>
</html>
if(!file_exists(XOOPS_ROOT_PATH."/modules/tadtools/tad_function.php")){
redirect_header("http://www.tad0616.net/modules/tad_uploader/index.php?of_cat_sn=50",3, "需要 tadtools 模組,可至<a href='http://www.tad0616.net/modules/tad_uploader/index.php?of_cat_sn=50' target='_blank'>Tad教材網</a>下載。");
}
include_once XOOPS_ROOT_PATH."/modules/tadtools/tad_function.php";
$(document).ready(function(){
$.post('ajax.php', {op: 'get_menu' , menu1: '台南市'} , function(data) {
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
//當id="menu1"的網頁元件有變動時,要做些什麼事
});
<?php
// ------------------------------------------------------------------------ //
// 本模組由 tad 製作
// 製作日期:2012-09-12
// $Id:$
// ------------------------------------------------------------------------- //
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
$main="
$jquery
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
});
</script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' ></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' ></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' ></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' ></td></tr>
<!--郵遞區號-->
<tr><td class='title' nowrap>郵遞區號</td>
<td class='col'><input type='text' name='zip' size='20' value='{$zip}' id='zip' ></td></tr>
<!--縣市-->
<tr><td class='title' nowrap>縣市</td>
<td class='col'><input type='text' name='county' size='20' value='{$county}' id='county' ></td></tr>
<!--鄉鎮市區-->
<tr><td class='title' nowrap>鄉鎮市區</td>
<td class='col'><input type='text' name='city' size='20' value='{$city}' id='city' ></td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'><input type='text' name='addr' size='20' value='{$addr}' id='addr' ></td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
</td>":"";
$cate=get_contact_cate_all();
$all_content.="
<tr>
<td>{$cate[$gsn]['title']}</td>
<td>{$name}</td>
<td>{$tel}</td>
<td>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
$fun
</tr>
";
}
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
<?php
include_once "header_admin.php";
$parent_gsn=empty($_POST['parent_gsn'])?0:$_POST['parent_gsn'];
echo get_cate_options($parent_gsn);
function get_cate_options($parent_gsn){
global $xoopsDB ;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '$parent_gsn' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
$main.="<option value='$gsn'>{$title}</option>";
}
return $main;
}
?>
<script language='javascript' src='class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#AddrForm').twzipcode({
countyName: '縣市欄位的name',
areaName: '鄉鎮市區欄位的name',
zipName: '郵遞區號欄位的name',
countySel: '$縣市預設值',
areaSel: '$鄉鎮市區預設值',
zipSel: '$郵遞區號預設值',
zipReadonly: false
});
});
</script>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
$('#menu2').change(function(){
$.post('ajax.php' , {op: contact_list , gsn: $('#menu2').val()} , function(data){
$('#contact_list').html(data);
});
});
$gsn=empty($_POST['gsn'])?0:$_POST['gsn'];
$op=empty($_POST['op'])?'':$_POST['op'];
switch($op){
case "contact_list":
echo contact_list($gsn);
break;
}
function contact_list($gsn=''){
//根據$gsn去資料庫撈出相關資料,基本上就是index.php的list_contact()函數內容
}
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
$.post('ajax.php' , {op: 'contact_list' , gsn: $('#menu2').val()} , function(data){
$('#contact_list').html(data);
});
});
});
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
$main="
$jquery
<script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' ></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' ></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' ></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' ></td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
</td>":"";
$cate=get_contact_cate_all();
$all_content.="
<tr>
<td>{$cate[$gsn]['title']}</td>
<td>{$name}</td>
<td>{$tel}</td>
<td>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
$fun
</tr>
";
}
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
$xoopsOption['template_main'] = "contact_index_tpl.html";
/*-----------function區--------------*/
//列出所有contact資料
function list_contact(){
global $xoopsDB , $xoopsModule , $isAdmin;
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$cate=get_contact_cate_all();
$all_content.="
<tr>
<td>{$cate[$gsn]['title']}</td>
<td><a href='index.php?sn=$sn'>{$name}</a></td>
<td>{$tel}</td>
<td>{$email}</td>
<td>{$birthday}</td>
<td>{$zip} {$county}{$city}{$addr}</td>
</tr>
";
}
$jquery=get_jquery();
//刪除確認的JS
$main="
$jquery
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
});
</script>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>地址</th>
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號秀出某筆contact資料內容
function show_one_contact($sn=""){
global $xoopsDB , $xoopsModule , $isAdmin;
if(empty($sn)){
return;
}else{
$sn=intval($sn);
}
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}' ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all=$xoopsDB->fetchArray($result);
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$cate=get_contact_cate($gsn);
$data="
<table summary='list_table' id='tbl' style='width:100%;'>
<tr><th nowrap>電話</th><td>{$tel}</td></tr>
<tr><th nowrap>信箱</th><td>{$email}</td></tr>
<tr><th nowrap>生日</th><td>{$birthday}</td></tr>
<tr><th nowrap>地址</th><td>{$zip} {$county}{$city}{$addr}</td></tr>
</table>";
//raised,corners,inset
$main=div_3d("{$cate['title']} / {$name}",$data,"corners");
return $main;
}
/*-----------執行動作判斷區----------*/
$op=empty($_REQUEST['op'])?"":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
default:
if(empty($sn)){
$main=list_contact();
}else{
$main=show_one_contact($sn);
}
break;
}
/*-----------秀出結果區--------------*/
module_footer($main);
?>
<?php
include_once "header.php";
$parent_gsn=empty($_POST['parent_gsn'])?0:$_POST['parent_gsn'];
echo get_cate_options($parent_gsn);
function get_cate_options($parent_gsn){
global $xoopsDB ;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '$parent_gsn' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
$main.="<option value='$gsn'>{$title}</option>";
}
return $main;
}
?>
<div class="edit" id='div1'>文字輸入框</div> <div class="edit_select" id='div2'>下拉選單</div>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.jeditable.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.edit').editable('save.php');
$('.edit_select').editable('save.php', {
type : 'select',
cancel : '取消',
submit : '儲存',
indicator : '<img src="img/indicator.gif">'
});
});
</script>
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生' , 'selected':'girl'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$jeditable_set=$jeditable->render();
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>jquery測試</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="jquery.jeditable.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#div1').editable('save.php',{
type:'text',
width:'400px',
submitdata : {op: 'save' , sn : '100'},
onblur: 'submit'
});
$('#div2').editable('save.php',{
type:'textarea',
width:'400px',
height:'350px',
submit:'儲存'
});
});
</script>
</head>
<body>
<h1 id='div1'>工作專心好困難? 日研究:可愛事物助提高效率</h1>
<div id='div2'>不少人工作時,手上事務還沒做完,新任務卻又不斷湧進,心中煩躁指數逼近爆表,有些人則是抵擋不住臉書(Facebook)、YouTube、Plurk等網站的誘惑,對於無法專心工作感到困擾,所幸日本一項最新研究指出,只要觀看「可愛動物照」就能提高注意力。
日本廣島大學研究小組找來130名大學生進行實驗,第一組負責以鑷子從小孔中取出零件,且過程中不能觸碰到小孔邊緣,第二組對象則必須在數列中找出指定的數字,此2項實驗分別測試2次。
研究人員將學生分成3組,在第一次和第二次測試間分別觀看「小貓小狗」、「大貓大狗」、「食物」的照片。實驗結果發現,觀看「小貓小狗」這組照片者除了準確度提高,取零件速度也增加44%,找數字的速度則提高16%。
研究人員稱,可能是人們感到「可愛」時,會希望接近對方並詳細了解,進而產生集中注意力的效果,因此日常生活或工作場所適當擺放可愛物體,或許能夠提高工作效率。</div>
</body>
</html>
<?php //var_dump($_POST); //var_export($_POST); //update到資料庫 echo $_POST['value']; ?>
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
$main="
$jquery
<script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' ></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' ></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' ></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' ></td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
//製作選項
$sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
$cate_arr[]="'$gsn':'$title'";
}
$cate_option=implode(" , ",$cate_arr);
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
//$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
</td>":"";
$jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
$jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
$jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
$cate=get_contact_cate_all();
$all_content.="
<tr>
<td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
<td id='name_{$sn}'>{$name}</td>
<td>{$tel}</td>
<td id='email_{$sn}'>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
$fun
</tr>
";
}
$jeditable_set=$jeditable->render();
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
$jeditable_set
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
<?php
include_once "header_admin.php";
$sn=intval($_POST['sn']);
$sql="update `".$xoopsDB->prefix("contact")."` set `{$_POST['col']}` = '{$_POST['value']}' where sn = '$sn'";
$xoopsDB->queryF($sql) ;
echo $_POST['value'];
?>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.validationEngine-en.js" type="text/javascript"></script>
<script src="js/jquery.validationEngine.js" type="text/javascript"></script>
<link rel="stylesheet" href="css/validationEngine.jquery.css" type="text/css"/>
<script type="text/javascript">
$(document).ready(function() {
$('#myform').validationEngine();
});
</script>
<form id="myform">
<input type="text" name="xx" id="xx" class="validate[required]">
</form>
include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
$formValidator= new formValidator("#myForm",false);
$formValidator_code=$formValidator->render();
<input type='text' name='num' id='num' class='validate[required,min[1],max[10]]'>
<input type="text" name="mail" id="mail" class="validate[required ,custom[email]]">
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
$formValidator= new formValidator("#myForm",false);
$formValidator_code=$formValidator->render();
$main="
$jquery
$formValidator_code
<script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' class='validate[required,minSize[2],maxSize[10]]'></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' class='validate[required,custom[phone]]'></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' class='validate[required,custom[email]]'></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' class='validate[required,custom[date],future[NOW]]'></td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
//製作選項
$sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
$cate_arr[]="'$gsn':'$title'";
}
$cate_option=implode(" , ",$cate_arr);
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
//$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
</td>":"";
$jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
$jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
$jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
$cate=get_contact_cate_all();
$all_content.="
<tr>
<td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
<td id='name_{$sn}'>{$name}</td>
<td>{$tel}</td>
<td id='email_{$sn}'>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
$fun
</tr>
";
}
$jeditable_set=$jeditable->render();
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
$jeditable_set
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
$xoopsOption['template_main'] = "contact_index_tpl.html";
/*-----------function區--------------*/
//列出所有contact資料
function list_contact(){
global $xoopsDB , $xoopsModule , $isAdmin;
$jquery=get_jquery();
//刪除確認的JS
$main="
$jquery
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
contact_list();
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
contact_list();
});
});
$('#menu2').change(function(){
contact_list();
});
});
//去抓該分類的通訊錄
function contact_list(){
$.post('ajax.php' , {gsn: $('#menu2').val()} , function(data){
$('#contact_list').html(data);
});
}
</script>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>地址</th>
</tr>
<tbody id='contact_list'>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號秀出某筆contact資料內容
function show_one_contact($sn=""){
global $xoopsDB , $xoopsModule , $isAdmin;
if(empty($sn)){
return;
}else{
$sn=intval($sn);
}
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}' ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all=$xoopsDB->fetchArray($result);
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$cate=get_contact_cate($gsn);
$data="
<table summary='list_table' id='tbl' style='width:100%;'>
<tr><th nowrap>電話</th><td>{$tel}</td></tr>
<tr><th nowrap>信箱</th><td>{$email}</td></tr>
<tr><th nowrap>生日</th><td>{$birthday}</td></tr>
<tr><th nowrap>地址</th><td>{$zip} {$county}{$city}{$addr}</td></tr>
</table>";
//raised,corners,inset
$main=div_3d("{$cate['title']} / {$name}",$data,"corners");
return $main;
}
/*-----------執行動作判斷區----------*/
$op=empty($_REQUEST['op'])?"":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
default:
if(empty($sn)){
$main=list_contact();
}else{
$main=show_one_contact($sn);
}
break;
}
/*-----------秀出結果區--------------*/
module_footer($main);
?>
<?php
include_once "header.php";
$parent_gsn=empty($_POST['parent_gsn'])?0:intval($_POST['parent_gsn']);
$gsn=empty($_POST['gsn'])?0:intval($_POST['gsn']);
if(!empty($gsn)){
echo get_contact($gsn);
}else{
echo get_cate_options($parent_gsn);
}
function get_cate_options($parent_gsn){
global $xoopsDB ;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '$parent_gsn' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
$main.="<option value='$gsn'>{$title}</option>";
}
return $main;
}
//取得該分類下的通訊錄資料
function get_contact($gsn){
global $xoopsDB ;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where gsn='$gsn'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$cate=get_contact_cate_all();
$all_content.="
<tr>
<td>{$cate[$gsn]['title']}</td>
<td><a href='index.php?sn=$sn'>{$name}</a></td>
<td>{$tel}</td>
<td>{$email}</td>
<td>{$birthday}</td>
<td>{$zip} {$county}{$city}{$addr}</td>
</tr>
";
}
return $all_content;
}
?>
$jquery
<script type='text/javascript'>
$(document).ready(function(){
$('#sort').sortable({ opacity: 0.6, cursor: 'move', update: function() {
var order = $(this).sortable('serialize');
$.post('save_sort.php', order, function(theResponse){
$('#save_msg').html(theResponse);
});
}
});
});
</script>
<?php
include_once "header_admin.php";
$sort = 1;
foreach ($_POST['tr'] as $gsn) {
$sql="update ".$xoopsDB->prefix("contact_cate")." set `sort`='{$sort}' where `gsn`='{$gsn}'";
$xoopsDB->queryF($sql) or die("更新失敗! (".date("Y-m-d H:i:s").")");
$sort++;
}
echo "排序完成! (".date("Y-m-d H:i:s").")";
?>
<img src='".XOOPS_URL."/modules/tadtools/treeTable/images/updown_s.png' style='cursor: s-resize;margin:0px 4px;' alt='拉動排序' title='拉動排序'>
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
/*-----------function區--------------*/
//contact_cate編輯表單
function contact_cate_form($gsn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($gsn)){
$DBV=get_contact_cate($gsn);
}else{
$DBV=array();
}
//預設值設定
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?$gsn:$DBV['gsn'];
//設定「title」欄位預設值
$title=(!isset($DBV['title']))?null:$DBV['title'];
//設定「parent_gsn」欄位預設值
$parent_gsn=(!isset($DBV['parent_gsn']))?null:$DBV['parent_gsn'];
//設定「sort」欄位預設值
$sort=(!isset($DBV['sort']))?contact_cate_max_sort():$DBV['sort'];
$op=(empty($gsn))?"insert_contact_cate":"update_contact_cate";
$main="
<form action='{$_SERVER['PHP_SELF']}' method='post'>
<table class='form_tbl'>
<!--群組名稱-->
<tr><td class='title' nowrap>群組名稱</td>
<td class='col'><input type='text' name='title' size='20' value='{$title}' id='title' ></td></tr>
<!--父群組-->
<tr><td class='title' nowrap>父群組</td>
<td class='col'>
<select name='parent_gsn' size=1 >
<option value='' ".chk($parent_gsn,'','1','selected')."></option>
".get_contact_cate_options('edit' , $gsn , $parent_gsn )."
</select>
</td></tr>
<!--排序-->
<tr><td class='title' nowrap>排序</td>
<td class='col'><input type='text' name='sort' size='20' value='{$sort}' id='sort'></td></tr>
<tr>
<td class='bar' colspan='2'>
<!--群組編號-->
<input type='hidden' name='gsn' value='{$gsn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("群組設定",$main,"raised");
return $main;
}
//自動取得contact_cate的最新排序
function contact_cate_max_sort(){
global $xoopsDB;
$sql = "select max(`sort`) from `".$xoopsDB->prefix("contact_cate")."`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
list($sort)=$xoopsDB->fetchRow($result);
return ++$sort;
}
//新增資料到contact_cate中
function insert_contact_cate(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$sql = "insert into `".$xoopsDB->prefix("contact_cate")."`
(`title` , `parent_gsn` , `sort`)
values('{$_POST['title']}' , '{$_POST['parent_gsn']}' , '{$_POST['sort']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$gsn = $xoopsDB->getInsertId();
return $gsn;
}
//更新contact_cate某一筆資料
function update_contact_cate($gsn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$sql = "update `".$xoopsDB->prefix("contact_cate")."` set
`title` = '{$_POST['title']}' ,
`parent_gsn` = '{$_POST['parent_gsn']}' ,
`sort` = '{$_POST['sort']}'
where `gsn` = '$gsn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
return $gsn;
}
//刪除contact_cate某筆資料資料
function delete_contact_cate($gsn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact_cate")."` where `gsn` = '{$gsn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
}
//取得contact_cate無窮分類列表
function list_contact_cate_loop($show_function=1 , $parent_gsn=0 , $i=0){
global $xoopsDB , $xoopsModule;
$MDIR=$xoopsModule->getVar('dirname');
$sql = "select * from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$parent_gsn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$prefix=str_repeat("----",$i);
$i++;
$data="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $gsn , $title , $parent_gsn , $sort
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_cate_form&gsn=$gsn'><img src='".XOOPS_URL."/modules/{$MDIR}/images/edit.gif' alt='編輯'></a>
<a href=\"javascript:delete_contact_cate_func($gsn);\"><img src='".XOOPS_URL."/modules/{$MDIR}/images/del.gif' alt='刪除'></a>
</td>":"";
$data.="
<tr id='tr_{$gsn}'>
<td>{$prefix}<a href='{$_SERVER['PHP_SELF']}?gsn={$gsn}'>{$title}</a> <img src='".XOOPS_URL."/modules/tadtools/treeTable/images/updown_s.png' style='cursor: s-resize;margin:0px 4px;' alt='拉動排序' title='拉動排序'> ({$sort})</td>
$fun
</tr>";
$data.=list_contact_cate_loop($show_function,$gsn,$i);
}
if($parent_gsn!='0'){
return $data;
}else{
$jquery=get_jquery(true);
$main="
$jquery
<script type='text/javascript'>
$(document).ready(function(){
$('#sort').sortable({ opacity: 0.6, cursor: 'move', update: function() {
var order = $(this).sortable('serialize');
$.post('save_sort.php', order, function(theResponse){
$('#save_msg').html(theResponse);
});
}
});
});
function delete_contact_cate_func(gsn){
var sure = window.confirm('確定要刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact_cate&gsn=\" + gsn;
}
</script>
<div id='save_msg' style='margin:10px auto;'></div>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th nowrap>群組名稱</th>
$function_title</tr>
<tbody id='sort'>
$data
</tbody>
<tr>
<td colspan=6 class='bar'>
<a href='{$_SERVER['PHP_SELF']}?op=contact_cate_form'><img src='".XOOPS_URL."/modules/{$MDIR}/images/add.gif' alt='"._BP_ADD."' align='right'></a>
{$bar}</td></tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
}
return $main;
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
//新增資料
case "insert_contact_cate":
$gsn=insert_contact_cate();
header("location: {$_SERVER['PHP_SELF']}");
break;
//更新資料
case "update_contact_cate":
update_contact_cate($gsn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_cate_form":
$main=contact_cate_form($gsn);
break;
//刪除資料
case "delete_contact_cate":
delete_contact_cate($gsn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact_cate_loop();
break;
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,1);
?>
<?php
include_once "header_admin.php";
$sort = 1;
foreach($_POST['tr'] as $gsn) {
$sql="update ".$xoopsDB->prefix("contact_cate")." set `sort`='{$sort}' where `gsn`='{$gsn}'";
$xoopsDB->queryF($sql) or die("更新失敗! (".date("Y-m-d H:i:s").")");
$sort++;
}
echo "排序完成! (".date("Y-m-d H:i:s").")";
?>
<script src='".TADTOOLS_URL."/jquery/jquery.js'></script> <script src='".TADTOOLS_URL."/multiple-file-upload/jquery.MultiFile.js'></script>
<input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>". list_del_file($col_name,$col_sn)."
upload_file($col_name , $col_sn , $width , $name , $sort ,$thumb_width , $files_sn);
//欄位 , 編號 , 是否縮圖 , 顯示模式 (空、filename、num) ,顯示描述,顯示下載次數 show_files($col_name , $col_sn , true , ”” , false , false);
get_pic_file($col_name , $col_sn , $sort , $showkind)
del_files($files_sn , $col_name , $col_sn);
get_file_amount($col_name , $col_sn);
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
include_once "../up_file.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
$formValidator= new formValidator("#myForm",false);
$formValidator_code=$formValidator->render();
$main="
$jquery
$formValidator_code
<script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<script src='".TADTOOLS_URL."/multiple-file-upload/jquery.MultiFile.js'></script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm' enctype='multipart/form-data'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' class='validate[required,minSize[2],maxSize[10]]'></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' class='validate[required,custom[phone]]'></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' class='validate[required,custom[email]]'></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday'></td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳圖片</td>
<td class='col'>
<input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>".
list_del_file('photo',$sn)."
</td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳相關檔案</td>
<td class='col'>
<input type='file' name='docs[]' class='multi' >".
list_del_file('files',$sn)."
</td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
//製作選項
$sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
$cate_arr[]="'$gsn':'$title'";
}
$cate_option=implode(" , ",$cate_arr);
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
//$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
</td>":"";
$jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
$jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
$jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
$cate=get_contact_cate_all();
$file_counter1=get_file_amount('photo' , $sn);
$file_counter2=get_file_amount('files' , $sn);
$all_content.="
<tr>
<td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
<td id='name_{$sn}'>{$name}</td>
<td>{$tel}</td>
<td id='email_{$sn}'>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
<td>{$file_counter1}</td>
<td>{$file_counter2}</td>
$fun
</tr>
";
}
$jeditable_set=$jeditable->render();
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
$jeditable_set
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
<th>相片</th>
<th>檔案數</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
del_files('' , 'photo' , $sn);
del_files('' , 'files' , $sn);
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
<?php
//version 1.0
//2012-10-18
//設定模組目錄名稱
define("_MODDIR","contact");
/*
include_once("up_file.php");
表單: enctype='multipart/form-data'
<script src='" . TADTOOLS_URL . "/jquery/jquery.js'></script>
<script src='" . TADTOOLS_URL . "/multiple-file-upload/jquery.MultiFile.js'></script>
<input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>".list_del_file("news_sn", $news_sn)."
儲存:upload_file($col_name, $col_sn, $width);
顯示:show_files($col_name, $col_sn,true,false,false,false); //是否縮圖 , 顯示模式 filename、num , 顯示描述 , 顯示下載次數
單一相片:get_pic_file($col_name="", $col_sn="", $name="" , $sort="", $showkind="images")
刪除:del_files($files_sn, $col_name, $col_sn);
檔案數量:get_file_amount($col_name="", $col_sn="");
種類:img,file
資料表:
CREATE TABLE `files_center` (
`files_sn` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '檔案流水號',
`col_name` varchar(255) NOT NULL COMMENT '欄位名稱',
`col_sn` smallint(5) unsigned NOT NULL COMMENT '欄位編號',
`sort` smallint(5) unsigned NOT NULL COMMENT '排序',
`kind` enum('img' , 'file') NOT NULL COMMENT '檔案種類',
`file_name` varchar(255) NOT NULL COMMENT '檔案名稱',
`file_type` varchar(255) NOT NULL COMMENT '檔案類型',
`file_size` int(10) unsigned NOT NULL COMMENT '檔案大小',
`description` text NOT NULL COMMENT '檔案說明',
`counter` mediumint(8) unsigned NOT NULL COMMENT '下載人次',
PRIMARY KEY (`files_sn`)
) ENGINE=MyISAM COMMENT='檔案資料表';
*/
//檔案中心實體位置
define("_FILES_CENTER_DIR",XOOPS_ROOT_PATH."/uploads/"._MODDIR . "/file");
define("_FILES_CENTER_URL",XOOPS_URL."/uploads/"._MODDIR . "/file");
//檔案中心圖片實體位置
define("_FILES_CENTER_IMAGE_DIR",XOOPS_ROOT_PATH."/uploads/"._MODDIR . "/image");
define("_FILES_CENTER_IMAGE_URL",XOOPS_URL."/uploads/"._MODDIR . "/image");
//檔案中心縮圖實體位置
define("_FILES_CENTER_THUMB_DIR",XOOPS_ROOT_PATH."/uploads/"._MODDIR . "/image/.thumbs");
define("_FILES_CENTER_THUMB_URL",XOOPS_URL."/uploads/"._MODDIR . "/image/.thumbs");
//上傳圖檔,$col_name=對應欄位名稱, $col_sn=對應欄位編號, $種類:img,file, $sort=圖片排序, $files_sn="更新編號"
function upload_file($col_name="", $col_sn="", $main_width="",$upfile='upfile', $sort="", $thumb_width="90", $files_sn=""){
global $xoopsDB, $xoopsUser, $xoopsModule;
//引入上傳物件
include_once TADTOOLS_PATH."/upload/class.upload.php";
//取消上傳時間限制
set_time_limit(0);
//設置上傳大小
ini_set('memory_limit', '80M');
//刪除勾選檔案
if(!empty($_POST['del_file'])){
foreach($_POST['del_file'] as $del_files_sn){
del_files($del_files_sn);
}
}
$files = array();
foreach ($_FILES[$upfile] as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files)){
$files[$i] = array();
}
$files[$i][$k] = $v;
}
}
foreach ($files as $file) {
//先刪除舊檔
if(!empty($files_sn)){
del_files($files_sn);
}
//自動排序
if(empty($sort)){
$sort=auto_sort($col_name, $col_sn);
}
//取得檔案
$file_handle = new upload($file,"zh_TW");
if ($file_handle->uploaded) {
//取得副檔名
$ext=strtolower($file_handle->file_src_name_ext);
//判斷檔案種類
if($ext=="jpg" or $ext=="jpeg" or $ext=="png" or $ext=="gif"){
$kind="img";
}else{
$kind="file";
}
$file_handle->file_safe_name = false;
$file_handle->file_overwrite = true;
$file_handle->file_new_name_body = "{$col_name}_{$col_sn}_{$sort}";
//若是圖片才縮圖
if($kind=="img"){
if($file_handle->image_src_x > $main_width){
$file_handle->image_resize = true;
$file_handle->image_x = $main_width;
$file_handle->image_ratio_y = true;
}
}
$path=($kind=="img")?_FILES_CENTER_IMAGE_DIR:_FILES_CENTER_DIR;
$file_handle->process($path);
$file_handle->auto_create_dir = true;
//若是圖片才製作小縮圖
if($kind=="img"){
$file_handle->file_safe_name = false;
$file_handle->file_overwrite = true;
$file_handle->file_new_name_body = "{$col_name}_{$col_sn}_{$sort}";
if($file_handle->image_src_x > $thumb_width){
$file_handle->image_resize = true;
$file_handle->image_x = $thumb_width;
$file_handle->image_ratio_y = true;
}
$file_handle->process(_FILES_CENTER_THUMB_DIR);
$file_handle->auto_create_dir = true;
}
//上傳檔案
if ($file_handle->processed) {
$file_handle->clean();
$file_name="{$col_name}_{$col_sn}_{$sort}.{$ext}";
if(empty($files_sn)){
$sql = "insert into ".$xoopsDB->prefix(_MODDIR . "_files_center")." (`col_name` , `col_sn` , `sort` , `kind` , `file_name` , `file_type` , `file_size` , `description`) values('$col_name' , '$col_sn' , '$sort' , '{$kind}' , '{$file_name}' , '{$file['type']}' , '{$file['size']}' , '{$file['name']}')";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
}else{
$sql = "replace into ".$xoopsDB->prefix(_MODDIR . "_files_center")." (`files_sn` , `col_name` , `col_sn` , `sort` , `kind` , `file_name` , `file_type` , `file_size` , `description`) values('{$files_sn}' , '$col_name' , '$col_sn' , '$sort' , '{$kind}' , '{$file_name}' , '{$file['type']}' , '{$file['size']}' , '{$file['name']}')";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
}
} else {
redirect_header($_SERVER['PHP_SELF'],3, "Error:".$file_handle->error);
}
}
$sort="";
}
}
//刪除實體檔案
function del_files($files_sn="", $col_name="", $col_sn="", $sort=""){
global $xoopsDB, $xoopsUser;
if(!empty($files_sn)){
$del_what="`files_sn`='{$files_sn}'";
}elseif(!empty($col_name) and !empty($col_sn)){
$and_sort=(empty($sort))?"":"and `sort`='{$sort}'";
$del_what="`col_name`='{$col_name}' and `col_sn`='{$col_sn}' $and_sort";
}
$sql = "select * from ".$xoopsDB->prefix(_MODDIR . "_files_center")." where $del_what";
$result=$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error()."<br>".$sql);
while(list($files_sn, $col_name, $col_sn, $sort, $kind, $file_name, $file_type, $file_size, $description)=$xoopsDB->fetchRow($result)){
$del_sql = "delete from ".$xoopsDB->prefix(_MODDIR . "_files_center")." where files_sn='{$files_sn}'";
$xoopsDB->queryF($del_sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
if($kind=="img"){
unlink(_FILES_CENTER_IMAGE_DIR . "/$file_name");
unlink(_FILES_CENTER_THUMB_DIR . "/$file_name");
}else{
unlink(_FILES_CENTER_DIR . "/$file_name");
}
}
}
//取得檔案 $kind=images(大圖),thumb(小圖),$mode=link(完整連結)or array(路徑陣列)
function get_file($col_name="", $col_sn="", $sort=""){
global $xoopsDB, $xoopsUser, $xoopsModule;
$and_sort=(!empty($sort))?" and `sort`='{$sort}'":"";
$sql = "select * from ".$xoopsDB->prefix(_MODDIR . "_files_center")." where `col_name`='{$col_name}' and `col_sn`='{$col_sn}' $and_sort order by sort";
$result=$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $files_sn, $col_name, $col_sn, $sort, $kind, $file_name, $file_type, $file_size, $description
foreach($all as $k=>$v){
$$k=$v;
}
$files[$files_sn]['kind']=$kind;
$files[$files_sn]['sort']=$sort;
$files[$files_sn]['file_name']=$file_name;
$files[$files_sn]['file_type']=$file_type;
$files[$files_sn]['file_size']=$file_size;
$files[$files_sn]['counter']=$counter;
$files[$files_sn]['description']=$description;
if($kind=="img"){
$pic_name=(file_exists(_FILES_CENTER_IMAGE_DIR . "/{$file_name}"))?_FILES_CENTER_IMAGE_URL."/{$file_name}":TADTOOLS_URL."/multiple-file-upload/no_thumb.gif";
$thumb_pic=(file_exists(_FILES_CENTER_THUMB_DIR . "/{$file_name}"))?_FILES_CENTER_THUMB_URL."/{$file_name}":TADTOOLS_URL."/multiple-file-upload/no_thumb.gif";
$files[$files_sn]['link']="<a href='{$_SERVER['PHP_SELF']}?fop=dl&files_sn=$files_sn' title='{$description}' rel='lytebox'><img src='{$pic_name}' alt='{$description}' title='{$description}' rel='lytebox'></a>";
$files[$files_sn]['path']=$pic_name;
$files[$files_sn]['url']="<a href='{$_SERVER['PHP_SELF']}?fop=dl&files_sn=$files_sn' title='{$description}' target='_blank'>{$description}</a>";
$files[$files_sn]['tb_link']="<a href='{$_SERVER['PHP_SELF']}?fop=dl&files_sn=$files_sn' title='{$description}' rel='lytebox'><img src='$thumb_pic' alt='{$description}' title='{$description}'></a>";
$files[$files_sn]['tb_path']=$thumb_pic;
$files[$files_sn]['tb_url']="<a href='{$_SERVER['PHP_SELF']}?fop=dl&files_sn=$files_sn' title='{$description}' rel='lytebox'>{$description}</a>";
}else{
$files[$files_sn]['link']="<a href='{$_SERVER['PHP_SELF']}?fop=dl&files_sn=$files_sn'>{$description}</a>";
$files[$files_sn]['path']="{$_SERVER['PHP_SELF']}?fop=dl&files_sn=$files_sn";
}
}
return $files;
}
//取得單一圖片 $kind=images(大圖),thumb(小圖)
function get_pic_file($col_name="", $col_sn="", $sort="", $showkind="images"){
global $xoopsDB, $xoopsUser, $xoopsModule;
$and_sort=(!empty($sort))?" and `sort`='{$sort}'":"";
$sql = "select * from ".$xoopsDB->prefix(_MODDIR . "_files_center")." where `col_name`='{$col_name}' and `col_sn`='{$col_sn}' $and_sort order by sort limit 0,1";
$result=$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $files_sn, $col_name, $col_sn, $sort, $kind, $file_name, $file_type, $file_size, $description
foreach($all as $k=>$v){
$$k=$v;
}
if($showkind=="thumb"){
$files=(file_exists(_FILES_CENTER_THUMB_DIR . "/{$file_name}"))?_FILES_CENTER_THUMB_URL."/{$file_name}":"";
}else{
$files=(file_exists(_FILES_CENTER_IMAGE_DIR . "/{$file_name}"))?_FILES_CENTER_IMAGE_URL."/{$file_name}":"";
}
}
return $files;
}
//取得檔案數
function get_file_amount($col_name="", $col_sn=""){
global $xoopsDB, $xoopsUser, $xoopsModule;
$sql = "select count(*) from ".$xoopsDB->prefix(_MODDIR . "_files_center")." where `col_name`='{$col_name}' and `col_sn`='{$col_sn}'";
$result=$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
list($amount)=$xoopsDB->fetchRow($result);
return $amount;
}
//列出可刪除檔案
function list_del_file($col_name="", $col_sn=""){
global $xoopsDB, $xoopsUser, $xoopsModule;
$all_file="";
$sql = "select * from ".$xoopsDB->prefix(_MODDIR . "_files_center")." where `col_name`='{$col_name}' and `col_sn`='{$col_sn}' order by sort";
$result=$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $files_sn, $col_name, $col_sn, $sort, $kind, $file_name, $file_type, $file_size, $description
foreach($all as $k=>$v){
$$k=$v;
}
$all_file.="<input type='checkbox' name='del_file[]' value='{$files_sn}'> $description<br>";
}
if(empty($all_file))return;
$files.="<div>選取欲刪除檔案<br>$all_file</div>";
return $files;
}
//取得附檔或附圖 $show_mode=filename、num
function show_files($col_name="" , $col_sn="" , $thumb=true , $show_mode="" , $show_description=false , $show_dl=false){
if($show_mode==""){
$all_files="<script type='text/javascript' language='javascript' src='" . TADTOOLS_URL . "/lytebox/lytebox.js'></script>
<link rel='stylesheet' href='" . TADTOOLS_URL . "/lytebox/lytebox.css' type='text/css' media='screen' />";
}else{
$all_files="";
}
$file_arr="";
$file_arr=get_file($col_name, $col_sn);
if(empty($file_arr))return;
if($file_arr){
$i=1;
foreach($file_arr as $files_sn => $file_info){
if($show_mode=="filename"){
if($file_info['kind']=="file"){
$all_files.="<div>({$i}) {$file_info['link']}</div>";
}else{
$all_files.="<div>({$i}) {$file_info['url']}</div>";
}
}else{
if($file_info['kind']=="file"){
$linkto=$file_info['path'];
$description=$file_info['description'];
$thumb_pic=TADTOOLS_URL."/multiple-file-upload/downloads.png";
$rel="";
}else{
$linkto=$file_info['path'];
$description=$file_info['description'];
$thumb_pic=($thumb)?$file_info['tb_path']:$file_info['path'];
$rel="rel='lyteshow[{$col_name}_{$course_sn}]' title='{$description}'";
}
//描述顯示
$show_description_txt=($show_description)?"<div style='height:40px;font-size:9pt;font-weight:normal;overflow:hidden;text-align:center;'><a href='{$linkto}' $rel style='font-size:9pt;font-weight:normal;'>{$description}</a></div>":"";
//下載次數顯示
$show_dl_txt=($show_dl)?"<img src='" . TADTOOLS_URL . "/multiple-file-upload/dl_times.gif' alt='download counter' title='download counter' align='absmiddle' hspace=4>: {$file_info['counter']}":"";
$width=($thumb)?110:400;
$pic_height=($thumb)?90:300;
$height=($thumb)?100:320;
$height+=($show_description)?30:0;
$all_files.="
<div style='border:0px solid gray;width:{$width}px;height:{$height}px;float:left;display:inline;margin:2px;'>
<a href='{$linkto}' $rel>
<div align='center' style=\"border:1px solid #CFCFCF;width:{$width}px;height:{$pic_height}px;overflow:hidden;margin:2px auto;background-image:url('{$thumb_pic}');background-repeat: no-repeat;background-position: center center;cursor:pointer;\">
$show_dl_txt
</div>
</a>
$show_description_txt
</div>";
}
$i++;
}
}else{
$all_files="";
}
$all_files.="<div style='clear:both;'></div>";
return $all_files;
}
//取得單一檔案資料
function get_one_file($files_sn=""){
global $xoopsDB, $xoopsUser, $xoopsModule;
$sql = "select * from ".$xoopsDB->prefix(_MODDIR . "_files_center")." where `files_sn`='{$files_sn}'";
$result=$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all=$xoopsDB->fetchArray($result);
return $all;
}
//自動編號
function auto_sort($col_name="", $col_sn=""){
global $xoopsDB, $xoopsUser;
$sql = "select max(sort) from ".$xoopsDB->prefix(_MODDIR . "_files_center")." where `col_name`='{$col_name}' and `col_sn`='{$col_sn}'";
$result=$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
list($max)=$xoopsDB->fetchRow($result);
return ++$max;
}
//下載並新增計數器
function add_file_counter($files_sn=""){
global $xoopsDB;
$file=get_one_file($files_sn);
$sql = "update ".$xoopsDB->prefix(_MODDIR . "_files_center")." set `counter`=`counter`+1 where `files_sn`='{$files_sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
if($file['kind']=="img"){
header("location:"._FILES_CENTER_IMAGE_URL."/{$file['file_name']}");
}else{
header("location:"._FILES_CENTER_URL."/{$file['file_name']}");
}
}
if($_GET['fop']=="dl"){
add_file_counter($_GET['files_sn']);
}
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
include_once "up_file.php";
$xoopsOption['template_main'] = "contact_index_tpl.html";
/*-----------function區--------------*/
//列出所有contact資料
function list_contact(){
global $xoopsDB , $xoopsModule , $isAdmin;
$jquery=get_jquery();
//刪除確認的JS
$main="
$jquery
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
contact_list();
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
contact_list();
});
});
$('#menu2').change(function(){
contact_list();
});
});
//去抓該分類的通訊錄
function contact_list(){
$.post('ajax.php' , {gsn: $('#menu2').val()} , function(data){
$('#contact_list').html(data);
});
}
</script>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>地址</th>
</tr>
<tbody id='contact_list'>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號秀出某筆contact資料內容
function show_one_contact($sn=""){
global $xoopsDB , $xoopsModule , $isAdmin;
if(empty($sn)){
return;
}else{
$sn=intval($sn);
}
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}' ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all=$xoopsDB->fetchArray($result);
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$cate=get_contact_cate($gsn);
//欄位 , 編號 , 是否縮圖 , 顯示模式 (空、filename、num) ,顯示描述,顯示下載次數
//$photo_file=show_files('photo' , $sn);
$photo_file=get_pic_file('photo' , $sn , 2 );
$all_file=show_files('files' , $sn , ture , '' , true , true);
$data="
<table summary='list_table' id='tbl' style='width:100%;'>
<tr><th nowrap>電話</th><td>{$tel}</td></tr>
<tr><th nowrap>信箱</th><td>{$email}</td></tr>
<tr><th nowrap>生日</th><td>{$birthday}</td></tr>
<tr><th nowrap>地址</th><td>{$zip} {$county}{$city}{$addr}</td></tr>
<tr><th nowrap>相片</th><td><img src='{$photo_file}'></td></tr>
<tr><th nowrap>相關檔案</th><td>{$all_file}</td></tr>
</table>";
//raised,corners,inset
$main=div_3d("{$cate['title']} / {$name}",$data,"corners");
return $main;
}
/*-----------執行動作判斷區----------*/
$op=empty($_REQUEST['op'])?"":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
default:
if(empty($sn)){
$main=list_contact();
}else{
$main=show_one_contact($sn);
}
break;
}
/*-----------秀出結果區--------------*/
module_footer($main);
?>
<script type='text/javascript' src='".TADTOOLS_URL."/My97DatePicker/WdatePicker.js'></script>
onClick=\"WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})\"
$jquery_path=get_jquery(true); //TadTools引入jquery ui
$now=time(); //用時間來替頁籤命名,以避免id重複
$jquery_ui="$jquery_path
<script type='text/javascript' src='".XOOPS_URL."/modules/tadtools/jqueryCookie/jquery.cookie.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
var $tabs = $('#jquery-tabs".$now."').tabs({ cookie: { expires: 30 } , collapsible: true});
});
</script>
<div id='jquery-tabs{$now}'>
<ul>
<li><a href='#tabs-1'>頁籤名稱1</a></li>
<li><a href='ajax.php'>頁籤名稱2</a></li>
</ul>
<div id='tabs-1'>
頁籤內容
</div>
</div>
$('.tabs-bottom .ui-tabs-nav, .tabs-bottom .ui-tabs-nav > *')
.removeClass('ui-corner-all ui-corner-top')
.addClass('ui-corner-bottom');
$('.tabs-bottom .ui-tabs-nav').appendTo('.tabs-bottom');
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
include_once "../up_file.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
$formValidator= new formValidator("#myForm",false);
$formValidator_code=$formValidator->render();
$main="
$jquery
$formValidator_code
<script type='text/javascript' src='".TADTOOLS_URL."/My97DatePicker/WdatePicker.js'></script>
<script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<script src='".TADTOOLS_URL."/multiple-file-upload/jquery.MultiFile.js'></script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm' enctype='multipart/form-data'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' class='validate[required,minSize[2],maxSize[10]]'></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' class='validate[required,custom[phone]]'></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' class='validate[required,custom[email]]'></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' onClick=\"WdatePicker({dateFmt:'yyyy-MM-dd' , isShowWeek:true , skin:'whyGreen' , maxDate:'%y-%M-%d' , readOnly: true , isShowClear: false , firstDayOfWeek:1})\" class='Wdate'></td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳圖片</td>
<td class='col'>
<input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>".
list_del_file('photo',$sn)."
</td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳相關檔案</td>
<td class='col'>
<input type='file' name='docs[]' class='multi' >".
list_del_file('files',$sn)."
</td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
//製作選項
$sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
$cate_arr[]="'$gsn':'$title'";
}
$cate_option=implode(" , ",$cate_arr);
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
//$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
</td>":"";
$jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
$jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
$jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
$cate=get_contact_cate_all();
$file_counter1=get_file_amount('photo' , $sn);
$file_counter2=get_file_amount('files' , $sn);
$all_content.="
<tr>
<td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
<td id='name_{$sn}'>{$name}</td>
<td>{$tel}</td>
<td id='email_{$sn}'>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
<td>{$file_counter1}</td>
<td>{$file_counter2}</td>
$fun
</tr>
";
}
$jeditable_set=$jeditable->render();
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
$jeditable_set
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
<th>相片</th>
<th>檔案數</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
del_files('' , 'photo' , $sn);
del_files('' , 'files' , $sn);
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
include_once "up_file.php";
$xoopsOption['template_main'] = "contact_index_tpl.html";
/*-----------function區--------------*/
//列出所有contact資料
function list_contact(){
global $xoopsDB , $xoopsModule , $isAdmin;
$jquery=get_jquery();
//刪除確認的JS
$main="
$jquery
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
contact_list();
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
contact_list();
});
});
$('#menu2').change(function(){
contact_list();
});
});
//去抓該分類的通訊錄
function contact_list(){
$.post('ajax.php' , {gsn: $('#menu2').val()} , function(data){
$('#contact_list').html(data);
});
}
</script>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>地址</th>
</tr>
<tbody id='contact_list'>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號秀出某筆contact資料內容
function show_one_contact($sn=""){
global $xoopsDB , $xoopsModule , $isAdmin;
if(empty($sn)){
return;
}else{
$sn=intval($sn);
}
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}' ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all=$xoopsDB->fetchArray($result);
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$cate=get_contact_cate($gsn);
$jquery_path=get_jquery(true); //TadTools引入jquery ui
$data="
$jquery_path
<script type='text/javascript' src='".XOOPS_URL."/modules/tadtools/jqueryCookie/jquery.cookie.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
var \$tabs = $('#jquery-tabs').tabs({ cookie: { expires: 30 } , collapsible: true});
$('.tabs-bottom .ui-tabs-nav, .tabs-bottom .ui-tabs-nav > *')
.removeClass('ui-corner-all ui-corner-top')
.addClass('ui-corner-bottom');
$('.tabs-bottom .ui-tabs-nav').appendTo('.tabs-bottom');
});
</script>
<div id='jquery-tabs' class='tabs-bottom'>
<ul>
<li><a href='#tabs-1'>基本資料</a></li>
<li><a href='ajax2.php?op=photo&sn=$sn'>相關相片</a></li>
<li><a href='ajax2.php?op=file&sn=$sn'>相關檔案</a></li>
</ul>
<div id='tabs-1'>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr><th nowrap>電話</th><td>{$tel}</td></tr>
<tr><th nowrap>信箱</th><td>{$email}</td></tr>
<tr><th nowrap>生日</th><td>{$birthday}</td></tr>
<tr><th nowrap>地址</th><td>{$zip} {$county}{$city}{$addr}</td></tr>
</table>
</div>
</div>
";
//raised,corners,inset
$main=div_3d("{$cate['title']} / {$name}",$data,"corners");
return $main;
}
/*-----------執行動作判斷區----------*/
$op=empty($_REQUEST['op'])?"":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
default:
if(empty($sn)){
$main=list_contact();
}else{
$main=show_one_contact($sn);
}
break;
}
/*-----------秀出結果區--------------*/
module_footer($main);
?>
<?php
include_once "header.php";
include_once "up_file.php";
$op=isset($_GET['op'])?$_GET['op']:"";
$sn=isset($_GET['sn'])?$_GET['sn']:"";
switch($op){
case "photo":
$main=get_photo($sn);
break;
case "file":
$main=get_files($sn);
break;
}
echo $main;
function get_photo($sn=""){
$photo_file=get_pic_file('photo' , $sn , 2 );
$photo="<img src='{$photo_file}'>";
return $photo;
}
function get_files($sn=""){
$file=show_files('files' , $sn , ture , '' , true , true);
return $file;
}
?>
<script src='class/fullcalendar/fullcalendar.js' type='text/javascript'></script>
<link rel='stylesheet' type='text/css' href='class/fullcalendar/fullcalendar.css'>
<script src='class/fullcalendar/gcal.js' type='text/javascript'></script>
<script type='text/javascript'>
$(function() {
$('#calendar').fullCalendar({
//相關參數
})
});
</script>
<div id='calendar'></div>
$myEvents[$i]['id']=$sn; $myEvents[$i]['title']=$event; $myEvents[$i]['start']=strtotime($date);
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
include_once "up_file.php";
$xoopsOption['template_main'] = "contact_index_tpl.html";
/*-----------function區--------------*/
$jquery=get_jquery(true);
$main="
$jquery
<script src='class/fullcalendar/fullcalendar.js' type='text/javascript'></script>
<link rel='stylesheet' type='text/css' href='class/fullcalendar/fullcalendar.css'>
<script src='class/fullcalendar/gcal.js' type='text/javascript'></script>
<script type='text/javascript'>
$(function() {
$('#calendar').fullCalendar({
header: { left:'today', center:'title', right:' prev,next' } ,
buttonText:{today:'今天',prev:'上個月',next:'下個月'},
defaultView:'month',
titleFormat: {
month: 'yyyy年MMM'
},
monthNames: ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],
monthNamesShort: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
dayNamesShort: ['日','一','二','三','四','五','六'],
//events: 'https://www.google.com/calendar/feeds/taiwan__zh_tw%40holiday.calendar.google.com/public/basic',
events: 'get_events.php'
})
});
</script>
<div id='calendar'></div>
";
/*-----------秀出結果區--------------*/
module_footer($main);
?>
<?php
include_once "common/tool.php";
include_once "function.php";
//判斷是否對該模組有管理權限
$isAdmin=isAdmin();
$interface_menu[_MD_CONTAC_SMNAME1]="index.php";
$interface_menu['生日一覽']="birthday.php";
if($isAdmin){
$interface_menu[_TO_ADMIN_PAGE]="admin/index.php";
}
//給獨立模組用的登出按鈕
$interface_menu=logout_button($interface_menu);
//模組前台選單
$module_menu=toolbar($interface_menu);
//引入CSS樣式表檔案
$module_css="<link rel='stylesheet' type='text/css' media='screen' href='module.css' />";
?>
<?php
include_once "header.php";
$sql = "select `sn` , `name` , `birthday` from `".$xoopsDB->prefix("contact")."`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all_content="";
$i=0;
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$myEvents[$i]['id']=$sn;
$myEvents[$i]['title']=$name;
$myEvents[$i]['start']=strtotime($birthday);
$i++;
}
echo json_encode($myEvents);
?>
if(file_exists(XOOPS_ROOT_PATH."/modules/tadtools/mobile_device_detect.php")){
include_once XOOPS_ROOT_PATH."/modules/tadtools/mobile_device_detect.php";
mobile_device_detect(true, false, true, true, true, true, true, 'pda.php', false);
}
$modversion['blocks'][0]['file'] = "contact_qrcode.php"; $modversion['blocks'][0]['name'] = 'QR Code '; $modversion['blocks'][0]['description'] = '產生連到手持裝置頁面的QR Code條碼'; $modversion['blocks'][0]['show_func'] = "contact_qrcode_show"; $modversion['blocks'][0]['template'] = "contact_qrcode.html";
<?php
function contact_qrcode_show($options){
if(preg_match("/contact\/index.php\?sn=/i", $_SERVER['REQUEST_URI'])){
$url=str_replace("index.php","pda.php",$_SERVER['REQUEST_URI']);
}elseif(preg_match("/contact\/$/i", $_SERVER['REQUEST_URI'])){
$url=$_SERVER['REQUEST_URI']."pda.php";
}else{
return ;
}
$block="";
if(file_exists(TADTOOLS_PATH."/qrcode.php")){
include_once TADTOOLS_PATH."/qrcode.php";
$qrcode= new qrcode();
$block=$qrcode->render($url);
}
return $block;
}
?>
<?php $modversion = array(); //---模組基本資訊---// $modversion['name'] = _MI_CONTAC_NAME; $modversion['version'] = '1.0'; $modversion['description'] = _MI_CONTAC_DESC; $modversion['author'] = _MI_CONTAC_AUTHOR; $modversion['credits'] = _MI_CONTAC_CREDITS; $modversion['help'] = 'page=help'; $modversion['license'] = 'GPL see LICENSE'; $modversion['image'] = "images/logo.png"; $modversion['dirname'] = basename(dirname(__FILE__)); //---模組狀態資訊---// $modversion['status_version'] = '1.0'; $modversion['release_date'] = '2012-09-19'; $modversion['module_website_url'] = 'http://tad0616.net'; $modversion['module_website_name'] = _MI_CONTAC_AUTHOR_WEB; $modversion['module_status'] = 'release'; $modversion['author_website_url'] = 'http://tad0616.net'; $modversion['author_website_name'] = _MI_CONTAC_AUTHOR_WEB; $modversion['min_php']= 5.2; $modversion['min_xoops']='2.5'; //---啟動後台管理界面選單---// $modversion['system_menu'] = 1;//---資料表架構---// $modversion['sqlfile']['mysql'] = "sql/mysql.sql"; $modversion['tables'][1] = "contact"; $modversion['tables'][2] = "contact_cate"; $modversion['tables'][3] = "contact_files_center"; //---管理介面設定---// $modversion['hasAdmin'] = 1; $modversion['adminindex'] = "admin/index.php"; $modversion['adminmenu'] = "admin/menu.php"; //---使用者主選單設定---// $modversion['hasMain'] = 1; //---樣板設定---// $modversion['templates'][1]['file'] = 'contact_index_tpl.html'; $modversion['templates'][1]['description'] = _MI_CONTAC_TEMPLATE_DESC1; //---區塊設定---// $modversion['blocks'][0]['file'] = "contact_qrcode.php"; $modversion['blocks'][0]['name'] = 'QR Code '; $modversion['blocks'][0]['description'] = '產生連到手持裝置頁面的QR Code條碼'; $modversion['blocks'][0]['show_func'] = "contact_qrcode_show"; $modversion['blocks'][0]['template'] = "contact_qrcode.html"; ?>
<?php
function contact_qrcode_show($options){
if(preg_match("/contact\/index.php\?sn=/i", $_SERVER['REQUEST_URI'])){
$url=str_replace("index.php","pda.php",$_SERVER['REQUEST_URI']);
}elseif(preg_match("/contact\/$/i", $_SERVER['REQUEST_URI'])){
$url=$_SERVER['REQUEST_URI']."pda.php";
}else{
return ;
}
$block="";
if(file_exists(TADTOOLS_PATH."/qrcode.php")){
include_once TADTOOLS_PATH."/qrcode.php";
$qrcode= new qrcode();
$block=$qrcode->render($url);
}
return $block;
}
?>
<{$block}>
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
/*-----------function區--------------*/
$main="這是手機頁面,讀取的是編號 {$_GET['sn']}";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php echo $main;?>
</body>
</html>
<?php
function contact_qrcode_show($options){
/*
if(preg_match("/contact\/index.php\?sn=/i", $_SERVER['REQUEST_URI'])){
$url=str_replace("index.php","pda.php",$_SERVER['REQUEST_URI']);
}elseif(preg_match("/contact\/$/i", $_SERVER['REQUEST_URI'])){
$url=$_SERVER['REQUEST_URI']."pda.php";
}else{
return ;
}
*/
$url=$_SERVER['REQUEST_URI'];
$block="";
if(file_exists(TADTOOLS_PATH."/qrcode.php")){
include_once TADTOOLS_PATH."/qrcode.php";
$qrcode= new qrcode();
$block=$qrcode->render($url);
}
return $block;
}
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
include_once "up_file.php";
$xoopsOption['template_main'] = "contact_index_tpl.html";
//手持裝置判斷
if(file_exists(XOOPS_ROOT_PATH."/modules/tadtools/mobile_device_detect.php")){
include_once XOOPS_ROOT_PATH."/modules/tadtools/mobile_device_detect.php";
mobile_device_detect(true, false, true, true, true, true, true, "pda.php?sn={$_GET['sn']}", false);
}
/*-----------function區--------------*/
//列出所有contact資料
function list_contact(){
global $xoopsDB , $xoopsModule , $isAdmin;
$jquery=get_jquery();
//刪除確認的JS
$main="
$jquery
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
contact_list();
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
contact_list();
});
});
$('#menu2').change(function(){
contact_list();
});
});
//去抓該分類的通訊錄
function contact_list(){
$.post('ajax.php' , {gsn: $('#menu2').val()} , function(data){
$('#contact_list').html(data);
});
}
</script>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>地址</th>
</tr>
<tbody id='contact_list'>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號秀出某筆contact資料內容
function show_one_contact($sn=""){
global $xoopsDB , $xoopsModule , $isAdmin;
if(empty($sn)){
return;
}else{
$sn=intval($sn);
}
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}' ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all=$xoopsDB->fetchArray($result);
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$cate=get_contact_cate($gsn);
$jquery_path=get_jquery(true); //TadTools引入jquery ui
$data="
$jquery_path
<script type='text/javascript' src='".XOOPS_URL."/modules/tadtools/jqueryCookie/jquery.cookie.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#jquery-tabs').tabs({ cookie: { expires: 30 }});
});
</script>
<div id='jquery-tabs'>
<ul>
<li><a href='#tabs-1'>基本資料</a></li>
<li><a href='ajax2.php?op=photo&sn=$sn'>相關相片</a></li>
<li><a href='ajax2.php?op=file&sn=$sn'>相關檔案</a></li>
</ul>
<div id='tabs-1'>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr><th nowrap>電話</th><td>{$tel}</td></tr>
<tr><th nowrap>信箱</th><td>{$email}</td></tr>
<tr><th nowrap>生日</th><td>{$birthday}</td></tr>
<tr><th nowrap>地址</th><td>{$zip} {$county}{$city}{$addr}</td></tr>
</table>
</div>
</div>
";
include_once XOOPS_ROOT_PATH."/modules/tadtools/qrcode/qrcode.php";
$a = new QR("Email:{$email}");
file_put_contents(XOOPS_ROOT_PATH."/uploads/qrcode/{$sn}.gif",$a->image(2));
$data.="<img src='".XOOPS_URL."/uploads/qrcode/{$sn}.gif'>";
//raised,corners,inset
$main=div_3d("{$cate['title']} / {$name}",$data,"corners");
return $main;
}
/*-----------執行動作判斷區----------*/
$op=empty($_REQUEST['op'])?"":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
default:
if(empty($sn)){
$main=list_contact();
}else{
$main=show_one_contact($sn);
}
break;
}
/*-----------秀出結果區--------------*/
module_footer($main);
?>
<!DOCTYPE html>
<html>
<head>
<title>通訊錄</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' href='".XOOPS_URL."/modules/tadtools/jquery.mobile/jquery.mobile.css' />
<script src='".XOOPS_URL."/modules/tadtools/jquery/jquery.js'></script>
<script src='".XOOPS_URL."/modules/tadtools/jquery.mobile/jquery.mobile.js'></script>
</head>
<body>
<div data-role='page'>
<div data-role='header'>
<a data-icon='arrow-l' data-rel='back'>回上頁</a>
<h1>通訊錄</h1>
<a href='#' data-icon='home'>回首頁</a>
<div data-role='navbar' >
<ul>
<li><a href='#' data-icon='star' data-iconpos='top' data-theme='b'>基本資料</a></li>
<li><a href='#' data-icon='search' data-iconpos='top' data-theme='b'>相關相片</a></li>
<li><a href='#' data-icon='check' data-iconpos='top' data-theme='b'>相關檔案</a></li>
</ul>
</div>
</div>
<div data-role='content'>
<ul data-role='listview' data-inset='false'>
<li data-role='list-divider'>所有通訊錄列表</li>
<li><a href='#page2'><img src='images/pic.png' /><h3>姓名</h3><p>文字描述</p></a>
<span class='ui-li-count'>2</span></li>
</ul>
</div>
<div data-role='footer'>共 N 筆資料</div>
</div>
<div data-role='page' id='page2'><div data-role='content'>第二頁</div></div>
</body>
</html>
<?php
function contact_qrcode_show($options){
if(preg_match("/contact\/index.php\?sn=/i" , $_SERVER['REQUEST_URI'])){
$url=str_replace("index.php","pda.php" , $_SERVER['REQUEST_URI']);
}elseif(preg_match("/contact\/$/i" , $_SERVER['REQUEST_URI'])){
$url=$_SERVER['REQUEST_URI']."pda.php";
}else{
return ;
}
//$url=$_SERVER['REQUEST_URI'];
$block="";
if(file_exists(TADTOOLS_PATH."/qrcode.php")){
include_once TADTOOLS_PATH."/qrcode.php";
$qrcode= new qrcode();
$block=$qrcode->render($url);
}
return $block;
}
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
include_once "up_file.php";
/*-----------function區--------------*/
//抓所有分類
$cate=get_contact_cate_all();
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$content="<li data-role='list-divider'>所有通訊錄列表</li>";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$photo_file = get_pic_file('photo' , $sn , 1 , 'thumb');
$photo=empty($photo_file)?"" : "<img src='{$photo_file}'>";
$content.="
<li>
<a href='data.php?sn=$sn'>{$photo}<h3>{$name}</h3><p>電話:{$tel} 信箱:{$email}</p></a>
<span class='ui-li-count'>{$cate[$gsn]['title']}</span>
</li>
";
}
echo "<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' href='".XOOPS_URL."/modules/tadtools/jquery.mobile/jquery.mobile.css' />
<script src='".XOOPS_URL."/modules/tadtools/jquery/jquery.js'></script>
<script src='".XOOPS_URL."/modules/tadtools/jquery.mobile/jquery.mobile.js'></script>
</head>
<body>
<div data-role='page' id='p1'>
<div data-role='header'>
<a data-icon='arrow-l' data-rel='back'>回上頁</a>
<h1>所有通訊錄列表</h1>
<a href='pda.php' data-icon='home'>回首頁</a>
</div>
<div data-role='content'>
<ul data-role='listview' data-inset='false'>
$content
</ul>
</div>
<div data-role='footer'></div>
</div>
</body>
</html>
";
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
include_once "up_file.php";
/*-----------function區--------------*/
echo "<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' href='".XOOPS_URL."/modules/tadtools/jquery.mobile/jquery.mobile.css' />
<script src='".XOOPS_URL."/modules/tadtools/jquery/jquery.js'></script>
<script src='".XOOPS_URL."/modules/tadtools/jquery.mobile/jquery.mobile.js'></script>
</head>
<body>
<div data-role='page' id='p1'>
<div data-role='header'>
<a data-icon='arrow-l' data-rel='back'>回上頁</a>
<h1>詳細資料</h1>
<a href='pda.php' data-icon='home'>回首頁</a>
<div data-role='navbar' >
<ul>
<li><a href='#' data-icon='star' data-iconpos='top' data-theme='a'>基本資料</a></li>
<li><a href='#' data-icon='search' data-iconpos='top' data-theme='a'>相關相片</a></li>
<li><a href='#' data-icon='check' data-iconpos='top' data-theme='a'>相關檔案</a></li>
</ul>
</div>
</div>
<div data-role='content'>
{$_GET['sn']}
</div>
<div data-role='footer'></div>
</div>
</body>
</html>
";
?>
$sql = "select `sn`,`name` from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql);
$option="";
while(list($sn,$name)=$xoopsDB->fetchRow($result)){
$selected=($sn==$_GET['sn'])?"selected":"";
$option.="<option value='$sn' $selected>$name</option>";
}
<select onChange=\"location.href='data.php?op={$_GET['op']}&sn='+this.value\">$option
</select>
<?php
include_once "header.php";
include_once XOOPS_ROOT_PATH."/modules/tadtools/jupload/jupload.php";
if(!$xoopsUser) die('無上傳權限');
if($_GET['op']=='import'){
if ($dh = opendir(XOOPS_ROOT_PATH."/uploads/contact/video")) {
while (($file = readdir($dh)) !== false) {
if(strlen($file)<=2)continue;
$f=explode(".",$file);
$ext=strtolower($f[1]);
rename(XOOPS_ROOT_PATH."/uploads/contact/video/{$file}",XOOPS_ROOT_PATH."/uploads/contact/{$_GET['sn']}.{$ext}");
die("請點擊「影片」以觀看之");
}
}
}else{
$appletParameters = array(
'maxFileSize' => '2G',
'postURL' => XOOPS_URL.'/modules/contact/jupload.php',
'archive' => XOOPS_URL.'/modules/tadtools/jupload/wjhk.jupload.jar',
'afterUploadURL' => XOOPS_URL."/modules/contact/index.php?sn={$_GET['sn']}&op=import",
'allowedFileExtensions' => 'flv/mp4',
'sendMD5Sum' => 'true',
'showLogWindow' => 'false',
'debugLevel' => 99
);
$classParameters = array(
'demo_mode' => false,
'allow_subdirs' => true,
'destdir' => XOOPS_ROOT_PATH."/uploads/contact/video"
);
$juploadPhpSupportClass = new JUpload($appletParameters, $classParameters);
echo "<!--JUPLOAD_APPLET-->";
}
?>
<?php
include_once "header.php";
include_once XOOPS_ROOT_PATH."/modules/tadtools/jwplayer.php";
$jw=new JwPlayer("play" , XOOPS_URL."/uploads/contact/{$_GET['sn']}.mp4" , $image , $width , $height , $skin , $mode , $display , $backcolor , $frontcolor , $lightcolor , $screencolor);
$player=$jw->render();
echo $player;
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
include_once "up_file.php";
/*-----------function區--------------*/
$op=isset($_GET['op'])?$_GET['op']:"";
$sn=isset($_GET['sn'])?$_GET['sn']:"";
switch($op){
case "photo":
$main=get_photo($sn);
break;
case "file":
$main=get_files($sn);
break;
default:
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}' ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all=$xoopsDB->fetchArray($result);
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$main="
<table summary='list_table' id='tbl' style='width:100%;'>
<tr><th nowrap>姓名</th><td>{$name}</td></tr>
<tr><th nowrap>電話</th><td>{$tel}</td></tr>
<tr><th nowrap>信箱</th><td>{$email}</td></tr>
<tr><th nowrap>生日</th><td>{$birthday}</td></tr>
<tr><th nowrap>地址</th><td>{$zip} {$county}{$city}{$addr}</td></tr>
</table>";
break;
}
$sql = "select sn,name from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql);
while(list($sn,$name)=$xoopsDB->fetchRow($result)){
$selected=($sn==$_GET['sn'])?"selected":"";
$option.="<option value='$sn' $selected>$name</option>";
}
echo "<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' href='".XOOPS_URL."/modules/tadtools/jquery.mobile/jquery.mobile.css' />
<script src='".XOOPS_URL."/modules/tadtools/jquery/jquery.js'></script>
<script src='".XOOPS_URL."/modules/tadtools/jquery.mobile/jquery.mobile.js'></script>
</head>
<body>
<div data-role='page' id='p1'>
<div data-role='header'>
<a data-icon='arrow-l' data-rel='back'>回上頁</a>
<h3><select onChange=\"location.href='data.php?op=$op&sn=' + this.value\">$option</select></h3>
<a href='pda.php' data-icon='home'>回首頁</a>
<div data-role='navbar' >
<ul>
<li><a href='data.php?op=base&sn={$_GET['sn']}' data-icon='star' data-iconpos='top' data-theme='a'>基本資料</a></li>
<li><a href='data.php?op=photo&sn={$_GET['sn']}' data-icon='search' data-iconpos='top' data-theme='a'>相關相片</a></li>
<li><a href='data.php?op=file&sn={$_GET['sn']}' data-icon='check' data-iconpos='top' data-theme='a'>相關檔案</a></li>
</ul>
</div>
</div>
<div data-role='content'>
{$main}
</div>
<div data-role='footer'></div>
</div>
</body>
</html>
";
function get_photo($sn=""){
$photo_file=get_pic_file('photo' , $sn , 1 );
$photo="<img src='{$photo_file}'>";
return $photo;
}
function get_files($sn=""){
$file=show_files('files' , $sn );
return $file;
}
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header.php";
include_once "up_file.php";
$xoopsOption['template_main'] = "contact_index_tpl.html";
//手持裝置判斷
if(file_exists(XOOPS_ROOT_PATH."/modules/tadtools/mobile_device_detect.php")){
include_once XOOPS_ROOT_PATH."/modules/tadtools/mobile_device_detect.php";
mobile_device_detect(true, false, true, true, true, true, true, "pda.php?sn={$_GET['sn']}", false);
}
/*-----------function區--------------*/
//列出所有contact資料
function list_contact(){
global $xoopsDB , $xoopsModule , $isAdmin;
$jquery=get_jquery();
//刪除確認的JS
$main="
$jquery
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
contact_list();
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
contact_list();
});
});
$('#menu2').change(function(){
contact_list();
});
});
//去抓該分類的通訊錄
function contact_list(){
$.post('ajax.php' , {gsn: $('#menu2').val()} , function(data){
$('#contact_list').html(data);
});
}
</script>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>地址</th>
</tr>
<tbody id='contact_list'>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號秀出某筆contact資料內容
function show_one_contact($sn=""){
global $xoopsDB , $xoopsModule , $isAdmin;
if(empty($sn)){
return;
}else{
$sn=intval($sn);
}
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}' ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all=$xoopsDB->fetchArray($result);
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$cate=get_contact_cate($gsn);
$jquery_path=get_jquery(true); //TadTools引入jquery ui
$data="
$jquery_path
<script type='text/javascript' src='".XOOPS_URL."/modules/tadtools/jqueryCookie/jquery.cookie.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#jquery-tabs').tabs({ cookie: { expires: 30 }});
});
</script>
<div id='jquery-tabs'>
<ul>
<li><a href='#tabs-1'>基本資料</a></li>
<li><a href='ajax2.php?op=photo&sn=$sn'>相關相片</a></li>
<li><a href='ajax2.php?op=file&sn=$sn'>相關檔案</a></li>
<li><a href='jupload.php?sn=$sn'>上傳影片</a></li>
<li><a href='play.php?sn=$sn'>播放</a></li>
</ul>
<div id='tabs-1'>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr><th nowrap>電話</th><td>{$tel}</td></tr>
<tr><th nowrap>信箱</th><td>{$email}</td></tr>
<tr><th nowrap>生日</th><td>{$birthday}</td></tr>
<tr><th nowrap>地址</th><td>{$zip} {$county}{$city}{$addr}</td></tr>
</table>
</div>
</div>
";
include_once XOOPS_ROOT_PATH."/modules/tadtools/qrcode/qrcode.php";
$a = new QR("Email:{$email}");
file_put_contents(XOOPS_ROOT_PATH."/uploads/qrcode/{$sn}.gif",$a->image(2));
$data.="<img src='".XOOPS_URL."/uploads/qrcode/{$sn}.gif'>";
//raised,corners,inset
$main=div_3d("{$cate['title']} / {$name}",$data,"corners");
return $main;
}
/*-----------執行動作判斷區----------*/
$op=empty($_REQUEST['op'])?"":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"" : intval($_REQUEST['files_sn']);
switch($op){
default:
if(empty($sn)){
$main=list_contact();
}else{
$main=show_one_contact($sn);
}
break;
}
/*-----------秀出結果區--------------*/
module_footer($main);
?>
<?php
include_once "header.php";
include_once XOOPS_ROOT_PATH."/modules/tadtools/jupload/jupload.php";
if(!$xoopsUser) die('無上傳權限');
if($_GET['op']=='import'){
if ($dh = opendir(XOOPS_ROOT_PATH."/uploads/contact/video")) {
while (($file = readdir($dh)) !== false) {
if(strlen($file)<=2)continue;
$f=explode(".",$file);
$ext=strtolower($f[1]);
rename(XOOPS_ROOT_PATH."/uploads/contact/video/{$file}",XOOPS_ROOT_PATH."/uploads/contact/{$_GET['sn']}.{$ext}");
die("請點擊「影片」以觀看之");
}
}
}else{
$appletParameters = array(
'maxFileSize' => '2G',
'postURL' => XOOPS_URL.'/modules/contact/jupload.php',
'archive' => XOOPS_URL.'/modules/tadtools/jupload/wjhk.jupload.jar',
'afterUploadURL' => XOOPS_URL."/modules/contact/index.php?sn={$_GET['sn']}&op=import",
'allowedFileExtensions' => 'flv/mp4',
'sendMD5Sum' => 'true',
'showLogWindow' => 'false',
'debugLevel' => 99
);
$classParameters = array(
'demo_mode' => false,
'allow_subdirs' => true,
'destdir' => XOOPS_ROOT_PATH."/uploads/contact/video"
);
$juploadPhpSupportClass = new JUpload($appletParameters, $classParameters);
echo "<!--JUPLOAD_APPLET-->";
}
?>
<?php
include_once "header.php";
include_once XOOPS_ROOT_PATH."/modules/tadtools/jwplayer.php";
$jw=new JwPlayer("play" , XOOPS_URL."/uploads/contact/video/ttt.flv");
$player=$jw->render();
echo $player;
?>
<form action='index.php' method='post' enctype='multipart/form-data'> <INPUT type='file' name='userfile'> <INPUT type='hidden' name='op' value='import'> <INPUT type='submit' value='匯入'> </form>
$handle = fopen($_FILES['userfile']['tmp_name'], "r") or die("無法開啟");
while (($data = fgetcsv($handle, 1000)) !== FALSE) {
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$data[0]}' , '{$data[1]}' , '{$data[2]}' , '{$data[3]}' , '{$data[4]}' , '{$data[5]}' , '{$data[6]}' , '{$data[7]}' , '{$data[8]}')";
$xoopsDB->queryF($sql);
}
fclose($handle);
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=檔名");
echo 主要內容;
exit;
CSV檔:text/x-csv word檔:application/msword excel檔:application/vnd.ms-excel
gsn,name,tel,email,birthday,zip,county,city,addr 1,首羿國際股份有限公司,04-23231455,[email protected],1960/1/1,700,臺南市,中西區,五妃街1號 1,慶銘資訊有限公司,04-22516589,[email protected],1960/1/2,700,臺南市,中西區,五妃街2號 1,國眾電腦股份有限公司台中分公司,04-23291455,[email protected],1960/1/3,700,臺南市,中西區,五妃街3號 1,鼎新電腦股份有限公司台中分公司,04-27060626,[email protected],1960/1/4,700,臺南市,中西區,五妃街4號 3,置新科技股份有限公司,04-26331613,[email protected],1960/1/5,700,臺南市,中西區,五妃街5號 3,東盈科技有限公司,02-23119986,[email protected],1960/1/6,700,臺南市,中西區,五妃街6號 3,飛資得股份有限公司,04-22084278,[email protected],1960/1/7,700,臺南市,中西區,五妃街7號 3,敦陽科技有限公司,04-23804986,[email protected],1960/1/8,700,臺南市,中西區,五妃街8號 3,統一元氣資產管理股份有限公司,04-23105459,[email protected],1960/1/9,700,臺南市,中西區,五妃街9號 4,祥懋資訊有限公司,02-2395-6966#2552,[email protected],1960/1/10,700,臺南市,中西區,五妃街10號 4,言瑞開發科技股份有限,04-23807366,[email protected],1960/1/11,700,臺南市,中西區,五妃街11號 4,三商電腦股份有限公司,02-27170900,[email protected],1960/1/12,700,臺南市,中西區,五妃街12號 4,豪勉科技股份有限公司,02-27004288,[email protected],1960/1/13,700,臺南市,中西區,五妃街13號 4,亞芬資訊有限公司,04-22085688,[email protected],1960/1/14,700,臺南市,中西區,五妃街14號 7,晶茂資訊科技有限公司,04-23100231,[email protected],1960/1/15,700,臺南市,中西區,五妃街15號 7,禾宇精密科技股份有限公司,02-22130778,[email protected],1960/1/16,700,臺南市,中西區,五妃街16號 7,僑高科技有限公司,04-22066100,[email protected],1960/1/17,700,臺南市,中西區,五妃街17號 7,力梭資訊股份有限公司,02-27889300,[email protected],1960/1/18,700,臺南市,中西區,五妃街18號 7,泰鋒電腦股份有限公司,04-23019505#208,[email protected],1960/1/19,700,臺南市,中西區,五妃街19號 7,士欣資訊管理股份有限公司,04-7740519,[email protected],1960/1/20,700,臺南市,中西區,五妃街20號 8,皮托科技股份有限公司,02-27912917,[email protected],1960/1/21,700,臺南市,中西區,五妃街21號 8,方鼎資訊股份有限公司,04-26237585,[email protected],1960/1/22,700,臺南市,中西區,五妃街22號 8,以柔資訊股份有限公司,04-23289212,[email protected],1960/1/23,700,臺南市,中西區,五妃街23號 8,安潤科技股份有限公司,05-6330599,[email protected],1960/1/24,700,臺南市,中西區,五妃街24號 8,伸峰科技股份有限公司,03-6588899#126,[email protected],1960/1/25,700,臺南市,中西區,五妃街25號 9,東杰宏實業有限公司,04-22372123#15,[email protected],1960/1/26,700,臺南市,中西區,五妃街26號 9,欣峰資訊股份有限公司,04-26867733,[email protected],1960/1/27,700,臺南市,中西區,五妃街27號 9,采奕資訊股份有限公司,04-22447586,[email protected],1960/1/28,700,臺南市,中西區,五妃街28號 9,長高科技股份有限公司,02-82315565,[email protected],1960/1/29,700,臺南市,中西區,五妃街29號 9,信昌科技股份有限公司,02-2627-1899#317,[email protected],1960/1/30,700,臺南市,中西區,五妃街30號 10,星耀資訊有限公司,02-29637781,[email protected],1960/1/31,700,臺南市,中西區,五妃街31號 10,活力點子數位資訊有限公司,04-24610791,[email protected],1960/2/1,700,臺南市,中西區,五妃街32號 10,智域資訊股份有限公司,04-22731469,[email protected],1960/2/2,700,臺南市,中西區,五妃街33號 10,采威國際資訊股份有限公司,04-23262107,[email protected],1960/2/3,700,臺南市,中西區,五妃街34號 10,精誠資訊股份有限公司,04-22018008#211,[email protected],1960/2/4,700,臺南市,中西區,五妃街35號 10,御廚皇事業股份有限公司,04-24617550,[email protected],1960/2/5,700,臺南市,中西區,五妃街36號 10,朝陽系統整合有限公司,04-22938299,[email protected],1960/2/6,700,臺南市,中西區,五妃街37號 11,冠捷數位科技有限公司,04-23015593#251,[email protected],1960/2/7,700,臺南市,中西區,五妃街38號 11,廣力電腦股份有限公司,04-22270525,[email protected],1960/2/8,700,臺南市,中西區,五妃街39號 11,大鐸資訊股份有限公司,02-27362009,[email protected],1960/2/9,700,臺南市,中西區,五妃街40號 11,正茂科技有限公司,04-22413880,[email protected],1960/2/10,700,臺南市,中西區,五妃街41號 11,志盛科技股份有限公司,02-23770217,[email protected],1960/2/11,700,臺南市,中西區,五妃街42號 11,精智科技有限公司,04-23803525,[email protected],1960/2/12,700,臺南市,中西區,五妃街43號 11,大鳴電訊股份有限公司,04-24614567,[email protected],1960/2/13,700,臺南市,中西區,五妃街44號 11,隆業興科技有限公司,04-24261451,[email protected],1960/2/14,700,臺南市,中西區,五妃街45號 11,時訊電腦股份有限公司,04-23726496,[email protected],1960/2/15,700,臺南市,中西區,五妃街46號 1,禾康資訊有限公司,02-23770217,[email protected],1960/2/16,700,臺南市,中西區,五妃街47號 11,德瑞數位科技股份有限公司,04-23803525,[email protected],1960/2/17,700,臺南市,中西區,五妃街48號 3,捷合科技股份有限公司,04-22761854,[email protected],1960/2/18,700,臺南市,中西區,五妃街49號 4,禾鑫資訊有限公司,02-25148395,[email protected],1960/2/19,700,臺南市,中西區,五妃街50號 1,網奕資訊科技股份有限公司,04-22938299,[email protected],1960/2/20,700,臺南市,中西區,五妃街51號 3,亞美加企業有限公司,07-6103769,[email protected],1960/2/21,700,臺南市,中西區,五妃街52號 7,雋展科技股份有限公司,04-22358831,[email protected],1960/2/22,700,臺南市,中西區,五妃街53號 8,台灣易立歐科技股份有限公司,049-2201163,[email protected],1960/2/23,700,臺南市,中西區,五妃街54號 9,見誠科技有限公司,02-77015804,[email protected],1960/2/24,700,臺南市,中西區,五妃街55號 10,京衍企業股份有限公司,04-26333168,[email protected],1960/2/25,700,臺南市,中西區,五妃街56號
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
include_once "../up_file.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
$formValidator= new formValidator("#myForm",false);
$formValidator_code=$formValidator->render();
$main="
$jquery
$formValidator_code
<script type='text/javascript' src='".TADTOOLS_URL."/My97DatePicker/WdatePicker.js'></script>
<script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<script src='".TADTOOLS_URL."/multiple-file-upload/jquery.MultiFile.js'></script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm' enctype='multipart/form-data'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' class='validate[required,minSize[2],maxSize[10]]'></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' class='validate[required,custom[phone]]'></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' class='validate[required,custom[email]]'></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' onClick=\"WdatePicker({dateFmt:'yyyy-MM-dd' , isShowWeek:true , skin:'whyGreen' , maxDate:'%y-%M-%d' , readOnly: true , isShowClear: false , firstDayOfWeek:1})\" class='Wdate'></td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳圖片</td>
<td class='col'>
<input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>".
list_del_file('photo',$sn)."
</td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳相關檔案</td>
<td class='col'>
<input type='file' name='docs[]' class='multi' >".
list_del_file('files',$sn)."
</td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
//製作選項
$sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
$cate_arr[]="'$gsn':'$title'";
}
$cate_option=implode(" , ",$cate_arr);
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
//$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
</td>":"";
$jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
$jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
$jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
$cate=get_contact_cate_all();
$file_counter1=get_file_amount('photo' , $sn);
$file_counter2=get_file_amount('files' , $sn);
$all_content.="
<tr>
<td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
<td id='name_{$sn}'>{$name}</td>
<td>{$tel}</td>
<td id='email_{$sn}'>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
<td>{$file_counter1}</td>
<td>{$file_counter2}</td>
$fun
</tr>
";
}
$jeditable_set=$jeditable->render();
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
$jeditable_set
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
批次匯入:
<form action='index.php' method='post' enctype='multipart/form-data'>
<INPUT type='file' name='userfile'>
<INPUT type='hidden' name='op' value='import'>
<INPUT type='submit' value='匯入'>
<INPUT type='button' value='匯出' onClick=\"location.href='index.php?op=export'\">
<a href='index.php?op=export'>匯出</a>
</form>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
<th>相片</th>
<th>檔案數</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
del_files('' , 'photo' , $sn);
del_files('' , 'files' , $sn);
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
//匯入
function import(){
global $xoopsDB;
//$main="<table>";
$handle = fopen($_FILES['userfile']['tmp_name'], "r") or die("無法開啟");
while (($data = __fgetcsv($handle, 1000)) !== FALSE) {
//判斷格式
if(!is_numeric($data[0])){
continue;
}
$data[1]=mb_convert_encoding($data[1], "UTF-8" , "Big5");
$data[6]=iconv("Big5" , "UTF-8" , $data[6]);
$data[7]=iconv("Big5" , "UTF-8" , $data[7]);
$data[8]=iconv("Big5" , "UTF-8" , $data[8]);
/*
$main.="
<tr>
<td>{$data[0]}</td>
<td>{$data[1]}</td>
<td>{$data[2]}</td>
<td>{$data[3]}</td>
<td>{$data[4]}</td>
<td>{$data[5]}</td>
<td>{$data[6]}</td>
<td>{$data[7]}</td>
<td>{$data[8]}</td>
</tr>
";
*/
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$data[0]}' , '{$data[1]}' , '{$data[2]}' , '{$data[3]}' , '{$data[4]}' , '{$data[5]}' , '{$data[6]}' , '{$data[7]}' , '{$data[8]}')";
$xoopsDB->queryF($sql) or die($sql);
}
fclose($handle);
//$main.="</table>";
return $main;
}
function __fgetcsv(&$handle, $length = null, $d = ",", $e = '"') {
$d = preg_quote($d);
$e = preg_quote($e);
$_line = "";
$eof=false;
while ($eof != true) {
$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
$itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
if ($itemcnt % 2 == 0)
$eof = true;
}
$_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
$_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
$_csv_data[$_csv_i] = preg_replace("/^" . $e . "(.*)" . $e . "$/s", "$1", $_csv_data[$_csv_i]);
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
}
return empty ($_line) ? false : $_csv_data;
}
//匯出函數
function export(){
global $xoopsDB;
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$main="gsn,name,tel,email,birthday,zip,county,city,addr\n";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$name=iconv("UTF-8" , "Big5" , $name);
$county=iconv("UTF-8" , "Big5" , $county);
$city=iconv("UTF-8" , "Big5" , $city);
$addr=iconv("UTF-8" , "Big5" , $addr);
$main.="$gsn,$name,$tel,$email,$birthday,$zip,$county,$city,$addr\n";
}
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=contact.csv");
echo $main;
exit;
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯入
case "import":
import();
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯出
case "export":
export();
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
function __fgetcsv(&$handle, $length = null, $d = ",", $e = '"') {
$d = preg_quote($d);
$e = preg_quote($e);
$_line = "";
$eof=false;
while ($eof != true) {
$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
$itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
if ($itemcnt % 2 == 0)
$eof = true;
}
$_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
$_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
$_csv_data[$_csv_i] = preg_replace("/^" . $e . "(.*)" . $e . "$/s", "$1", $_csv_data[$_csv_i]);
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
}
return empty ($_line) ? false : $_csv_data;
}
<?php
include_once "header.php";
require_once 'class/PHPExcel.php'; //引入 PHPExcel 物件庫
require_once 'class/PHPExcel/IOFactory.php'; //引入 PHPExcel_IOFactory 物件庫
$objPHPExcel = new PHPExcel(); //實體化Excel
//----------內容-----------//
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename=通訊錄.xls');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->setPreCalculateFormulas(false);
$objWriter->save('php://output');
exit;
?>
$objPHPExcel->setActiveSheetIndex(0); //設定預設顯示的工作表
$objActSheet = $objPHPExcel->getActiveSheet(); //指定預設工作表為 $objActSheet
$objActSheet->setTitle("通訊錄"); //設定標題
$objPHPExcel->createSheet(); //建立新的工作表,上面那三行再來一次,編號要改
$objActSheet->setCellValue("A1", '姓名')->setCellValue("B1", '電話');
$objActSheet->setCellValueExplicit("C2", '0987654321',PHPExcel_Cell_DataType:: TYPE_STRING);
$objActSheet->getColumnDimension('A')->setWidth(8); //固定寬度8
$objActSheet->getColumnDimension('B')->setAutoSize(true); //自動寬度
$objPHPExcel->getDefaultStyle()->getFont()->setName('標楷體');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(16);
$objActSheet->getStyle('A1:E1')->getFill()->setFillType(PHPExcel_Style_Fill:: FILL_SOLID)->getStartColor()->setARGB('FFFFCC99');
$objActSheet->mergeCells("A10:D10")->setCellValue("A10", '資料數共計');
$n=$i-1;
$objActSheet->setCellValue("E{$i}", "=COUNTA(E2:E{$n})");
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->protectCells("E{$i}", 'password');
<?php
include_once "header_admin.php";
require_once '../class/PHPExcel.php'; //引入 PHPExcel 物件庫
require_once '../class/PHPExcel/IOFactory.php'; //引入 PHPExcel_IOFactory 物件庫
$objPHPExcel = new PHPExcel(); //實體化Excel
//----------內容-----------//
$objPHPExcel->setActiveSheetIndex(0); //設定預設顯示的工作表
$objActSheet = $objPHPExcel->getActiveSheet(); //指定預設工作表為 $objActSheet
$objActSheet->setTitle("通訊錄"); //設定標題
$objPHPExcel->createSheet(); //建立新的工作表,上面那三行再來一次,編號要改
$objActSheet->getColumnDimension('A')->setWidth(8);
$objActSheet->getColumnDimension('B')->setWidth(40);
$objActSheet->getColumnDimension('C')->setWidth(15);
$objActSheet->getColumnDimension('D')->setWidth(25);
$objActSheet->getColumnDimension('E')->setWidth(10);
$objActSheet->getColumnDimension('F')->setWidth(8);
$objActSheet->getColumnDimension('G')->setWidth(8);
$objActSheet->getColumnDimension('H')->setWidth(8);
$objActSheet->getColumnDimension('I')->setWidth(18);
/*
$objPHPExcel->getDefaultStyle()->getFont()->setName('標楷體');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(16);
*/
$objActSheet-> getStyle('A1:I1')-> getFont()-> setName('SimHei')-> setSize('14');
$objActSheet-> getStyle('A1:I1')-> getFill()-> setFillType(PHPExcel_Style_Fill:: FILL_SOLID)-> getStartColor()-> setARGB('FFC9E3F3');
$objActSheet->setCellValue("A1", '群組')
->setCellValue("B1", '姓名')
->setCellValue("C1", '電話')
->setCellValue("D1", '信箱')
->setCellValue("E1", '生日')
->setCellValue("F1", '郵遞區號')
->setCellValue("G1", '縣市')
->setCellValue("H1", '鄉鎮市區')
->setCellValue("I1", '地址');
$cate=get_contact_cate_all();
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$i=2;
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$objActSheet->setCellValue("A{$i}", $cate[$gsn]['title'])
->setCellValue("B{$i}", $name)
//->setCellValue("C{$i}", $tel)
->setCellValueExplicit("C{$i}", $tel , PHPExcel_Cell_DataType:: TYPE_STRING)
->setCellValue("D{$i}", $email)
->setCellValue("E{$i}", $birthday)
->setCellValue("F{$i}", $zip)
->setCellValue("G{$i}", $county)
->setCellValue("H{$i}", $city)
->setCellValue("I{$i}", $addr);
$i++;
}
$objActSheet->mergeCells("A{$i}:H{$i}")->setCellValue("A{$i}", '通訊錄資料數共計');
$n=$i-1;
$objActSheet->setCellValue("I{$i}", "=COUNTA(B2:B{$n})");
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->protectCells("I{$i}", '12345');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename='.iconv('UTF-8','Big5','通訊錄').'.xls');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->setPreCalculateFormulas(false);
$objWriter->save('php://output');
exit;
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
include_once "../up_file.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
$formValidator= new formValidator("#myForm",false);
$formValidator_code=$formValidator->render();
$main="
$jquery
$formValidator_code
<script type='text/javascript' src='".TADTOOLS_URL."/My97DatePicker/WdatePicker.js'></script>
<script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<script src='".TADTOOLS_URL."/multiple-file-upload/jquery.MultiFile.js'></script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm' enctype='multipart/form-data'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' class='validate[required,minSize[2],maxSize[10]]'></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' class='validate[required,custom[phone]]'></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' class='validate[required,custom[email]]'></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' onClick=\"WdatePicker({dateFmt:'yyyy-MM-dd' , isShowWeek:true , skin:'whyGreen' , maxDate:'%y-%M-%d' , readOnly: true , isShowClear: false , firstDayOfWeek:1})\" class='Wdate'></td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳圖片</td>
<td class='col'>
<input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>".
list_del_file('photo',$sn)."
</td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳相關檔案</td>
<td class='col'>
<input type='file' name='docs[]' class='multi' >".
list_del_file('files',$sn)."
</td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
//製作選項
$sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
$cate_arr[]="'$gsn':'$title'";
}
$cate_option=implode(" , ",$cate_arr);
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
//$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
</td>":"";
$jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
$jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
$jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
$cate=get_contact_cate_all();
$file_counter1=get_file_amount('photo' , $sn);
$file_counter2=get_file_amount('files' , $sn);
$all_content.="
<tr>
<td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
<td id='name_{$sn}'>{$name}</td>
<td>{$tel}</td>
<td id='email_{$sn}'>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
<td>{$file_counter1}</td>
<td>{$file_counter2}</td>
$fun
</tr>
";
}
$jeditable_set=$jeditable->render();
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
$jeditable_set
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
批次匯入:
<form action='index.php' method='post' enctype='multipart/form-data'>
<INPUT type='file' name='userfile'>
<INPUT type='hidden' name='op' value='import'>
<INPUT type='submit' value='匯入'>
<INPUT type='button' value='匯出 CSV' onClick=\"location.href='index.php?op=export'\">
<INPUT type='button' value='匯出 Excel' onClick=\"location.href='excel.php'\">
</form>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
<th>相片</th>
<th>檔案數</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
del_files('' , 'photo' , $sn);
del_files('' , 'files' , $sn);
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
//匯入
function import(){
global $xoopsDB;
//$main="<table>";
$handle = fopen($_FILES['userfile']['tmp_name'], "r") or die("無法開啟");
while (($data = __fgetcsv($handle, 1000)) !== FALSE) {
//判斷格式
if(!is_numeric($data[0])){
continue;
}
$data[1]=mb_convert_encoding($data[1], "UTF-8" , "Big5");
$data[6]=iconv("Big5" , "UTF-8" , $data[6]);
$data[7]=iconv("Big5" , "UTF-8" , $data[7]);
$data[8]=iconv("Big5" , "UTF-8" , $data[8]);
/*
$main.="
<tr>
<td>{$data[0]}</td>
<td>{$data[1]}</td>
<td>{$data[2]}</td>
<td>{$data[3]}</td>
<td>{$data[4]}</td>
<td>{$data[5]}</td>
<td>{$data[6]}</td>
<td>{$data[7]}</td>
<td>{$data[8]}</td>
</tr>
";
*/
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$data[0]}' , '{$data[1]}' , '{$data[2]}' , '{$data[3]}' , '{$data[4]}' , '{$data[5]}' , '{$data[6]}' , '{$data[7]}' , '{$data[8]}')";
$xoopsDB->queryF($sql) or die($sql);
}
fclose($handle);
//$main.="</table>";
return $main;
}
function __fgetcsv(&$handle, $length = null, $d = ",", $e = '"') {
$d = preg_quote($d);
$e = preg_quote($e);
$_line = "";
$eof=false;
while ($eof != true) {
$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
$itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
if ($itemcnt % 2 == 0)
$eof = true;
}
$_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
$_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
$_csv_data[$_csv_i] = preg_replace("/^" . $e . "(.*)" . $e . "$/s", "$1", $_csv_data[$_csv_i]);
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
}
return empty ($_line) ? false : $_csv_data;
}
//匯出函數
function export(){
global $xoopsDB;
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$main="gsn,name,tel,email,birthday,zip,county,city,addr\n";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$name=iconv("UTF-8" , "Big5" , $name);
$county=iconv("UTF-8" , "Big5" , $county);
$city=iconv("UTF-8" , "Big5" , $city);
$addr=iconv("UTF-8" , "Big5" , $addr);
$main.="$gsn,$name,$tel,$email,$birthday,$zip,$county,$city,$addr\n";
}
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=contact.csv");
echo $main;
exit;
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯入
case "import":
import();
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯出
case "export":
export();
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
<?php
include_once "header_admin.php";
require_once '../class/PHPExcel.php'; //引入 PHPExcel 物件庫
require_once '../class/PHPExcel/IOFactory.php'; //引入 PHPExcel_IOFactory 物件庫
$objPHPExcel = new PHPExcel(); //實體化Excel
//----------內容-----------//
$objPHPExcel->setActiveSheetIndex(0); //設定預設顯示的工作表
$objActSheet = $objPHPExcel->getActiveSheet(); //指定預設工作表為 $objActSheet
$objActSheet->setTitle("通訊錄"); //設定標題
$objPHPExcel->createSheet(); //建立新的工作表,上面那三行再來一次,編號要改
$objPHPExcel->setActiveSheetIndex(1); //設定預設顯示的工作表
$objActSheet = $objPHPExcel->getActiveSheet(); //指定預設工作表為 $objActSheet
$objActSheet->setTitle("通訊錄2"); //設定標題
$objPHPExcel->createSheet(); //建立新的工作表,上面那三行再來一次,編號要改
$objPHPExcel->setActiveSheetIndex(2); //設定預設顯示的工作表
$objActSheet = $objPHPExcel->getActiveSheet(); //指定預設工作表為 $objActSheet
$objActSheet->setTitle("通訊錄3"); //設定標題
$objPHPExcel->createSheet(); //建立新的工作表,上面那三行再來一次,編號要改
$objPHPExcel->setActiveSheetIndex(3); //設定預設顯示的工作表
$objActSheet = $objPHPExcel->getActiveSheet(); //指定預設工作表為 $objActSheet
$objActSheet->setTitle("通訊錄4"); //設定標題
$objPHPExcel->createSheet(); //建立新的工作表,上面那三行再來一次,編號要改
$objPHPExcel->setActiveSheetIndex(0); //設定預設顯示的工作表
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename='.iconv('UTF-8','Big5','通訊錄').'.xls');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->setPreCalculateFormulas(false);
$objWriter->save('php://output');
exit;
?>
<form action='index.php' method='post' enctype='multipart/form-data'> <INPUT type='file' name='importfile'> <INPUT type='hidden' name='op' value='import_excel'> <INPUT type='submit' value='匯入'> </form>
include_once '../class/PHPExcel/IOFactory.php';
$reader = PHPExcel_IOFactory::createReader('Excel5');
$PHPExcel = $reader->load( $_FILES['importfile']['tmp_name'] ); // 檔案名稱
$sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表(編號從 0 開始)
$highestRow = $sheet->getHighestRow(); // 取得總列數
// 一次讀取一列
for ($row = 1; $row <= $highestRow; $row++) {
$v="";
//讀取一列中的每一格
for ($col = 0; $col <= 8; $col++) {
//格式檢查
if( PHPExcel_Shared_Date::isDateTime( $sheet->getCellByColumnAndRow($col , $row ) )){
$val = PHPExcel_Shared_Date::ExcelToPHPObject( $sheet->getCellByColumnAndRow( $col , $row )->getValue())->format('Y-m-d');
}else{
$val = $sheet->getCellByColumnAndRow($col, $row)->getCalculatedValue();
}
if(!get_magic_quotes_runtime()) {
$v[$col]=addSlashes($val);
}
}
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$v[0]}' , '{$v[1]}' , '{$v[2]}' , '{$v[3]}' , '{$v[4]}' , '{$v[5]}' , '{$v[6]}' , '{$v[7]}' , '{$v[8]}')";
$xoopsDB->queryF($sql);
}
$objActSheet->getStyle('A1:I1')->getAlignment()
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER)
->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)
->setWrapText(true);
對齊的值有以下這些: HORIZONTAL_CENTER、 HORIZONTAL_CENTER_CONTINUOUS、 HORIZONTAL_GENERAL、 HORIZONTAL_JUSTIFY、 HORIZONTAL_LEFT、 HORIZONTAL_RIGHT、 VERTICAL_BOTTOM、 VERTICAL_CENTER、 VERTICAL_JUSTIFY、 VERTICAL_TOP
$objBorder=$objActSheet->getDefaultStyle()->getBorders();
$objBorder->getBottom()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN)
->getColor()->setRGB('000000');
function num2alpha($n){
for($r = ""; $n >= 0; $n = intval($n / 26) - 1)
$r = chr($n%26 + 0x41) . $r;
return $r;
}
$objActSheet->setCellValueByColumnAndRow($第N欄, $第N列 ,$內容);
<?php
include_once "header_admin.php";
require_once '../class/PHPExcel.php'; //引入 PHPExcel 物件庫
require_once '../class/PHPExcel/IOFactory.php'; //引入 PHPExcel_IOFactory 物件庫
$objPHPExcel = new PHPExcel(); //實體化Excel
//----------內容-----------//
$objPHPExcel->setActiveSheetIndex(0); //設定預設顯示的工作表
$objActSheet = $objPHPExcel->getActiveSheet(); //指定預設工作表為 $objActSheet
$objActSheet->setTitle("通訊錄"); //設定標題
$objPHPExcel->createSheet(); //建立新的工作表,上面那三行再來一次,編號要改
$objActSheet->getColumnDimension('A')->setWidth(8);
$objActSheet->getColumnDimension('B')->setWidth(40);
$objActSheet->getColumnDimension('C')->setWidth(15);
$objActSheet->getColumnDimension('D')->setWidth(25);
$objActSheet->getColumnDimension('E')->setWidth(10);
$objActSheet->getColumnDimension('F')->setWidth(8);
$objActSheet->getColumnDimension('G')->setWidth(8);
$objActSheet->getColumnDimension('H')->setWidth(8);
$objActSheet->getColumnDimension('I')->setWidth(18);
//設定字型
$objActSheet->getStyle('A1:I1')->getFont()
->setName('SimHei')
->setSize('14');
//設定底色
$objActSheet->getStyle('A1:I1')->getFill()
->setFillType(PHPExcel_Style_Fill:: FILL_SOLID)
->getStartColor()
->setARGB('FFC9E3F3');
//設定對齊
$objActSheet->getStyle('A1:I1')->getAlignment()
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER)
->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)
->setWrapText(true);
//設定框線
$objBorder=$objActSheet->getDefaultStyle()->getBorders();
$objBorder->getBottom()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN)
->getColor()->setRGB('000000');
$objBorder->getRight()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN)
->getColor()->setRGB('000000');
$objActSheet->setCellValue("A1", '群組')
->setCellValue("B1", '姓名')
->setCellValue("C1", '電話')
->setCellValue("D1", '信箱')
->setCellValue("E1", '生日')
->setCellValue("F1", '郵遞區號')
->setCellValue("G1", '縣市')
->setCellValue("H1", '鄉鎮市區')
->setCellValue("I1", '地址');
$cate=get_contact_cate_all();
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$i=2;
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$objActSheet->setCellValue("A{$i}", $gsn)
->setCellValue("B{$i}", $name)
//->setCellValue("C{$i}", $tel)
->setCellValueExplicit("C{$i}", $tel , PHPExcel_Cell_DataType:: TYPE_STRING)
->setCellValue("D{$i}", $email)
->setCellValue("E{$i}", $birthday)
->setCellValue("F{$i}", $zip)
->setCellValue("G{$i}", $county)
->setCellValue("H{$i}", $city)
->setCellValue("I{$i}", $addr);
$i++;
}
$objActSheet->mergeCells("A{$i}:H{$i}")->setCellValue("A{$i}", '通訊錄資料數共計');
$n=$i-1;
$objActSheet->setCellValue("I{$i}", "=COUNTA(B2:B{$n})");
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->protectCells("I{$i}", '12345');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename='.iconv('UTF-8','Big5','通訊錄').'.xls');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->setPreCalculateFormulas(false);
$objWriter->save('php://output');
exit;
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
include_once "../up_file.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
$formValidator= new formValidator("#myForm",false);
$formValidator_code=$formValidator->render();
$main="
$jquery
$formValidator_code
<script type='text/javascript' src='".TADTOOLS_URL."/My97DatePicker/WdatePicker.js'></script>
<script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<script src='".TADTOOLS_URL."/multiple-file-upload/jquery.MultiFile.js'></script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm' enctype='multipart/form-data'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' class='validate[required,minSize[2],maxSize[10]]'></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' class='validate[required,custom[phone]]'></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' class='validate[required,custom[email]]'></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' onClick=\"WdatePicker({dateFmt:'yyyy-MM-dd' , isShowWeek:true , skin:'whyGreen' , maxDate:'%y-%M-%d' , readOnly: true , isShowClear: false , firstDayOfWeek:1})\" class='Wdate'></td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳圖片</td>
<td class='col'>
<input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>".
list_del_file('photo',$sn)."
</td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳相關檔案</td>
<td class='col'>
<input type='file' name='docs[]' class='multi' >".
list_del_file('files',$sn)."
</td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
//製作選項
$sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
$cate_arr[]="'$gsn':'$title'";
}
$cate_option=implode(" , ",$cate_arr);
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
//$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
</td>":"";
$jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
$jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
$jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
$cate=get_contact_cate_all();
$file_counter1=get_file_amount('photo' , $sn);
$file_counter2=get_file_amount('files' , $sn);
$all_content.="
<tr>
<td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
<td id='name_{$sn}'>{$name}</td>
<td>{$tel}</td>
<td id='email_{$sn}'>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
<td>{$file_counter1}</td>
<td>{$file_counter2}</td>
$fun
</tr>
";
}
$jeditable_set=$jeditable->render();
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
$jeditable_set
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
批次匯入:
<form action='index.php' method='post' enctype='multipart/form-data'>
<INPUT type='file' name='userfile'>
<INPUT type='hidden' name='op' value='import'>
<INPUT type='submit' value='匯入 CSV'>
<INPUT type='button' value='匯出 CSV' onClick=\"location.href='index.php?op=export'\">
</form>
<form action='index.php' method='post' enctype='multipart/form-data'>
<INPUT type='file' name='importfile'>
<INPUT type='hidden' name='op' value='import_excel'>
<INPUT type='submit' value='匯入 Excel'>
<INPUT type='button' value='匯出 Excel' onClick=\"location.href='excel.php'\">
</form>
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
<th>相片</th>
<th>檔案數</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
del_files('' , 'photo' , $sn);
del_files('' , 'files' , $sn);
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
//匯入
function import(){
global $xoopsDB;
//$main="<table>";
$handle = fopen($_FILES['userfile']['tmp_name'], "r") or die("無法開啟");
while (($data = __fgetcsv($handle, 1000)) !== FALSE) {
//判斷格式
if(!is_numeric($data[0])){
continue;
}
$data[1]=mb_convert_encoding($data[1], "UTF-8" , "Big5");
$data[6]=iconv("Big5" , "UTF-8" , $data[6]);
$data[7]=iconv("Big5" , "UTF-8" , $data[7]);
$data[8]=iconv("Big5" , "UTF-8" , $data[8]);
/*
$main.="
<tr>
<td>{$data[0]}</td>
<td>{$data[1]}</td>
<td>{$data[2]}</td>
<td>{$data[3]}</td>
<td>{$data[4]}</td>
<td>{$data[5]}</td>
<td>{$data[6]}</td>
<td>{$data[7]}</td>
<td>{$data[8]}</td>
</tr>
";
*/
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$data[0]}' , '{$data[1]}' , '{$data[2]}' , '{$data[3]}' , '{$data[4]}' , '{$data[5]}' , '{$data[6]}' , '{$data[7]}' , '{$data[8]}')";
$xoopsDB->queryF($sql) or die($sql);
}
fclose($handle);
//$main.="</table>";
return $main;
}
function __fgetcsv(&$handle, $length = null, $d = ",", $e = '"') {
$d = preg_quote($d);
$e = preg_quote($e);
$_line = "";
$eof=false;
while ($eof != true) {
$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
$itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
if ($itemcnt % 2 == 0)
$eof = true;
}
$_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
$_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
$_csv_data[$_csv_i] = preg_replace("/^" . $e . "(.*)" . $e . "$/s", "$1", $_csv_data[$_csv_i]);
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
}
return empty ($_line) ? false : $_csv_data;
}
//匯出函數
function export(){
global $xoopsDB;
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$main="gsn,name,tel,email,birthday,zip,county,city,addr\n";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$name=iconv("UTF-8" , "Big5" , $name);
$county=iconv("UTF-8" , "Big5" , $county);
$city=iconv("UTF-8" , "Big5" , $city);
$addr=iconv("UTF-8" , "Big5" , $addr);
$main.="$gsn,$name,$tel,$email,$birthday,$zip,$county,$city,$addr\n";
}
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=contact.csv");
echo $main;
exit;
}
//匯入Excel
function import_excel(){
global $xoopsDB;
include_once '../class/PHPExcel/IOFactory.php';
$reader = PHPExcel_IOFactory::createReader('Excel5');
$PHPExcel = $reader->load( $_FILES['importfile']['tmp_name'] ); // 檔案名稱
$sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表(編號從 0 開始)
$highestRow = $sheet->getHighestRow(); // 取得總列數
// 一次讀取一列
for($row = 1; $row <= $highestRow; $row++) {
$v="";
//讀取一列中的每一格
for ($col = 0; $col <= 8; $col++) {
//格式檢查
if( PHPExcel_Shared_Date::isDateTime( $sheet->getCellByColumnAndRow($col , $row ) )){
$val = PHPExcel_Shared_Date::ExcelToPHPObject( $sheet->getCellByColumnAndRow( $col , $row )->getValue())->format('Y-m-d');
}else{
$val = $sheet->getCellByColumnAndRow($col, $row)->getCalculatedValue();
}
if(!get_magic_quotes_runtime()) {
$v[$col]=addSlashes($val);
}
}
if(!is_numeric($v[0]) or empty($v[0]))continue;
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$v[0]}' , '{$v[1]}' , '{$v[2]}' , '{$v[3]}' , '{$v[4]}' , '{$v[5]}' , '{$v[6]}' , '{$v[7]}' , '{$v[8]}')";
$xoopsDB->queryF($sql);
}
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯入
case "import":
import();
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯出
case "export":
export();
break;
//匯入Excel
case "import_excel":
import_excel();
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
include_once "header.php";
require_once('class/tcpdf/config/lang/zho.php');
require_once('class/tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->setPrintHeader(false); //不要頁首
$pdf->setPrintFooter(false); //不要頁尾
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //設定自動分頁
$pdf->setLanguageArray($l); //設定語言相關字串
$pdf->setFontSubsetting(true); //產生字型子集(有用到的字才放到文件中)
$pdf->SetFont('droidsansfallback', '', 12, '', true); //設定字型
$pdf->AddPage(); //新增頁面
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));//文字陰影
$pdf->writeHTML($html, $ln=1, $fill=0, $reseth=true, $cell =true, $align='');
$pdf->Output('contact.pdf', 'D');
Cell($w, $h, $txt, $border, $ln, $align, $fill, $link, $stretch, $ignore_min_height, $calign, $valign); MultiCell($w, $h, $txt, $border, $align, $fill, $ln, $x, $y, $reseth, $stretch, $ishtml, $autopadding, $maxh, $valign, $fitcell); writeHTMLCell($w, $h, $x, $y, $html, $border, $ln, $fill, $reseth, $align, autopadding);
各種參數:
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
include_once "../up_file.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
$formValidator= new formValidator("#myForm",false);
$formValidator_code=$formValidator->render();
$main="
$jquery
$formValidator_code
<script type='text/javascript' src='".TADTOOLS_URL."/My97DatePicker/WdatePicker.js'></script>
<script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<script src='".TADTOOLS_URL."/multiple-file-upload/jquery.MultiFile.js'></script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm' enctype='multipart/form-data'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' class='validate[required,minSize[2],maxSize[10]]'></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' class='validate[required,custom[phone]]'></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' class='validate[required,custom[email]]'></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' onClick=\"WdatePicker({dateFmt:'yyyy-MM-dd' , isShowWeek:true , skin:'whyGreen' , maxDate:'%y-%M-%d' , readOnly: true , isShowClear: false , firstDayOfWeek:1})\" class='Wdate'></td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳圖片</td>
<td class='col'>
<input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>".
list_del_file('photo',$sn)."
</td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳相關檔案</td>
<td class='col'>
<input type='file' name='docs[]' class='multi' >".
list_del_file('files',$sn)."
</td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
//製作選項
$sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
$cate_arr[]="'$gsn':'$title'";
}
$cate_option=implode(" , ",$cate_arr);
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
//$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
</td>":"";
$jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
$jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
$jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
$cate=get_contact_cate_all();
$file_counter1=get_file_amount('photo' , $sn);
$file_counter2=get_file_amount('files' , $sn);
$all_content.="
<tr>
<td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
<td id='name_{$sn}'>{$name}</td>
<td>{$tel}</td>
<td id='email_{$sn}'>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
<td>{$file_counter1}</td>
<td>{$file_counter2}</td>
$fun
</tr>
";
}
$jeditable_set=$jeditable->render();
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
$jeditable_set
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
批次匯入:
<form action='index.php' method='post' enctype='multipart/form-data'>
<INPUT type='file' name='userfile'>
<INPUT type='hidden' name='op' value='import'>
<INPUT type='submit' value='匯入 CSV'>
<INPUT type='button' value='匯出 CSV' onClick=\"location.href='index.php?op=export'\">
</form>
<form action='index.php' method='post' enctype='multipart/form-data'>
<INPUT type='file' name='importfile'>
<INPUT type='hidden' name='op' value='import_excel'>
<INPUT type='submit' value='匯入 Excel'>
<INPUT type='button' value='匯出 Excel' onClick=\"location.href='excel.php'\">
</form>
<INPUT type='button' value='匯出 PDF' onClick=\"location.href='pdf.php'\">
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
<th>相片</th>
<th>檔案數</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
del_files('' , 'photo' , $sn);
del_files('' , 'files' , $sn);
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
//匯入
function import(){
global $xoopsDB;
//$main="<table>";
$handle = fopen($_FILES['userfile']['tmp_name'], "r") or die("無法開啟");
while (($data = __fgetcsv($handle, 1000)) !== FALSE) {
//判斷格式
if(!is_numeric($data[0])){
continue;
}
$data[1]=mb_convert_encoding($data[1], "UTF-8" , "Big5");
$data[6]=iconv("Big5" , "UTF-8" , $data[6]);
$data[7]=iconv("Big5" , "UTF-8" , $data[7]);
$data[8]=iconv("Big5" , "UTF-8" , $data[8]);
/*
$main.="
<tr>
<td>{$data[0]}</td>
<td>{$data[1]}</td>
<td>{$data[2]}</td>
<td>{$data[3]}</td>
<td>{$data[4]}</td>
<td>{$data[5]}</td>
<td>{$data[6]}</td>
<td>{$data[7]}</td>
<td>{$data[8]}</td>
</tr>
";
*/
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$data[0]}' , '{$data[1]}' , '{$data[2]}' , '{$data[3]}' , '{$data[4]}' , '{$data[5]}' , '{$data[6]}' , '{$data[7]}' , '{$data[8]}')";
$xoopsDB->queryF($sql) or die($sql);
}
fclose($handle);
//$main.="</table>";
return $main;
}
function __fgetcsv(&$handle, $length = null, $d = ",", $e = '"') {
$d = preg_quote($d);
$e = preg_quote($e);
$_line = "";
$eof=false;
while ($eof != true) {
$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
$itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
if ($itemcnt % 2 == 0)
$eof = true;
}
$_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
$_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
$_csv_data[$_csv_i] = preg_replace("/^" . $e . "(.*)" . $e . "$/s", "$1", $_csv_data[$_csv_i]);
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
}
return empty ($_line) ? false : $_csv_data;
}
//匯出函數
function export(){
global $xoopsDB;
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$main="gsn,name,tel,email,birthday,zip,county,city,addr\n";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$name=iconv("UTF-8" , "Big5" , $name);
$county=iconv("UTF-8" , "Big5" , $county);
$city=iconv("UTF-8" , "Big5" , $city);
$addr=iconv("UTF-8" , "Big5" , $addr);
$main.="$gsn,$name,$tel,$email,$birthday,$zip,$county,$city,$addr\n";
}
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=contact.csv");
echo $main;
exit;
}
//匯入Excel
function import_excel(){
global $xoopsDB;
include_once '../class/PHPExcel/IOFactory.php';
$reader = PHPExcel_IOFactory::createReader('Excel5');
$PHPExcel = $reader->load( $_FILES['importfile']['tmp_name'] ); // 檔案名稱
$sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表(編號從 0 開始)
$highestRow = $sheet->getHighestRow(); // 取得總列數
// 一次讀取一列
for($row = 1; $row <= $highestRow; $row++) {
$v="";
//讀取一列中的每一格
for ($col = 0; $col <= 8; $col++) {
//格式檢查
if( PHPExcel_Shared_Date::isDateTime( $sheet->getCellByColumnAndRow($col , $row ) )){
$val = PHPExcel_Shared_Date::ExcelToPHPObject( $sheet->getCellByColumnAndRow( $col , $row )->getValue())->format('Y-m-d');
}else{
$val = $sheet->getCellByColumnAndRow($col, $row)->getCalculatedValue();
}
if(!get_magic_quotes_runtime()) {
$v[$col]=addSlashes($val);
}
}
if(!is_numeric($v[0]) or empty($v[0]))continue;
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$v[0]}' , '{$v[1]}' , '{$v[2]}' , '{$v[3]}' , '{$v[4]}' , '{$v[5]}' , '{$v[6]}' , '{$v[7]}' , '{$v[8]}')";
$xoopsDB->queryF($sql) or die($sql);
}
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯入
case "import":
import();
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯出
case "export":
export();
break;
//匯入Excel
case "import_excel":
import_excel();
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
<?php
include_once "header_admin.php";
require_once('../class/tcpdf/config/lang/zho.php');
require_once('../class/tcpdf/tcpdf.php');
//實體化PDF物件
$pdf = new TCPDF("L", PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->setPrintHeader(false); //不要頁首
$pdf->setPrintFooter(false); //不要頁尾
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //設定自動分頁
$pdf->setLanguageArray($l); //設定語言相關字串
$pdf->setFontSubsetting(true); //產生字型子集(有用到的字才放到文件中)
$pdf->SetFont('droidsansfallback', '', 12, '', true); //設定字型
$pdf->AddPage(); //新增頁面
$pdf->setTextShadow(array('enabled'=>false, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));//文字陰影
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all_content="";
$cate=get_contact_cate_all();
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$all_content.="
<tr>
<td>{$cate[$gsn]['title']}</td>
<td>{$name}</td>
<td>{$tel}</td>
<td>{$email}</td>
<td>{$birthday}</td>
<td>{$zip} {$county}{$city}{$addr}</td>
</tr>
";
}
$html="<h1>通訊錄</h1>
<table border=\"1\" cellpadding=\"4\">
<tr bgcolor=\"#FFFF66\" align=\"center\">
<th width=\"40\">群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th width=\"200\">地址</th>
</tr>
$all_content
</table>";
$pdf->writeHTML($html);
$pdf->Output('contact.pdf', 'I');
?>
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
include_once "../up_file.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
$formValidator= new formValidator("#myForm",false);
$formValidator_code=$formValidator->render();
$main="
$jquery
$formValidator_code
<script type='text/javascript' src='".TADTOOLS_URL."/My97DatePicker/WdatePicker.js'></script>
<script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<script src='".TADTOOLS_URL."/multiple-file-upload/jquery.MultiFile.js'></script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm' enctype='multipart/form-data'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' class='validate[required,minSize[2],maxSize[10]]'></td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' class='validate[required,custom[phone]]'></td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' class='validate[required,custom[email]]'></td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' onClick=\"WdatePicker({dateFmt:'yyyy-MM-dd' , isShowWeek:true , skin:'whyGreen' , maxDate:'%y-%M-%d' , readOnly: true , isShowClear: false , firstDayOfWeek:1})\" class='Wdate'></td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳圖片</td>
<td class='col'>
<input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>".
list_del_file('photo',$sn)."
</td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳相關檔案</td>
<td class='col'>
<input type='file' name='docs[]' class='multi' >".
list_del_file('files',$sn)."
</td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
//製作選項
$sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
$cate_arr[]="'$gsn':'$title'";
}
$cate_option=implode(" , ",$cate_arr);
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
//$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
<a href='pdf2.php?sn=$sn' class='link_button'>PDF</a>
</td>":"";
$jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
$jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
$jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
$cate=get_contact_cate_all();
$file_counter1=get_file_amount('photo' , $sn);
$file_counter2=get_file_amount('files' , $sn);
$all_content.="
<tr>
<td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
<td id='name_{$sn}'>{$name}</td>
<td>{$tel}</td>
<td id='email_{$sn}'>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
<td>{$file_counter1}</td>
<td>{$file_counter2}</td>
$fun
</tr>
";
}
$jeditable_set=$jeditable->render();
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
$jeditable_set
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
批次匯入:
<form action='index.php' method='post' enctype='multipart/form-data'>
<INPUT type='file' name='userfile'>
<INPUT type='hidden' name='op' value='import'>
<INPUT type='submit' value='匯入 CSV'>
<INPUT type='button' value='匯出 CSV' onClick=\"location.href='index.php?op=export'\">
</form>
<form action='index.php' method='post' enctype='multipart/form-data'>
<INPUT type='file' name='importfile'>
<INPUT type='hidden' name='op' value='import_excel'>
<INPUT type='submit' value='匯入 Excel'>
<INPUT type='button' value='匯出 Excel' onClick=\"location.href='excel.php'\">
</form>
<INPUT type='button' value='匯出 PDF' onClick=\"location.href='pdf.php'\">
<INPUT type='button' value='匯出所有單張 PDF' onClick=\"location.href='pdf_all.php'\">
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
<th>相片</th>
<th>檔案數</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
del_files('' , 'photo' , $sn);
del_files('' , 'files' , $sn);
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}else{
$selected=($gsn==$default_gsn)?"selected=selected":"";
$selected.=(in_array($level , $unselect))?"disabled=disabled":"";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
//匯入
function import(){
global $xoopsDB;
//$main="<table>";
$handle = fopen($_FILES['userfile']['tmp_name'], "r") or die("無法開啟");
while (($data = __fgetcsv($handle, 1000)) !== FALSE) {
//判斷格式
if(!is_numeric($data[0])){
continue;
}
$data[1]=mb_convert_encoding($data[1], "UTF-8" , "Big5");
$data[6]=iconv("Big5" , "UTF-8" , $data[6]);
$data[7]=iconv("Big5" , "UTF-8" , $data[7]);
$data[8]=iconv("Big5" , "UTF-8" , $data[8]);
/*
$main.="
<tr>
<td>{$data[0]}</td>
<td>{$data[1]}</td>
<td>{$data[2]}</td>
<td>{$data[3]}</td>
<td>{$data[4]}</td>
<td>{$data[5]}</td>
<td>{$data[6]}</td>
<td>{$data[7]}</td>
<td>{$data[8]}</td>
</tr>
";
*/
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$data[0]}' , '{$data[1]}' , '{$data[2]}' , '{$data[3]}' , '{$data[4]}' , '{$data[5]}' , '{$data[6]}' , '{$data[7]}' , '{$data[8]}')";
$xoopsDB->queryF($sql) or die($sql);
}
fclose($handle);
//$main.="</table>";
return $main;
}
function __fgetcsv(&$handle, $length = null, $d = ",", $e = '"') {
$d = preg_quote($d);
$e = preg_quote($e);
$_line = "";
$eof=false;
while ($eof != true) {
$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
$itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
if ($itemcnt % 2 == 0)
$eof = true;
}
$_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
$_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
$_csv_data[$_csv_i] = preg_replace("/^" . $e . "(.*)" . $e . "$/s", "$1", $_csv_data[$_csv_i]);
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
}
return empty ($_line) ? false : $_csv_data;
}
//匯出函數
function export(){
global $xoopsDB;
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$main="gsn,name,tel,email,birthday,zip,county,city,addr\n";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$name=iconv("UTF-8" , "Big5" , $name);
$county=iconv("UTF-8" , "Big5" , $county);
$city=iconv("UTF-8" , "Big5" , $city);
$addr=iconv("UTF-8" , "Big5" , $addr);
$main.="$gsn,$name,$tel,$email,$birthday,$zip,$county,$city,$addr\n";
}
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=contact.csv");
echo $main;
exit;
}
//匯入Excel
function import_excel(){
global $xoopsDB;
include_once '../class/PHPExcel/IOFactory.php';
$reader = PHPExcel_IOFactory::createReader('Excel5');
$PHPExcel = $reader->load( $_FILES['importfile']['tmp_name'] ); // 檔案名稱
$sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表(編號從 0 開始)
$highestRow = $sheet->getHighestRow(); // 取得總列數
// 一次讀取一列
for($row = 1; $row <= $highestRow; $row++) {
$v="";
//讀取一列中的每一格
for ($col = 0; $col <= 8; $col++) {
//格式檢查
if( PHPExcel_Shared_Date::isDateTime( $sheet->getCellByColumnAndRow($col , $row ) )){
$val = PHPExcel_Shared_Date::ExcelToPHPObject( $sheet->getCellByColumnAndRow( $col , $row )->getValue())->format('Y-m-d');
}else{
$val = $sheet->getCellByColumnAndRow($col, $row)->getCalculatedValue();
}
if(!get_magic_quotes_runtime()) {
$v[$col]=addSlashes($val);
}
}
if(!is_numeric($v[0]) or empty($v[0]))continue;
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$v[0]}' , '{$v[1]}' , '{$v[2]}' , '{$v[3]}' , '{$v[4]}' , '{$v[5]}' , '{$v[6]}' , '{$v[7]}' , '{$v[8]}')";
$xoopsDB->queryF($sql) or die($sql);
}
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯入
case "import":
import();
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯出
case "export":
export();
break;
//匯入Excel
case "import_excel":
import_excel();
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
<?php
include_once "header_admin.php";
include_once "../up_file.php";
require_once('../class/tcpdf/config/lang/zho.php');
require_once('../class/tcpdf/tcpdf.php');
$sn=empty($_REQUEST['sn'])?"0":intval($_REQUEST['sn']);
//實體化PDF物件
$pdf = new TCPDF("P", PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
//$pdf->setPrintHeader(false); //不要頁首
//$pdf->setPrintFooter(false); //不要頁尾
$pdf->SetMargins(25, 25);
$pdf->setHeaderMargin(5);
$pdf->setFooterMargin(10);
$pdf->setHeaderData('ck2.jpg', 40, '我的通訊錄', 'http://163.26.52.243/~tad0616/modules/contact', array(27,49,0), array(71,71,70));
$pdf->setFooterData(array(27,49,0), array(71,71,70));
$pdf->setHeaderFont(array('droidsansfallback','B','14'));
$pdf->setFooterFont(array('droidsansfallback','I','16'));
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //設定自動分頁
$pdf->setLanguageArray($l); //設定語言相關字串
$pdf->setFontSubsetting(true); //產生字型子集(有用到的字才放到文件中)
$pdf->SetFont('droidsansfallback', '', 12, '', true); //設定字型
$pdf->AddPage(); //新增頁面
$pdf->setTextShadow(array('enabled'=>false, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));//文字陰影
$sql = "select * from `".$xoopsDB->prefix("contact")."` where sn='$sn'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all_content="";
$cate=get_contact_cate_all();
$all=$xoopsDB->fetchArray($result);
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$photo_file=get_pic_file('photo' , $sn , 1);
$photo="<img src=\"{$photo_file}\">";
$html="<h1>「{$name}」通訊錄</h1>
<table border=\"1\" cellpadding=\"4\">
<tr><th width=\"50\" align=\"center\" bgcolor=\"#CCFF66\">電話</th><td width=\"200\">{$tel}</td>
<td width=\"200\" rowspan=\"4\">$photo</td></tr>
<tr><th align=\"center\" bgcolor=\"#CCFF66\">信箱</th><td>{$email}</td></tr>
<tr><th align=\"center\" bgcolor=\"#CCFF66\">生日</th><td>{$birthday}</td></tr>
<tr><th align=\"center\" bgcolor=\"#CCFF66\">地址</th><td>{$zip} {$county}{$city}{$addr}</td></tr>
</table>";
$pdf->writeHTML($html);
include_once XOOPS_ROOT_PATH."/modules/tadtools/qrcode/qrcode.php";
$a = new QR("Email:{$email}");
file_put_contents(XOOPS_ROOT_PATH."/uploads/qrcode/{$sn}.gif",$a->image(2));
$pdf->Image(XOOPS_URL."/uploads/qrcode/{$sn}.gif", 150, 22 , 15, 15, 'gif');
$pdf->Output('contact.pdf', 'I');
?>
<?php
include_once "header_admin.php";
include_once "../up_file.php";
require_once('../class/tcpdf/config/lang/zho.php');
require_once('../class/tcpdf/tcpdf.php');
$sn=empty($_REQUEST['sn'])?"0":intval($_REQUEST['sn']);
//實體化PDF物件
$pdf = new TCPDF("L", PDF_UNIT, "A5", true, 'UTF-8', false);
//$pdf->setPrintHeader(false); //不要頁首
//$pdf->setPrintFooter(false); //不要頁尾
$pdf->SetMargins(25, 25);
$pdf->setHeaderMargin(5);
$pdf->setFooterMargin(10);
$pdf->setHeaderData('ck2.jpg', 40, '我的通訊錄', 'http://163.26.52.243/~tad0616/modules/contact', array(27,49,0), array(71,71,70));
$pdf->setFooterData(array(27,49,0), array(71,71,70));
$pdf->setHeaderFont(array('droidsansfallback','B','14'));
$pdf->setFooterFont(array('droidsansfallback','I','16'));
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //設定自動分頁
$pdf->setLanguageArray($l); //設定語言相關字串
$pdf->setFontSubsetting(true); //產生字型子集(有用到的字才放到文件中)
$pdf->SetFont('droidsansfallback', '', 12, '', true); //設定字型
$sql = "select * from `".$xoopsDB->prefix("contact")."`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$all_content="";
$cate=get_contact_cate_all();
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$pdf->AddPage(); //新增頁面
$pdf->setTextShadow(array('enabled'=>false, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));//文字陰影
$photo_file=get_pic_file('photo' , $sn , 1);
$photo=empty($photo_file)?"":"<img src=\"{$photo_file}\">";
$html="<h1>「{$name}」通訊錄</h1>
<table border=\"1\" cellpadding=\"4\">
<tr><th width=\"50\" align=\"center\" bgcolor=\"#CCFF66\">電話</th><td width=\"200\">{$tel}</td>
<td width=\"200\" rowspan=\"4\">$photo</td></tr>
<tr><th align=\"center\" bgcolor=\"#CCFF66\">信箱</th><td>{$email}</td></tr>
<tr><th align=\"center\" bgcolor=\"#CCFF66\">生日</th><td>{$birthday}</td></tr>
<tr><th align=\"center\" bgcolor=\"#CCFF66\">地址</th><td>{$zip} {$county}{$city}{$addr}</td></tr>
</table>";
$pdf->writeHTML($html);
include_once XOOPS_ROOT_PATH."/modules/tadtools/qrcode/qrcode.php";
$a = new QR("Email:{$email}");
file_put_contents(XOOPS_ROOT_PATH."/uploads/qrcode/{$sn}.gif",$a->image(2));
$pdf->Image(XOOPS_URL."/uploads/qrcode/{$sn}.gif", 170, 22 , 15, 15, 'gif');
}
$pdf->Output('contact.pdf', 'I');
?>
一、 關於phpWord(http://phpword.codeplex.com)
if($font != 'Arial') {
$objWriter->writeAttribute('w:eastAsia', $font);
$objWriter->startElement('w:rFonts');
<?php
require_once '../class/PHPWord.php';
$PHPWord = new PHPWord();
$section = $PHPWord->createSection();
$section->addText('通訊錄');
header('Content-Type: application/vnd.ms-word');
header('Content-Disposition: attachment;filename=通訊錄.docx');
header('Cache-Control: max-age=0');
$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save('php://output');
?>
$PHPWord->setDefaultFontName('標楷體'); //設定預設字型
$PHPWord->setDefaultFontSize(12); //設定預設字型大小
$sectionStyle = array('orientation' => null, 'marginLeft' => 900); //頁面設定(orientation 的值可以是橫向landscape或直向portrait。設定項目有:orientation、marginTop、marginLeft、marginRight、marginBottom、borderTopSize、borderTopColor、borderLeftSize、borderLeftColor、borderRightSize、borderRightColor、borderBottomSize、borderBottomColor)
$section = $PHPWord->createSection([$sectionStyle]); //建立一個頁面
$fontStyle = array('color'=>'006699', 'size'=>18, 'bold'=>true); //文字樣式設定(可用的文字設定:size、name、bold、italic、superScript、subScript、underline、Color、fgColor)
$paragraphStyle=array('align' => 'both', 'spaceAfter'=>300); //段落設定(可用設定:align、spaceBefore、spaceAfter、spacing)
$section->addText('內容', [$fontStyle], [$paragraphStyle] ); //新增文字段落
$section->addTextBreak(2); //換行,可指定換幾行
$section->addPageBreak(); //換頁
$listStyle = array('listType' => PHPWord_Style_ListItem::TYPE_NUMBER); //設定有序(TYPE_NUMBER)或無序(TYPE_BULLET_FILLED)清單
$section->addListItem( $text, [$depth], [$fontStyle], [$listStyle], [$paragraphStyle] ); //新增清單項目,$depth為階層,從0開始。
$section->addLink( $linkSrc, [$linkName], [$fontStyle], [$paragraphStyle]); //加入超連結
$section->addImage( $src, [$style] ); //插入圖片(可用設定:width、height、align,單位為px)
$PHPWord->addTitleStyle( $titleCount, [$fontStyle] ); //設定標題樣式 $titleCount 是指標題幾
$section->addTitle( $text, [$depth] ); //新增標題($depth會對應$titleCount)
$styleTable = array('borderColor'=>'006699', 'borderSize'=>6, 'cellMargin'=>50); //表格樣式(可用設定:cellMarginTop、cellMarginLeft、cellMarginRight、cellMarginBottom、cellMargin、bgColor、 borderTopSize、borderTopColor、borderLeftSize、borderLeftColor、borderRightSize、borderRightColor、borderBottomSize、borderBottomColor、borderInsideHSize、borderInsideHColor、borderInsideVSize、borderInsideVColor、borderSize、borderColor)
$styleFirstRow = array('bgColor'=>'66BBFF'); //首行樣式
$PHPWord->addTableStyle('myTable', $styleTable, $styleFirstRow); //建立表格樣式
$table = $section->addTable('myTable');//建立表格
$table->addRow(); //新增一列
$cellStyle =array('textDirection'=>PHPWord_Style_Cell::TEXT_DIR_BTLR, 'bgColor'=>'C0C0C0'); //儲存格樣式(設定項:valign、textDirection、bgColor、borderTopSize、borderTopColor、borderLeftSize、borderLeftColor、borderRightSize、borderRightColor、borderBottomSize、borderBottomColor)
$table->addCell(2000, [$cellStyle])->addText('內容'); //新增一格
<?php
/*-----------引入檔案區--------------*/
include_once "header_admin.php";
include_once "../up_file.php";
/*-----------function區--------------*/
//contact編輯表單
function contact_form($sn=""){
global $xoopsDB,$xoopsUser;
//抓取預設值
if(!empty($sn)){
$DBV=get_contact($sn);
}else{
$DBV=array();
}
//預設值設定
//設定「tel」欄位預設值
$tel=(!isset($DBV['tel']))?"":$DBV['tel'];
//設定「email」欄位預設值
$email=(!isset($DBV['email']))?"":$DBV['email'];
//設定「name」欄位預設值
$name=(!isset($DBV['name']))?"":$DBV['name'];
//設定「gsn」欄位預設值
$gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
//設定「sn」欄位預設值
$sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
//設定「birthday」欄位預設值
$birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
//設定「zip」欄位預設值
$zip=(!isset($DBV['zip']))?"":$DBV['zip'];
//設定「county」欄位預設值
$county=(!isset($DBV['county']))?"":$DBV['county'];
//設定「city」欄位預設值
$city=(!isset($DBV['city']))?"":$DBV['city'];
//設定「addr」欄位預設值
$addr=(!isset($DBV['addr']))?"":$DBV['addr'];
$op=(empty($sn))?"insert_contact":"update_contact";
$jquery=get_jquery();
include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
$formValidator= new formValidator("#myForm",false);
$formValidator_code=$formValidator->render();
$main="
$jquery
$formValidator_code
<script type='text/javascript' src='".TADTOOLS_URL."/My97DatePicker/WdatePicker.js'></script>
<script language='javascript' src='../class/twzipcode-1.3.1.js'> </script>
<script type='text/javascript'>
$(document).ready(function(){
$.post('ajax.php' , function(data){
$('#menu1').html(data);
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#menu1').change(function(){
$.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
$('#menu2').html(data);
});
});
$('#AddrForm').twzipcode({
countyName: 'county',
areaName: 'city',
zipName: 'zip',
countySel: '$county',
areaSel: '$city',
zipSel: '$zip',
zipReadonly: false
});
});
</script>
<script src='" .TADTOOLS_URL. "/multiple-file-upload/jquery.MultiFile.js'></script>
<form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm' enctype='multipart/form-data'>
<table class='form_tbl'>
<!--群組-->
<tr><td class='title' nowrap>群組</td>
<td class='col'>
<select id='menu1'></select>
<select name='gsn' id='menu2'></select>
</td></tr>
<!--姓名-->
<tr><td class='title' nowrap>姓名</td>
<td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' class='validate[required,minSize[2],maxSize[10]]'> </td></tr>
<!--電話-->
<tr><td class='title' nowrap>電話</td>
<td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' class='validate[required,custom[phone]]'> </td></tr>
<!--信箱-->
<tr><td class='title' nowrap>信箱</td>
<td class='col'><input type='text' name='email' size='20' value='{$email}' id='email' class='validate[required,custom[email]]'> </td></tr>
<!--生日-->
<tr><td class='title' nowrap>生日</td>
<td class='col'><input type='text' name='birthday' size='20' value='{$birthday}' id='birthday' onClick=\"WdatePicker({dateFmt:'yyyy-MM-dd' , isShowWeek:true , skin:'whyGreen' , maxDate:'%y-%M-%d' , readOnly: true , isShowClear: false , firstDayOfWeek:1})\" class='Wdate'></td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳圖片</td>
<td class='col'>
<input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>".
list_del_file('photo',$sn)."
</td></tr>
<!--上傳-->
<tr><td class='title' nowrap>上傳相關檔案</td>
<td class='col'>
<input type='file' name='docs[]' class='multi' >".
list_del_file('files',$sn)."
</td></tr>
<!--地址-->
<tr><td class='title' nowrap>地址</td>
<td class='col'>
<div style='position:relative;'>
<span id='AddrForm'></span>
<input type='text' name='addr' size='30' value='{$addr}' id='addr'>
</div>
</td></tr>
<tr>
<td class='bar' colspan='2'>
<!--編號-->
<input type='hidden' name='sn' value='{$sn}'>
<input type='hidden' name='op' value='{$op}'>
<input type='submit' value='儲存'>
</td>
</tr>
</table>
</form>";
//raised,corners,inset
$main=div_3d("通訊錄管理",$main,"raised");
return $main;
}
//新增資料到contact中
function insert_contact(){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "insert into `".$xoopsDB->prefix("contact")."`
(`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
$xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
//取得最後新增資料的流水編號
$sn = $xoopsDB->getInsertId();
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//更新contact某一筆資料
function update_contact($sn=""){
global $xoopsDB,$xoopsUser;
$myts =& MyTextSanitizer::getInstance();
$_POST['tel']=$myts->addSlashes($_POST['tel']);
$_POST['email']=$myts->addSlashes($_POST['email']);
$_POST['name']=$myts->addSlashes($_POST['name']);
$_POST['birthday']=$myts->addSlashes($_POST['birthday']);
$_POST['zip']=$myts->addSlashes($_POST['zip']);
$_POST['county']=$myts->addSlashes($_POST['county']);
$_POST['city']=$myts->addSlashes($_POST['city']);
$_POST['addr']=$myts->addSlashes($_POST['addr']);
$sql = "update `".$xoopsDB->prefix("contact")."` set
`tel` = '{$_POST['tel']}' ,
`email` = '{$_POST['email']}' ,
`name` = '{$_POST['name']}' ,
`gsn` = '{$_POST['gsn']}' ,
`birthday` = '{$_POST['birthday']}' ,
`zip` = '{$_POST['zip']}' ,
`county` = '{$_POST['county']}' ,
`city` = '{$_POST['city']}' ,
`addr` = '{$_POST['addr']}'
where `sn` = '$sn'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
upload_file('photo' , $sn , '400');
upload_file('files' , $sn , '400' , 'docs');
return $sn;
}
//列出所有contact資料
function list_contact($show_function=1){
global $xoopsDB , $xoopsModule , $isAdmin;
//製作選項
$sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
$cate_arr[]="'$gsn':'$title'";
}
$cate_option=implode(" , ",$cate_arr);
include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
$file="save.php";
$jeditable = new jeditable();
//$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
//$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$function_title=($show_function)?"<th>功能</th>":"";
$all_content="";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$fun=($show_function)?"
<td>
<a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
<a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
<a href='pdf2.php?sn=$sn' class='link_button'>PDF</a>
</td>":"";
$jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
$jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
$jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
$cate=get_contact_cate_all();
$file_counter1=get_file_amount('photo' , $sn);
$file_counter2=get_file_amount('files' , $sn);
$all_content.="
<tr>
<td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
<td id='name_{$sn}'>{$name}</td>
<td>{$tel}</td>
<td id='email_{$sn}'>{$email}</td>
<td>{$birthday}</td>
<td>{$zip}</td>
<td>{$county}</td>
<td>{$city}</td>
<td>{$addr}</td>
<td>{$file_counter1}</td>
<td>{$file_counter2}</td>
$fun
</tr>
";
}
$jeditable_set=$jeditable->render();
//if(empty($all_content))return "";
$add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
//刪除確認的JS
$main="
$jeditable_set
<script>
function delete_contact_func(sn){
var sure = window.confirm('確定刪除此資料?');
if (!sure) return;
location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
}
</script>
批次匯入:
<form action='index.php' method='post' enctype='multipart/form-data'>
<INPUT type='file' name='userfile'>
<INPUT type='hidden' name='op' value='import'>
<INPUT type='submit' value='匯入 CSV'>
<INPUT type='button' value='匯出 CSV' onClick=\"location.href='index.php?op=export'\">
</form>
<form action='index.php' method='post' enctype='multipart/form-data'>
<INPUT type='file' name='importfile'>
<INPUT type='hidden' name='op' value='import_excel'>
<INPUT type='submit' value='匯入 Excel'>
<INPUT type='button' value='匯出 Excel' onClick=\"location.href='excel.php'\">
</form>
<INPUT type='button' value='匯出 PDF' onClick = \"location.href='pdf.php'\">
<INPUT type='button' value='匯出所有單張 PDF' onClick = \"location.href='pdf_all.php'\">
<INPUT type='button' value='匯出 docx' onClick = \"location.href='docx.php'\">
<table summary='list_table' id='tbl' style='width:100%;'>
<tr>
<th>群組</th>
<th>姓名</th>
<th>電話</th>
<th>信箱</th>
<th>生日</th>
<th>郵遞區號</th>
<th>縣市</th>
<th>鄉鎮市區</th>
<th>地址</th>
<th>相片</th>
<th>檔案數</th>
$function_title
</tr>
<tbody>
$all_content
</tbody>
<tr>
<td colspan=11 class='bar'>
{$add_button}
</td>
</tr>
</table>";
//raised,corners,inset
$main=div_3d("",$main,"corners");
return $main;
}
//以流水號取得某筆contact資料
function get_contact($sn=""){
global $xoopsDB;
if(empty($sn))return;
$sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$data=$xoopsDB->fetchArray($result);
return $data;
}
//刪除contact某筆資料資料
function delete_contact($sn=""){
global $xoopsDB , $isAdmin;
$sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
del_files('' , 'photo' , $sn);
del_files('' , 'files' , $sn);
}
//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
global $xoopsDB , $xoopsModule;
$sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
$prefix=str_repeat(" " , $level);
$level++;
$unselect=explode("," , $unselect_level);
$main="";
while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
if($mode=="edit"){
$selected=($gsn==$default_parent_gsn)?"selected=selected":"";
$selected.=($gsn==$default_gsn)?"disabled=disabled" : "";
$selected.=(in_array($level , $unselect))?"disabled=disabled" : "";
}else{
$selected=($gsn==$default_gsn)?"selected=selected" : "";
$selected.=(in_array($level , $unselect))?"disabled=disabled" : "";
}
$main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
$main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
}
return $main;
}
//匯入
function import(){
global $xoopsDB;
//$main="<table>";
$handle = fopen($_FILES['userfile']['tmp_name'], "r") or die("無法開啟");
while (($data = __fgetcsv($handle, 1000)) !== FALSE) {
//判斷格式
if(!is_numeric($data[0])){
continue;
}
$data[1]=mb_convert_encoding($data[1], "UTF-8" , "Big5");
$data[6]=iconv("Big5" , "UTF-8" , $data[6]);
$data[7]=iconv("Big5" , "UTF-8" , $data[7]);
$data[8]=iconv("Big5" , "UTF-8" , $data[8]);
/*
$main.="
<tr>
<td>{$data[0]}</td>
<td>{$data[1]}</td>
<td>{$data[2]}</td>
<td>{$data[3]}</td>
<td>{$data[4]}</td>
<td>{$data[5]}</td>
<td>{$data[6]}</td>
<td>{$data[7]}</td>
<td>{$data[8]}</td>
</tr>
";
*/
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$data[0]}' , '{$data[1]}' , '{$data[2]}' , '{$data[3]}' , '{$data[4]}' , '{$data[5]}' , '{$data[6]}' , '{$data[7]}' , '{$data[8]}')";
$xoopsDB->queryF($sql) or die($sql);
}
fclose($handle);
//$main.="</table>";
return $main;
}
function __fgetcsv(&$handle, $length = null, $d = ",", $e = '"') {
$d = preg_quote($d);
$e = preg_quote($e);
$_line = "";
$eof=false;
while ($eof != true) {
$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
$itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
if ($itemcnt % 2 == 0)
$eof = true;
}
$_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
$_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
$_csv_data[$_csv_i] = preg_replace("/^" . $e . "(.*)" . $e . "$/s", "$1", $_csv_data[$_csv_i]);
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
}
return empty ($_line) ? false : $_csv_data;
}
//匯出函數
function export(){
global $xoopsDB;
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$main="gsn,name,tel,email,birthday,zip,county,city,addr\n";
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$name=iconv("UTF-8" , "Big5" , $name);
$county=iconv("UTF-8" , "Big5" , $county);
$city=iconv("UTF-8" , "Big5" , $city);
$addr=iconv("UTF-8" , "Big5" , $addr);
$main.="$gsn,$name,$tel,$email,$birthday,$zip,$county,$city,$addr\n";
}
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=contact.csv");
echo $main;
exit;
}
//匯入Excel
function import_excel(){
global $xoopsDB;
include_once '../class/PHPExcel/IOFactory.php';
$reader = PHPExcel_IOFactory::createReader('Excel5');
$PHPExcel = $reader->load( $_FILES['importfile']['tmp_name'] ); // 檔案名稱
$sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表(編號從 0 開始)
$highestRow = $sheet->getHighestRow(); // 取得總列數
// 一次讀取一列
for($row = 1; $row <= $highestRow; $row++) {
$v="";
//讀取一列中的每一格
for ($col = 0; $col <= 8; $col++) {
//格式檢查
if( PHPExcel_Shared_Date::isDateTime( $sheet->getCellByColumnAndRow($col , $row ) )){
$val = PHPExcel_Shared_Date::ExcelToPHPObject( $sheet->getCellByColumnAndRow( $col , $row )->getValue())->format('Y-m-d');
}else{
$val = $sheet->getCellByColumnAndRow($col, $row)->getCalculatedValue();
}
if(!get_magic_quotes_runtime()) {
$v[$col]=addSlashes($val);
}
}
if(!is_numeric($v[0]) or empty($v[0]))continue;
$sql = "insert into `".$xoopsDB->prefix("contact")."` (`gsn` , `name` , `tel` , `email` , `birthday` , `zip` , `county` , `city` , `addr`) values('{$v[0]}' , '{$v[1]}' , '{$v[2]}' , '{$v[3]}' , '{$v[4]}' , '{$v[5]}' , '{$v[6]}' , '{$v[7]}' , '{$v[8]}')";
$xoopsDB->queryF($sql) or die($sql);
}
}
/*-----------執行動作判斷區----------*/
$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
switch($op){
/*---判斷動作請貼在下方---*/
//新增資料
case "insert_contact":
$sn=insert_contact();
header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
break;
//更新資料
case "update_contact":
update_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//輸入表格
case "contact_form":
$main=contact_form($sn);
break;
//刪除資料
case "delete_contact":
delete_contact($sn);
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯入
case "import":
import();
header("location: {$_SERVER['PHP_SELF']}");
break;
//匯出
case "export":
export();
break;
//匯入Excel
case "import_excel":
import_excel();
header("location: {$_SERVER['PHP_SELF']}");
break;
//預設動作
default:
$main=list_contact();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
module_admin_footer($main,0);
?>
<?php
include_once "header_admin.php";
require_once '../class/PHPWord.php';
$PHPWord = new PHPWord();
//$PHPWord->setDefaultFontName('標楷體'); //設定預設字型
$PHPWord->setDefaultFontSize(12); //設定預設字型大小
//頁面設定(orientation 的值可以是橫向 landscape 或直向portrait。設定項目有:orientation、marginTop、marginLeft、marginRight、marginBottom、borderTopSize、borderTopColor、borderLeftSize、borderLeftColor、borderRightSize、borderRightColor、borderBottomSize、borderBottomColor)
$sectionStyle = array('orientation' => 'landscape');
$section = $PHPWord->createSection($sectionStyle);
$fontStyle = array('color'=>'660000', 'size'=>20, 'bold'=>true);
//文字樣式設定(可用的文字設定:size、name、bold、italic、superScript、subScript、underline、Color、fgColor)
$PHPWord->addTitleStyle( 1, $fontStyle ); //設定標題樣式 $titleCount 是指標題幾
$section->addTitle( "我的通訊錄列表", 1); //新增標題($depth會對應$titleCount)
$styleTable = array('borderColor'=>'000000', 'borderSize'=>6, 'cellMargin'=>50);
//表格樣式(可用設定:cellMarginTop、cellMarginLeft、cellMarginRight、cellMarginBottom、cellMargin、bgColor、 borderTopSize、borderTopColor、borderLeftSize、borderLeftColor、borderRightSize、borderRightColor、borderBottomSize、borderBottomColor、borderInsideHSize、borderInsideHColor、borderInsideVSize、borderInsideVColor、borderSize、borderColor)
$styleFirstRow = array('bgColor'=>'66BBFF'); //首行樣式
$PHPWord->addTableStyle('myTable', $styleTable, $styleFirstRow); //建立表格樣式
$table = $section->addTable('myTable');//建立表格
$table->addRow(); //新增一列
//$cellStyle =array('bgColor'=>'C0C0C0');
$cellStyle='';
//儲存格樣式(設定項:valign、textDirection、bgColor、borderTopSize、borderTopColor、borderLeftSize、borderLeftColor、borderRightSize、borderRightColor、borderBottomSize、borderBottomColor)
$table->addCell(1000, $cellStyle)->addText('群組');
$table->addCell(5000, $cellStyle)->addText('姓名');
$table->addCell(2000, $cellStyle)->addText('電話');
$table->addCell(2000, $cellStyle)->addText('信箱');
$table->addCell(3000, $cellStyle)->addText('生日');
$table->addCell(9000, $cellStyle)->addText('地址');
$sql = "select * from `".$xoopsDB->prefix("contact")."` ";
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$cate=get_contact_cate_all();
while($all=$xoopsDB->fetchArray($result)){
//以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
foreach($all as $k=>$v){
$$k=$v;
}
$table->addRow(); //新增一列
$table->addCell(1000, $cellStyle)->addText($cate[$gsn]['title']);
$table->addCell(5000, $cellStyle)->addText($name);
$table->addCell(2000, $cellStyle)->addText($tel);
$table->addCell(2000, $cellStyle)->addText($email);
$table->addCell(3000, $cellStyle)->addText($birthday);
$table->addCell(9000, $cellStyle)->addText("{$zip} {$county}{$city}{$addr}");
}
/*
$section->addText('款式新穎的牛仔褲、牛仔裙穿了幾年後,通常就會被遺忘拋棄在衣櫃的深處,或是進了舊衣回收桶中。但對於來自英國的藝術家伊恩‧貝瑞(Ian Berry)來說,這些丹寧布都是他從事創作最得力的工具,無論布料有多小都不願意丟棄。');
$section->addTextBreak(); //換行,可指定換幾行
$fontStyle = array('color'=>'006699', 'size'=>18, 'bold'=>true);
//文字樣式設定(可用的文字設定:size、name、bold、italic、superScript、subScript、underline、Color、fgColor)
$paragraphStyle=array('align' => 'both', 'spaceBefore'=>300, 'spacing'=>100); //段落設定(可用設定:align、spaceBefore、spaceAfter、spacing)
$section->addText('根據英國《每日郵報》(Daily Mail)報導,原先為藝術總監、現年28歲的伊恩‧貝瑞,近來已成為藝術界鼎鼎大名的「丹寧布之神」。2006年,伊恩自大學返回老家,在房間中無意翻出許多老舊的牛仔布,靈機一動便將這些碎布拼湊成畫,開啟了伊恩的創作之門。' , $fontStyle , $paragraphStyle);
*/
header('Content-Type: application/vnd.ms-word');
$filename=iconv('utf-8','big5','通訊錄');
header("Content-Disposition: attachment;filename={$filename}.docx");
header('Cache-Control: max-age=0');
$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save('php://output');
?>