www.gusucode.com > weenCompany闻名企业网站系统 4.0.0 繁体中英文 UTF8源码程序 > modules/m2_news/m2_settings.php
<?php // +---------------------------------------------+ // | Copyright 2003-2005 weenCompany | // | http://www.weentech.com | // | This file may not be redistributed. | // +---------------------------------------------+ if(!defined('IN_WEENCOMPANY')) die('File not found'); $articlebitfield = array('useglobalsettings' => 1, 'displayonline' => 2, 'displaytitle' => 4, 'displayauthor' => 8, 'displaycreateddate' => 16, 'displayupdateddate' => 32, 'displayprintarticlelink' => 64, 'displayemailarticlelink' => 128, 'displaydescription' => 256, 'displaysmilies' => 512, 'displaycomments' => 1024); // get the value of $action $action = isset($_POST['action']) ? $_POST['action'] : (isset($_GET['action']) ? $_GET['action'] : 'displayarticles'); echo '<SCRIPT LANGUAGE="JavaScript"> <!-- function DisableCheckboxes(disabledstatus) { if(document.articleform.useglobalsettings.checked || disabledstatus == 1) { document.articleform.displaytitle.disabled = true; document.articleform.displayauthor.disabled = true; document.articleform.displaycreateddate.disabled = true; document.articleform.displayupdateddate.disabled = true; document.articleform.displayprintarticlelink.disabled = true; document.articleform.displayemailarticlelink.disabled = true; document.articleform.displaydescription.disabled = true; document.articleform.displaysmilies.disabled = true; document.articleform.displaycomments.disabled = true; } else { document.articleform.displaytitle.disabled = false; document.articleform.displayauthor.disabled = false; document.articleform.displaycreateddate.disabled = false; document.articleform.displayupdateddate.disabled = false; document.articleform.displayprintarticlelink.disabled = false; document.articleform.displayemailarticlelink.disabled = false; document.articleform.displaydescription.disabled = false; document.articleform.displaysmilies.disabled = false; document.articleform.displaycomments.disabled = false; } } function SetStartFinishDatesStatus(status) { if(status == 1) { document.articleform.datestart.disabled = false; document.articleform.dateend.disabled = false; } else { document.articleform.datestart.disabled = true; document.articleform.dateend.disabled = true; } } //--> </SCRIPT>'; // ############################### DISPLAY MENU ################################ function DisplayMenu() { global $refreshpage; global $action; PrintSection(''); echo '<table width="100%" border="0" cellpadding="5" cellspacing="0"> <tr> <td class="tdrow2" width="25%" align="center"><form method="post" action="' . $refreshpage . '&action=displayarticleform&loadwysiwyg=1"><input type="submit" value=" 添加文章 " ' . iif($action == 'displayarticleform', 'DISABLED') . ' /></form></td> <td class="tdrow2" width="25%" align="center"><form method="post" action="' . $refreshpage . '&action=displayarticles"><input type="submit" value="顯示全部文章" /></form></td> <td class="tdrow2" width="25%" align="center"><form method="post" action="' . $refreshpage . '&action=displayarticlesettings"><input type="submit" value="模塊設置" /></form></td> <td class="tdrow2" width="25%" align="center"><form method="post" action="' . $refreshpage . '&action=displaycategorysettings"><input type="submit" value=" 菜單設置 " /></form></td> </tr> </table>'; EndSection(); } // ########################## UPDATE CATEGORY OPTIONS ########################## if($action == 'displayarticlesettings') { DisplayMenu(); PrintmoduleSettings($moduleid, '模塊設置', $refreshpage); PrintmoduleSettings($moduleid, '顯示設置', $refreshpage . '&action=displayarticlesettings'); } // ########################## UPDATE CATEGORY OPTIONS ########################## if($action == 'updatecategorysettings') { // following $_POST variables are all arrays $categoryids = $_POST['categoryids']; $maxarticles = $_POST['maxarticles']; $sorting = $_POST['sorting']; $multiplepages = $_POST['multiplepages']; for($i = 0; $i < count($categoryids); $i++) { $categoryid = $categoryids[$i]; // update or insert? (I could just delete all settings and then just insert, but for some reason I'm doing updating instead) if($categorysettings = $DB->query_first("SELECT categoryid FROM " . TABLE_PREFIX . "m2_settings WHERE categoryid = '$categoryid'")) { $DB->query("UPDATE " . TABLE_PREFIX . "m2_settings SET maxarticles = '$maxarticles[$i]', sorting = '$sorting[$i]', multiplepages = '$multiplepages[$categoryid]' WHERE categoryid = '$categoryids[$i]'"); } else { // only insert, update if the selected data is not the default data if($maxarticles[$i] != 10 || $sorting[$i] != 'IF ( dateupdated = 0, datecreated, dateupdated ) DESC' || $multiplepages[$categoryid] != 1) { $DB->query("INSERT INTO " . TABLE_PREFIX . "m2_settings (categoryid, maxarticles, sorting, multiplepages) VALUES ('$categoryids[$i]', '$maxarticles[$i]', '$sorting[$i]', '$multiplepages[$categoryid]')"); } } } PrintRedirect($refreshpage . '&action=displaycategorysettings', 1); } // ############################### ARTICLE TIME ################################ function CreateUnixTimestamp($stringtime) { global $DB; // $stringtime = 0000-00-00 00:00:00 // Year-Month-Day Hour:Minute:Second // get time from YEAR-MONTH-DAY H:M:S (all have leading zeros: 0000-00-00 00:00:00) // use regular expressions to see if the sentence is valid. // if its valid, then change it into the timestampe and subtract the users timezonesettings and dst settings // the finally add it into the database // if anything is not valid then change it back to 0 if(eregi("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})[[:space:]]{1}([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})$", $stringtime, $eregidata)) { // date is formatted correctly $year = $eregidata[1]; $month = $eregidata[2]; $day = $eregidata[3]; $hour = $eregidata[4]; $minute = $eregidata[5]; $second = $eregidata[6]; if($month > 12 || $day > 31 || $hour > 23 || $minute > 59 || $second > 59) { return 0; } if($month < 1 || $day < 1) // hour, minute, secound can not be less than zero (becuase -1 wouldn't get through the regular expression) { return 0; } $timezoneoffset = $DB->query_first("SELECT value FROM " . TABLE_PREFIX . "mainsettings WHERE varname = 'timezoneoffset'"); $daylightsavings = $DB->query_first("SELECT value FROM " . TABLE_PREFIX . "mainsettings WHERE varname = 'daylightsavings'"); $dst = $daylightsavings['value'] == 1 ? 1 : 0; return (gmmktime($hour, $minute, $second, $month, $day, $year) - (3600 * ($timezoneoffset['value'] + $dst))); } else { return 0; } } // ######################### INSERT OR UPDATE ARTICLE ########################## if($action == 'insertarticle' OR $action == 'updatearticle') { // basic article post data $categoryid = $_POST['categoryid']; $views = $_POST['views']; $datecreated = isset($_POST['datecreated']) ? CreateUnixTimestamp($_POST['datecreated']) : 0; $dateupdated = isset($_POST['dateupdated']) ? CreateUnixTimestamp($_POST['dateupdated']) : 0; $datestart = isset($_POST['datestart']) ? CreateUnixTimestamp($_POST['datestart']) : 0; $dateend = isset($_POST['dateend']) ? CreateUnixTimestamp($_POST['dateend']) : 0; $author = $_POST['author']; $title = $_POST['title']; $metadescription = $_POST['metadescription']; $metakeywords = $_POST['metakeywords']; $description = $_POST['description'] == ' ' ? '' : $_POST['description']; // sometimes fckeditor adds a &nsbp; $article = $_POST['article']; // create settings $settings = 0; $settings += isset($_POST['useglobalsettings']) ? 1 : 0; $settings += $_POST['displayonline'] == 1 ? 2 : 0; $settings += isset($_POST['displaytitle']) ? 4 : 0; $settings += isset($_POST['displayauthor']) ? 8 : 0; $settings += isset($_POST['displaycreateddate']) ? 16 : 0; $settings += isset($_POST['displayupdateddate']) ? 32 : 0; $settings += isset($_POST['displayprintarticlelink']) ? 64 : 0; $settings += isset($_POST['displayemailarticlelink']) ? 128 : 0; $settings += isset($_POST['displaydescription']) ? 256 : 0; $settings += isset($_POST['displaysmilies']) ? 512 : 0; $settings += isset($_POST['displaycomments']) ? 1024 : 0; // insert or update the article if($action == 'insertarticle') { // get displayorder $articlecount = $DB->query_first("SELECT COUNT(*) AS value FROM " . TABLE_PREFIX . "m2_news"); $displayorder = ($articlecount['value'] + 1); $DB->query("INSERT INTO " . TABLE_PREFIX . "m2_news (categoryid, settings, views, displayorder, datecreated, dateupdated, datestart, dateend, author, title, metadescription, metakeywords, description, article) VALUES ('$categoryid', '$settings', '$views', '$displayorder', '" . time() . "', '$dateupdated', '$datestart', '$dateend', '$author', '$title', '$metadescription', '$metakeywords', '$description', '$article')"); } else { $articleid = $_POST['articleid']; $DB->query("UPDATE " . TABLE_PREFIX . "m2_news SET categoryid = '$categoryid', settings = '$settings', views = '$views', datecreated = '$datecreated', dateupdated = '$dateupdated', datestart = '$datestart', dateend = '$dateend', author = '$author', title = '$title', metadescription = '$metadescription', metakeywords = '$metakeywords', description = '$description', article = '$article' WHERE articleid = '$articleid'"); } PrintRedirect($refreshpage, 1); } // ######################### DISPLAY CATEGORY SETTINGS ######################### function DisplayCategorySettings($parentid = 0, $sublevelmarker = '') { global $DB; global $refreshpage; // start table if($parentid == 0) { PrintSection('菜單設置'); echo '<form method="post" action="' . $refreshpage . '"> <input type="hidden" name="action" value="updatecategorysettings" /> <table width="100%" border="0" cellpadding="5" cellspacing="0"> <tr> <td class="tdrow2" height="50" colspan="4"> <b>提示: </b> <br/>菜單設置是指設置當前文章模塊中的文章在所屬菜單中的排序方式, 是否進行分頁顯示, 以後每頁顯示的文章數量.<br/>如果"是否允許分頁?"設置為"否", 則此菜單下只顯示1篇文章, 且沒有分頁. </td> </tr> <tr> <td class="tdrow1">菜單名稱</td> <td class="tdrow1">排序方式</td> <td class="tdrow1">每頁數量</td> <td class="tdrow1">是否允許分頁?</td> </tr>'; } else { $sublevelmarker .= '- - '; } $getcategories = $DB->query("SELECT categoryid, parentid, name FROM " . TABLE_PREFIX . "categories WHERE parentid = $parentid ORDER BY displayorder"); while($category = $DB->fetch_array($getcategories)) { if(!$categorysettings = $DB->query_first("SELECT * FROM " . TABLE_PREFIX . "m2_settings WHERE categoryid = '" . $category['categoryid'] . "'")) { // settings have not been defined, show default $categorysettings = array('maxarticles' => 10, 'sorting' => 'Display Order', 'multiplepages' => 1); } echo '<input type="hidden" name="categoryids[]" value="' . $category['categoryid'] . '"> <tr> <td class="tdrow2">' . $sublevelmarker . $category['name'] . '</td> <td class="tdrow3"> <select name="sorting[]"> <option value="IF ( dateupdated = 0, datecreated, dateupdated ) DESC" ' . iif($categorysettings['sorting'] == 'IF ( dateupdated = 0, datecreated, dateupdated ) DESC', 'SELECTED') .'>時間(降序)</option> <option value="IF ( dateupdated = 0, datecreated, dateupdated ) ASC" ' . iif($categorysettings['sorting'] == 'IF ( dateupdated = 0, datecreated, dateupdated ) ASC', 'SELECTED') .'>時間(升序)</option> <option value="displayorder ASC" ' . iif($categorysettings['sorting'] == 'displayorder ASC', 'SELECTED') .'>編號(升序)</option> <option value="displayorder DESC" ' . iif($categorysettings['sorting'] == 'displayorder DESC', 'SELECTED') .'>編號(降序)</option> <option value="title ASC" ' . iif($categorysettings['sorting'] == 'title ASC', 'SELECTED') .'>標題(A-Z)</option> <option value="title DESC" ' . iif($categorysettings['sorting'] == 'title DESC', 'SELECTED') .'>標題(Z-A)</option> <option value="author ASC" ' . iif($categorysettings['sorting'] == 'author ASC', 'SELECTED') .'>作者(A-Z)</option> <option value="author DESC" ' . iif($categorysettings['sorting'] == 'author DESC', 'SELECTED') .'>作者(Z-A)</option> </select> </td> <td class="tdrow3"><input type="text" name="maxarticles[]" value="' . $categorysettings['maxarticles'] . '" size="4" maxlength="4"></td> <td class="tdrow2"> 是<input type="radio" name="multiplepages[' . $category['categoryid'] . ']" value="1" ' . iif($categorysettings['multiplepages'] == 1, 'checked') . '> 否 <input type="radio" name="multiplepages[' . $category['categoryid'] . ']" value="0" ' . iif($categorysettings['multiplepages'] == 0, 'checked') . '> </td> </tr>'; DisplayCategorySettings($category['categoryid'], $sublevelmarker); } // end table if($parentid == 0) { echo '<tr> <td class="tdrow1" bgcolor="#FCFCFC" colspan="4" align="center"> <input type="submit" value=" 保存設置 " /> </td> </tr> </table> </form>'; EndSection(); } } if($action == 'displaycategorysettings') { DisplayMenu(); DisplayCategorySettings(); } // ########################### DISPLAY ARTICLE FORM ############################ if($action == 'displayarticleform') { DisplayMenu(); if(is_numeric($_GET['articleid'])) { $article = $DB->query_first("SELECT * FROM " . TABLE_PREFIX . "m2_news WHERE articleid = '" . $_GET['articleid'] . "'"); } else { $article = array('categoryid' => 0, 'settings' => 3, // 1 + 2 use global settings, display online 'views' => 0, 'displayorder' => 0, 'datecreated' => '', 'dateupdated' => '', 'datestart' => time(), 'dateend' => 0, 'author' => $userinfo['username'], 'title' => '', 'metadescription' => '', 'metakeywords' => '', 'description' => '', 'article' => ''); } if($article['dateend'] == 0) { $article['dateend'] = '從不'; } echo '<form method="post" action="' . $refreshpage . '" name="articleform"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td valign="top">'; PrintSection(iif(is_numeric($_GET['articleid']), '編輯文章', '添加文章')); echo '<table width="100%" border="0" cellpadding="5" cellspacing="0"> <tr> <td class="tdrow3" width="85%" valign="top"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td width="75"><b>標題:</b></td> <td><input type="text" name="title" size="60" maxlength="128" value="' .CleanFormValue($article['title']) . '"></td> </tr> </table> </td> </tr> <tr> <td class="tdrow3" width="85%" valign="top"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td width="75"><b>所屬菜單:</b></td> <td>'; //$categoryid = 0, $showzerovalue = 0, $parentid = 0, $sublevelmarker = '', $selectname = 'parentid' DisplayCategorySelection($article['categoryid'], 0, 0, '', 'categoryid'); echo ' </td> </tr> </table> </td> </tr> <tr> <td class="tdrow3" width="85%" valign="top"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td width="75"><b>作者:</b></td> <td><input type="text" name="author" value="'.CleanFormValue($article['author']).'" /></td> </tr> </table> </td> </tr> <tr> <td class="tdrow3" width="85%" valign="top"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td width="75"><b>狀態:</b></td> <td> <select name="displayonline" onchange="SetStartFinishDatesStatus(this.options[selectedIndex].value);"> <option value="1">發佈</option> <option value="0" ' . iif(!($article['settings'] & $articlebitfield['displayonline']), 'SELECTED') . '>隱藏</option> </select> </td> </tr> </table> </td> </tr> <tr> <td class="tdrow3" width="85%" valign="top"> <b>簡要描述:</b> 如果填寫了簡要描述,那麼完整的文章內容需要在一個新網頁中打開.<br /><br /> <textarea name="description" style="width: 100%;" rows="15" class="mceEditor">' . $article['description'] . '</textarea> </td> </tr> <tr> <td class="tdrow3" width="85%" valign="top"> <b>詳細內容:</b> 可加入"{pagebreak}"進行分頁.<br /><br /> <textarea name="article" style="width: 100%;" rows="30" class="mceEditor">' . $article['article'] . '</textarea> </td> </tr> <tr> <td class="tdrow1" bgcolor="#FCFCFC" colspan="2" align="center">'; if(is_numeric($_GET['articleid'])) { echo '<input type="hidden" name="action" value="updatearticle" /> <input type="hidden" name="articleid" value="' . $article['articleid'] . '" /> <input type="submit" value=" 保存更新 " />'; } else { echo '<input type="hidden" name="action" value="insertarticle" /> <input type="submit" value=" 保存 " />'; } echo ' </td> </tr> </table>'; EndSection(); echo ' </td> <td width="265px" valign="top">'; PrintSection('設置'); echo '<table width="100%" border="0" cellpadding="5" cellspacing="0"> <tr> <td class="tdrow3" width="85%" valign="top"> <table width="100%" border="0" cellpadding="5" cellspacing="0"> <tr><td colspan="2"><b>顯示設置</b></td></tr> <tr><td width="10"><input type="checkbox" name="useglobalsettings" ' . iif($article['settings'] & $articlebitfield['useglobalsettings'], 'CHECKED') . ' onclick="DisableCheckboxes()" /></td><td >使用全局設置</td></tr> <tr><td width="10"><input type="checkbox" name="displaytitle" ' . iif($article['settings'] & $articlebitfield['displaytitle'], 'CHECKED') . ' /></td><td>顯示標題</td></tr> <tr><td width="10"><input type="checkbox" name="displayauthor" ' . iif($article['settings'] & $articlebitfield['displayauthor'], 'CHECKED') . ' /></td><td>顯示作者</td></tr> <tr><td width="10"><input type="checkbox" name="displaycreateddate" ' . iif($article['settings'] & $articlebitfield['displaycreateddate'], 'CHECKED') . ' /></td><td>顯示發佈日期</td></tr> <tr><td width="10"><input type="checkbox" name="displayupdateddate" ' . iif($article['settings'] & $articlebitfield['displayupdateddate'], 'CHECKED') . ' /></td><td>顯示更新日期</td></tr> <tr><td width="10"><input type="checkbox" name="displayprintarticlelink" ' . iif($article['settings'] & $articlebitfield['displayprintarticlelink'], 'CHECKED') . ' /></td><td>顯示打印</td></tr> <tr><td width="10"><input type="checkbox" name="displayemailarticlelink" ' . iif($article['settings'] & $articlebitfield['displayemailarticlelink'], 'CHECKED') . ' /></td><td>顯示發送郵件</td></tr> <tr><td width="10"><input type="checkbox" name="displaydescription" ' . iif($article['settings'] & $articlebitfield['displaydescription'], 'CHECKED') . ' /></td><td>簡要描述顯示在詳細內容中</td></tr> <tr><td width="10"><input type="checkbox" name="displaysmilies" ' . iif($article['settings'] & $articlebitfield['displaysmilies'], 'CHECKED') . ' /></td><td>顯示表情符號</td></tr> <tr><td width="10"><input type="checkbox" name="displaycomments" ' . iif($article['settings'] & $articlebitfield['displaycomments'], 'CHECKED') . ' /></td><td>顯示用戶評論</td></tr> </table> </td> </tr> <tr> <td class="tdrow3"> <table width="100%" border="0" cellpadding="5" cellspacing="0"> <tr><td colspan="2"><b>日期設置</b></td></tr> <tr><td width="100"> </td><td>年-月-日 時:分:秒</td></tr>'; if(is_numeric($_GET['articleid'])) { echo '<tr><td width="100">創建時間:</td><td><input type="text" name="datecreated" value="' . DisplayDate($article['datecreated'], 'Y-m-d H:i:s') . '" size="17" /></td></tr> <tr><td width="100">更新時間:</td><td><input type="text" name="dateupdated" value="' . DisplayDate($article['dateupdated'], 'Y-m-d H:i:s') . '" size="17" /></td></tr>'; } echo ' <tr><td width="100">發佈時間:</td><td><input type="text" name="datestart" value="' . DisplayDate($article['datestart'], 'Y-m-d H:i:s') . '" size="17" /></td></tr> <tr><td width="100">過期時間:</td><td><input type="text" name="dateend" value="' . iif($article['dateend'] == '從不', '從不', DisplayDate($article['dateend'], 'Y-m-d H:i:s')) . '" size="17" /></td></tr> <tr><td colspan="2">文章狀態只有設置為"發佈", 才能設置發佈與過期時間.</td></tr> </table> </td> </tr>'; if($article['settings'] & $articlebitfield['useglobalsettings']) { echo '<SCRIPT LANGUAGE="JavaScript"> <!-- DisableCheckboxes(1); //--> </SCRIPT>'; } if(!($article['settings'] & $articlebitfield['displayonline'])) { // article is offline, disable the start and finish publishing dates echo '<SCRIPT LANGUAGE="JavaScript"> <!-- SetStartFinishDatesStatus(0); //--> </SCRIPT>'; } echo '<tr> <td class="tdrow3"> <table width="100%" border="0" cellpadding="5" cellspacing="0"> <tr><td colspan="2"><b>點擊次數</b></td></tr> <tr><td width="100">文章點擊次數:</td><td><input type="text" name="views" value="' . $article['views'] . '" size="5" /></td></tr> </table> </td> </tr> <tr> <td class="tdrow3"> <table width="100%" border="0" cellpadding="5" cellspacing="0"> <tr><td><b>Meta設置</b></td></tr> <tr><td>描述:<br /><textarea rows="3" cols="25" name="metadescription">' . $article['metadescription'] . '</textarea></td></tr> <tr><td>關鍵字:<br /><textarea rows="3" cols="25" name="metakeywords">' . $article['metakeywords'] . '</textarea></td></tr> </table> </td> </tr>'; echo ' </td> </tr> </table>'; EndSection(); echo ' </td> </tr> </table> </form>'; } // ############################## UPDATE ARTICLES ############################## if($action == ' 確定更新 ') { // the following variables are arrays $articleids = $_POST['articleids']; $displayorder = $_POST['displayorder']; $onlinestatus = $_POST['onlinestatus']; $categoryids = $_POST['categoryids']; $deletearticleids = $_POST['deletearticleids']; // first update the articles for($i = 0; $i < count($articleids); $i++) { if(!is_numeric($displayorder[$i])) { $displayorder[$i] = 0; } // 2 = bitfield value for article settings onlinestatus if($onlinestatus[$i] == 1) { $DB->query("UPDATE " . TABLE_PREFIX . "m2_news SET settings = settings + 2 WHERE NOT(settings & 2) AND articleid = $articleids[$i]"); } else { $DB->query("UPDATE " . TABLE_PREFIX . "m2_news SET settings = settings - 2 WHERE settings & 2 AND articleid = $articleids[$i]"); } $DB->query("UPDATE " . TABLE_PREFIX . "m2_news SET categoryid = $categoryids[$i], displayorder = $displayorder[$i] WHERE articleid = $articleids[$i]"); } // lets confirm before deleting articles if(count($deletearticleids) > 0) { $action = 'deletearticles'; } else { PrintRedirect($refreshpage, 1); } } // ############################## DELETE ARTICLES ############################## if($action == 'deletearticles') { $confirmdelete = isset($_POST['confirmdelete']) ? $_POST['confirmdelete'] : '0'; if($confirmdelete == ' 取消 ') { $action = 'displayarticles'; } else if($confirmdelete == '0') { // get the article titles for($i = 0, $deletearticletitles = '', $hiddenvalues = ''; $i < count($deletearticleids); $i++) { $article = $DB->query_first("SELECT title FROM " . TABLE_PREFIX . "m2_news WHERE articleid = '" . $deletearticleids[$i] . "'"); $deletearticletitles .= ($i + 1) . ') ' . $article['title'] . '<br />'; $hiddenvalues .= '<input type="hidden" name="deletearticleids[]" value="' . $deletearticleids[$i] . '" />'; } $description = '<b>確定刪除所選條目嗎?</b><br /><br />' . $deletearticletitles; $hiddenvalues .= '<input type="hidden" name="action" value="deletearticles" />'; // arguments: description, hidden input values, form redirect page ConfirmDelete($description, $hiddenvalues, $refreshpage); } else if($confirmdelete == ' 確定 ') { $deletearticleids = $_POST['deletearticleids']; for($i = 0; $i < count($deletearticleids); $i++) { // delete article $DB->query("DELETE FROM " . TABLE_PREFIX . "m2_news WHERE articleid = '" . $deletearticleids[$i] . "'"); // delete article comments DeletemoduleComments(2, $deletearticleids[$i]); } PrintRedirect($refreshpage, 1); } } // ############################# DISPLAY ARTICLES ############################## if($action == 'displayarticles' OR $action == '<< 上一頁' OR $action == '下一頁 >>') { DisplayMenu(); if(isset($_POST['customsearch'])) { $search = array('title' => $_POST['searchtitle'], 'author' => $_POST['searchauthor'], 'categoryid' => $_POST['searchcategoryid'], 'onlineoffline' => $_POST['searchonlineoffline'], 'sorting' => $_POST['searchsorting'], 'limit' => $_POST['searchlimit']); $search['start'] = $action == '<< 上一頁' ? $_POST['searchstartback'] : ($action == '下一頁 >>' ? $_POST['searchstartnext'] : 0); } else { $search = array('title' => '', 'author' => '', 'categoryid' => 0, 'onlineoffline' => 'onlineoffline', 'sorting' => 'IF ( dateupdated = 0, datecreated, dateupdated ) DESC', 'start' => 0, 'limit' => 10); } $articlequery = 'WHERE'; // search for title? if(strlen($search['title'])) { $articlequery .= iif($articlequery != 'WHERE', ' AND') . " title LIKE '%" . $search['title'] . "%'"; } // search for author? if(strlen($search['author'])) { $articlequery .= iif($articlequery != 'WHERE', ' AND') . " author LIKE '%" . $search['author'] . "%'"; } // search for author? if($search['categoryid'] != 0) { $articlequery .= iif($articlequery != 'WHERE', ' AND') . " categoryid = " . $search['categoryid']; } // search by online, offline, both? if($search['onlineoffline'] != 'onlineoffline') { if($search['onlineoffline'] == 'online') { $articlequery .= iif($articlequery != 'WHERE', ' AND') . " (settings & " . $articlebitfield['displayonline'] . ")"; } else { $articlequery .= iif($articlequery != 'WHERE', ' AND') . " !(settings & " . $articlebitfield['displayonline'] . ")"; } } $articles = $DB->query("SELECT articleid, categoryid, settings, views, displayorder, datecreated, datestart, dateend, author, title FROM " . TABLE_PREFIX . "m2_news " . iif($articlequery != 'WHERE', $articlequery) . " ORDER BY $search[sorting] LIMIT " . $search['start'] . ", " . ($search['limit'] + 1) . ""); $rows = $DB->get_num_rows($articles); echo '<form method="post" action="' . $refreshpage . '" name="deletenews">'; PrintSection('搜索文章'); echo '<input type="hidden" name="action" value="displayarticles" /> <input type="hidden" name="customsearch" value="true" /> <table width="100%" border="0" cellpadding="5" cellspacing="0"> <tr> <td class="tdrow1">標題</td> <td class="tdrow1">作者</td> <td class="tdrow1">所屬菜單</td> <td class="tdrow1">狀態</td> <td class="tdrow1">排序</td> <td class="tdrow1">條/頁</td> </tr> <tr> <td class="tdrow2"><input type="text" name="searchtitle" value="' . $search['title'] . '" /></td> <td class="tdrow2"><input type="text" name="searchauthor" value="' . $search['author'] . '"" /></td> <td class="tdrow2">'; // Default Function Values: // $categoryid = 0, $showzerovalue = 0, $parentid = 0, $sublevelmarker = '', $selectname = 'parentid' DisplayCategorySelection($search['categoryid'], 1, 0, '', 'searchcategoryid'); echo ' </td> <td class="tdrow2"> <select name="searchonlineoffline"> <option value="onlineoffline" ' . iif($search['onlineoffline'] == 'onlineoffline', 'SELECTED') .'>發佈/隱藏</option> <option value="online" ' . iif($search['onlineoffline'] == 'online', 'SELECTED') .'>發佈</option> <option value="offline" ' . iif($search['onlineoffline'] == 'offline', 'SELECTED') .'>隱藏</option> </select> </td> <td class="tdrow2"> <select name="searchsorting"> <option value="IF ( dateupdated = 0, datecreated, dateupdated ) DESC" ' . iif($search['sorting'] == 'IF ( dateupdated = 0, datecreated, dateupdated ) DESC', 'SELECTED') .'>時間(降序)</option> <option value="IF ( dateupdated = 0, datecreated, dateupdated ) ASC" ' . iif($search['sorting'] == 'IF ( dateupdated = 0, datecreated, dateupdated ) ASC', 'SELECTED') .'>時間(升序)</option> <option value="displayorder ASC" ' . iif($search['sorting'] == 'displayorder ASC', 'SELECTED') .'>編號(升序)</option> <option value="displayorder DESC" ' . iif($search['sorting'] == 'displayorder DESC', 'SELECTED') .'>編號(降序)</option> <option value="title ASC" ' . iif($search['sorting'] == 'title ASC', 'SELECTED') .'>標題(A-Z)</option> <option value="title DESC" ' . iif($search['sorting'] == 'title DESC', 'SELECTED') .'>標題(Z-A)</option> <option value="author ASC" ' . iif($search['sorting'] == 'author ASC', 'SELECTED') .'>作者(A-Z)</option> <option value="author DESC" ' . iif($search['sorting'] == 'author DESC', 'SELECTED') .'>作者(Z-A)</option> </select> </td> <td class="tdrow2"><input type="text" name="searchlimit" value="' . $search['limit'] . '" size="4" /></td> </tr> <tr> <td class="tdrow1" colspan="6" align="center"><input type="submit" value=" 搜索 " /></td> </tr> </table>'; EndSection(); PrintSection('文章條目'); echo '<table width="100%" border="0" cellpadding="5" cellspacing="0"> <tr> <td class="tdrow1">編號</td> <td class="tdrow1">標題</td> <td class="tdrow1">狀態</td> <td class="tdrow1">所屬菜單</td> <td class="tdrow1">作者</td> <td class="tdrow1">發佈日期</td> <td class="tdrow1">過期</td> <td class="tdrow1" width="75"><input type="checkbox" checkall="group" onclick="javascript: return select_deselectAll (\'deletenews\', this, \'group\');"> 刪除</td> </tr>'; for($i = 0; $i < $rows AND $i < $search['limit']; $i++) { $article = $DB->fetch_array($articles); echo '<input type="hidden" name="articleids[]" value="' . $article['articleid'] . '" /> <tr> <td class="tdrow2" align="center"><input type="text" name="displayorder[]" value="' . $article['displayorder'] . '" size="4" /></td> <td class="tdrow3"><a ' . iif(!($article['settings'] & $articlebitfield['displayonline']) || $article['dateend'], 'style="color: #FF0000;"') . ' href="' . $refreshpage . '&action=displayarticleform&articleid=' . $article['articleid'] . '&loadwysiwyg=1"><u>' . iif(strlen($article['title']), ShortTitle($article['title'],50), '未知標題') . '</u></a></td> <td class="tdrow2"> <select name="onlinestatus[]"> <option value="1">發佈</option> <option value="0" ' . iif(!($article['settings'] & $articlebitfield['displayonline']), 'SELECTED', '') . '>隱藏</option> </select> </td> <td class="tdrow3">'; //$categoryid = 0, $showzerovalue = 0, $parentid = 0, $sublevelmarker = '', $selectname = 'parentid' DisplayCategorySelection($article['categoryid'], 1, 0, '', 'categoryids[]'); echo ' </td> <td class="tdrow2">' . iif(strlen($article['author']), $article['author'], ' ') . '</td> <td class="tdrow3">' . iif($article['datestart'] != 0, DisplayDate($article['datestart']), DisplayDate($article['datecreated'])) . '</td> <td class="tdrow2">' . iif($article['dateend'] != 0, '<font class=ohred>'.DisplayDate($article['dateend']).'</font>', '從不') . '</td> <td class="tdrow3"><input type="checkbox" name="deletearticleids[]" value="' . $article['articleid'] . '" checkme="group" /></td> </tr>'; } echo '<tr> <td class="tdrow1" colspan="8"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td align="left" width="100">'; if($search['start'] > 0) { echo '<input type="hidden" name="searchstartback" value="' . ($search['start'] - $search['limit']) . '" /> <input type="submit" name="action" value="<< 上一頁" />'; } echo '</td> <td align="center"><input type="submit" name="action" value=" 確定更新 " /></td> <td align="right" width="100">'; if($rows > $search['limit']) { echo '<input type="hidden" name="searchstartnext" value="' . ($search['start'] + $search['limit']) . '" /> <input type="submit" name="action" value="下一頁 >>" />'; } echo ' </td> </tr> </table> </td> </tr> </table>'; EndSection(); echo '</form>'; } ?>