1
0
mirror of https://github.com/e107inc/e107.git synced 2025-01-17 12:48:24 +01:00

Latest coding changes

This commit is contained in:
mcfly 2008-12-04 21:36:09 +00:00
parent 62368a9551
commit b3ca240eab
10 changed files with 443 additions and 374 deletions

View File

@ -11,9 +11,9 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_admin/plugin.php,v $
| $Revision: 1.20 $
| $Date: 2008-12-03 22:29:46 $
| $Author: e107steved $
| $Revision: 1.21 $
| $Date: 2008-12-04 21:36:08 $
| $Author: mcfly_e107 $
+----------------------------------------------------------------------------+
*/
@ -156,13 +156,13 @@ if ($action == 'uninstall')
else
{
include(e_PLUGIN.$plug['plugin_path'].'/plugin.php');
$func = $eplug_folder.'_uninstall';
if (function_exists($func))
{
$text .= call_user_func($func);
}
if($_POST['delete_tables'])
{
if (is_array($eplug_table_names))
@ -182,19 +182,19 @@ if ($action == 'uninstall')
{
$text .= EPL_ADLAN_49."<br />";
}
if (is_array($eplug_prefs))
{
$plugin->manage_prefs('remove', $eplug_prefs);
$text .= EPL_ADLAN_29."<br />";
}
if (is_array($eplug_comment_ids))
{
$text .= ($plugin->manage_comments('remove', $eplug_comment_ids)) ? EPL_ADLAN_50."<br />" : "";
}
/* Not used in 0.8
/* Not used in 0.8
if ($eplug_module)
{
$plugin->manage_plugin_prefs('remove', 'modules', $eplug_folder);
@ -203,7 +203,7 @@ if ($action == 'uninstall')
{
$plugin->manage_plugin_prefs('remove', 'plug_status', $eplug_folder);
}
if ($eplug_latest)
{
$plugin->manage_plugin_prefs('remove', 'plug_latest', $eplug_folder);
@ -217,27 +217,27 @@ if ($action == 'uninstall')
}
}
/* Not used in 0.8
/* Not used in 0.8
if (is_array($eplug_sc))
{
$plugin->manage_plugin_prefs('remove', 'plug_sc', $eplug_folder, $eplug_sc);
}
if (is_array($eplug_bb))
{
$plugin->manage_plugin_prefs('remove', 'plug_bb', $eplug_folder, $eplug_bb);
}
*/
*/
if ($eplug_menu_name)
{
$sql->db_Delete('menus', "menu_name='$eplug_menu_name' ");
}
if ($eplug_link)
{
$plugin->manage_link('remove', $eplug_link_url, $eplug_link_name);
}
if ($eplug_userclass)
{
$plugin->manage_userclass('remove', $eplug_userclass);
@ -245,7 +245,7 @@ if ($action == 'uninstall')
$sql->db_Update('plugin', "plugin_installflag=0, plugin_version='{$eplug_version}' WHERE plugin_id='{$id}' ");
$plugin->manage_search('remove', $eplug_folder);
$plugin->manage_notify('remove', $eplug_folder);
}
@ -268,7 +268,7 @@ if ($action == 'uninstall')
{
$text .= '<br />'.EPL_ADLAN_31.' <b>'.e_PLUGIN.$eplug_folder.'</b> '.EPL_ADLAN_32;
}
$plugin->save_addon_prefs();
$ns->tablerender(EPL_ADLAN_1.' '.$tp->toHtml($plug['plugin_name'], "", "defs,emotes_off,no_make_clickable"), $text);
$text = '';
@ -292,7 +292,7 @@ if ($action == 'install')
if ($action == 'upgrade')
{
$plug = $plugin->getinfo($id);
$_path = e_PLUGIN.$plug['plugin_path'].'/';
if(file_exists($_path.'plugin.xml'))
{
@ -301,13 +301,13 @@ if ($action == 'upgrade')
else
{
include(e_PLUGIN.$plug['plugin_path'].'/plugin.php');
$func = $eplug_folder.'_upgrade';
if (function_exists($func))
{
$text .= call_user_func($func);
}
if (is_array($upgrade_alter_tables))
{
$result = $plugin->manage_tables('upgrade', $upgrade_alter_tables);
@ -320,8 +320,8 @@ if ($action == 'upgrade')
$text .= EPL_ADLAN_7."<br />";
}
}
/* Not used in 0.8
/* Not used in 0.8
if ($eplug_module)
{
$plugin->manage_plugin_prefs('add', 'modules', $eplug_folder);
@ -330,7 +330,7 @@ if ($action == 'upgrade')
{
$plugin->manage_plugin_prefs('remove', 'modules', $eplug_folder);
}
if ($eplug_status)
{
$plugin->manage_plugin_prefs('add', 'plug_status', $eplug_folder);
@ -339,7 +339,7 @@ if ($action == 'upgrade')
{
$plugin->manage_plugin_prefs('remove', 'plug_status', $eplug_folder);
}
if ($eplug_latest)
{
$plugin->manage_plugin_prefs('add', 'plug_latest', $eplug_folder);
@ -348,38 +348,38 @@ if ($action == 'upgrade')
{
$plugin->manage_plugin_prefs('remove', 'plug_latest', $eplug_folder);
}
if (is_array($upgrade_add_eplug_sc))
{
$plugin->manage_plugin_prefs('add', 'plug_sc', $eplug_folder, $eplug_sc);
}
if (is_array($upgrade_remove_eplug_sc))
{
$plugin->manage_plugin_prefs('remove', 'plug_sc', $eplug_folder, $eplug_sc);
}
if (is_array($upgrade_add_eplug_bb))
{
$plugin->manage_plugin_prefs('add', 'plug_bb', $eplug_folder, $eplug_bb);
}
if (is_array($upgrade_remove_eplug_bb))
{
$plugin->manage_plugin_prefs('remove', 'plug_bb', $eplug_folder, $eplug_bb);
}
*/
*/
if (is_array($upgrade_add_prefs))
{
$plugin->manage_prefs('add', $upgrade_add_prefs);
$text .= EPL_ADLAN_8.'<br />';
}
if (is_array($upgrade_remove_prefs))
{
$plugin->manage_prefs('remove', $upgrade_remove_prefs);
}
if (is_array($upgrade_add_array_pref))
{
foreach($upgrade_add_array_pref as $key => $val)
@ -387,7 +387,7 @@ if ($action == 'upgrade')
$plugin->manage_plugin_prefs('add', $key, $eplug_folder, $val);
}
}
if (is_array($upgrade_remove_array_pref))
{
foreach($upgrade_remove_array_pref as $key => $val)
@ -395,12 +395,12 @@ if ($action == 'upgrade')
$plugin->manage_plugin_prefs('remove', $key, $eplug_folder, $val);
}
}
$plugin->manage_search('upgrade', $eplug_folder);
$plugin->manage_notify('upgrade', $eplug_folder);
$eplug_addons = $plugin -> getAddons($eplug_folder);
$text .= (isset($eplug_upgrade_done)) ? '<br />'.$eplug_upgrade_done : "<br />".LAN_UPGRADE_SUCCESSFUL;
$sql->db_Update('plugin', "plugin_version ='{$eplug_version}', plugin_addons='{$eplug_addons}' WHERE plugin_id='$id' ");
$pref['plug_installed'][$plug['plugin_path']] = $eplug_version; // Update the version

View File

@ -1,5 +1,5 @@
<?php
// $Id: thread.php,v 1.2 2008-12-02 21:34:18 mcfly_e107 Exp $
// $Id: thread.php,v 1.3 2008-12-04 21:36:09 mcfly_e107 Exp $
function url_forum_thread($parms)
{
switch($parms['func'])
@ -17,6 +17,10 @@ function url_forum_thread($parms)
return e_PLUGIN_ABS."forum/forum_viewtopic.php?id={$parms['id']}";
break;
case 'last':
return e_PLUGIN_ABS."forum/forum_viewtopic.php?id={$parms['id']}&last=1";
break;
case 'post':
return e_PLUGIN_ABS."forum/forum_viewtopic.php?f=post&id={$parms['id']}";
break;

View File

@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/forum/forum.php,v $
| $Revision: 1.6 $
| $Date: 2008-12-01 01:10:50 $
| $Revision: 1.7 $
| $Date: 2008-12-04 21:36:09 $
| $Author: mcfly_e107 $
+----------------------------------------------------------------------------+
*/
@ -288,6 +288,7 @@ function parse_parent($parent)
function parse_forum($f, $restricted_string = "")
{
global $FORUM_MAIN_FORUM, $gen, $forum, $tp, $newflag_list, $sub_list;
$e107 = e107::getInstance();
if(USER && is_array($newflag_list) && in_array($f['forum_id'], $newflag_list))
{
@ -345,7 +346,9 @@ function parse_forum($f, $restricted_string = "")
}
}
$lastpost_datestamp = $gen->convert_date($lastpost_datestamp, 'forum');
$LASTPOST = $lastpost_datestamp.'<br />'.$lastpost_name." <a href='".e_PLUGIN."forum/forum_viewtopic.php?{$lastpost_thread}.last'>".IMAGE_post2.'</a>';
// $e107->url->getUrl('forum', 'thread', array('func' => 'last', 'id' => $lastpost_thread));
$LASTPOST = $lastpost_datestamp.'<br />'.$lastpost_name." <a href='".$e107->url->getUrl('forum', 'thread', array('func' => 'last', 'id' => $lastpost_thread))."'>".IMAGE_post2.'</a>';
}
else
{

View File

@ -9,8 +9,8 @@
* Forum admin functions
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/forum/forum_admin_class.php,v $
* $Revision: 1.4 $
* $Date: 2008-11-29 01:24:27 $
* $Revision: 1.5 $
* $Date: 2008-12-04 21:36:09 $
* $Author: mcfly_e107 $
*
*/
@ -290,7 +290,7 @@ class forumAdmin
$text .= "
<tr>
<td colspan='2' class='forumheader'>".$parent['forum_name']."
<br /><b>".FORLAN_140.":</b> ".$e107->e_userclass->uc_get_classname($parent['forum_class'])."&nbsp;&nbsp;<b>".FORLAN_141.":</b> ".$e107->e_userclass->uc_get_classname($parent['forum_postclass'])."
<br /><b>".FORLAN_140.":</b> ".$e107->user_class->uc_get_classname($parent['forum_class'])."&nbsp;&nbsp;<b>".FORLAN_141.":</b> ".$e107->user_class->uc_get_classname($parent['forum_postclass'])."
</td>";
$text .= "<td class='forumheader' style='text-align:center'>";
@ -336,7 +336,7 @@ class forumAdmin
$text .= "
<br /><span class='smallblacktext'>".$e107->tp->toHTML($forum['forum_description'])."&nbsp;</span>
<br /><b>".FORLAN_140.":</b> ".$e107->e_userclass->uc_get_classname($forum['forum_class'])."&nbsp;&nbsp;<b>".FORLAN_141.":</b> ".$e107->e_userclass->uc_get_classname($forum['forum_postclass'])."
<br /><b>".FORLAN_140.":</b> ".$e107->user_class->uc_get_classname($forum['forum_class'])."&nbsp;&nbsp;<b>".FORLAN_141.":</b> ".$e107->user_class->uc_get_classname($forum['forum_postclass'])."
</td>
@ -503,18 +503,18 @@ class forumAdmin
<tr>
<td style='width:40%' class='forumheader3'>".FORLAN_33.":<br /><span class='smalltext'>(".FORLAN_34.")</span></td>
<td style='width:60%' class='forumheader3'>";
$text .= $e107->e_userclass->uc_dropdown('forum_moderators', $fInfo['forum_moderators'], 'admin,classes');
$text .= $e107->user_class->uc_dropdown('forum_moderators', $fInfo['forum_moderators'], 'admin,classes');
$text .= "</td>
</tr>
<tr>
<td style='width:40%' class='forumheader3'>".FORLAN_23.":<br /><span class='smalltext'>(".FORLAN_24.")</span></td>
<td style='width:60%' class='forumheader3'>".$e107->e_userclass->uc_dropdown('forum_moderators', $fInfo['forum_class'], 'nobody,public,member,admin,classes')."</td>
<td style='width:60%' class='forumheader3'>".$e107->user_class->uc_dropdown('forum_class', $fInfo['forum_class'], 'nobody,public,member,admin,classes')."</td>
</tr>
<tr>
<td style='width:40%' class='forumheader3'>".FORLAN_142.":<br /><span class='smalltext'>(".FORLAN_143.")</span></td>
<td style='width:60%' class='forumheader3'>".$e107->e_userclass->uc_dropdown('forum_postclass', $fInfo['forum_postclass'], 'nobody,public,member,admin,classes')."</td>
<td style='width:60%' class='forumheader3'>".$e107->user_class->uc_dropdown('forum_postclass', $fInfo['forum_postclass'], 'nobody,public,member,admin,classes')."</td>
</tr>
<tr style='vertical-align:top'>

View File

@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/forum/forum_class.php,v $
| $Revision: 1.15 $
| $Date: 2008-12-02 21:34:18 $
| $Revision: 1.16 $
| $Date: 2008-12-04 21:36:09 $
| $Author: mcfly_e107 $
+----------------------------------------------------------------------------+
*/
@ -140,9 +140,9 @@ class e107forum
else
{
$threadInfo['thread_lastuser'] = 0;
$threadInfo['thread_lastuser_anon'] = $postInfo['post_anon_name'];
$threadInfo['thread_lastuser_anon'] = $postInfo['post_user_anon'];
$forumInfo['forum_lastpost_user'] = 0;
$forumInfo['forum_lastpost_user_anon'] = $postInfo['post_anon_name'];
$forumInfo['forum_lastpost_user_anon'] = $postInfo['post_user_anon'];
}
$threadInfo['thread_lastpost'] = $postInfo['post_datestamp'];
$threadInfo['thread_total_replies'] = 'thread_total_replies + 1';
@ -150,6 +150,8 @@ class e107forum
$threadInfo['_FIELD_TYPES'] = $this->fieldTypes['forum_thread'];
$threadInfo['_FIELD_TYPES']['thread_total_replies'] = 'cmd';
// print_a($threadInfo);
// exit;
$result = $e107->sql->db_Update('forum_thread', $threadInfo, true);
}
@ -164,7 +166,7 @@ class e107forum
else
{
$forumInfo['forum_lastpost_user'] = 0;
$forumInfo['forum_lastpost_user_anon'] = $postInfo['post_anon_name'];
$forumInfo['forum_lastpost_user_anon'] = $postInfo['post_user_anon'];
}
//If we update the thread, then we assume it was a reply, otherwise we've added a reply only.
@ -420,19 +422,18 @@ class e107forum
function forum_getmods($uclass = e_UC_ADMIN)
{
global $sql;
$e107 = e107::getInstance();
if($uclass == e_UC_ADMIN || trim($uclass) == '')
{
$sql->db_Select('user', 'user_id, user_name','user_admin = 1');
$e107->sql->db_Select('user', 'user_id, user_name','user_admin = 1 ORDER BY user_name ASC');
while($row = $e107->sql->db_Fetch(MYSQL_ASSOC))
{
$ret[$row['user_id']] = $row['user_name'];
}
}
else
{
$regex = "(^|,)(".str_replace(",", "|", $uclass).")(,|$)";
$sql->db_Select("user", "user_id, user_name", "user_class REGEXP '{$regex}'");
}
while($row = $sql->db_Fetch(MYSQL_ASSOC))
{
$ret[$row['user_id']] = $row['user_name'];
$ret = $e107->user_class->get_users_in_class($uclass, 'user_name', true);
}
return $ret;
}
@ -553,6 +554,10 @@ class e107forum
function track($which, $uid, $threadId)
{
$e107 = e107::getInstance();
global $pref;
if (!varsettrue($pref['forum_track'])) { return false; }
$threadId = (int)$threadId;
$uid = (int)$uid;
$result = false;
@ -695,49 +700,41 @@ class e107forum
// return $e107->sql->db_Count('forum_thread', '(*)', 'WHERE thread_forum_id='.(int)$forum_id);
// }
function thread_getnext($thread_id, $forum_id, $from = 0, $limit = 100)
function threadGetNextPrev($which, $threadId, $forumId, $lastpost)
{
global $sql;
$forum_id = intval($forum_id);
global $sql;
$ftab = MPREFIX.'forum_t';
while (!$found)
{
$qry = "
SELECT t.thread_id from #forum_t AS t
WHERE t.thread_forum_id = $forum_id
AND t.thread_parent = 0
ORDER BY
t.thread_s DESC,
t.thread_lastpost DESC,
t.thread_datestamp DESC
LIMIT ".intval($from).",".intval($limit);
if ($sql->db_Select_gen($qry))
{
$i = 0;
while ($row = $sql->db_Fetch(MYSQL_ASSOC))
{
$threadList[$i++] = $row['thread_id'];
}
// echo "threadid = $threadId <br />forum id = $forumId <br />";
// return;
$e107 = e107::getInstance();
$threadId = (int)$threadId;
$forumId = (int)$forumId;
$lastpost = (int)$lastpost;
if (($id = array_search($thread_id, $threadList)) !== FALSE)
{
if ($id != 99)
{
return $threadList[$id+1];
}
else
{
return $this->thread_getnext($thread_id, $forum_id, $from+99, 2);
}
}
}
else
{
return FALSE;
}
$from += 100;
if($which == 'next')
{
$dir = '<';
$sort = 'ASC';
}
else
{
$dir = '>';
$sort = 'DESC';
}
$qry = "
SELECT thread_id from `#forum_thread`
WHERE thread_forum_id = $forumId
AND thread_lastpost {$dir} $lastpost
ORDER BY
thread_s DESC,
thread_lastpost {$sort}
LIMIT 1";
if ($e107->sql->db_Select_gen($qry))
{
$row = $e107->sql->db_Fetch();
return $row['thread_id'];
}
return false;
}
function thread_getprev($thread_id, $forum_id, $from = 0, $limit = 100)

View File

@ -60,7 +60,7 @@ SC_END
SC_BEGIN ANON_IP
global $postInfo;
$e107 = e107::getInstance();
if(ADMIN || MODERATOR)
if($postInfo['post_user_anon'] && (ADMIN || MODERATOR))
{
return $e107->ipDecode($postInfo['post_ip']);
}
@ -84,7 +84,7 @@ if($postInfo['user_name'])
}
else
{
return '<b>'.$e107->tp->toHTML($postInfo['post_anon_name']).'</b>';
return '<b>'.$e107->tp->toHTML($postInfo['post_user_anon']).'</b>';
}
SC_END

View File

@ -9,6 +9,7 @@ CREATE TABLE forum (
`forum_threads` int(10) unsigned NOT NULL default '0',
`forum_replies` int(10) unsigned NOT NULL default '0',
`forum_lastpost_user` int(10) unsigned default NULL,
`forum_lastpost_user_anon` varchar(30) default NULL,
`forum_lastpost_info` varchar(40) default NULL,
`forum_class` tinyint(3) unsigned NOT NULL default '0',
`forum_order` int(10) unsigned NOT NULL default '0',
@ -51,7 +52,7 @@ CREATE TABLE forum_post (
`post_edit_datestamp` int(10) unsigned NOT NULL default '0',
`post_edit_user` int(10) unsigned NOT NULL,
`post_ip` varchar(45) NOT NULL,
`post_anon_name` varchar(30) NULL,
`post_user_anon` varchar(30) NULL,
`post_attachments` text default NULL,
`post_options` text,
PRIMARY KEY (`post_id`),

View File

@ -1,4 +1,5 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
@ -11,18 +12,18 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/forum/forum_viewtopic.php,v $
| $Revision: 1.5 $
| $Date: 2008-12-02 21:34:18 $
| $Revision: 1.6 $
| $Date: 2008-12-04 21:36:09 $
| $Author: mcfly_e107 $
+----------------------------------------------------------------------------+
*/
require_once('../../class2.php');
require_once ('../../class2.php');
if (isset($_POST['fjsubmit']))
{
header('location:'.$e107->url->getUrl('forum', 'forum', array('func' => 'view', 'id'=>$_POST['forumjump'])));
header('location:' . $e107->url->getUrl('forum', 'forum', array('func' => 'view', 'id' => $_POST['forumjump'])));
exit;
}
$highlight_search = isset($_POST['highlight_search']);
@ -30,45 +31,32 @@ $highlight_search = isset($_POST['highlight_search']);
if (!e_QUERY)
{
//No paramters given, redirect to forum home
header('Location:'.$e107->url->getUrl('forum', 'forum', array('func' => 'main')));
header('Location:' . $e107->url->getUrl('forum', 'forum', array('func' => 'main')));
exit;
}
include_lan(e_PLUGIN.'forum/languages/English/lan_forum_viewtopic.php');
include_once(e_PLUGIN.'forum/forum_class.php');
include_lan(e_PLUGIN . 'forum/languages/English/lan_forum_viewtopic.php');
include_once (e_PLUGIN . 'forum/forum_class.php');
$forum = new e107forum;
$thread = new e107ForumThread;
if(isset($_REQUEST['f']))
$thread->init();
if(isset($_GET['f']))
{
processFunction();
$thread->processFunction();
$thread->init();
}
$threadId = (int)varset($_GET['id']);
$perPage = (varset($_REQUEST['perpage']) ? (int)$_REQUEST['perpage'] : $pref['forum_postspage']);
$page = (varset($_REQUEST['p']) ? (int)$_REQUEST['p'] : 0);
//If threadId doesn't exist, or not given, redirect to main forum page
if (!$threadId || !$threadInfo = $forum->threadGet($threadId))
{
header('Location:'.$e107->url->getUrl('forum', 'forum', array('func' => 'main')));
exit;
}
//If not permitted to view forum, redirect to main forum page
if(!$forum->checkPerm($threadInfo['thread_forum_id'], 'view'))
{
header('Location:'.$e107->url->getUrl('forum', 'forum', array('func' => 'main')));
exit;
}
require_once(e_PLUGIN.'forum/forum_shortcodes.php');
require_once (e_PLUGIN . 'forum/forum_shortcodes.php');
$pm_installed = plugInstalled('pm');
//Only increment thread views if not being viewed by thread starter
if(!USER || USER != $threadInfo['thread_user'])
if (USER || USER != $threadInfo['thread_user'] || !$thread->noInc)
{
$forum->threadIncview($threadId);
}
@ -89,54 +77,56 @@ if(!USER || USER != $threadInfo['thread_user'])
// exit;
//}
define('e_PAGETITLE', LAN_01.' / '.$e107->tp->toHTML($threadInfo['forum_name'], true, 'no_hook, emotes_off')." / ".$tp->toHTML($threadInfo['thread_name'], true, 'no_hook, emotes_off'));
//define("MODERATOR", (preg_match("/".preg_quote(ADMINNAME)."/", $forum_info['forum_moderators']) && getperms('A') ? TRUE : FALSE));
define('MODERATOR', ($forum_info['forum_moderators'] != '' && check_class($forum_info['forum_moderators'])));
$modArray = $forum->forum_getmods($threadInfo['forum_moderators']);
//var_dump($modArray);
define('e_PAGETITLE', LAN_01 . ' / ' . $e107->tp->toHTML($thread->threadInfo['forum_name'], true, 'no_hook, emotes_off') . " / " . $tp->toHTML($thread->threadInfo['thread_name'], true, 'no_hook, emotes_off'));
$modArray = $forum->forum_getmods($thread->threadInfo['forum_moderators']);
define('MODERATOR', (USER && is_array($modArray) && in_array(USERID, array_keys($modArray))));
$message = '';
if (MODERATOR && isset($_POST['mod']))
{
require_once(e_PLUGIN.'forum/forum_mod.php');
$message = forum_thread_moderate($_POST);
$threadInfo = $forum->threadGet($threadId);
require_once (e_PLUGIN . 'forum/forum_mod.php');
$thread->message = forum_thread_moderate($_POST);
$thread->threadInfo = $forum->threadGet($thread->threadId);
}
$postList = $forum->PostGet($threadId, $page * $perPage, $perPage);
$postList = $forum->PostGet($thread->threadId, $thread->threadpage * $thread->perPage, $thread->perPage);
var_dump($threadInfo);
require_once(HEADERF);
require_once(e_HANDLER.'level_handler.php');
//var_dump($thread->threadInfo);
require_once (HEADERF);
require_once (e_HANDLER . 'level_handler.php');
$gen = new convert;
if ($message)
if ($thread->message)
{
$ns->tablerender('', $message, array('forum_viewtopic', 'msg'));
$ns->tablerender('', $thread->message, array('forum_viewtopic', 'msg'));
}
if(isset($threadInfo['thread_options']['poll']))
if (isset($thread->threadInfo['thread_options']['poll']))
{
if(!defined('POLLCLASS')) { include(e_PLUGIN.'poll/poll_class.php'); }
$_qry = 'SELECT * FROM `#polls` WHERE `poll_datestamp` = '.$threadId;
if (!defined('POLLCLASS'))
{
include (e_PLUGIN . 'poll/poll_class.php');
}
$_qry = 'SELECT * FROM `#polls` WHERE `poll_datestamp` = ' . $thread->threadId;
$poll = new poll;
$pollstr = "<div class='spacer'>".$poll->render_poll($_qry, 'forum', 'query', true).'</div>';
$pollstr = "<div class='spacer'>" . $poll->render_poll($_qry, 'forum', 'query', true) . '</div>';
}
//Load forum templates
if (file_exists(THEME.'forum_design.php')) { include_once(THEME.'forum_design.php'); }
if (file_exists(THEME . 'forum_design.php'))
{
include_once (THEME . 'forum_design.php');
}
if (!$FORUMSTART)
{
if (file_exists(THEME.'forum_viewtopic_template.php'))
if (file_exists(THEME . 'forum_viewtopic_template.php'))
{
require_once(THEME.'forum_viewtopic_template.php');
}
elseif (file_exists(THEME.'forum_template.php'))
require_once (THEME . 'forum_viewtopic_template.php');
} elseif (file_exists(THEME . 'forum_template.php'))
{
require_once(THEME.'forum_template.php');
require_once (THEME . 'forum_template.php');
}
else
{
require_once(e_PLUGIN.'forum/templates/forum_viewtopic_template.php');
require_once (e_PLUGIN . 'forum/templates/forum_viewtopic_template.php');
}
}
@ -144,45 +134,44 @@ if (!$FORUMSTART)
// get info for main thread -------------------------------------------------------------------------------------------------------------------------------------------------------------------
//$e107->url->getUrl('forum', 'thread', array('func' => 'next', 'id' => $threadId))
$forum->set_crumb(true); // Set $BREADCRUMB (and BACKLINK)
$THREADNAME = $e107->tp->toHTML($threadInfo['thread_name'], true, 'no_hook, emotes_off');
$NEXTPREV = "&lt;&lt; <a href='".$e107->url->getUrl('forum', 'thread', array('func' => 'prev', 'id' => $threadId))."'>".LAN_389."</a>";
$THREADNAME = $e107->tp->toHTML($thread->threadInfo['thread_name'], true, 'no_hook, emotes_off');
$NEXTPREV = "&lt;&lt; <a href='" . $e107->url->getUrl('forum', 'thread', array('func' => 'prev', 'id' => $thread->threadId)) . "'>" . LAN_389 . "</a>";
$NEXTPREV .= ' | ';
$NEXTPREV .= "<a href='".$e107->url->getUrl('forum', 'thread', array('func' => 'next', 'id' => $threadId))."'>".LAN_390."</a> &gt;&gt;";
$NEXTPREV .= "<a href='" . $e107->url->getUrl('forum', 'thread', array('func' => 'next', 'id' => $thread->threadId)) . "'>" . LAN_390 . "</a> &gt;&gt;";
if ($pref['forum_track'] && USER)
{
if($threadInfo['track_userid'])
if ($thread->threadInfo['track_userid'])
{
$TRACK = "<span class='smalltext'><a href='".$e107->url->getUrl('forum', 'thread', array('func' => 'untrack', 'id' => $threadId))."'>".LAN_392."</a></span>";
$TRACK = "<span class='smalltext'><a href='" . $e107->url->getUrl('forum', 'thread', array('func' => 'untrack', 'id' => $thread->threadId)) . "'>" . LAN_392 . "</a></span>";
}
else
{
$TRACK = "<span class='smalltext'><a href='".$e107->url->getUrl('forum', 'thread', array('func' => 'track', 'id' => $threadId))."'>".LAN_391."</a></span>";
$TRACK = "<span class='smalltext'><a href='" . $e107->url->getUrl('forum', 'thread', array('func' => 'track', 'id' => $thread->threadId)) . "'>" . LAN_391 . "</a></span>";
}
}
$MODERATORS = LAN_321.implode(', ', $modArray);
$MODERATORS = LAN_321 . implode(', ', $modArray);
$THREADSTATUS = (!$threadInfo['thread_active'] ? LAN_66 : '');
$THREADSTATUS = (!$thread->threadInfo['thread_active'] ? LAN_66 : '');
$pages = ceil(($threadInfo['thread_total_replies']+1) / $perPage);
//$pages = ceil(($threadInfo['thread_total_replies'] + 1) / $perPage);
if ($pages > 1)
if ($thread->pages > 1)
{
$parms = ($threadInfo['thread_total_replies']+1).",{$perPage},{$topic_from},".e_SELF.'?'.$thread_id.'.[FROM],off';
$parms = ($thread->threadInfo['thread_total_replies'] + 1) . ",{$perPage},{$topic_from}," . e_SELF . '?' . $this->threadId . '.[FROM],off';
$GOTOPAGES = $tp->parseTemplate("{NEXTPREV={$parms}}");
}
$BUTTONS = '';
if($forum->checkPerm($threadInfo['thread_forum_id'], 'post') && $threadInfo['thread_active'])
if ($forum->checkPerm($thread->threadInfo['thread_forum_id'], 'post') && $thread->threadInfo['thread_active'])
{
$BUTTONS .= "<a href='".$e107->url->getUrl('forum', 'thread', array('func' => 'rp', 'id' => $threadId))."'>".IMAGE_reply."</a>";
$BUTTONS .= "<a href='" . $e107->url->getUrl('forum', 'thread', array('func' => 'rp', 'id' => $thread->threadId)) . "'>" . IMAGE_reply . "</a>";
}
if($forum->checkPerm($threadInfo['thread_forum_id'], 'thread'))
if ($forum->checkPerm($thread->threadInfo['thread_forum_id'], 'thread'))
{
$BUTTONS .= "<a href='".$e107->url->getUrl('forum', 'thread', array('func' => 'nt', 'id' => $threadInfo['thread_forum_id']))."'>".IMAGE_newthread."</a>";
$BUTTONS .= "<a href='" . $e107->url->getUrl('forum', 'thread', array('func' => 'nt', 'id' => $thread->threadInfo['thread_forum_id'])) . "'>" . IMAGE_newthread . "</a>";
}
$POLL = $pollstr;
@ -195,43 +184,51 @@ unset($forrep);
if (!$FORUMREPLYSTYLE) $FORUMREPLYSTYLE = $FORUMTHREADSTYLE;
$alt = false;
$i=$page;
$i = $thread->page;
global $postInfo;
foreach($postList as $postInfo)
foreach ($postList as $postInfo)
{
// print_a($postInfo);
$loop_uid = (int)$postInfo['post_user'];
$i++;
//TODO: Look into fixing this, to limit to a single query per pageload
$e_hide_query = "SELECT post_id FROM `#forum_post` WHERE (`post_thread` = {$threadId} AND post_user= ".USERID.' LIMIT 1';
$e_hide_query = "SELECT post_id FROM `#forum_post` WHERE (`post_thread` = {$threadId} AND post_user= " . USERID . ' LIMIT 1';
$e_hide_hidden = FORLAN_HIDDEN;
$e_hide_allowed = USER;
if($i > 1)
if ($i > 1)
{
$alt = !$alt;
if(isset($FORUMREPLYSTYLE_ALT) && $alt)
if (isset($FORUMREPLYSTYLE_ALT) && $alt)
{
$forrep .= $tp->parseTemplate($FORUMREPLYSTYLE_ALT, true, $forum_shortcodes)."\n";
$forrep .= $e107->tp->parseTemplate($FORUMREPLYSTYLE_ALT, true, $forum_shortcodes) . "\n";
}
else
{
$forrep .= $tp->parseTemplate($FORUMREPLYSTYLE, true, $forum_shortcodes)."\n";
$forrep .= $e107->tp->parseTemplate($FORUMREPLYSTYLE, true, $forum_shortcodes) . "\n";
}
}
else
{
$forthr = $tp->parseTemplate($FORUMTHREADSTYLE, true, $forum_shortcodes)."\n";
$forthr = $e107->tp->parseTemplate($FORUMTHREADSTYLE, true, $forum_shortcodes) . "\n";
}
}
unset($loop_uid);
if($forum->checkPerm($threadInfo['thread_forum_id'], 'post') && $threadInfo['thread_active'])
if ($forum->checkPerm($thread->threadInfo['thread_forum_id'], 'post') && $thread->threadInfo['thread_active'])
{
if (!$forum_quickreply)
{
$QUICKREPLY = "<form action='".$e107->url->getUrl('forum', 'thread', array('func' => 'rp', 'id' => $threadId))."' method='post'>\n<p>\n".LAN_393.":<br /><textarea cols='60' rows='4' class='tbox' name='post' onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'></textarea><br /><input type='submit' name='fpreview' value='".LAN_394."' class='button' /> &nbsp;\n<input type='submit' name='reply' value='".LAN_395."' class='button' />\n<input type='hidden' name='thread_id' value='$thread_parent' />\n</p>\n</form>";
$QUICKREPLY = "
<form action='" . $e107->url->getUrl('forum', 'thread', array('func' => 'rp', 'id' => $thread->threadId)) . "' method='post'>
<p>" . LAN_393 . ":<br />
<textarea cols='60' rows='4' class='tbox' name='post' onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'></textarea>
<br />
<input type='submit' name='fpreview' value='" . LAN_394 . "' class='button' /> &nbsp;
<input type='submit' name='reply' value='" . LAN_395 . "' class='button' />
<input type='hidden' name='thread_id' value='$thread_parent' />
</p>
</form>";
}
else
{
@ -240,13 +237,12 @@ if($forum->checkPerm($threadInfo['thread_forum_id'], 'post') && $threadInfo['thr
}
$forend = preg_replace("/\{(.*?)\}/e", '$\1', $FORUMEND);
$forumstring = $forstr.$forthr.$forrep.$forend;
$forumstring = $forstr . $forthr . $forrep . $forend;
//If last post came after USERLV and not yet marked as read, mark the thread id as read
if ($threadInfo['thread_lastpost'] > USERLV && (strpos($currentUser['user_plugin_forum_viewed'], '.'.$threadId.'.') === false))
if ($thread->threadInfo['thread_lastpost'] > USERLV && (strpos($currentUser['user_plugin_forum_viewed'], '.' . $thread->threadId . '.') === false))
{
$tst = $forum->threadMarkAsRead($threadId);
$tst = $forum->threadMarkAsRead($thread->threadId);
}
if ($pref['forum_enclose'])
@ -264,13 +260,13 @@ else
echo "<script type=\"text/javascript\">
function confirm_(mode, forum_id, thread_id, thread) {
if (mode == 'thread') {
return confirm(\"".$tp->toJS(LAN_409)."\");
return confirm(\"" . $tp->toJS(LAN_409) . "\");
} else {
return confirm(\"".$tp->toJS(LAN_410)." [ ".$tp->toJS(LAN_411)."\" + thread + \" ]\");
return confirm(\"" . $tp->toJS(LAN_410) . " [ " . $tp->toJS(LAN_411) . "\" + thread + \" ]\");
}
}
</script>";
require_once(FOOTERF);
require_once (FOOTERF);
function showmodoptions()
{
@ -279,25 +275,25 @@ function showmodoptions()
global $forum_info;
global $post_info;
$forum_id = $forum_info['forum_id'];
if ($post_info['thread_parent'] == FALSE)
if ($post_info['thread_parent'] == false)
{
$type = 'thread';
$ret = "<form method='post' action='".e_PLUGIN."forum/forum_viewforum.php?{$forum_id}' id='frmMod_{$forum_id}_{$post_info['thread_id']}'>";
$ret = "<form method='post' action='" . e_PLUGIN . "forum/forum_viewforum.php?{$forum_id}' id='frmMod_{$forum_id}_{$post_info['thread_id']}'>";
}
else
{
$type = 'reply';
$ret = "<form method='post' action='".e_SELF."?".e_QUERY."' id='frmMod_{$forum_id}_{$post_info['thread_id']}'>";
$ret = "<form method='post' action='" . e_SELF . "?" . e_QUERY . "' id='frmMod_{$forum_id}_{$post_info['thread_id']}'>";
}
$ret .= "
<div>
<a href='".e_PLUGIN."forum/forum_post.php?edit.{$post_info['thread_id']}.{$topic_from}'>".IMAGE_admin_edit."</a>
<input type='image' ".IMAGE_admin_delete." name='delete_{$post_info['thread_id']}' value='thread_action' onclick=\"return confirm_('{$type}', {$forum_id}, {$thread_id}, '{$post_info['user_name']}')\" />
<a href='" . e_PLUGIN . "forum/forum_post.php?edit.{$post_info['thread_id']}.{$topic_from}'>" . IMAGE_admin_edit . "</a>
<input type='image' " . IMAGE_admin_delete . " name='delete_{$post_info['thread_id']}' value='thread_action' onclick=\"return confirm_('{$type}', {$forum_id}, {$thread_id}, '{$post_info['user_name']}')\" />
";
if ($type == 'thread')
{
$ret .= "<a href='".e_PLUGIN."forum/forum_conf.php?move.{$thread_id}'>".IMAGE_admin_move2."</a>";
$ret .= "<a href='" . e_PLUGIN . "forum/forum_conf.php?move.{$thread_id}'>" . IMAGE_admin_move2 . "</a>";
}
$ret .= "
</div>
@ -310,19 +306,19 @@ function forumjump()
global $forum;
$jumpList = $forum->forum_get_allowed();
$text = "<form method='post' action='".e_SELF."'><p>".LAN_65.": <select name='forumjump' class='tbox'>";
foreach($jumpList as $key => $val)
$text = "<form method='post' action='" . e_SELF . "'><p>" . LAN_65 . ": <select name='forumjump' class='tbox'>";
foreach ($jumpList as $key => $val)
{
$text .= "\n<option value='".$key."'>".$val."</option>";
$text .= "\n<option value='" . $key . "'>" . $val . "</option>";
}
$text .= "</select> <input class='button' type='submit' name='fjsubmit' value='".LAN_03."' />&nbsp;&nbsp;&nbsp;&nbsp;<a href='".e_SELF."?".e_QUERY."#top' onclick=\"window.scrollTo(0,0);\">".LAN_10."</a></p></form>";
$text .= "</select> <input class='button' type='submit' name='fjsubmit' value='" . LAN_03 . "' />&nbsp;&nbsp;&nbsp;&nbsp;<a href='" . e_SELF . "?" . e_QUERY . "#top' onclick=\"window.scrollTo(0,0);\">" . LAN_10 . "</a></p></form>";
return $text;
}
function rpg($user_join, $user_forums)
{
global $FORUMTHREADSTYLE;
if (strpos($FORUMTHREADSTYLE, '{RPG}') == FALSE)
if (strpos($FORUMTHREADSTYLE, '{RPG}') == false)
{
return '';
}
@ -332,209 +328,265 @@ function rpg($user_join, $user_forums)
$lvl_mp_regen_per_day = 4;
$lvl_avg_ppd = 5;
$lvl_bonus_redux = 5;
$lvl_user_days = max(1, round((time() - $user_join ) / 86400 ));
$lvl_user_days = max(1, round((time() - $user_join) / 86400));
$lvl_ppd = $user_forums / $lvl_user_days;
if ($user_forums < 1) {
if ($user_forums < 1)
{
$lvl_level = 0;
} else {
$lvl_level = floor(pow(log10($user_forums ), 3 ) ) + 1;
}
if ($lvl_level < 1) {
else
{
$lvl_level = floor(pow(log10($user_forums), 3)) + 1;
}
if ($lvl_level < 1)
{
$lvl_hp = "0 / 0";
$lvl_hp_percent = 0;
} else {
$lvl_max_hp = floor((pow($lvl_level, (1/4) ) ) * (pow(10, pow($lvl_level+2, (1/3) ) ) ) / (1.5) );
}
else
{
$lvl_max_hp = floor((pow($lvl_level, (1 / 4))) * (pow(10, pow($lvl_level + 2, (1 / 3)))) / (1.5));
if ($lvl_ppd >= $lvl_avg_ppd) {
$lvl_hp_percent = floor((.5 + (($lvl_ppd - $lvl_avg_ppd) / ($lvl_bonus_redux * 2)) ) * 100);
} else {
$lvl_hp_percent = floor($lvl_ppd / ($lvl_avg_ppd / 50) );
if ($lvl_ppd >= $lvl_avg_ppd)
{
$lvl_hp_percent = floor((.5 + (($lvl_ppd - $lvl_avg_ppd) / ($lvl_bonus_redux * 2))) * 100);
}
if ($lvl_hp_percent > 100) {
$lvl_max_hp += floor(($lvl_hp_percent - 100) * pi() );
else
{
$lvl_hp_percent = floor($lvl_ppd / ($lvl_avg_ppd / 50));
}
if ($lvl_hp_percent > 100)
{
$lvl_max_hp += floor(($lvl_hp_percent - 100) * pi());
$lvl_hp_percent = 100;
} else {
}
else
{
$lvl_hp_percent = max(0, $lvl_hp_percent);
}
$lvl_cur_hp = floor($lvl_max_hp * ($lvl_hp_percent / 100) );
$lvl_cur_hp = floor($lvl_max_hp * ($lvl_hp_percent / 100));
$lvl_cur_hp = max(0, $lvl_cur_hp);
$lvl_cur_hp = min($lvl_max_hp, $lvl_cur_hp);
$lvl_hp = $lvl_cur_hp . '/' . $lvl_max_hp;
}
if ($lvl_level < 1) {
if ($lvl_level < 1)
{
$lvl_mp = '0 / 0';
$lvl_mp_percent = 0;
} else {
$lvl_max_mp = floor((pow($lvl_level, (1/4) ) ) * (pow(10, pow($lvl_level+2, (1/3) ) ) ) / (pi()) );
}
else
{
$lvl_max_mp = floor((pow($lvl_level, (1 / 4))) * (pow(10, pow($lvl_level + 2, (1 / 3)))) / (pi()));
$lvl_mp_cost = $user_forums * $lvl_post_mp_cost;
$lvl_mp_regen = max(1, $lvl_user_days * $lvl_mp_regen_per_day);
$lvl_cur_mp = floor($lvl_max_mp - $lvl_mp_cost + $lvl_mp_regen);
$lvl_cur_mp = max(0, $lvl_cur_mp);
$lvl_cur_mp = min($lvl_max_mp, $lvl_cur_mp);
$lvl_mp = $lvl_cur_mp . '/' . $lvl_max_mp;
$lvl_mp_percent = floor($lvl_cur_mp / $lvl_max_mp * 100 );
$lvl_mp_percent = floor($lvl_cur_mp / $lvl_max_mp * 100);
}
if ($lvl_level < 1) {
if ($lvl_level < 1)
{
$lvl_exp = "0 / 0";
$lvl_exp_percent = 100;
} else {
$lvl_posts_for_next = floor(pow(10, pow($lvl_level, (1/3) ) ) );
if ($lvl_level == 1) {
$lvl_posts_for_this = max(1, floor(pow (10, (($lvl_level - 1) ) ) ) );
} else {
$lvl_posts_for_this = max(1, floor(pow (10, pow(($lvl_level - 1), (1/3) ) ) ) );
}
else
{
$lvl_posts_for_next = floor(pow(10, pow($lvl_level, (1 / 3))));
if ($lvl_level == 1)
{
$lvl_posts_for_this = max(1, floor(pow(10, (($lvl_level - 1)))));
}
else
{
$lvl_posts_for_this = max(1, floor(pow(10, pow(($lvl_level - 1), (1 / 3)))));
}
$lvl_exp = ($user_forums - $lvl_posts_for_this) . "/" . ($lvl_posts_for_next - $lvl_posts_for_this);
$lvl_exp_percent = floor((($user_forums - $lvl_posts_for_this) / max(1, ($lvl_posts_for_next - $lvl_posts_for_this ) ) ) * 100);
$lvl_exp_percent = floor((($user_forums - $lvl_posts_for_this) / max(1, ($lvl_posts_for_next - $lvl_posts_for_this))) * 100);
}
$bar_image = THEME."images/bar.jpg";
if(!is_readable($bar_image))
$bar_image = THEME . "images/bar.jpg";
if (!is_readable($bar_image))
{
$bar_image = e_PLUGIN."forum/images/".IMODE."/bar.jpg";
$bar_image = e_PLUGIN . "forum/images/" . IMODE . "/bar.jpg";
}
$rpg_info .= "<div style='padding:2px; white-space:nowrap'>";
$rpg_info .= "<b>Level = ".$lvl_level."</b><br />";
$rpg_info .= "HP = ".$lvl_hp."<br /><img src='{$bar_image}' alt='' style='border:#345487 1px solid; height:10px; width:".$lvl_hp_percent."%'><br />";
$rpg_info .= "EXP = ".$lvl_exp."<br /><img src='{$bar_image}' alt='' style='border:#345487 1px solid; height:10px; width:".$lvl_exp_percent."%'><br />";
$rpg_info .= "MP = ".$lvl_mp."<br /><img src='{$bar_image}' alt='' style='border:#345487 1px solid; height:10px; width:".$lvl_mp_percent."%'><br />";
$rpg_info .= "<b>Level = " . $lvl_level . "</b><br />";
$rpg_info .= "HP = " . $lvl_hp . "<br /><img src='{$bar_image}' alt='' style='border:#345487 1px solid; height:10px; width:" . $lvl_hp_percent . "%'><br />";
$rpg_info .= "EXP = " . $lvl_exp . "<br /><img src='{$bar_image}' alt='' style='border:#345487 1px solid; height:10px; width:" . $lvl_exp_percent . "%'><br />";
$rpg_info .= "MP = " . $lvl_mp . "<br /><img src='{$bar_image}' alt='' style='border:#345487 1px solid; height:10px; width:" . $lvl_mp_percent . "%'><br />";
$rpg_info .= "</div>";
return $rpg_info;
}
function processFunction()
class e107ForumThread
{
if($topic_from === 'post')
{
if($thread_id)
var $message, $threadId, $threadInfo, $forumId, $perPage, $noInc;
function init()
{
$post_num = $forum->thread_postnum($thread_id);
$pages = ceil(($post_num['post_num']+1)/$pref['forum_postspage']);
$topic_from = ($pages-1) * $pref['forum_postspage'];
if($post_num['parent'] != $thread_id)
global $pref, $forum;
$e107 = e107::getInstance();
$this->threadId = (int)varset($_GET['id']);
$this->perPage = (varset($_GET['perpage']) ? (int)$_GET['perpage'] : $pref['forum_postspage']);
$this->page = (varset($_GET['p']) ? (int)$_GET['p'] : 0);
//If threadId doesn't exist, or not given, redirect to main forum page
if (!$this->threadId || !$this->threadInfo = $forum->threadGet($this->threadId))
{
header("location: ".e_SELF."?{$post_num['parent']}.{$topic_from}#post_{$thread_id}");
header('Location:' . $e107->url->getUrl('forum', 'forum', array('func' => 'main')));
exit;
}
}
else
{
header('Location:'.$e107->url->getUrl('forum', 'forum', array('func' => 'main')));
exit;
}
}
if ($action == 'track' && USER)
{
$forum->track($thread_id);
header("location:".e_SELF."?{$thread_id}.{$topic_from}");
exit;
}
if ($action == 'untrack' && USER)
{
$forum->untrack($thread_id);
header("location:".e_SELF."?{$thread_id}.{$topic_from}");
exit;
}
if ($action == 'next')
{
$next = $forum->thread_getnext($thread_id, $topic_from);
if ($next)
{
header("location:".e_SELF."?{$next}");
exit;
}
else
{
require_once(HEADERF);
$ns->tablerender('', LAN_405, array('forum_viewtopic', '405'));
require_once(FOOTERF);
exit;
}
}
if ($action == 'prev')
{
$prev = $forum->thread_getprev($thread_id, $topic_from);
if ($prev)
{
header("location:".e_SELF."?{$prev}");
exit;
}
else
{
require_once(HEADERF);
$ns->tablerender('', LAN_404, array('forum_viewtopic', '404'));
require_once(FOOTERF);
exit;
}
}
if ($action == 'report')
{
$thread_info = $forum->thread_get_postinfo($thread_id, TRUE);
if (isset($_POST['report_thread']))
{
$report_add = $tp -> toDB($_POST['report_add']);
if ($pref['reported_post_email'])
//If not permitted to view forum, redirect to main forum page
if (!$forum->checkPerm($this->threadInfo['thread_forum_id'], 'view'))
{
require_once(e_HANDLER."mail.php");
$report = LAN_422.SITENAME." : ".(substr(SITEURL, -1) == "/" ? SITEURL : SITEURL."/").$PLUGINS_DIRECTORY."forum/forum_viewtopic.php?".$thread_id.".post\n".LAN_425.USERNAME."\n".$report_add;
$subject = LAN_421." ".SITENAME;
sendemail(SITEADMINEMAIL, $subject, $report);
header('Location:' . $e107->url->getUrl('forum', 'forum', array('func' => 'main')));
exit;
}
$sql->db_Insert('generic', "0, 'reported_post', ".time().", '".USERID."', '{$thread_info['head']['thread_name']}', ".intval($thread_id).", '{$report_add}'");
define("e_PAGETITLE", LAN_01." / ".LAN_428);
require_once(HEADERF);
$text = LAN_424."<br /><br /><a href='forum_viewtopic.php?".$thread_id.".post'>".LAN_429."</a";
$ns->tablerender(LAN_414, $text, array('forum_viewtopic', 'report'));
$this->noInc = false;
}
else
function processFunction()
{
$thread_name = $tp -> toHTML($thread_info['head']['thread_name'], TRUE, 'no_hook, emotes_off');
define("e_PAGETITLE", LAN_01." / ".LAN_426." ".$thread_name);
require_once(HEADERF);
$text = "<form action='".e_PLUGIN."forum/forum_viewtopic.php?".e_QUERY."' method='post'> <table style='width:100%'>
<tr>
<td style='width:50%' >
".LAN_415.": ".$thread_name." <a href='".e_PLUGIN."forum/forum_viewtopic.php?".$thread_id.".post'><span class='smalltext'>".LAN_420." </span>
</a>
</td>
<td style='text-align:center;width:50%'>
</td>
</tr>
<tr>
<td>".LAN_417."<br />".LAN_418."
</td>
<td style='text-align:center;'>
<textarea cols='40' rows='10' class='tbox' name='report_add'></textarea>
</td>
</tr>
<tr>
<td colspan='2' style='text-align:center;'><br />
<input class='button' type='submit' name='report_thread' value='".LAN_419."' />
</td>
</tr>
</table>";
$ns->tablerender(LAN_414, $text, array('forum_viewtopic', 'report2'));
global $forum;
$e107 = e107::getInstance();
if (!isset($_GET['f']))
{
return;
}
$function = trim($_GET['f']);
switch ($function)
{
case 'post':
if ($thread_id)
{
$post_num = $forum->thread_postnum($thread_id);
$pages = ceil(($post_num['post_num'] + 1) / $pref['forum_postspage']);
$topic_from = ($pages - 1) * $pref['forum_postspage'];
if ($post_num['parent'] != $thread_id)
{
header("location: " . e_SELF . "?{$post_num['parent']}.{$topic_from}#post_{$thread_id}");
exit;
}
}
else
{
header('Location:' . $e107->url->getUrl('forum', 'forum', array('func' => 'main')));
exit;
}
break;
case 'track':
if (!USER || !isset($_GET['id']))
{
return;
}
$forum->track('add', USERID, $_GET['id']);
break;
// header("location:".e_SELF."?{$thread_id}.{$topic_from}");
// exit;
case 'untrack':
if (!USER || !isset($_GET['id']))
{
return;
}
$forum->track('del', USERID, $_GET['id']);
break;
case 'last':
// $pref['forum_postspage'] = ($pref['forum_postspage'] ? $pref['forum_postspage'] : 10);
$pages = ceil(($this->threadInfo['thread_total_replies'] + 1) / $this->perPage);
$this->page = ($pages - 1) * $this->perPage;
break;
case 'next':
$next = $forum->threadGetNextPrev('next', $this->threadId, $this->threadInfo['forum_id'], $this->threadInfo['thread_lastpost']);
if ($next)
{
$url = $e107->url->getUrl('forum', 'thread', array('func' => 'view', 'id' => $next));
header("location: {$url}");
exit;
}
else
{
$this->message = LAN_405;
}
break;
case 'prev':
$prev = $forum->threadGetNextPrev('prev', $this->threadId, $this->threadInfo['forum_id'], $this->threadInfo['thread_lastpost']);
if ($prev)
{
$url = $e107->url->getUrl('forum', 'thread', array('func' => 'view', 'id' => $prev));
header("location: {$url}");
exit;
}
else
{
$this->message = LAN_404;
}
break;
case 'report':
$thread_info = $forum->thread_get_postinfo($thread_id, true);
if (isset($_POST['report_thread']))
{
$report_add = $tp->toDB($_POST['report_add']);
if ($pref['reported_post_email'])
{
require_once (e_HANDLER . "mail.php");
$report = LAN_422 . SITENAME . " : " . (substr(SITEURL, -1) == "/" ? SITEURL : SITEURL . "/") . $PLUGINS_DIRECTORY . "forum/forum_viewtopic.php?" . $thread_id . ".post\n" . LAN_425 . USERNAME . "\n" . $report_add;
$subject = LAN_421 . " " . SITENAME;
sendemail(SITEADMINEMAIL, $subject, $report);
}
$sql->db_Insert('generic', "0, 'reported_post', " . time() . ", '" . USERID . "', '{$thread_info['head']['thread_name']}', " . intval($thread_id) . ", '{$report_add}'");
define("e_PAGETITLE", LAN_01 . " / " . LAN_428);
require_once (HEADERF);
$text = LAN_424 . "<br /><br /><a href='forum_viewtopic.php?" . $thread_id . ".post'>" . LAN_429 . "</a";
$ns->tablerender(LAN_414, $text, array('forum_viewtopic', 'report'));
}
else
{
$thread_name = $tp->toHTML($thread_info['head']['thread_name'], true, 'no_hook, emotes_off');
define("e_PAGETITLE", LAN_01 . " / " . LAN_426 . " " . $thread_name);
require_once (HEADERF);
$text = "<form action='" . e_PLUGIN . "forum/forum_viewtopic.php?" . e_QUERY . "' method='post'> <table style='width:100%'>
<tr>
<td style='width:50%' >
" . LAN_415 . ": " . $thread_name . " <a href='" . e_PLUGIN . "forum/forum_viewtopic.php?" . $thread_id . ".post'><span class='smalltext'>" . LAN_420 . " </span>
</a>
</td>
<td style='text-align:center;width:50%'>
</td>
</tr>
<tr>
<td>" . LAN_417 . "<br />" . LAN_418 . "
</td>
<td style='text-align:center;'>
<textarea cols='40' rows='10' class='tbox' name='report_add'></textarea>
</td>
</tr>
<tr>
<td colspan='2' style='text-align:center;'><br />
<input class='button' type='submit' name='report_thread' value='" . LAN_419 . "' />
</td>
</tr>
</table>";
$ns->tablerender(LAN_414, $text, array('forum_viewtopic', 'report2'));
}
require_once (FOOTERF);
exit;
break;
}
}
require_once(FOOTERF);
exit;
}
if ($topic_from === 'last')
{
$pref['forum_postspage'] = ($pref['forum_postspage'] ? $pref['forum_postspage'] : 10);
$pages = ceil(($threadInfo['thread_total_replies']+1)/$pref['forum_postspage']);
$topic_from = ($pages-1) * $pref['forum_postspage'];
}
}
?>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Id: plugin.xml,v 1.13 2008-12-04 12:49:30 mcfly_e107 Exp $ -->
<!-- $Id: plugin.xml,v 1.14 2008-12-04 21:36:09 mcfly_e107 Exp $ -->
<e107Plugin name="Forum" version="2.0" compatibility="0.8" installRequired="true">
<author name="e107dev" url="http://e107.org"/>
<description>This plugin is a fully featured Forum system</description>
@ -17,7 +17,7 @@
<pref name="forum_postfix" value="[more...]" />
<pref name="forum_poll" value="0" />
<pref name="forum_popular" value="10" />
<pref name="forum_track" value="0" />
<pref name="forum_track" value="1" />
<pref name="forum_eprefix" value="[forum]" />
<pref name="forum_enclose" value="1" />
<pref name="forum_title" value="Forums" />

View File

@ -9,8 +9,8 @@
* View specific forums
*
* $Source: /cvs_backup/e107_0.8/e107_plugins/forum/viewforum.php,v $
* $Revision: 1.5 $
* $Date: 2008-12-02 21:34:18 $
* $Revision: 1.6 $
* $Date: 2008-12-04 21:36:09 $
* $Author: mcfly_e107 $
*
*/
@ -68,7 +68,8 @@ if (!$forum->checkPerm($forumId, 'view'))
$forumInfo = $forum->forum_get($forumId);
if (!$FORUM_VIEW_START) {
if (!$FORUM_VIEW_START)
{
if (file_exists(THEME.'forum_viewforum_template.php'))
{
require_once(THEME.'forum_viewforum_template.php');
@ -158,7 +159,7 @@ if(substr($forum_info['sub_parent'], 0, 1) == '*')
$forum->set_crumb(); // set $BREADCRUMB (and $BACKLINK)
$FORUMTITLE = $forum_info['forum_name'];
$FORUMTITLE = $forumInfo['forum_name'];
//$MODERATORS = LAN_404.": ".$forum_info['forum_moderators'];
$MODERATORS = LAN_404.': '.implode(', ', $modArray);
$BROWSERS = '';
@ -324,26 +325,27 @@ function parse_thread($thread_info)
$REPLIES = $thread_info['thread_total_replies'];
print_a($thread_info);
if ($REPLIES)
{
$lastpost_datestamp = $gen->convert_date($thread_info['thread_lastpost'], 'forum');
$tmp = explode(".", $thread_info['thread_lastuser'], 2);
// $tmp = explode(".", $thread_info['thread_lastuser'], 2);
if($thread_info['lastpost_username'])
{
$LASTPOST = "<a href='".e_BASE."user.php?id.".$tmp[0]."'>".$thread_info['lastpost_username']."</a>";
}
else
{
if($tmp[1])
if(!$thread_info['thread_lastuser'])
{
$LASTPOST = $tp->toHTML($tmp[1]);
$LASTPOST = $tp->toHTML($thread_info['thread_lastuser_anon']);
}
else
{
$LASTPOST = FORLAN_19;
}
}
$LASTPOST .= "<br />".$lastpost_datestamp;
$LASTPOST .= '<br />'.$lastpost_datestamp;
}
$newflag = FALSE;
@ -379,19 +381,24 @@ function parse_thread($thread_info)
}
$thread_name = strip_tags($tp->toHTML($thread_info['thread_name'], false, 'no_hook, emotes_off'));
if (strtoupper($THREADTYPE) == strtoupper(substr($thread_name, 0, strlen($THREADTYPE)))) {
if (strtoupper($THREADTYPE) == strtoupper(substr($thread_name, 0, strlen($THREADTYPE))))
{
$thread_name = substr($thread_name, strlen($THREADTYPE));
}
if ($pref['forum_tooltip']) {
if ($pref['forum_tooltip'])
{
$thread_thread = strip_tags($tp->toHTML($thread_info['thread_thread'], true, 'no_hook'));
$tip_length = ($pref['forum_tiplength'] ? $pref['forum_tiplength'] : 400);
if (strlen($thread_thread) > $tip_length) {
if (strlen($thread_thread) > $tip_length)
{
$thread_thread = substr($thread_thread, 0, $tip_length)." ".$menu_pref['newforumposts_postfix'];
}
$thread_thread = str_replace("'", "&#39;", $thread_thread);
$title = "title='".$thread_thread."'";
} else {
$title = "";
}
else
{
$title = '';
}
$THREADNAME = "<a {$title} href='".e_PLUGIN."forum/forum_viewtopic.php?id={$thread_info['thread_id']}'>{$thread_name}</a>";
@ -489,6 +496,7 @@ function parse_thread($thread_info)
function parse_sub($subInfo)
{
global $FORUM_VIEW_SUB, $gen, $tp, $newflag_list;
$e107 = e107::getInstance();
$SUB_FORUMTITLE = "<a href='".e_PLUGIN."forum/forum_viewforum.php?{$subInfo['forum_id']}'>{$subInfo['forum_name']}</a>";
$SUB_DESCRIPTION = $tp->toHTML($subInfo['forum_description'], false, 'no_hook');
$SUB_THREADS = $subInfo['forum_threads'];
@ -504,10 +512,14 @@ function parse_sub($subInfo)
if($subInfo['forum_lastpost_info'])
{
$tmp = explode(".", $subInfo['forum_lastpost_info']);
$lp_thread = "<a href='".e_PLUGIN."forum/forum_viewtopic.php?{$tmp[1]}.last'>".IMAGE_post2."</a>";
$tmp = explode('.', $subInfo['forum_lastpost_info']);
// $e107->url->getUrl('forum', 'thread', array('func' => 'last', 'id' => $tmp[1]));
$lp_thread = "<a href='".$e107->url->getUrl('forum', 'thread', array('func' => 'last', 'id' => $tmp[1]))."'>".IMAGE_post2.'</a>';
$lp_date = $gen->convert_date($tmp[0], 'forum');
$tmp = explode(".", $subInfo['forum_lastpost_user'],2);
if($subInfo['user_name'])
{
$lp_name = "<a href='".e_BASE."user.php?id.{$tmp[0]}'>{$subInfo['user_name']}</a>";