:::

16-1 上課範例:admin/index.php

001<?php
002 
003/*-----------引入檔案區--------------*/
004include_once "header_admin.php";
005include_once "../up_file.php";
006/*-----------function區--------------*/
007//contact編輯表單
008function contact_form($sn=""){
009    global $xoopsDB,$xoopsUser;
010 
011    //抓取預設值
012    if(!empty($sn)){
013        $DBV=get_contact($sn);
014    }else{
015        $DBV=array();
016    }
017 
018    //預設值設定
019 
020    //設定「tel」欄位預設值
021    $tel=(!isset($DBV['tel']))?"":$DBV['tel'];
022 
023    //設定「email」欄位預設值
024    $email=(!isset($DBV['email']))?"":$DBV['email'];
025 
026    //設定「name」欄位預設值
027    $name=(!isset($DBV['name']))?"":$DBV['name'];
028 
029    //設定「gsn」欄位預設值
030    $gsn=(!isset($DBV['gsn']))?null:$DBV['gsn'];
031 
032    //設定「sn」欄位預設值
033    $sn=(!isset($DBV['sn']))?$sn:$DBV['sn'];
034 
035    //設定「birthday」欄位預設值
036    $birthday=(!isset($DBV['birthday']))?"":$DBV['birthday'];
037 
038    //設定「zip」欄位預設值
039    $zip=(!isset($DBV['zip']))?"":$DBV['zip'];
040 
041    //設定「county」欄位預設值
042    $county=(!isset($DBV['county']))?"":$DBV['county'];
043 
044    //設定「city」欄位預設值
045    $city=(!isset($DBV['city']))?"":$DBV['city'];
046 
047    //設定「addr」欄位預設值
048    $addr=(!isset($DBV['addr']))?"":$DBV['addr'];
049 
050    $op=(empty($sn))?"insert_contact":"update_contact";
051 
052 
053  $jquery=get_jquery();
054   
055  include_once XOOPS_ROOT_PATH."/modules/tadtools/formValidator.php";
056  $formValidator= new formValidator("#myForm",false);
057  $formValidator_code=$formValidator->render();
058 
059    $main="
060    $jquery
061    $formValidator_code
062  <script type='text/javascript' src='".TADTOOLS_URL."/My97DatePicker/WdatePicker.js'></script>
063  <script language='javascript' src='../class/twzipcode-1.3.1.js'></script>
064    <script type='text/javascript'>
065  $(document).ready(function(){
066    $.post('ajax.php' , function(data){
067      $('#menu1').html(data);
068      $.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
069        $('#menu2').html(data);
070      });
071    });
072     
073    $('#menu1').change(function(){
074      $.post('ajax.php' , {parent_gsn: $('#menu1').val()} , function(data){
075        $('#menu2').html(data);
076      });
077    });
078     
079    $('#AddrForm').twzipcode({
080      countyName: 'county',
081      areaName: 'city',
082      zipName: 'zip',
083      countySel: '$county',
084      areaSel: '$city',
085      zipSel: '$zip',
086      zipReadonly: false
087    });
088  });
089  </script>
090    <script src='".TADTOOLS_URL."/multiple-file-upload/jquery.MultiFile.js'></script>
091    <form action='{$_SERVER['PHP_SELF']}' method='post' id='myForm' enctype='multipart/form-data'>
092     
093    <table class='form_tbl'>
094 
095    <!--群組-->
096    <tr><td class='title' nowrap>群組</td>
097    <td class='col'>
098    <select id='menu1'></select>
099    <select name='gsn' id='menu2'></select>
100    </td></tr>
101 
102    <!--姓名-->
103    <tr><td class='title' nowrap>姓名</td>
104    <td class='col'><input type='text' name='name' size='20' value='{$name}' id='name' class='validate[required,minSize[2],maxSize[10]]'></td></tr>
105 
106 
107    <!--電話-->
108    <tr><td class='title' nowrap>電話</td>
109    <td class='col'><input type='text' name='tel' size='20' value='{$tel}' id='tel' class='validate[required,custom[phone]]'></td></tr>
110 
111    <!--信箱-->
112    <tr><td class='title' nowrap>信箱</td>
113    <td class='col'><input type='text' name='email' size='20' value='{$email}' id='email'  class='validate[required,custom[email]]'></td></tr>
114     
115     
116    <!--生日-->
117    <tr><td class='title' nowrap>生日</td>
118    <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>
119 
120    <!--上傳-->
121    <tr><td class='title' nowrap>上傳圖片</td>
122    <td class='col'>
123  <input type='file' name='upfile[]' class='multi' maxlength='1' accept='gif|jpg|png|GIF|JPG|PNG'>".
124list_del_file('photo',$sn)."
125  </td></tr>
126 
127 
128    <!--上傳-->
129    <tr><td class='title' nowrap>上傳相關檔案</td>
130    <td class='col'>
131  <input type='file' name='docs[]' class='multi' >".
132list_del_file('files',$sn)."
133  </td></tr>
134 
135 
136 
137    <!--地址-->
138    <tr><td class='title' nowrap>地址</td>
139    <td class='col'>
140    <div style='position:relative;'>
141   <span id='AddrForm'></span>
142   <input type='text' name='addr' size='30' value='{$addr}' id='addr'>
143  </div>
144  </td></tr>
145 
146    <tr>
147        <td class='bar' colspan='2'>
148 
149        <!--編號-->
150        <input type='hidden' name='sn' value='{$sn}'>
151 
152            <input type='hidden' name='op' value='{$op}'>
153            <input type='submit' value='儲存'>
154        </td>
155    </tr>
156    </table>
157    </form>";
158 
159    //raised,corners,inset
160    $main=div_3d("通訊錄管理",$main,"raised");
161 
162    return $main;
163}
164 
165 
166 
167//新增資料到contact中
168function insert_contact(){
169    global $xoopsDB,$xoopsUser;
170 
171 
172    $myts =& MyTextSanitizer::getInstance();
173    $_POST['tel']=$myts->addSlashes($_POST['tel']);
174    $_POST['email']=$myts->addSlashes($_POST['email']);
175    $_POST['name']=$myts->addSlashes($_POST['name']);
176    $_POST['birthday']=$myts->addSlashes($_POST['birthday']);
177    $_POST['zip']=$myts->addSlashes($_POST['zip']);
178    $_POST['county']=$myts->addSlashes($_POST['county']);
179    $_POST['city']=$myts->addSlashes($_POST['city']);
180    $_POST['addr']=$myts->addSlashes($_POST['addr']);
181 
182 
183    $sql = "insert into `".$xoopsDB->prefix("contact")."`
184    (`tel` , `email` , `name` , `gsn` , `birthday` , `zip` , `county` , `city` , `addr`)
185    values('{$_POST['tel']}' , '{$_POST['email']}' , '{$_POST['name']}' , '{$_POST['gsn']}' , '{$_POST['birthday']}' , '{$_POST['zip']}' , '{$_POST['county']}' , '{$_POST['city']}' , '{$_POST['addr']}')";
186    $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
187 
188    //取得最後新增資料的流水編號
189    $sn = $xoopsDB->getInsertId();
190     
191    upload_file('photo' , $sn , '400');
192    upload_file('files' , $sn , '400' , 'docs');
193    return $sn;
194}
195 
196//更新contact某一筆資料
197function update_contact($sn=""){
198    global $xoopsDB,$xoopsUser;
199 
200 
201    $myts =& MyTextSanitizer::getInstance();
202    $_POST['tel']=$myts->addSlashes($_POST['tel']);
203    $_POST['email']=$myts->addSlashes($_POST['email']);
204    $_POST['name']=$myts->addSlashes($_POST['name']);
205    $_POST['birthday']=$myts->addSlashes($_POST['birthday']);
206    $_POST['zip']=$myts->addSlashes($_POST['zip']);
207    $_POST['county']=$myts->addSlashes($_POST['county']);
208    $_POST['city']=$myts->addSlashes($_POST['city']);
209    $_POST['addr']=$myts->addSlashes($_POST['addr']);
210 
211 
212    $sql = "update `".$xoopsDB->prefix("contact")."` set
213     `tel` = '{$_POST['tel']}' ,
214     `email` = '{$_POST['email']}' ,
215     `name` = '{$_POST['name']}' ,
216     `gsn` = '{$_POST['gsn']}' ,
217     `birthday` = '{$_POST['birthday']}' ,
218     `zip` = '{$_POST['zip']}' ,
219     `county` = '{$_POST['county']}' ,
220     `city` = '{$_POST['city']}' ,
221     `addr` = '{$_POST['addr']}'
222    where `sn` = '$sn'";
223    $xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
224     
225 
226    upload_file('photo' , $sn , '400');
227    upload_file('files' , $sn , '400' , 'docs');
228    return $sn;
229}
230 
231//列出所有contact資料
232function list_contact($show_function=1){
233    global $xoopsDB , $xoopsModule , $isAdmin;
234     
235  //製作選項
236    $sql = "select gsn,title from `".$xoopsDB->prefix("contact_cate")."` where parent_gsn!='0' order by sort";
237    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
238    while(list($gsn,$title)=$xoopsDB->fetchRow($result)){
239    $cate_arr[]="'$gsn':'$title'";
240  }
241    $cate_option=implode(" , ",$cate_arr);
242 
243     
244    include_once XOOPS_ROOT_PATH."/modules/tadtools/jeditable.php";
245  $file="save.php";
246  $jeditable = new jeditable();
247  //$jeditable->setTextCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
248  //$jeditable->setTextAreaCol("#id",$file,'140px','12px',"{'sn':$sn,'op' : 'save'}","點擊編輯");
249  //$jeditable->setSelectCol("#id",$file,"{'boy':'男生' , 'girl':'女生'}","{'sn' : $sn , 'op' : 'save'}","點擊編輯");
250   
251     
252 
253    $sql = "select * from `".$xoopsDB->prefix("contact")."` ";
254    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
255 
256    $function_title=($show_function)?"<th>功能</th>":"";
257 
258    $all_content="";
259 
260    while($all=$xoopsDB->fetchArray($result)){
261        //以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
262        foreach($all as $k=>$v){
263            $$k=$v;
264        }
265 
266        $fun=($show_function)?"
267        <td>
268        <a href='{$_SERVER['PHP_SELF']}?op=contact_form&sn=$sn' class='link_button'>編輯</a>
269        <a href=\"javascript:delete_contact_func($sn);\" class='link_button'>刪除</a>
270        </td>":"";
271 
272    $jeditable->setSelectCol("#gsn_{$sn}",$file,"{{$cate_option}}","{'sn' : $sn , 'col' : 'gsn'}");
273    $jeditable->setTextCol("#name_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'name'}");
274    $jeditable->setTextCol("#email_{$sn}",$file,'100px','12px',"{'sn':$sn , 'col' : 'email'}");
275 
276        $cate=get_contact_cate_all();
277 
278    $file_counter1=get_file_amount('photo' , $sn);
279    $file_counter2=get_file_amount('files' , $sn);
280     
281        $all_content.="
282        <tr>
283            <td id='gsn_{$sn}'>{$cate[$gsn]['title']}</td>
284            <td id='name_{$sn}'>{$name}</td>
285            <td>{$tel}</td>
286            <td id='email_{$sn}'>{$email}</td>
287            <td>{$birthday}</td>
288            <td>{$zip}</td>
289            <td>{$county}</td>
290            <td>{$city}</td>
291            <td>{$addr}</td>
292            <td>{$file_counter1}</td>
293            <td>{$file_counter2}</td>
294            $fun
295        </tr>
296        ";
297    }
298 
299  $jeditable_set=$jeditable->render();
300   
301    //if(empty($all_content))return "";
302 
303    $add_button=($show_function)?"<a href='{$_SERVER['PHP_SELF']}?op=contact_form' class='link_button_r'>新增</a>":"";
304 
305    //刪除確認的JS
306    $main="
307    $jeditable_set
308     
309    <script>
310    function delete_contact_func(sn){
311        var sure = window.confirm('確定刪除此資料?');
312        if (!sure)  return;
313        location.href=\"{$_SERVER['PHP_SELF']}?op=delete_contact&sn=\" + sn;
314    }
315    </script>
316     
317     
318  批次匯入:
319  <form action='index.php' method='post' enctype='multipart/form-data'>
320  <INPUT type='file' name='userfile'>
321  <INPUT type='hidden' name='op' value='import'>
322  <INPUT type='submit' value='匯入 CSV'>
323  <INPUT type='button' value='匯出 CSV' onClick=\"location.href='index.php?op=export'\">
324 
325  </form>
326 
327 
328  <form action='index.php' method='post' enctype='multipart/form-data'>
329  <INPUT type='file' name='importfile'>
330  <INPUT type='hidden' name='op' value='import_excel'>
331  <INPUT type='submit' value='匯入 Excel'>
332  <INPUT type='button' value='匯出 Excel' onClick=\"location.href='excel.php'\">
333  </form>
334 
335  <INPUT type='button' value='匯出 PDF' onClick=\"location.href='pdf.php'\">
336 
337    <table summary='list_table' id='tbl' style='width:100%;'>
338    <tr>
339        <th>群組</th>
340        <th>姓名</th>
341        <th>電話</th>
342        <th>信箱</th>
343        <th>生日</th>
344        <th>郵遞區號</th>
345        <th>縣市</th>
346        <th>鄉鎮市區</th>
347        <th>地址</th>
348        <th>相片</th>
349        <th>檔案數</th>
350        $function_title
351    </tr>
352 
353    <tbody>
354    $all_content
355    </tbody>
356 
357    <tr>
358        <td colspan=11 class='bar'>
359        {$add_button}
360        </td>
361    </tr>
362    </table>";
363 
364    //raised,corners,inset
365    $main=div_3d("",$main,"corners");
366 
367    return $main;
368}
369 
370 
371//以流水號取得某筆contact資料
372function get_contact($sn=""){
373    global $xoopsDB;
374    if(empty($sn))return;
375    $sql = "select * from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
376    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
377    $data=$xoopsDB->fetchArray($result);
378    return $data;
379}
380 
381//刪除contact某筆資料資料
382function delete_contact($sn=""){
383    global $xoopsDB , $isAdmin;
384    $sql = "delete from `".$xoopsDB->prefix("contact")."` where `sn` = '{$sn}'";
385    $xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
386     
387    del_files('' , 'photo' , $sn);
388    del_files('' , 'files' , $sn);
389}
390 
391 
392//取得所有contact_cate分類選單的選項(模式 = edit[編輯用] or show[顯示用],目前分類編號,目前分類的所屬編號)
393function get_contact_cate_options($mode='show' , $default_gsn="0" , $default_parent_gsn="0" , $unselect_level="" , $start_search_sn="0" , $level=0){
394    global $xoopsDB , $xoopsModule;
395    $sql = "select `gsn` , `title` from `".$xoopsDB->prefix("contact_cate")."` where `parent_gsn` = '{$start_search_sn}' order by `sort`";
396    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'] , 3, mysql_error());
397 
398    $prefix=str_repeat("&nbsp;&nbsp;" , $level);
399    $level++;
400 
401    $unselect=explode("," , $unselect_level);
402 
403    $main="";
404    while(list($gsn , $title)=$xoopsDB->fetchRow($result)){
405        if($mode=="edit"){
406            $selected=($gsn==$default_parent_gsn)?"selected=selected":"";
407            $selected.=($gsn==$default_gsn)?"disabled=disabled":"";
408            $selected.=(in_array($level , $unselect))?"disabled=disabled":"";
409        }else{
410            $selected=($gsn==$default_gsn)?"selected=selected":"";
411            $selected.=(in_array($level , $unselect))?"disabled=disabled":"";
412        }
413        $main.="<option value=$gsn $selected>{$prefix}{$title}</option>";
414        $main.=get_contact_cate_options($mode , $default_gsn , $default_parent_gsn , $unselect_level , $gsn , $level);
415 
416    }
417    return $main;
418}
419 
420 
421//匯入
422function import(){
423  global $xoopsDB;
424   
425  //$main="<table>";
426  $handle = fopen($_FILES['userfile']['tmp_name'], "r") or die("無法開啟");
427 
428  while (($data = __fgetcsv($handle, 1000)) !== FALSE) {
429 
430    //判斷格式
431    if(!is_numeric($data[0])){
432      continue;
433    }
434     
435    $data[1]=mb_convert_encoding($data[1], "UTF-8" , "Big5");
436    $data[6]=iconv("Big5" , "UTF-8" , $data[6]);
437    $data[7]=iconv("Big5" , "UTF-8" , $data[7]);
438    $data[8]=iconv("Big5" , "UTF-8" , $data[8]);
439     
440    /*
441    $main.="
442    <tr>
443    <td>{$data[0]}</td>
444    <td>{$data[1]}</td>
445    <td>{$data[2]}</td>
446    <td>{$data[3]}</td>
447    <td>{$data[4]}</td>
448    <td>{$data[5]}</td>
449    <td>{$data[6]}</td>
450    <td>{$data[7]}</td>
451    <td>{$data[8]}</td>
452    </tr>
453    ";
454    */
455     
456    $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]}')";
457    $xoopsDB->queryF($sql) or die($sql);
458  }
459  fclose($handle);
460  //$main.="</table>";
461   
462  return $main;
463}
464 
465function __fgetcsv(&$handle, $length = null, $d = ",", $e = '"') {
466    $d = preg_quote($d);
467    $e = preg_quote($e);
468    $_line = "";
469    $eof=false;
470    while ($eof != true) {
471        $_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
472        $itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
473        if ($itemcnt % 2 == 0)
474            $eof = true;
475    }
476   $_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
477 
478    $_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
479    preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
480    $_csv_data = $_csv_matches[1];
481 
482    for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
483        $_csv_data[$_csv_i] = preg_replace("/^" . $e . "(.*)" . $e . "$/s", "$1", $_csv_data[$_csv_i]);
484        $_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
485    }
486    return empty ($_line) ? false : $_csv_data;
487}
488 
489//匯出函數
490function export(){
491  global $xoopsDB;
492 
493    $sql = "select * from `".$xoopsDB->prefix("contact")."` ";
494    $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
495 
496  $main="gsn,name,tel,email,birthday,zip,county,city,addr\n";
497    while($all=$xoopsDB->fetchArray($result)){
498        //以下會產生這些變數: $tel , $email , $name , $gsn , $sn , $birthday , $zip , $county , $city , $addr
499        foreach($all as $k=>$v){
500            $$k=$v;
501        }
502 
503    $name=iconv("UTF-8" , "Big5" , $name);
504    $county=iconv("UTF-8" , "Big5" , $county);
505    $city=iconv("UTF-8" , "Big5" , $city);
506    $addr=iconv("UTF-8" , "Big5" , $addr);
507         
508        $main.="$gsn,$name,$tel,$email,$birthday,$zip,$county,$city,$addr\n";
509  }
510   
511  header("Content-type: text/x-csv");
512  header("Content-Disposition: attachment; filename=contact.csv");
513  echo $main;
514  exit;
515}
516 
517//匯入Excel
518function import_excel(){
519  global $xoopsDB;
520 
521  include_once '../class/PHPExcel/IOFactory.php';
522  $reader = PHPExcel_IOFactory::createReader('Excel5');
523  $PHPExcel = $reader->load( $_FILES['importfile']['tmp_name'] ); // 檔案名稱
524  $sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表(編號從 0 開始)
525  $highestRow = $sheet->getHighestRow(); // 取得總列數
526  // 一次讀取一列
527  for($row = 1; $row <= $highestRow; $row++) {
528    $v="";
529    //讀取一列中的每一格
530    for ($col = 0; $col <= 8; $col++) {
531     
532      //格式檢查
533      if( PHPExcel_Shared_Date::isDateTime( $sheet->getCellByColumnAndRow($col , $row ) )){
534        $val = PHPExcel_Shared_Date::ExcelToPHPObject( $sheet->getCellByColumnAndRow( $col , $row )->getValue())->format('Y-m-d');
535      }else{
536        $val $sheet->getCellByColumnAndRow($col, $row)->getCalculatedValue();
537      }
538       
539       
540      if(!get_magic_quotes_runtime()) {
541        $v[$col]=addSlashes($val);
542      }
543       
544    }
545     
546    if(!is_numeric($v[0]) or empty($v[0]))continue;
547     
548    $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]}')";
549    $xoopsDB->queryF($sql) or die($sql);
550  }
551}
552 
553/*-----------執行動作判斷區----------*/
554$op = empty($_REQUEST['op'])? "":$_REQUEST['op'];
555$sn=empty($_REQUEST['sn'])?"":intval($_REQUEST['sn']);
556$gsn=empty($_REQUEST['gsn'])?"":intval($_REQUEST['gsn']);
557$files_sn=empty($_REQUEST['files_sn'])?"":intval($_REQUEST['files_sn']);
558 
559 
560switch($op){
561    /*---判斷動作請貼在下方---*/
562 
563  //新增資料
564  case "insert_contact":
565  $sn=insert_contact();
566  header("location: {$_SERVER['PHP_SELF']}?sn=$sn");
567  break;
568 
569  //更新資料
570  case "update_contact":
571  update_contact($sn);
572  header("location: {$_SERVER['PHP_SELF']}");
573  break;
574 
575  //輸入表格
576  case "contact_form":
577  $main=contact_form($sn);
578  break;
579 
580  //刪除資料
581  case "delete_contact":
582  delete_contact($sn);
583  header("location: {$_SERVER['PHP_SELF']}");
584  break;
585   
586  //匯入
587  case "import":
588  import();
589  header("location: {$_SERVER['PHP_SELF']}");
590  break;
591   
592  //匯出
593  case "export":
594  export();
595  break;
596   
597   
598  //匯入Excel
599  case "import_excel":
600  import_excel();
601  header("location: {$_SERVER['PHP_SELF']}");
602  break;
603 
604  //預設動作
605  default:
606  $main=list_contact();
607  break;
608 
609     
610    /*---判斷動作請貼在上方---*/
611}
612 
613/*-----------秀出結果區--------------*/
614module_admin_footer($main,0);
615 
616?>

 


:::

搜尋

QR Code 區塊

https%3A%2F%2Ftad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D807%26tbsn%3D26

書籍目錄

展開 | 闔起

線上使用者

43人線上 (12人在瀏覽線上書籍)

會員: 0

訪客: 43

更多…