[ Index ]

Source Code Reference for V1.00

title

Body

[close]

/modules/forums/ -> post_message.php (source)

   1  <?php /* $Id: post_message.php 168 2008-05-20 11:22:15Z pedroix $ $URL: https://web2project.svn.sourceforge.net/svnroot/web2project/trunk/modules/forums/post_message.php $ */
   2  if (!defined('W2P_BASE_DIR')) {
   3      die('You should not access this file directly.');
   4  }
   5  // Add / Edit forum
   6  $message_id = isset($_GET['message_id']) ? w2PgetParam($_GET, 'message_id', 0) : 0;
   7  $message_parent = isset($_GET['message_parent']) ? w2PgetParam($_GET, 'message_parent', null) : -1;
   8  $forum_id = w2PgetParam($_REQUEST, 'forum_id', 0);
   9  
  10  $perms = &$AppUI->acl();
  11  $canAdd = $perms->checkModuleItem('forums', 'add');
  12  $canEdit = $perms->checkModuleItem('forums', 'edit', $forum_id);
  13  
  14  // Build a back-url for when the back button is pressed
  15  $back_url_params = array();
  16  foreach ($_GET as $k => $v) {
  17      if ($k != 'post_message') {
  18          $back_url_params[] = "$k=$v";
  19      }
  20  }
  21  $back_url = implode('&', $back_url_params);
  22  
  23  //Pull forum information
  24  $q = new DBQuery;
  25  $q->addTable('forums');
  26  $q->addTable('projects');
  27  $q->addQuery('forum_name, forum_owner, forum_moderated, project_name, project_id');
  28  $q->addWhere('forums.forum_id = ' . (int)$forum_id);
  29  $q->addWhere('forums.forum_project = projects.project_id');
  30  $res = $q->exec();
  31  $forum_info = $q->fetchRow();
  32  $q->clear();
  33  echo db_error();
  34  
  35  //pull message information
  36  $q = new DBQuery;
  37  $q->addTable('forum_messages');
  38  $q->addQuery('forum_messages.*, user_username');
  39  $q->addJoin('users', 'u', 'message_author = u.user_id', 'inner');
  40  $q->addWhere('message_id = ' . (int)($message_id ? $message_id : $message_parent));
  41  $res = $q->exec();
  42  echo db_error();
  43  $message_info = $q->fetchRow();
  44  $q->clear();
  45  
  46  //pull message information from last response
  47  if ($message_parent != -1) {
  48      $q->addTable('forum_messages');
  49      $q->addWhere('message_parent = ' . (int)($message_id ? $message_id : $message_parent));
  50      $q->addOrder('message_id DESC'); // fetch last message first
  51      $q->setLimit(1);
  52      $res = $q->exec();
  53      echo db_error();
  54      $last_message_info = $q->fetchRow();
  55      if (!$last_message_info) { // if it's first response, use original message
  56          $last_message_info = &$message_info;
  57          $last_message_info['message_body'] = wordwrap($last_message_info['message_body'], 50, "\n> ");
  58      } else {
  59          $last_message_info['message_body'] = str_replace("\n", "\n> ", $last_message_info['message_body']);
  60      }
  61      $q->clear();
  62  }
  63  
  64  // check permissions
  65  if (!((($canEdit || $AppUI->user_id == $forum_info['forum_moderated'] || $AppUI->user_id == $message_info['message_author'] || $perms->checkModule('admin', 'edit')) && ($message_info['message_id'])) || ($canAdd && !$message_info['message_id']))) {
  66      $AppUI->redirect('m=public&a=access_denied');
  67  }
  68  
  69  $crumbs = array();
  70  $crumbs['?m=forums'] = 'forums list';
  71  $crumbs['?m=forums&a=viewer&forum_id=' . $forum_id] = 'topics for this forum';
  72  if ($message_parent > -1) {
  73      $crumbs['?m=forums&a=viewer&forum_id=' . $forum_id . '&message_id=' . $message_parent] = 'this topic';
  74  }
  75  ?>
  76  <script language="javascript">
  77  <?php
  78  // security improvement:
  79  // some javascript functions may not appear on client side in case of user not having write permissions
  80  // else users would be able to arbitrarily run 'bad' functions
  81  if ($canEdit || $canAdd) {
  82  ?>
  83  function submitIt(){
  84      var form = document.changeforum;
  85      if (form.message_title.value.search(/^\s*$/) >= 0 ) {
  86          alert("<?php echo $AppUI->_('forumSubject', UI_OUTPUT_JS); ?>");
  87          form.message_title.focus();
  88      } else if (form.message_body.value.search(/^\s*$/) >= 0) {
  89          alert("<?php echo $AppUI->_('forumTypeMessage', UI_OUTPUT_JS); ?>");
  90          form.message_body.focus();
  91      } else {
  92          form.submit();
  93      }
  94  }
  95  
  96  function delIt(){
  97      var form = document.changeforum;
  98      if (confirm( "<?php echo $AppUI->_('forumDeletePost', UI_OUTPUT_JS); ?>" )) {
  99          form.del.value="<?php echo $message_id; ?>";
 100          form.submit();
 101      }
 102  }
 103  <?php } ?>
 104  function orderByName(x){
 105      var form = document.changeforum;
 106      if (x == 'name') {
 107          form.forum_order_by.value = form.forum_last_name.value + ', ' + form.forum_name.value;
 108      } else {
 109          form.forum_order_by.value = form.forum_project.value;
 110      }
 111  }
 112  </script>
 113  <br />
 114  <?php
 115  if (function_exists('styleRenderBoxTop')) {
 116      echo styleRenderBoxTop();
 117  }
 118  ?>
 119  
 120  <form name="changeforum" action="?m=forums&forum_id=<?php echo $forum_id; ?>" method="post">
 121      <input type="hidden" name="dosql" value="do_post_aed" />
 122      <input type="hidden" name="del" value="0" />
 123      <input type="hidden" name="message_forum" value="<?php echo $forum_id; ?>" />
 124      <input type="hidden" name="message_parent" value="<?php echo $message_parent; ?>" />
 125      <input type="hidden" name="message_published" value="<?php echo $forum_info['forum_moderated'] ? '1' : '0'; ?>" />
 126      <input type="hidden" name="message_author" value="<?php echo (isset($message_info['message_author']) && ($message_id || $message_parent < 0)) ? $message_info['message_author'] : $AppUI->user_id; ?>" />
 127      <input type="hidden" name="message_editor" value="<?php echo (isset($message_info['message_author']) && ($message_id || $message_parent < 0)) ? $AppUI->user_id : '0'; ?>" />
 128      <input type="hidden" name="message_id" value="<?php echo $message_id; ?>" />
 129  <table cellspacing="0" cellpadding="3" border="0" width="100%" class="std">
 130  <!-- <form name="changeforum" action="?m=forums&a=viewposts&forum_id=<?php echo $forum_id; ?>" method="post"> -->
 131  <tr><td>
 132      <table cellspacing="1" cellpadding="2" border="0" width="100%">
 133      <tr>
 134          <td align="left" nowrap="nowrap"><?php echo breadCrumbs($crumbs); ?></td>
 135          <td width="100%" align="right"></td>
 136      </tr>
 137      </table>
 138  </td></tr>
 139  <tr>
 140      <th valign="top" colspan="2"><strong><?php
 141  echo $AppUI->_($message_id ? 'Edit Message' : 'Add Message');
 142  ?></strong></th>
 143  </tr>
 144  <?php
 145  if ($message_parent >= 0) { //check if this is a reply-post; if so, printout the original message
 146      $date = intval($message_info['message_date']) ? new CDate($message_info['message_date']) : new CDate();
 147  ?>
 148  
 149  <tr><td align="right"><?php echo $AppUI->_('Author') ?>:</td><td align="left"><?php echo w2PgetUsername($message_info['user_username']) ?> (<?php echo $date->format($df . ' ' . $tf); ?>)</td></tr>
 150  <tr><td align="right"><?php echo $AppUI->_('Subject') ?>:</td><td align="left"><?php echo $message_info['message_title'] ?></td></tr>
 151  <tr><td align="right" valign="top"><?php echo $AppUI->_('Message') ?>:</td><td align="left">
 152  <?php 
 153      $message = $bbparser->qparse($message_info['message_body']);
 154      $message = str_replace(chr(13), '&nbsp;<br />', $message);
 155      echo $message; 
 156  ?></td></tr>
 157  <tr><td colspan="2" align="left"><hr /></td></tr>
 158  <?php
 159  } //end of if-condition
 160  
 161  ?>
 162  <tr>
 163      <td align="right"><?php echo $AppUI->_('Subject'); ?>:</td>
 164      <td>
 165          <input type="text" class="text" name="message_title" value="<?php echo ($message_id || $message_parent < 0 ? '' : 'Re: ') . $message_info['message_title']; ?>" size="50" maxlength="250" />
 166      </td>
 167  </tr>
 168  <tr>
 169      <td align="right" valign="top"><?php echo $AppUI->_('Message'); ?>:</td>
 170      <td align="left" valign="top">
 171         <textarea cols="60" name="message_body" style="height:200px"><?php echo (($message_id == 0) and ($message_parent != -1)) ? "\n>" . $last_message_info['message_body'] . "\n" : $message_info['message_body']; ?></textarea>
 172      </td>
 173  </tr>
 174  <tr>
 175      <td>
 176      </td>
 177      <td align="left">
 178          <small><b><?php echo $AppUI->_('BBCode Ready');?>!</b></small>
 179          <?php echo w2PshowImage('log-info.gif','','','BBCode Tags Accepted','
 180          [b][/b] Bold. Example: [b]<b>This text will be bold</b>[/b]<br />
 181          [i][/i] Italic. Example: [i]<i>This text will be in italic</i>[/i]<br />
 182          [u][/u] Underlined. Example: [u]<u>This text will be underlined</u>[/u]<br />
 183          [s][/s] Scratched. Example: [s]<del>This text will be scratched</del>[/s]<br />
 184          [sub][/sub] Subscript. Example: [sub]<sub>This text will be subscript</sub>[/sub]<br />
 185          [sup][/sup] Superscript. Example: [sup]<sup>This text will be superscript</sup>[/sup]<br />
 186          [email][/email] Email Address. Example: [email]my@mail.net[/email]<br />
 187          [color=color_name][/color] Colorized Text. Example: [color=blue]I am Blue[/color]<br />
 188          [size=size_value][/size], [font=font_name][/font] and [align=left|center|right][align] Format Text. Example: [align=right]I am on the Right[/align]<br />
 189          [url=url_address][/url] Link. Example: [url=http://web2project.net]web2Project[/url]<br />
 190          [list][/list],[ulist][/ulist] and [li][/li] Lists.<br />
 191          [quote][/quote] Quoted Text. Example: [quote]<q>This text will be superscript</q>[/quote]<br />
 192          [code][/code] Text in code format. Example: [code]//This is a code comment;[/code]<br />
 193          '); ?>
 194      </td>
 195  </tr>
 196  <tr>
 197      <td>
 198          <input type="button" value="<?php echo $AppUI->_('back'); ?>" class="button" onclick="javascript:window.location='./index.php?<?php echo $back_url; ?>';" />
 199      </td>
 200      <td align="right"><?php
 201      echo '<input type="button" value="' . $AppUI->_('submit') . '" class=button onclick="submitIt()">';
 202  ?></td>
 203  </tr>
 204  </form>
 205  </table>


Generated: Fri Jan 9 03:00:02 2009 Cross-referenced by PHPXref 0.7