[ Index ]
 

Code source de Serendipity 1.2

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/include/admin/ -> entries.inc.php (source)

   1  <?php # $Id: entries.inc.php 1816 2007-08-06 10:18:39Z garvinhicking $
   2  # Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team)
   3  # All rights reserved.  See LICENSE file for licensing details
   4  
   5  if (IN_serendipity !== true) {
   6      die ("Don't hack!");
   7  }
   8  
   9  if (!serendipity_checkPermission('adminEntries')) {
  10      return;
  11  }
  12  
  13  $sort_order = array('timestamp'     => DATE,
  14                      'isdraft'       => PUBLISH . '/' . DRAFT,
  15                      'a.realname'    => AUTHOR,
  16                      'category_name' => CATEGORY,
  17                      'last_modified' => LAST_UPDATED,
  18                      'title'         => TITLE,
  19                      'id'            => 'ID');
  20  $per_page = array('12', '16', '50', '100');
  21  
  22  
  23  /**
  24   * Shows the entry panel overview
  25   *
  26   * Shows a list of existing entries, with pagination and cookie-remember settings.
  27   *
  28   * @access public
  29   * @return null
  30   */
  31  function serendipity_drawList() {
  32      global $serendipity, $sort_order, $per_page;
  33  
  34      $filter_import = array('author', 'category', 'isdraft');
  35      $sort_import   = array('perPage', 'ordermode', 'order');
  36      foreach($filter_import AS $f_import) {
  37          serendipity_restoreVar($serendipity['COOKIE']['entrylist_filter_' . $f_import], $serendipity['GET']['filter'][$f_import]);
  38          serendipity_JSsetCookie('entrylist_filter_' . $f_import, $serendipity['GET']['filter'][$f_import]);
  39      }
  40  
  41      foreach($sort_import AS $s_import) {
  42          serendipity_restoreVar($serendipity['COOKIE']['entrylist_sort_' . $s_import], $serendipity['GET']['sort'][$s_import]);
  43          serendipity_JSsetCookie('entrylist_sort_' . $s_import, $serendipity['GET']['sort'][$s_import]);
  44      }
  45  
  46      $perPage = (!empty($serendipity['GET']['sort']['perPage']) ? $serendipity['GET']['sort']['perPage'] : $per_page[0]);
  47      $page    = (int)$serendipity['GET']['page'];
  48      $offSet  = $perPage*$page;
  49  
  50      if (empty($serendipity['GET']['sort']['ordermode']) || $serendipity['GET']['sort']['ordermode'] != 'ASC') {
  51          $serendipity['GET']['sort']['ordermode'] = 'DESC';
  52      }
  53  
  54      if (!empty($serendipity['GET']['sort']['order']) && !empty($sort_order[$serendipity['GET']['sort']['order']])) {
  55          $orderby = serendipity_db_escape_string($serendipity['GET']['sort']['order'] . ' ' . $serendipity['GET']['sort']['ordermode']);
  56      } else {
  57          $orderby = 'timestamp ' . serendipity_db_escape_string($serendipity['GET']['sort']['ordermode']);
  58      }
  59  
  60      $filter = array();
  61  
  62      if (!empty($serendipity['GET']['filter']['author'])) {
  63          $filter[] = "e.authorid = '" . serendipity_db_escape_string($serendipity['GET']['filter']['author']) . "'";
  64      }
  65  
  66      if (!empty($serendipity['GET']['filter']['category'])) {
  67          $filter[] = "ec.categoryid = '" . serendipity_db_escape_string($serendipity['GET']['filter']['category']) . "'";
  68      }
  69  
  70      if (!empty($serendipity['GET']['filter']['isdraft'])) {
  71          if ($serendipity['GET']['filter']['isdraft'] == 'draft') {
  72              $filter[] = "e.isdraft = 'true'";
  73          } elseif ($serendipity['GET']['filter']['isdraft'] == 'publish') {
  74              $filter[] = "e.isdraft = 'false'";
  75          }
  76      }
  77  
  78      if (!empty($serendipity['GET']['filter']['body'])) {
  79          if ($serendipity['dbType'] == 'mysql') {
  80              $filter[] = "MATCH (title,body,extended) AGAINST ('" . serendipity_db_escape_string($serendipity['GET']['filter']['body']) . "')";
  81              $full     = true;
  82          }
  83      }
  84  
  85      $filter_sql = implode(' AND ', $filter);
  86  
  87      // Fetch the entries
  88      $entries = serendipity_fetchEntries(
  89                   false,
  90                   false,
  91                   serendipity_db_limit(
  92                     $offSet,
  93                     $perPage + 1
  94                   ),
  95                   true,
  96                   false,
  97                   $orderby,
  98                   $filter_sql
  99                 );
 100  ?>
 101  <div class="serendipity_admin_list">
 102  <form action="?" method="get">
 103      <input type="hidden" name="serendipity[action]"      value="admin"      />
 104      <input type="hidden" name="serendipity[adminModule]" value="entries"    />
 105      <input type="hidden" name="serendipity[adminAction]" value="editSelect" />
 106      <table width="100%" class="serendipity_admin_filters">
 107          <tr>
 108              <td class="serendipity_admin_filters_headline" colspan="6"><strong><?php echo FILTERS ?></strong> - <?php echo FIND_ENTRIES ?></td>
 109          </tr>
 110          <tr>
 111              <td valign="top" width="80"><?php echo AUTHOR ?></td>
 112              <td valign="top">
 113                  <select name="serendipity[filter][author]">
 114                      <option value="">--</option>
 115  <?php
 116                      $users = serendipity_fetchUsers();
 117                      if (is_array($users)) {
 118                          foreach ($users AS $user) {
 119                              echo '<option value="' . $user['authorid'] . '" ' . (isset($serendipity['GET']['filter']['author']) && $serendipity['GET']['filter']['author'] == $user['authorid'] ? 'selected="selected"' : '') . '>' . $user['realname'] . '</option>' . "\n";
 120                          }
 121                      }
 122  ?>              </select> <select name="serendipity[filter][isdraft]">
 123                      <option value="all"><?php echo COMMENTS_FILTER_ALL; ?></option>
 124                      <option value="draft"   <?php echo (isset($serendipity['GET']['filter']['isdraft']) &&  $serendipity['GET']['filter']['isdraft'] == 'draft' ? 'selected="selected"' : ''); ?>><?php echo DRAFT; ?></option>
 125                      <option value="publish" <?php echo (isset($serendipity['GET']['filter']['isdraft']) &&  $serendipity['GET']['filter']['isdraft'] == 'publish' ? 'selected="selected"' : ''); ?>><?php echo PUBLISH; ?></option>
 126                  </select>
 127              </td>
 128              <td valign="top" width="80"><?php echo CATEGORY ?></td>
 129              <td valign="top">
 130                  <select name="serendipity[filter][category]">
 131                      <option value="">--</option>
 132  <?php
 133                      $categories = serendipity_fetchCategories();
 134                      $categories = serendipity_walkRecursive($categories, 'categoryid', 'parentid', VIEWMODE_THREADED);
 135                      foreach ( $categories as $cat ) {
 136                          echo '<option value="'. $cat['categoryid'] .'"'. ($serendipity['GET']['filter']['category'] == $cat['categoryid'] ? ' selected="selected"' : '') .'>'. str_repeat('&nbsp;', $cat['depth']) . $cat['category_name'] .'</option>' . "\n";
 137                      }
 138  ?>              </select>
 139              </td>
 140              <td valign="top" width="80"><?php echo CONTENT ?></td>
 141              <td valign="top"><input class="input_textbox" size="10" type="text" name="serendipity[filter][body]" value="<?php echo (isset($serendipity['GET']['filter']['body']) ? htmlspecialchars($serendipity['GET']['filter']['body']) : '') ?>" /></td>
 142          </tr>
 143          <tr>
 144              <td class="serendipity_admin_filters_headline" colspan="6"><strong><?php echo SORT_ORDER ?></strong></td>
 145          </tr>
 146          <tr>
 147              <td>
 148                  <?php echo SORT_BY ?>
 149              </td>
 150              <td>
 151                  <select name="serendipity[sort][order]">
 152  <?php
 153      foreach($sort_order as $so_key => $so_val) {
 154          echo '<option value="' . $so_key . '" ' . (isset($serendipity['GET']['sort']['order']) && $serendipity['GET']['sort']['order'] == $so_key ? 'selected="selected"': '') . '>' . $so_val . '</option>' . "\n";
 155      }
 156  ?>              </select>
 157              </td>
 158              <td><?php echo SORT_ORDER ?></td>
 159              <td>
 160                  <select name="serendipity[sort][ordermode]">
 161                      <option value="DESC" <?php echo (isset($serendipity['GET']['sort']['ordermode']) && $serendipity['GET']['sort']['ordermode'] == 'DESC' ? 'selected="selected"' : '') ?>><?php echo SORT_ORDER_DESC ?></option>
 162                      <option value="ASC" <?php echo (isset($serendipity['GET']['sort']['ordermode']) && $serendipity['GET']['sort']['ordermode'] == 'ASC'  ? 'selected="selected"' : '') ?>><?php echo SORT_ORDER_ASC ?></option>
 163                  </select>
 164              </td>
 165              <td><?php echo ENTRIES_PER_PAGE ?></td>
 166              <td>
 167                  <select name="serendipity[sort][perPage]">
 168  <?php
 169      foreach($per_page AS $per_page_nr) {
 170         echo '<option value="' . $per_page_nr . '"   ' . (isset($serendipity['GET']['sort']['perPage']) && $serendipity['GET']['sort']['perPage'] == $per_page_nr ? 'selected="selected"' : '') . '>' . $per_page_nr . '</option>' . "\n";
 171      }
 172  
 173  ?>
 174                  </select>
 175              </td>
 176          </tr>
 177          <tr>
 178              <td align="right" colspan="6"><input type="submit" name="go" value="<?php echo GO ?>" class="serendipityPrettyButton input_button" /></td>
 179          </tr>
 180      </table>
 181      </form>
 182  
 183      <table class="serendipity_admin_list" cellpadding="5" width="100%">
 184  <?php
 185      if (is_array($entries)) {
 186          $count = count($entries);
 187          $qString = '?serendipity[adminModule]=entries&amp;serendipity[adminAction]=editSelect';
 188          foreach ((array)$serendipity['GET']['sort'] as $k => $v) {
 189              $qString .= '&amp;serendipity[sort]['. $k .']='. $v;
 190          }
 191          foreach ((array)$serendipity['GET']['filter'] as $k => $v) {
 192              $qString .= '&amp;serendipity[filter]['. $k .']='. $v;
 193          }
 194          $linkPrevious = $qString . '&amp;serendipity[page]=' . ($page-1);
 195          $linkNext     = $qString . '&amp;serendipity[page]=' . ($page+1);
 196  ?>
 197          <tr>
 198              <td>
 199                  <?php if ($offSet > 0) { ?>
 200                      <a href="<?php echo $linkPrevious ?>" class="serendipityIconLink"><img src="<?php echo serendipity_getTemplateFile('admin/img/previous.png') ?>" /><?php echo PREVIOUS ?></a>
 201                  <?php } ?>
 202              </td>
 203              <td align="right">
 204                  <?php if ($count > $perPage) { ?>
 205                      <a href="<?php echo $linkNext ?>" class="serendipityIconLinkRight"><?php echo NEXT ?><img src="<?php echo serendipity_getTemplateFile('admin/img/next.png') ?>" /></a>
 206                  <?php } ?>
 207              </td>
 208          </tr>
 209      </table>
 210      <script type="text/javascript">
 211      function invertSelection() {
 212          var f = document.formMultiDelete;
 213          for (var i = 0; i < f.elements.length; i++) {
 214              if (f.elements[i].type == 'checkbox') {
 215                  f.elements[i].checked = !(f.elements[i].checked);
 216              }
 217          }
 218      }
 219      </script>
 220      <form action="?" method="post" name="formMultiDelete" id="formMultiDelete">
 221          <?php echo serendipity_setFormToken(); ?>
 222          <input type="hidden" name="serendipity[action]" value="admin" />
 223          <input type="hidden" name="serendipity[adminModule]" value="entries" />
 224          <input type="hidden" name="serendipity[adminAction]" value="multidelete" />
 225  <?php
 226          // Print the entries
 227          $rows = 0;
 228          foreach ($entries as $entry) {
 229              $rows++;
 230              if ($rows > $perPage) {
 231                  continue;
 232              }
 233              // Find out if the entry has been modified later than 30 minutes after creation
 234              if ($entry['timestamp'] <= ($entry['last_modified'] - 60*30)) {
 235                  $lm = '<a href="#" title="' . LAST_UPDATED . ': ' . serendipity_formatTime(DATE_FORMAT_SHORT, $entry['last_modified']) . '" onclick="alert(this.title)"><img src="'. serendipity_getTemplateFile('admin/img/clock.png') .'" alt="*" style="border: 0px none ; vertical-align: bottom;" /></a>';
 236              } else {
 237                  $lm = '';
 238              }
 239  
 240              if (!$serendipity['showFutureEntries'] && $entry['timestamp'] >= serendipity_serverOffsetHour()) {
 241                  $entry_pre = '<a href="#" title="' . ENTRY_PUBLISHED_FUTURE . '" onclick="alert(this.title)"><img src="'. serendipity_getTemplateFile('admin/img/clock_future.png') .'" alt="*" style="border: 0px none ; vertical-align: bottom;" /></a> ';
 242              } else {
 243                  $entry_pre = '';
 244              }
 245  
 246              if (serendipity_db_bool($entry['properties']['ep_is_sticky'])) {
 247                  $entry_pre .= ' ' . STICKY_POSTINGS . ': ';
 248              }
 249  
 250              if (serendipity_db_bool($entry['isdraft'])) {
 251                  $entry_pre .= ' ' . DRAFT . ': ';
 252              }
 253  ?>
 254  <!--            <div class="serendipity_admin_list_item serendipity_admin_list_item_<?php echo ($rows % 2 ? 'even' : 'uneven'); ?>"> -->
 255              <div class="serendipity_admin_list_item serendipity_admin_list_item_<?php echo ($rows % 2) ? 'even' : 'uneven'; ?>">
 256  
 257                  <table width="100%" cellspacing="0" cellpadding="3">
 258                      <tr>
 259                          <td>
 260                              <strong><?php echo $entry_pre; ?><a href="?serendipity[action]=admin&amp;serendipity[adminModule]=entries&amp;serendipity[adminAction]=edit&amp;serendipity[id]=<?php echo $entry['id']; ?>" title="#<?php echo $entry['id']; ?>"><?php echo serendipity_truncateString(htmlspecialchars($entry['title']),50) ?></a></strong>
 261                          </td>
 262                          <td align="right">
 263                              <?php echo serendipity_formatTime(DATE_FORMAT_SHORT, $entry['timestamp']) . ' ' .$lm; ?>
 264                          </td>
 265                      </tr>
 266                      <tr>
 267                          <td>
 268                              <?php
 269                  echo POSTED_BY . ' ' . $entry['author'];
 270                  if (count($entry['categories'])) {
 271                      echo ' ' . IN . ' ';
 272                      $cats = array();
 273                      foreach ($entry['categories'] as $cat) {
 274                          $caturl = serendipity_categoryURL($cat);
 275                          $cats[] = '<a href="' . $caturl . '">' . $cat['category_name'] . '</a>';
 276                      }
 277                      echo implode(', ', $cats);
 278                  }
 279                  $entry['link']         = serendipity_archiveURL($entry['id'], $entry['title'], 'serendipityHTTPPath', true, array('timestamp' => $entry['timestamp']));
 280                  $entry['preview_link'] = '?serendipity[noBanner]=true&amp;serendipity[noSidebar]=true&amp;serendipity[action]=admin&amp;serendipity[adminModule]=entries&amp;serendipity[adminAction]=preview&amp;serendipity[id]=' . $entry['id'];
 281                  ?>
 282  
 283                          </td>
 284                          <td align="right">
 285                              <?php if (serendipity_db_bool($entry['isdraft'])) { ?>
 286                              <a target="_blank" href="<?php echo $entry['preview_link']; ?>" title="<?php echo PREVIEW . ' #' . $entry['id']; ?>" class="serendipityIconLink"><img src="<?php echo serendipity_getTemplateFile('admin/img/zoom.png'); ?>" alt="<?php echo PREVIEW; ?>" /><?php echo PREVIEW ?></a>
 287                              <?php } else { ?>
 288                              <a target="_blank" href="<?php echo $entry['link']; ?>" title="<?php echo VIEW . ' #' . $entry['id']; ?>" class="serendipityIconLink"><img src="<?php echo serendipity_getTemplateFile('admin/img/zoom.png'); ?>" alt="<?php echo VIEW; ?>" /><?php echo VIEW ?></a>
 289                              <?php } ?>
 290                              <a href="?serendipity[action]=admin&amp;serendipity[adminModule]=entries&amp;serendipity[adminAction]=edit&amp;serendipity[id]=<?php echo $entry['id']; ?>" title="<?php echo EDIT . ' #' . $entry['id']; ?>" class="serendipityIconLink"><img src="<?php echo serendipity_getTemplateFile('admin/img/edit.png'); ?>" alt="<?php echo EDIT; ?>" /><?php echo EDIT ?></a>
 291                              <a href="?<?php echo serendipity_setFormToken('url'); ?>&amp;serendipity[action]=admin&amp;serendipity[adminModule]=entries&amp;serendipity[adminAction]=delete&amp;serendipity[id]=<?php echo $entry['id']; ?>" title="<?php echo DELETE . ' #' . $entry['id']; ?>" class="serendipityIconLink"><img src="<?php echo serendipity_getTemplateFile('admin/img/delete.png'); ?>" alt="<?php echo DELETE; ?>" /><?php echo DELETE ?></a>
 292                              <input class="input_checkbox" type="checkbox" name="serendipity[multiDelete][]" value="<?php echo $entry['id']; ?>" />
 293                          </td>
 294                      </tr>
 295                  </table>
 296              </div>
 297  <?php
 298          } // end entries output
 299  ?>
 300          <table class="serendipity_admin_list" cellpadding="5" width="100%">
 301              <tr>
 302                  <td>
 303                      <?php if ($offSet > 0) { ?>
 304                          <a href="<?php echo $linkPrevious ?>" class="serendipityIconLink"><img src="<?php echo serendipity_getTemplateFile('admin/img/previous.png') ?>" /><?php echo PREVIOUS ?></a>
 305                      <?php } ?>
 306                  </td>
 307                  <td align="right">
 308                      <?php if ($count > $perPage) { ?>
 309                          <a href="<?php echo $linkNext ?>" class="serendipityIconLinkRight"><?php echo NEXT ?><img src="<?php echo serendipity_getTemplateFile('admin/img/next.png') ?>" /></a>
 310                      <?php } ?>
 311                  </td>
 312              </tr>
 313          </table>
 314  
 315          <table class="serendipity_admin_list" cellpadding="0" width="100%">
 316              <tr>
 317                  <td align="right">
 318                      <input type="button" name="toggle" value="<?php echo INVERT_SELECTIONS ?>" onclick="invertSelection()" class="serendipityPrettyButton input_button" />
 319                      <input type="submit" name="toggle" value="<?php echo DELETE_SELECTED_ENTRIES ?>" class="serendipityPrettyButton input_button" />
 320                  </td>
 321              </tr>
 322          </table>
 323          </form>
 324  
 325          <div class="serendipity_admin_list_item serendipity_admin_list_item_<?php echo (($rows+1) % 2 ? 'even' : 'uneven'); ?>">
 326              <table width="100%" cellspacing="0" cellpadding="3">
 327                      <tr>
 328                          <td>
 329                              <form action="?" method="get">
 330                                  <input type="hidden" name="serendipity[action]"      value="admin"      />
 331                                  <input type="hidden" name="serendipity[adminModule]" value="entries"    />
 332                                  <input type="hidden" name="serendipity[adminAction]" value="editSelect" />
 333                              <?php echo EDIT_ENTRY ?>: #<input class="input_textbox" type="text" size="3" name="serendipity[id]" /> <input type="submit" name="serendipity[editSubmit]" value="<?php echo GO ?>" class="serendipityPrettyButton input_button" />
 334                              </form>
 335                          </td>
 336                      </tr>
 337              </table>
 338          </div>
 339   <?php
 340      } else {
 341          // We've got nothing
 342  ?>
 343          <div align="center">- <?php echo NO_ENTRIES_TO_PRINT ?> -</div>
 344  <?php
 345      }
 346  ?>
 347  </div>
 348  <?php
 349  } // End function serendipity_drawList()
 350  
 351  if (!empty($serendipity['GET']['editSubmit'])) {
 352      $serendipity['GET']['adminAction'] = 'edit';
 353  }
 354  
 355  $preview_only = false;
 356  
 357  switch($serendipity['GET']['adminAction']) {
 358      case 'preview':
 359          $entry        = serendipity_fetchEntry('id', $serendipity['GET']['id'], 1, 1);
 360          $serendipity['POST']['preview'] = true;
 361          $preview_only = true;
 362  
 363      case 'save':
 364          if (!$preview_only) {
 365              $entry = array(
 366                         'id'                 => $serendipity['POST']['id'],
 367                         'title'              => $serendipity['POST']['title'],
 368                         'timestamp'          => $serendipity['POST']['timestamp'],
 369                         'body'               => $serendipity['POST']['body'],
 370                         'extended'           => $serendipity['POST']['extended'],
 371                         'categories'         => $serendipity['POST']['categories'],
 372                         'isdraft'            => $serendipity['POST']['isdraft'],
 373                         'allow_comments'     => $serendipity['POST']['allow_comments'],
 374                         'moderate_comments'  => $serendipity['POST']['moderate_comments'],
 375                         'exflag'             => (!empty($serendipity['POST']['extended']) ? true : false)
 376              );
 377          }
 378  
 379          if ($entry['allow_comments'] != 'true' && $entry['allow_comments'] !== true) {
 380              $entry['allow_comments'] = 'false';
 381          }
 382  
 383          if ($entry['moderate_comments'] != 'true' && $entry['moderate_comments'] !== true) {
 384              $entry['moderate_comments'] = 'false';
 385          }
 386  
 387          // Check if the user changed the timestamp.
 388          if (isset($serendipity['allowDateManipulation']) && $serendipity['allowDateManipulation'] && isset($serendipity['POST']['new_timestamp']) && $serendipity['POST']['new_timestamp'] != date(DATE_FORMAT_2, $serendipity['POST']['chk_timestamp'])) {
 389              // The user changed the timestamp, now set the DB-timestamp to the user's date
 390              $entry['timestamp'] = strtotime($serendipity['POST']['new_timestamp']);
 391  
 392              if ($entry['timestamp'] == -1) {
 393                  echo DATE_INVALID . '<br />';
 394                  // The date given by the user is not convertable. Reset the timestamp.
 395                  $entry['timestamp'] = $serendipity['POST']['timestamp'];
 396              }
 397          }
 398  
 399          // Save server timezone in database always, so substract the offset we added for display; otherwise it would be added time and again
 400          if (!empty($entry['timestamp'])) {
 401              $entry['timestamp'] = serendipity_serverOffsetHour($entry['timestamp'], true);
 402          }
 403  
 404          // Save the entry, or just display a preview
 405          $use_legacy = true;
 406          serendipity_plugin_api::hook_event('backend_entry_iframe', $use_legacy);
 407  
 408          if ($use_legacy) {
 409              if ($serendipity['POST']['preview'] != 'true') {
 410                  /* We don't need an iframe to save a draft */
 411                  if ( $serendipity['POST']['isdraft'] == 'true' ) {
 412                      echo '<div class="serendipityAdminMsgSuccess"><img style="height: 22px; width: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_success.png') . '" alt="" />' . IFRAME_SAVE_DRAFT . '</div><br />';
 413                      serendipity_updertEntry($entry);
 414                  } else {
 415                      if ($serendipity['use_iframe']) {
 416                          echo '<div class="serendipityAdminMsgSuccess"><img style="height: 22px; width: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_success.png') . '" alt="" />' . IFRAME_SAVE . '</div><br />';
 417                          serendipity_iframe_create('save', $entry);
 418                      } else {
 419                          serendipity_iframe($entry, 'save');
 420                      }
 421                  }
 422              } else {
 423                  // Only display the preview
 424                  $serendipity['hidefooter'] = true;
 425                  if (!is_numeric($entry['timestamp'])) {
 426                      $entry['timestamp']  = time();
 427                  }
 428  
 429                  if (!isset($entry['trackbacks']) || !$entry['trackbacks']) {
 430                      $entry['trackbacks'] = 0;
 431                  }
 432  
 433                  if (!isset($entry['comments']) || !$entry['comments']) {
 434                      $entry['comments']   = 0;
 435                  }
 436  
 437                  if (!isset($entry['realname']) || !$entry['realname']) {
 438                      if (is_numeric($entry['id'])) {
 439                          $_entry = serendipity_fetchEntry('id', $entry['id'], 1, 1);
 440                          $entry['realname']   = $_entry['author'];
 441                      } elseif (!empty($serendipity['realname'])) {
 442                          $entry['realname']   = $serendipity['realname'];
 443                      } else {
 444                          $entry['realname']   = $serendipity['serendipityUser'];
 445                      }
 446                  }
 447  
 448                  $categories = (array)$entry['categories'];
 449                  $entry['categories'] = array();
 450                  foreach ($categories as $catid) {
 451                      if ($catid == 0) {
 452                          continue;
 453                      }
 454                      $entry['categories'][] = serendipity_fetchCategoryInfo($catid);
 455                  }
 456  
 457                  if (count($entry['categories']) < 1) {
 458                      unset($entry['categories']);
 459                  }
 460  
 461                  if (isset($entry['id'])) {
 462                      $serendipity['GET']['id'] = $entry['id'];
 463                  } else {
 464                      $serendipity['GET']['id'] = 1;
 465                  }
 466  
 467                  if ($serendipity['use_iframe']) {
 468                      echo '<div class="serendipityAdminMsgSuccess"><img style="height: 22px; width: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_success.png') . '" alt="" />' . IFRAME_PREVIEW . '</div><br />';
 469                      serendipity_iframe_create('preview', $entry);
 470                  } else {
 471                      serendipity_iframe($entry, 'preview');
 472                  }
 473              }
 474          }
 475  
 476          // serendipity_updertEntry sets this global variable to store the entry id. Couldn't pass this
 477          // by reference or as return value because it affects too many places inside our API and dependant
 478          // function calls.
 479          if (!empty($serendipity['lastSavedEntry'])) {
 480              $entry['id'] = $serendipity['lastSavedEntry'];
 481          }
 482  
 483          if (!$preview_only) {
 484              include_once  S9Y_INCLUDE_PATH . 'include/functions_entries_admin.inc.php';
 485              serendipity_printEntryForm(
 486                  '?',
 487                  array(
 488                    'serendipity[action]'      => 'admin',
 489                    'serendipity[adminModule]' => 'entries',
 490                    'serendipity[adminAction]' => 'save',
 491                    'serendipity[timestamp]'   => $entry['timestamp']
 492                  ),
 493  
 494                  $entry
 495              );
 496          }
 497  
 498          break;
 499  
 500      case 'doDelete':
 501          if (!serendipity_checkFormToken()) {
 502              break;
 503          }
 504  
 505          $entry = serendipity_fetchEntry('id', $serendipity['GET']['id'], 1, 1);
 506          serendipity_deleteEntry((int)$serendipity['GET']['id']);
 507          printf(RIP_ENTRY, $entry['id'] . ' - ' . htmlspecialchars($entry['title']));
 508          echo '<br />';
 509          $cont_draw = true;
 510  
 511      case 'doMultiDelete':
 512          if (!isset($cont_draw)) {
 513              if (!serendipity_checkFormToken() || !isset($serendipity['GET']['id'])) {
 514                  break;
 515              }
 516  
 517              $parts = explode(',', $serendipity['GET']['id']);
 518              foreach($parts AS $id) {
 519                  $id = (int)$id;
 520                  if ($id > 0) {
 521                      $entry = serendipity_fetchEntry('id', $id, 1, 1);
 522                      serendipity_deleteEntry((int)$id);
 523                      printf(RIP_ENTRY, $entry['id'] . ' - ' . htmlspecialchars($entry['title']));
 524                      echo '<br />';
 525                  }
 526              }
 527          }
 528  
 529      case 'editSelect':
 530          serendipity_drawList();
 531          break;
 532  
 533      case 'delete':
 534          if (!serendipity_checkFormToken()) {
 535              break;
 536          }
 537          $newLoc = '?' . serendipity_setFormToken('url') . '&amp;serendipity[action]=admin&amp;serendipity[adminModule]=entries&amp;serendipity[adminAction]=doDelete&amp;serendipity[id]=' . (int)$serendipity['GET']['id'];
 538  
 539          $entry = serendipity_fetchEntry('id', $serendipity['GET']['id'], 1, 1);
 540          printf(DELETE_SURE, $entry['id'] . ' - ' . htmlspecialchars($entry['title']));
 541  ?>
 542  <br />
 543  <br />
 544  <div>
 545      <a href="<?php echo htmlspecialchars($_SERVER["HTTP_REFERER"]); ?>" class="serendipityPrettyButton input_button"><?php echo NOT_REALLY; ?></a>
 546      <?php echo str_repeat('&nbsp;', 10); ?>
 547      <a href="<?php echo $newLoc; ?>" class="serendipityPrettyButton input_button"><?php echo DUMP_IT; ?></a>
 548  </div>
 549  <?php
 550          break;
 551  
 552      case 'multidelete':
 553          if (!serendipity_checkFormToken() || !is_array($serendipity['POST']['multiDelete'])) {
 554              break;
 555          }
 556  
 557          $ids = '';
 558          foreach($serendipity['POST']['multiDelete'] AS $idx => $id) {
 559              $ids .= (int)$id . ',';
 560              $entry = serendipity_fetchEntry('id', $id, 1, 1);
 561              printf(DELETE_SURE, $entry['id'] . ' - ' . htmlspecialchars($entry['title']));
 562              echo '<br />';
 563          }
 564          $newLoc = '?' . serendipity_setFormToken('url') . '&amp;serendipity[action]=admin&amp;serendipity[adminModule]=entries&amp;serendipity[adminAction]=doMultiDelete&amp;serendipity[id]=' . $ids;
 565  ?>
 566  <br />
 567  <br />
 568  <div>
 569      <a href="<?php echo htmlspecialchars($_SERVER["HTTP_REFERER"]); ?>" class="serendipityPrettyButton input_button "><?php echo NOT_REALLY; ?></a>
 570      <?php echo str_repeat('&nbsp;', 10); ?>
 571      <a href="<?php echo $newLoc; ?>" class="serendipityPrettyButton input_button"><?php echo DUMP_IT; ?></a>
 572  </div>
 573  <?php
 574          break;
 575  
 576      case 'edit':
 577          $entry = serendipity_fetchEntry('id', $serendipity['GET']['id'], 1, 1);
 578  
 579      default:
 580          include_once  S9Y_INCLUDE_PATH . 'include/functions_entries_admin.inc.php';
 581  
 582          serendipity_printEntryForm(
 583              '?',
 584              array(
 585              'serendipity[action]'      => 'admin',
 586              'serendipity[adminModule]' => 'entries',
 587              'serendipity[adminAction]' => 'save'
 588              ),
 589              (isset($entry) ? $entry : array())
 590          );
 591  }
 592  /* vim: set sts=4 ts=4 expandtab : */
 593  ?>


Généré le : Sat Nov 24 09:00:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics