| [ Index ] |
|
Code source de Serendipity 1.2 |
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(' ', $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&serendipity[adminAction]=editSelect'; 188 foreach ((array)$serendipity['GET']['sort'] as $k => $v) { 189 $qString .= '&serendipity[sort]['. $k .']='. $v; 190 } 191 foreach ((array)$serendipity['GET']['filter'] as $k => $v) { 192 $qString .= '&serendipity[filter]['. $k .']='. $v; 193 } 194 $linkPrevious = $qString . '&serendipity[page]=' . ($page-1); 195 $linkNext = $qString . '&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&serendipity[adminModule]=entries&serendipity[adminAction]=edit&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&serendipity[noSidebar]=true&serendipity[action]=admin&serendipity[adminModule]=entries&serendipity[adminAction]=preview&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&serendipity[adminModule]=entries&serendipity[adminAction]=edit&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'); ?>&serendipity[action]=admin&serendipity[adminModule]=entries&serendipity[adminAction]=delete&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') . '&serendipity[action]=admin&serendipity[adminModule]=entries&serendipity[adminAction]=doDelete&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(' ', 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') . '&serendipity[action]=admin&serendipity[adminModule]=entries&serendipity[adminAction]=doMultiDelete&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(' ', 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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Sat Nov 24 09:00:37 2007 | par Balluche grâce à PHPXref 0.7 |
|