From 6d005ffaa8b5e24ea7eca937af828e1abd0efdf9 Mon Sep 17 00:00:00 2001 From: mcfly <mcfly@e107.org> Date: Sun, 25 Jan 2009 19:19:36 +0000 Subject: [PATCH] converted forum_post_shortcodes to class->method --- e107_plugins/forum/forum_post.php | 20 +- e107_plugins/forum/forum_post_shortcodes.php | 309 ++++++++++--------- 2 files changed, 179 insertions(+), 150 deletions(-) diff --git a/e107_plugins/forum/forum_post.php b/e107_plugins/forum/forum_post.php index 74eb79c90..aa45e4b67 100644 --- a/e107_plugins/forum/forum_post.php +++ b/e107_plugins/forum/forum_post.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_plugins/forum/forum_post.php,v $ -| $Revision: 1.34 $ -| $Date: 2008-12-18 14:08:33 $ +| $Revision: 1.35 $ +| $Date: 2009-01-25 19:19:36 $ | $Author: mcfly_e107 $ +----------------------------------------------------------------------------+ */ @@ -78,17 +78,17 @@ if (!$forum->checkPerm($forumId, 'post')) require_once(FOOTERF); exit; } - -define("MODERATOR", check_class($forum_info['forum_moderators'])); +define('MODERATOR', USER && $forum->isModerator(USERID)); //require_once(e_HANDLER.'forum_include.php'); -require_once(e_PLUGIN."forum/forum_post_shortcodes.php"); -require_once(e_PLUGIN."forum/forum_shortcodes.php"); -require_once(e_HANDLER."ren_help.php"); +require_once(e_PLUGIN.'forum/forum_post_shortcodes.php'); +require_once(e_PLUGIN.'forum/forum_shortcodes.php'); +require_once(e_HANDLER.'ren_help.php'); +setScVar('forum_post_shortcodes', 'forum', $forum); +setScVar('forum_post_shortcodes', 'threadInfo', $threadInfo); $gen = new convert; $fp = new floodprotect; $e107 = e107::getInstance(); - //if thread is not active and not new thread, show warning if ($action != 'nt' && !$threadInfo['thread_active'] && !MODERATOR) { @@ -520,7 +520,9 @@ if($action == 'rp') { $FORUMPOST = $FORUMPOST_REPLY; } -$text = $tp->parseTemplate($FORUMPOST, FALSE, $forum_post_shortcodes); +$text = $tp->parseTemplate($FORUMPOST, true); +//$text = $tp->parseTemplate($FORUMPOST, FALSE, $forum_post_shortcodes); + // ------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/e107_plugins/forum/forum_post_shortcodes.php b/e107_plugins/forum/forum_post_shortcodes.php index cfc0af358..c39e63d51 100644 --- a/e107_plugins/forum/forum_post_shortcodes.php +++ b/e107_plugins/forum/forum_post_shortcodes.php @@ -1,163 +1,190 @@ <?php if (!defined('e107_INIT')) { exit; } -include_once(e_HANDLER.'shortcode_handler.php'); -$forum_post_shortcodes = $tp -> e_sc -> parse_scbatch(__FILE__); +register_shortcode('forum_post_shortcodes', true); +initShortcodeClass('forum_post_shortcodes'); -/* -SC_BEGIN LATESTPOSTS -global $thread_info, $action, $gen, $tp, $forum_shortcodes, $post_info; -global $LATESTPOSTS_START, $LATESTPOSTS_END, $LATESTPOSTS_POST; -$txt = $tp->parseTemplate($LATESTPOSTS_START, TRUE, $forum_shortcodes); -for($i = count($thread_info)-2; $i>0; $i--) +class forum_post_shortcodes { - $post_info = $thread_info[$i]; - $txt .= $tp->parseTemplate($LATESTPOSTS_POST, TRUE, $forum_shortcodes); -} -$txt .= $tp->parseTemplate($LATESTPOSTS_END, TRUE, $forum_shortcodes); -return $txt; -SC_END - - -SC_BEGIN LATESTPOSTSCOUNT - return; // Null return as placeholder -SC_END - -SC_BEGIN THREADTOPIC -global $thread_info, $action, $gen, $tp, $post_info, $forum_shortcodes, $THREADTOPIC_REPLY; -$post_info = $thread_info['head']; -return $tp->parseTemplate($THREADTOPIC_REPLY, TRUE, $forum_shortcodes); -SC_END - -SC_BEGIN FORMSTART -return "<form enctype='multipart/form-data' method='post' action='".e_SELF.'?'.e_QUERY."' id='dataform'>"; -SC_END - -SC_BEGIN FORMEND -return "</form>"; -SC_END - -SC_BEGIN FORUMJUMP -return forumjump(); -SC_END - -SC_BEGIN USERBOX -global $userbox; -return (USER == FALSE ? $userbox : ""); -SC_END - -SC_BEGIN SUBJECTBOX -global $subjectbox, $action; -return ($action == 'nt' ? $subjectbox : ''); -SC_END - -SC_BEGIN POSTTYPE -global $action; -return ($action == "nt" ? LAN_63 : LAN_73); -SC_END - -SC_BEGIN POSTBOX -global $post, $pref; -$rows = (e_WYSIWYG) ? 15 : 10; -$ret = "<textarea class='tbox' id='post' name='post' cols='70' rows='{$rows}' style='width:95%' onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'>$post</textarea>\n<br />\n"; -if(!e_WYSIWYG) -{ - $ret .= display_help('helpb', 'forum'); -} -return $ret; -SC_END - -SC_BEGIN BUTTONS -global $action, $eaction; -$ret = "<input class='button' type='submit' name='fpreview' value='".LAN_323."' /> "; -if ($action != "nt") -{ - $ret .= ($eaction ? "<input class='button' type='submit' name='update_reply' value='".LAN_78."' />" : "<input class='button' type='submit' name='reply' value='".LAN_74."' />"); -} -else -{ - $ret .= ($eaction ? "<input class='button' type='submit' name='update_thread' value='".LAN_77."' />" : "<input class='button' type='submit' name='newthread' value='".LAN_64."' />"); -} -return $ret; -SC_END - -SC_BEGIN FILEATTACH -global $pref, $fileattach, $fileattach_alert; - -if ($pref['forum_attach'] && strpos(e_QUERY, 'edit') === FALSE && (check_class($pref['upload_class']) || getperms('0'))) -{ - if (is_writable(e_FILE.'public')) + var $e107; + var $threadInfo; + var $forum; + + function forum_post_shortcodes() { - return $fileattach; + $this->e107 = e107::getInstance(); } - else + + function get_latestposts($parm) { - $FILEATTACH = ""; - if(ADMIN) + $parm = ($parm ? $parm : 10); + global $LATESTPOSTS_START, $LATESTPOSTS_END, $LATESTPOSTS_POST; + $txt = $this->e107->tp->parseTemplate($LATESTPOSTS_START, true); + $start = max($this->threadInfo['thread_total_replies'] - $parm, 0); + $num = min($this->threadInfo['thread_total_replies'], $parm); + + $tmp = $this->forum->postGet($this->threadInfo['thread_id'], $start, $num); + + for($i = count($tmp)-1; $i > 0; $i--) { - if(!$fileattach_alert) - { - $fileattach_alert = "<tr><td colspan='2' class='nforumcaption2'>".($pref['image_post'] ? LAN_390 : LAN_416)."</td></tr><tr><td colspan='2' class='forumheader3'>".LAN_FORUM_1."</td></tr>\n"; - } - return $fileattach_alert; + setScVar('forum_shortcodes', 'postInfo', $tmp[$i]); + $txt .= $this->e107->tp->parseTemplate($LATESTPOSTS_POST, true); } + $txt .= $this->e107->tp->parseTemplate($LATESTPOSTS_END, true); + return $txt; } -} -SC_END -SC_BEGIN POSTTHREADAS -global $action, $thread_info; -if (MODERATOR && $action == "nt") -{ - $thread_sticky = (isset($_POST['threadtype']) ? $_POST['threadtype'] : $thread_info['head']['thread_sticky']); - return "<br /><span class='defaulttext'>".LAN_400."<input name='threadtype' type='radio' value='0' ".(!$thread_sticky ? "checked='checked' " : "")." />".LAN_1." <input name='threadtype' type='radio' value='1' ".($thread_sticky == 1 ? "checked='checked' " : "")." />".LAN_2." <input name='threadtype' type='radio' value='2' ".($thread_sticky == 2 ? "checked='checked' " : "")." />".LAN_3."</span>"; -} -return ''; -SC_END - -SC_BEGIN BACKLINK -global $forum, $thread_info,$eaction, $action,$BREADCRUMB; -$forum->set_crumb(TRUE,($action == "nt" ? ($eaction ? LAN_77 : LAN_60) : ($eaction ? LAN_78 : LAN_406." ".$thread_info['head']['thread_name']))); -return $BREADCRUMB; -SC_END - -SC_BEGIN NOEMOTES -if($eaction == true) { return ; } -return "<input type='checkbox' name='no_emote' value='1' /> <span class='defaulttext'>".LAN_FORUMPOST_EMOTES.'</span>'; -SC_END - -SC_BEGIN EMAILNOTIFY -global $pref, $thread_info, $action, $eaction; -if($eaction == true) { return ; } -if ($pref['email_notify'] && $action == 'nt' && USER) -{ - if(isset($_POST['fpreview'])) + function get_threadtopic() { - $chk = ($_POST['email_notify'] ? "checked = 'checked'" : ''); + global $THREADTOPIC_REPLY; + $tmp = $this->forum->postGet($this->threadInfo['thread_id'], 0, 1); + setScVar('forum_shortcodes', 'postInfo', $tmp[0]); + return $this->e107->tp->parseTemplate($THREADTOPIC_REPLY, true); } - else + + function get_forumstart() { - if(isset($thread_info)) + return "<form enctype='multipart/form-data' method='post' action='".e_SELF.'?'.e_QUERY."' id='dataform'>"; + } + + function get_formend() + { + return '</form>'; + } + + function get_forumjump() + { + return forumjump(); + } + + function get_userbox() + { + global $userbox; + return (USER == false ? $userbox : ''); + } + + function get_subjectbox() + { + global $subjectbox, $action; + return ($action == 'nt' ? $subjectbox : ''); + } + + function get_posttype() + { + global $action; + return ($action == 'nt' ? LAN_63 : LAN_73); + } + + function get_postbox() + { + global $post, $pref; + $rows = (e_WYSIWYG) ? 15 : 10; + $ret = "<textarea class='tbox' id='post' name='post' cols='70' rows='{$rows}' style='width:95%' onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'>$post</textarea>\n<br />\n"; + if(!e_WYSIWYG) { - $chk = ($thread_info['head']['thread_active'] == 99 ? "checked='checked'" : ''); + $ret .= display_help('helpb', 'forum'); + } + return $ret; + } + + function get_buttons() + { + global $action, $eaction; + $ret = "<input class='button' type='submit' name='fpreview' value='".LAN_323."' /> "; + if ($action != 'nt') + { + $ret .= ($eaction ? "<input class='button' type='submit' name='update_reply' value='".LAN_78."' />" : "<input class='button' type='submit' name='reply' value='".LAN_74."' />"); } else { - $chk = ($pref['email_notify_on'] ? "checked='checked'" : ''); + $ret .= ($eaction ? "<input class='button' type='submit' name='update_thread' value='".LAN_77."' />" : "<input class='button' type='submit' name='newthread' value='".LAN_64."' />"); + } + return $ret; + } + + function get_fileattach() + { + global $pref, $fileattach, $fileattach_alert; + + if ($pref['forum_attach'] && strpos(e_QUERY, 'edit') === FALSE && (check_class($pref['upload_class']) || getperms('0'))) + { + if (is_writable(e_FILE.'public')) + { + return $fileattach; + } + else + { + $FILEATTACH = ''; + if(ADMIN) + { + if(!$fileattach_alert) + { + $fileattach_alert = "<tr><td colspan='2' class='nforumcaption2'>".($pref['image_post'] ? LAN_390 : LAN_416)."</td></tr><tr><td colspan='2' class='forumheader3'>".LAN_FORUM_1."</td></tr>\n"; + } + return $fileattach_alert; + } + } } } - return "<br /><input type='checkbox' name='email_notify' value='1' {$chk} /> <span class='defaulttext'>".LAN_380."</span>"; -} -return ''; -SC_END + + function get_postthreadas() + { + global $action, $thread_info; + if (MODERATOR && $action == "nt") + { + $thread_sticky = (isset($_POST['threadtype']) ? $_POST['threadtype'] : $thread_info['head']['thread_sticky']); + return "<br /><span class='defaulttext'>".LAN_400."<input name='threadtype' type='radio' value='0' ".(!$thread_sticky ? "checked='checked' " : "")." />".LAN_1." <input name='threadtype' type='radio' value='1' ".($thread_sticky == 1 ? "checked='checked' " : "")." />".LAN_2." <input name='threadtype' type='radio' value='2' ".($thread_sticky == 2 ? "checked='checked' " : "")." />".LAN_3."</span>"; + } + return ''; + } + + function get_backlink() + { + global $forum, $thread_info,$eaction, $action,$BREADCRUMB; + $forum->set_crumb(TRUE,($action == "nt" ? ($eaction ? LAN_77 : LAN_60) : ($eaction ? LAN_78 : LAN_406." ".$thread_info['head']['thread_name']))); + return $BREADCRUMB; + } + + function get_noemotes() + { + if($eaction == true) { return ; } + return "<input type='checkbox' name='no_emote' value='1' /> <span class='defaulttext'>".LAN_FORUMPOST_EMOTES.'</span>'; + } + + function get_emailnotify() + { + global $pref, $thread_info, $action, $eaction; + if($eaction == true) { return ; } + if ($pref['email_notify'] && $action == 'nt' && USER) + { + if(isset($_POST['fpreview'])) + { + $chk = ($_POST['email_notify'] ? "checked = 'checked'" : ''); + } + else + { + if(isset($thread_info)) + { + $chk = ($thread_info['head']['thread_active'] == 99 ? "checked='checked'" : ''); + } + else + { + $chk = ($pref['email_notify_on'] ? "checked='checked'" : ''); + } + } + return "<br /><input type='checkbox' name='email_notify' value='1' {$chk} /> <span class='defaulttext'>".LAN_380."</span>"; + } + return ''; + } + + function get_poll() + { + global $poll_form, $action, $pref; + if ($action == 'nt' && check_class($pref['forum_poll']) && strpos(e_QUERY, 'edit') === false) + { + return $poll_form; + } + return ''; + } -SC_BEGIN POLL -global $poll_form, $action, $pref; -if ($action == 'nt' && check_class($pref['forum_poll']) && strpos(e_QUERY, 'edit') === false) -{ - return $poll_form; -} -return ''; -SC_END - -*/ +} ?> \ No newline at end of file