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.

article.php 5.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <?php
  2. #declare(strict_types=1);
  3. Text::$TOC = true;
  4. $ArticleID = false;
  5. if (!empty($_GET['id']) && is_number($_GET['id'])) { // Visiting article via ID
  6. $ArticleID = (int) $_GET['id'];
  7. } elseif ($_GET['name'] !== '') { // Retrieve article ID via alias
  8. $ArticleID = Wiki::alias_to_id($_GET['name']);
  9. } else { // No ID, No Name
  10. //error(404);
  11. error('Unknown article ['.display_str($_GET['id']).']');
  12. }
  13. if (!$ArticleID) { // No article found
  14. View::show_header('No article found'); ?>
  15. <div>
  16. <div class="header">
  17. <h2>No article found</h2>
  18. </div>
  19. <div class="box">
  20. There is no article matching the name you requested.
  21. <ul>
  22. <li><a
  23. href="wiki.php?action=search&amp;search=<?=display_str($_GET['name'])?>">Search</a>
  24. for an article similar to this.</li>
  25. <li><a
  26. href="wiki.php?action=create&amp;alias=<?=display_str(Wiki::normalize_alias($_GET['name']))?>">Create</a>
  27. an article in its place.</li>
  28. </ul>
  29. </div>
  30. </div>
  31. <?php
  32. View::show_footer();
  33. error();
  34. }
  35. $Article = Wiki::get_article($ArticleID);
  36. list($Revision, $Title, $Body, $Read, $Edit, $Date, $AuthorID, $AuthorName, $Aliases, $UserIDs) = array_shift($Article);
  37. if ($Read > $LoggedUser['EffectiveClass']) {
  38. error('You must be a higher user class to view this wiki article');
  39. }
  40. $TextBody = Text::full_format($Body, false);
  41. $TOC = Text::parse_toc(0);
  42. View::show_header($Title, 'wiki,bbcode');
  43. ?>
  44. <div>
  45. <div class="header">
  46. <h2>
  47. <?=$Title?>
  48. </h2>
  49. <div class="linkbox">
  50. <a href="wiki.php?action=create" class="brackets">Create</a>
  51. <?php if ($Edit <= $LoggedUser['EffectiveClass']) { ?>
  52. <a href="wiki.php?action=edit&amp;id=<?=$ArticleID?>"
  53. class="brackets">Edit</a>
  54. <a href="wiki.php?action=revisions&amp;id=<?=$ArticleID?>"
  55. class="brackets">History</a>
  56. <?php } ?>
  57. <?php if (check_perms('admin_manage_wiki') && $_GET['id'] !== INDEX_ARTICLE) { ?>
  58. <a href="wiki.php?action=delete&amp;id=<?=$ArticleID?>&amp;authkey=<?=$LoggedUser['AuthKey']?>"
  59. class="brackets" onclick="return confirm('Are you sure you want to delete?')">Delete</a>
  60. <?php } ?>
  61. </div>
  62. </div>
  63. <div class="sidebar">
  64. <div class="box">
  65. <div class="head">Search</div>
  66. <div class="pad">
  67. <form class="search_form" name="articles" action="wiki.php" method="get">
  68. <input type="hidden" name="action" value="search" />
  69. <input type="search" placeholder="Search articles" name="search" size="20" />
  70. <input value="Search" type="submit" class="hidden button-primary" />
  71. </form>
  72. <br style="line-height: 10px;" />
  73. <a href="wiki.php?action=browse" class="brackets">Browse articles</a>
  74. </div>
  75. </div>
  76. <?php if ($TOC) { ?>
  77. <div class="box">
  78. <div class="head">Table of Contents</div>
  79. <div class="body">
  80. <?=$TOC?>
  81. </div>
  82. </div>
  83. <?php } ?>
  84. <div class="box box_info pad">
  85. <ul>
  86. <li>
  87. <strong>Protection:</strong>
  88. <ul>
  89. <li>Read: <?=$ClassLevels[$Read]['Name']?>
  90. </li>
  91. <li>Edit: <?=$ClassLevels[$Edit]['Name']?>
  92. </li>
  93. </ul>
  94. </li>
  95. <li>
  96. <strong>Details:</strong>
  97. <ul>
  98. <li>Version: r<?=$Revision?>
  99. </li>
  100. <li>Last edited by: <?=Users::format_username($AuthorID, false, false, false)?>
  101. </li>
  102. <li>Last updated: <?=time_diff($Date)?>
  103. </li>
  104. </ul>
  105. </li>
  106. <li>
  107. <strong>Aliases:</strong>
  108. <ul>
  109. <?php
  110. if ($Aliases !== $Title) {
  111. $AliasArray = explode(',', $Aliases);
  112. $UserArray = explode(',', $UserIDs);
  113. $i = 0;
  114. foreach ($AliasArray as $AliasItem) {
  115. ?>
  116. <li id="alias_<?=$AliasItem?>"><a
  117. href="wiki.php?action=article&amp;name=<?=$AliasItem?>"><?=Format::cut_string($AliasItem, 20, 1)?></a>
  118. <?php
  119. if (check_perms('admin_manage_wiki')) { ?>
  120. <a href="#"
  121. onclick="Remove_Alias('<?=$AliasItem?>'); return false;"
  122. class="brackets tooltip" title="Delete alias">X</a> <a
  123. href="user.php?id=<?=$UserArray[$i]?>"
  124. class="brackets tooltip" title="View user">U</a>
  125. <?php
  126. } ?>
  127. </li>
  128. <?php
  129. $i++;
  130. }
  131. }
  132. ?>
  133. </ul>
  134. </li>
  135. </ul>
  136. </div>
  137. <?php if ($Edit <= $LoggedUser['EffectiveClass']) { ?>
  138. <div class="box box_addalias">
  139. <div style="padding: 5px;">
  140. <form class="add_form" name="aliases" action="wiki.php" method="post">
  141. <input type="hidden" name="action" value="add_alias" />
  142. <input type="hidden" name="auth"
  143. value="<?=$LoggedUser['AuthKey']?>" />
  144. <input type="hidden" name="article"
  145. value="<?=$ArticleID?>" />
  146. <input onfocus="if (this.value == 'Add alias') this.value='';"
  147. onblur="if (this.value == '') this.value='Add alias';" value="Add alias" type="text" name="alias"
  148. size="20" />
  149. <input type="submit" value="+" />
  150. </form>
  151. </div>
  152. </div>
  153. <?php } ?>
  154. </div>
  155. <div class="main_column">
  156. <div class="box wiki_article">
  157. <div class="pad"><?=$TextBody?>
  158. </div>
  159. </div>
  160. </div>
  161. </div>
  162. <?php View::show_footer();