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'] == '&nbsp;' ? '' : $_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">&nbsp;</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'], '&nbsp;') . '</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>';
}

?>