BioTorrents.de’s version of Gazelle
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

news.php 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. declare(strict_types = 1);
  3. enforce_login();
  4. if (!check_perms('admin_manage_news')) {
  5. error(403);
  6. }
  7. View::show_header(
  8. 'Manage news',
  9. 'bbcode,vendor/easymde.min',
  10. 'vendor/easymde.min'
  11. );
  12. switch ($_GET['action']) {
  13. case 'takeeditnews':
  14. if (!check_perms('admin_manage_news')) {
  15. error(403);
  16. }
  17. if (is_number($_POST['newsid'])) {
  18. authorize();
  19. $DB->query("
  20. UPDATE news
  21. SET Title = '".db_string($_POST['title'])."', Body = '".db_string($_POST['body'])."'
  22. WHERE ID = '".db_string($_POST['newsid'])."'");
  23. $Cache->delete_value('news');
  24. $Cache->delete_value('feed_news');
  25. }
  26. header('Location: index.php');
  27. break;
  28. case 'editnews':
  29. if (is_number($_GET['id'])) {
  30. $NewsID = $_GET['id'];
  31. $DB->query("
  32. SELECT Title, Body
  33. FROM news
  34. WHERE ID = $NewsID");
  35. list($Title, $Body) = $DB->next_record();
  36. }
  37. } ?>
  38. <div>
  39. <div class="header">
  40. <h2>
  41. <?= ($_GET['action'] === 'news') ? 'Create a news post' : 'Edit news post';?>
  42. </h2>
  43. </div>
  44. <form
  45. class="<?= ($_GET['action'] === 'news') ? 'create_form' : 'edit_form';?>"
  46. name="news_post" action="tools.php" method="post">
  47. <div class="box pad">
  48. <input type="hidden" name="action"
  49. value="<?= ($_GET['action'] === 'news') ? 'takenewnews' : 'takeeditnews';?>">
  50. <input type="hidden" name="auth"
  51. value="<?=$LoggedUser['AuthKey']?>">
  52. <?php if ($_GET['action'] === 'editnews') { ?>
  53. <input type="hidden" name="newsid" value="<?=$NewsID; ?>">
  54. <?php } ?>
  55. <h3>Title</h3>
  56. <input type="text" name="title" size="95" <?php if (!empty($Title)) {
  57. echo ' value="' .display_str($Title).'"';
  58. } ?>>
  59. <h3>Body</h3>
  60. <?php
  61. $Textarea = new TEXTAREA_PREVIEW(
  62. $Name = 'body',
  63. $ID = '',
  64. $Value = display_str($Body) ?? '',
  65. ); ?>
  66. <div class="center">
  67. <input type="submit"
  68. value="<?= ($_GET['action'] === 'news') ? 'Create news post' : 'Edit news post';?>">
  69. </div>
  70. </div>
  71. </form>
  72. <h2>News archive</h2>
  73. <?php
  74. $DB->query('
  75. SELECT
  76. ID,
  77. Title,
  78. Body,
  79. Time
  80. FROM news
  81. ORDER BY Time DESC');// LIMIT 20
  82. while (list($NewsID, $Title, $Body, $NewsTime) = $DB->next_record()) {
  83. ?>
  84. <div class="box vertical_space news_post">
  85. <div class="head">
  86. <strong><?=display_str($Title) ?></strong> - posted <?=time_diff($NewsTime) ?>
  87. - <a href="tools.php?action=editnews&amp;id=<?=$NewsID?>"
  88. class="brackets">Edit</a>
  89. <a href="tools.php?action=deletenews&amp;id=<?=$NewsID?>&amp;auth=<?=$LoggedUser['AuthKey']?>"
  90. class="brackets">Delete</a>
  91. </div>
  92. <div class="pad"><?=Text::full_format($Body) ?>
  93. </div>
  94. </div>
  95. <?php
  96. } ?>
  97. </div>
  98. <?php View::show_footer();