線上書籍

Home

[1042] XOOPS模組開發進階

<?php include_once "header.php"; require_once TADTOOLS_PATH . "/PHPWord.php"; $PHPWord = new PHPWord(); $PHPWord->setDefaultFontName('微軟正黑體'); //設定預設字型 $PHPWord->setDefaultFontSize(10); //設定預設字型大小 $sectionStyle = array('orientation' => null, 'marginLeft' => 900, 'marginRight' => 900); //頁面設定 $section = $PHPWord->createSection($sectionStyle); //建立一個頁面 //內容設定 $fontStyle1 = array('name'=>'標楷體', 'color'=>'0000ff', 'size'=>24); //文字樣式設定 $fontStyle2 = array('color'=>'ff0000', 'size'=>18, 'bold'=>true, 'bold'=>true, 'underline'=>PHPWord_Style_Font::UNDERLINE_DASH , 'fgColor'=>PHPWord_Style_Font::FGCOLOR_YELLOW ,'strikethrough'=>true); //文字樣式設定 //段落設定 $paragraphStyle=array('align' => 'center', 'spaceAfter'=>300); $PHPWord->addTitleStyle( 1, $fontStyle1, $paragraphStyle); //設定標題樣式 $PHPWord->addTitleStyle( 2, $fontStyle2); //設定標題樣式 $section->addTitle( '通訊錄', 1 ); //新增標題 /*內容部份*/ // $TextfontStyle = array('name'=>'標楷體', 'color'=>'000000', 'size'=>12); //文字樣式設定 // $TextparagraphStyle=array('align' => 'left', 'spaceAfter'=>576); // $content1="頂新案一審判無罪,台北市長柯文哲今天表示,這是總統大選迄今為止,「最大的催票行為」。 // 柯文哲昨晚到社子島進行Homestay,今天一早還到當地地藏禪寺和地皎法師、台北市議員吳思瑤及徐世勳、當地居民和里長一同吃素齋早餐祈福。 // 媒體餐後聯訪詢問頂新製油公司前董事長魏應充被判無罪,怎看?"; // $content2="柯文哲表示,這是總統大選迄今為止,這是最大的催票行為,用膝蓋想也知道。 // 記者追問是否把挺綠的票催出來?柯文哲笑著反問「妳認為哩?」。 // 彰化地方法院昨天判決頂新製油案無罪。法官根據專業鑑定,認為酸價不是作為油品最終衛生認定基礎;法院採完整的檢驗,總極性化合物也未如檢方所稱達危害程度。"; // $section->addText( $content1, $TextfontStyle ,$TextparagraphStyle); //新增內容 // $section->addText( $content2, $TextfontStyle ,$TextparagraphStyle); //新增內容 /*表格部份*/ $styleTable=array('borderColor' => '000000', 'borderSize' => 4, 'cellMargin' => 30); //表格樣式 $styleFirstRow = array('bgColor' => '66BBFF'); //首行樣式 $PHPWord->addTableStyle('myTable', $styleTable, $styleFirstRow); //建立表格樣式 $cellStyle = array('bgColor' => 'ffffff'); //儲存格樣式 $table = $section->addTable('myTable'); //建立表格 if($sn){ $myts = MyTextSanitizer::getInstance(); $sql = "select * from `" . $xoopsDB->prefix("phone_book") . "` where `sn` = '{$sn}' "; $result = $xoopsDB->query($sql) or web_error($sql); $all = $xoopsDB->fetchArray($result); //以下會產生這些變數: $sn, $cate_sn, $name, $birthday, $phone, $email, $zip, $county, $city, $addr, $note foreach ($all as $k => $v) { $$k = $v; } //取得分類資料(phone_book_cate) //$phone_book_cate_arr = get_phone_book_cate($cate_sn); //過濾讀出的變數值 $name = $myts->htmlSpecialChars($name); $birthday = $myts->htmlSpecialChars($birthday); $phone = $myts->htmlSpecialChars($phone); $email = $myts->htmlSpecialChars($email); $zip = $myts->htmlSpecialChars($zip); $county = $myts->htmlSpecialChars($county); $city = $myts->htmlSpecialChars($city); $addr = $myts->htmlSpecialChars($addr); $note = $myts->displayTarea($note, 0, 1, 0, 1, 1); $table->addRow(); //新增一列 $table->addCell(1800, array('gridSpan' => '3', 'bgColor' => 'ffffff'))->addText($name.'聯絡方式'); //新增一格 $table->addRow(); //新增一列 $table->addCell(1800, array('vMerge' => 'restart', 'bgColor' => 'ffffff'))->addText('相片'); //新增一格 $table->addCell(1800, $cellStyle)->addText('姓名'); //新增一格 $table->addCell(3000, $cellStyle)->addText($name); //新增一格 $table->addRow(); //新增一列 $table->addCell(1800, array('vMerge' => 'fusion')); //新增一格 $table->addCell(1800, $cellStyle)->addText('生日'); //新增一格 $table->addCell(3000, $cellStyle)->addText($birthday); //新增一格 $table->addRow(); //新增一列 $table->addCell(1800, array('vMerge' => 'fusion')); //新增一格 $table->addCell(1800, $cellStyle)->addText('電話'); //新增一格 $table->addCell(3000, $cellStyle)->addText($phone); //新增一格 $table->addRow(); //新增一列 $table->addCell(1800, array('vMerge' => 'fusion')); //新增一格 $table->addCell(1800, $cellStyle)->addText('信箱'); //新增一格 $table->addCell(3000, $cellStyle)->addText($email); //新增一格 $table->addRow(); //新增一列 $table->addCell(1800, array('vMerge' => 'fusion')); //新增一格 $table->addCell(1800, $cellStyle)->addText('地址'); //新增一格 $table->addCell(3000, $cellStyle)->addText($zip.$county.$city.$addr); //新增一格 }else{ $and_name=$and_cate_sn=$and_city=""; if(!empty($def_keyword)){ $and_name="and (`name` like '%{$def_keyword}%' or `city` like '%{$def_keyword}%' or `county` like '%{$def_keyword}%' or `addr` like '%{$def_keyword}%')"; }else{ $and_cate_sn = empty($def_cate_sn) ? "" : "and `cate_sn` = '{$def_cate_sn}'"; $and_county = empty($def_county) ? "" : "and `county` = '{$def_county}'"; $and_city = empty($def_city) ? "" : "and `city` = '{$def_city}'"; } //取得分類資料 $phone_book_cate_arr = get_phone_book_cate_arr(); $myts = MyTextSanitizer::getInstance(); $sql = "select * from `" . $xoopsDB->prefix("phone_book") . "` where 1 $and_cate_sn $and_county $and_city $and_name limit 0,100"; $result = $xoopsDB->query($sql) or web_error($sql); while ($all = $xoopsDB->fetchArray($result)) { //以下會產生這些變數: $sn, $cate_sn, $name, $birthday, $phone, $email, $zip, $county, $city, $addr, $note foreach ($all as $k => $v) { $$k = $v; } //過濾讀出的變數值 $name = $myts->htmlSpecialChars($name); $birthday = $myts->htmlSpecialChars($birthday); $phone = $myts->htmlSpecialChars($phone); $email = $myts->htmlSpecialChars($email); $zip = $myts->htmlSpecialChars($zip); $county = $myts->htmlSpecialChars($county); $city = $myts->htmlSpecialChars($city); $addr = $myts->htmlSpecialChars($addr); $note = $myts->displayTarea($note, 0, 1, 0, 1, 1); $table->addRow(); //新增一列 $table->addCell(1800, $cellStyle)->addText($name); //新增一格 $table->addCell(2500, $cellStyle)->addText($birthday); //新增一格 $table->addCell(2000, $cellStyle)->addText($phone); //新增一格 $table->addCell(2000, $cellStyle)->addText($email); //新增一格 $table->addCell(8000, $cellStyle)->addText($zip.$county.$city.$addr); //新增一格 } } 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');