![]() |
|---|
| [ Index ] |
Source Code Reference for V1.00 |
[Summary view] [Print] [Text view]
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), ' <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>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Fri Jan 9 03:00:02 2009 | Cross-referenced by PHPXref 0.7 |