mirror of
https://github.com/e107inc/e107.git
synced 2025-01-16 20:28:28 +01:00
320 lines
9.7 KiB
PHP
320 lines
9.7 KiB
PHP
<?php
|
|
/*
|
|
* e107 website system
|
|
*
|
|
* Copyright (C) 2008-2011 e107 Inc (e107.org)
|
|
* Released under the terms and conditions of the
|
|
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
|
*
|
|
* User posts page
|
|
*
|
|
* $URL$
|
|
* $Id$
|
|
*
|
|
*/
|
|
require_once('class2.php');
|
|
|
|
e107::coreLan('userposts');
|
|
|
|
require_once(e_HANDLER.'comment_class.php');
|
|
$cobj = new comment();
|
|
|
|
$e107 = e107::getInstance();
|
|
$sql = e107::getDb();
|
|
$pref = e107::getPref();
|
|
$tp = e107::getParser();
|
|
$ns = e107::getRender();
|
|
|
|
require_once(HEADERF);
|
|
|
|
|
|
$action = 'exit';
|
|
if (e_QUERY)
|
|
{
|
|
$tmp = explode('.', e_QUERY);
|
|
$from = intval($tmp[0]); // Always defined
|
|
$action = varset($tmp[1],'exit');
|
|
if (!isset($tmp[2])) $action = 'exit';
|
|
$id = intval(varset($tmp[2],0));
|
|
if ($id <= 0) $action = 'exit';
|
|
if (($id != USERID) && !check_class(varset($pref['memberlist_access'], 253))) $action = 'exit';
|
|
unset($tmp);
|
|
}
|
|
if(isset($_POST['fsearch']))
|
|
{
|
|
$action = 'forums';
|
|
}
|
|
|
|
if ($action == 'exit')
|
|
{
|
|
e107::redirect();
|
|
exit;
|
|
}
|
|
|
|
if ($action == "comments")
|
|
{
|
|
|
|
if($id == e107::getUser()->getId())
|
|
{
|
|
$user_name = USERNAME;
|
|
}
|
|
else
|
|
{
|
|
$user_name = e107::getSystemUser($id, false)->getName(LAN_ANONYMOUS);
|
|
}
|
|
|
|
|
|
// new template engine - override in THEME/templates/userposts_template.php
|
|
$USERPOSTS_TEMPLATE = e107::getCoreTemplate('userposts');
|
|
|
|
$sql2 = e107::getDb('sql2');
|
|
if($user_name)
|
|
{
|
|
$ccaption = str_replace('[x]', $user_name, UP_LAN_1);
|
|
|
|
$ctotal = e107::getSystemUser($id, false)->getValue('comments', 0); // user_* getter shorthand
|
|
$data = $cobj->getCommentData(10, $from, 'comment_author_id ='.$id);
|
|
}
|
|
else // posts by IP currently disabled (see Query filtering - top of the page)
|
|
{
|
|
e107::redirect();
|
|
exit;
|
|
/*$dip = $id;
|
|
if (strlen($dip) == 8)
|
|
{ // Legacy decode (IPV4 address as it used to be stored - hex string)
|
|
$hexip = explode('.', chunk_split($dip, 2, '.'));
|
|
$dip = hexdec($hexip[0]). '.' . hexdec($hexip[1]) . '.' . hexdec($hexip[2]) . '.' . hexdec($hexip[3]);
|
|
|
|
}
|
|
$ccaption = UP_LAN_1.$dip;
|
|
$data = $cobj->getCommentData($amount='10', $from, "comment_ip = '".$id."'");
|
|
$data = $cobj->getCommentData(10, $from, 'comment_ip ='.$tp->toDB($user_ip));*/
|
|
}
|
|
|
|
$ctext = '';
|
|
if(empty($data) || !is_array($data))
|
|
{
|
|
$ctext = "<span class='mediumtext'>".UP_LAN_7."</span>";
|
|
}
|
|
|
|
else
|
|
{
|
|
$userposts_comments_table_string = '';
|
|
foreach($data as $row)
|
|
{
|
|
$userposts_comments_table_string .= parse_userposts_comments_table($row, $USERPOSTS_TEMPLATE['comments_table']);
|
|
}
|
|
|
|
$parms = $ctotal.",10,".$from.",".e_REQUEST_SELF."?[FROM].comments.".$id;
|
|
$nextprev = $ctotal ? $tp->parseTemplate("{NEXTPREV={$parms}}") : '';
|
|
if($nextprev) $nextprev = str_replace('{USERPOSTS_NEXTPREV}', $nextprev, $USERPOSTS_TEMPLATE['np_table']);
|
|
$vars = new e_vars(array(
|
|
'NEXTPREV' => $nextprev
|
|
));
|
|
|
|
// preg_replace("/\{(.*?)\}/e", '$\1', $USERPOSTS_TEMPLATE['comments_table_start']);
|
|
$userposts_comments_table_start = $tp->simpleParse($USERPOSTS_TEMPLATE['comments_table_start'], $vars);
|
|
// preg_replace("/\{(.*?)\}/e", '$\1', $USERPOSTS_TEMPLATE['comments_table_end'])
|
|
$userposts_comments_table_end = $tp->simpleParse($USERPOSTS_TEMPLATE['comments_table_end'], $vars);
|
|
|
|
$ctext .= $userposts_comments_table_start.$userposts_comments_table_string.$userposts_comments_table_end;
|
|
|
|
}
|
|
$ns->tablerender($ccaption, $ctext);
|
|
}
|
|
|
|
|
|
|
|
elseif ($action == 'forums')
|
|
{
|
|
require_once (e_PLUGIN.'forum/forum_class.php');
|
|
$forum = new e107forum();
|
|
|
|
$forumList = implode(',', $forum->getForumPermList('view'));
|
|
|
|
|
|
/*if(is_numeric($id))
|
|
{
|
|
$uinfo = e107::user($id);
|
|
$fcaption = UP_LAN_0.' '.$uinfo['user_name'];
|
|
}
|
|
else
|
|
{
|
|
$user_name = 0;
|
|
}*/
|
|
if($id == e107::getUser()->getId())
|
|
{
|
|
$user_name = USERNAME;
|
|
}
|
|
else
|
|
{
|
|
$user_name = e107::getSystemUser($id, false)->getName(LAN_ANONYMOUS);
|
|
}
|
|
|
|
if(!$user_name)
|
|
{
|
|
e107::redirect();
|
|
exit;
|
|
}
|
|
|
|
// $fcaption = UP_LAN_0.' '.$user_name;
|
|
$fcaption = str_replace('[x]', $user_name, UP_LAN_0);
|
|
/*
|
|
if (!$USERPOSTS_FORUM_TABLE)
|
|
{
|
|
if (file_exists(THEME.'userposts_template.php'))
|
|
{
|
|
require_once(THEME.'userposts_template.php');
|
|
}
|
|
else
|
|
{
|
|
require_once(e_BASE.$THEMES_DIRECTORY.'templates/userposts_template.php');
|
|
}
|
|
}*/
|
|
// new template engine - override in THEME/templates/userposts_template.php
|
|
$USERPOSTS_TEMPLATE = e107::getCoreTemplate('userposts');
|
|
|
|
$s_info = '';
|
|
$_POST['f_query'] = trim(varset($_POST['f_query']));
|
|
if ($_POST['f_query'] !== '')
|
|
{
|
|
$f_query = $tp->toDB($_POST['f_query']);
|
|
$s_info = "AND (t.thread_name REGEXP('".$f_query."') OR p.post_entry REGEXP('".$f_query."'))";
|
|
$fcaption = UP_LAN_12.' '.$user_name;
|
|
}
|
|
|
|
$qry = "
|
|
SELECT SQL_CALC_FOUND_ROWS p.*, t.*, f.* FROM `#forum_post` AS p
|
|
LEFT JOIN `#forum_thread` AS t ON t.thread_id = p.post_thread
|
|
LEFT JOIN `#forum` AS f ON f.forum_id = p.post_forum
|
|
WHERE p.post_user = {$id}
|
|
AND p.post_forum IN ({$forumList})
|
|
{$s_info}
|
|
ORDER BY p.post_datestamp DESC LIMIT {$from}, 10
|
|
";
|
|
|
|
$debug = deftrue('e_DEBUG');
|
|
|
|
$sqlp = e107::getDb('posts');
|
|
|
|
if (!$sqlp->gen($qry))
|
|
{
|
|
$ftext .= "<span class='mediumtext'>".UP_LAN_8.'</span>';
|
|
}
|
|
else
|
|
{
|
|
$gen = e107::getDateConvert();
|
|
$vars = new e_vars();
|
|
|
|
$userposts_forum_table_string = '';
|
|
while($row = $sqlp->fetch())
|
|
{
|
|
|
|
if(empty($row))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
$datestamp = $gen->convert_date($row['post_datestamp'], 'short');
|
|
if ($row['thread_datestamp'] == $row['post_datestamp'])
|
|
{
|
|
$vars->USERPOSTS_FORUM_TOPIC_PRE = UP_LAN_2.': ';
|
|
}
|
|
else
|
|
{
|
|
$vars->USERPOSTS_FORUM_TOPIC_PRE = UP_LAN_15.': ';
|
|
}
|
|
|
|
|
|
$row['forum_sef'] = $forum->getForumSef($row);
|
|
$row['thread_sef'] = $forum->getThreadSef($row);
|
|
|
|
$forumUrl = e107::url('forum', 'forum', $row);
|
|
|
|
$postNum = $forum->postGetPostNum($row['post_thread'], $row['post_id']);
|
|
$postPage = ceil($postNum / $forum->prefs->get('postspage'));
|
|
|
|
$postUrl = e107::url('forum', 'topic', $row, array('query' => array('p' => $postPage), 'fragment' => 'post-' . $row['post_id']));
|
|
|
|
if(!defined('IMODE')) define('IMODE', 'lite'); // BC
|
|
|
|
$vars->USERPOSTS_FORUM_ICON = "<img src='".e_PLUGIN."forum/images/".IMODE."/new_small.png' alt='' />";
|
|
$vars->USERPOSTS_FORUM_TOPIC_HREF_PRE = "<a href='".$postUrl."'>"; //$e107->url->getUrl('forum', 'thread', "func=post&id={$row['post_id']}")
|
|
$vars->USERPOSTS_FORUM_TOPIC = $tp->toHTML($row['thread_name'], true, 'USER_BODY', $id);
|
|
$vars->USERPOSTS_FORUM_NAME_HREF_PRE = "<a href='".$forumUrl."'>"; //$e107->url->getUrl('forum', 'forum', "func=view&id={$row['post_forum']}")
|
|
$vars->USERPOSTS_FORUM_NAME = $tp->toHTML($row['forum_name'], true, 'USER_BODY', $id);
|
|
$vars->USERPOSTS_FORUM_THREAD = $tp->toHTML($row['post_entry'], true, 'USER_BODY', $id);
|
|
$vars->USERPOSTS_FORUM_DATESTAMP = UP_LAN_11." ".$datestamp;
|
|
|
|
//$userposts_forum_table_string .= preg_replace("/\{(.*?)\}/e", '$\1', $USERPOSTS_FORUM_TABLE);
|
|
$userposts_forum_table_string .= $tp->simpleParse($USERPOSTS_TEMPLATE['forum_table'], $vars);
|
|
}
|
|
|
|
$vars->emptyVars();
|
|
|
|
$ftotal = $sqlp->foundRows();
|
|
|
|
$parms = $ftotal.",10,".$from.",".e_REQUEST_SELF."?[FROM].forums.".$id;
|
|
$vars->NEXTPREV = $ftotal ? $tp->parseTemplate("{NEXTPREV={$parms}}") : '';
|
|
if($vars->NEXTPREV) $vars->NEXTPREV = str_replace('{USERPOSTS_NEXTPREV}', $vars->NEXTPREV, $USERPOSTS_TEMPLATE['np_table']);
|
|
$vars->USERPOSTS_FORUM_SEARCH_VALUE = htmlspecialchars($_POST['f_query'], ENT_QUOTES, CHARSET);
|
|
$vars->USERPOSTS_FORUM_SEARCH_FIELD = "<input class='tbox input' type='text' name='f_query' size='20' value='{$vars->USERPOSTS_FORUM_SEARCH_VALUE}' maxlength='50' />";
|
|
$vars->USERPOSTS_FORUM_SEARCH_BUTTON = "<input class='btn btn-default btn-secondary button' type='submit' name='fsearch' value='".UP_LAN_12."' />";
|
|
$vars->USERPOSTS_FORUM_SEARCH = "<input class='tbox' type='text' name='f_query' size='20' value='{$vars->USERPOSTS_FORUM_SEARCH_VALUE}' maxlength='50' /> <input class='btn btn-default btn-secondary button' type='submit' name='fsearch' value='".UP_LAN_12."' />";
|
|
|
|
// $userposts_forum_table_start = preg_replace("/\{(.*?)\}/e", '$\1', $USERPOSTS_FORUM_TABLE_START);
|
|
$userposts_forum_table_start = $tp->simpleParse($USERPOSTS_TEMPLATE['forum_table_start'], $vars);
|
|
//$userposts_forum_table_end = preg_replace("/\{(.*?)\}/e", '$\1', $USERPOSTS_FORUM_TABLE_END);
|
|
$userposts_forum_table_end = $tp->simpleParse($USERPOSTS_TEMPLATE['forum_table_end'], $vars);
|
|
|
|
$ftext = $userposts_forum_table_start.$userposts_forum_table_string.$userposts_forum_table_end;
|
|
}
|
|
|
|
$ns->tablerender($fcaption, $ftext);
|
|
/*$ftotal = $e107->sql->total_results;
|
|
$parms = $ftotal.",10,".$from.",".e_SELF."?[FROM].forums.".$id;
|
|
$USERPOSTS_NEXTPREV = $tp->parseTemplate("{NEXTPREV={$parms}}");
|
|
echo preg_replace("/\{(.*?)\}/e", '$\1', $USERPOSTS_NP_TABLE);*/
|
|
}
|
|
else
|
|
{
|
|
e107::redirect();
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
|
|
require_once(FOOTERF);
|
|
|
|
|
|
function parse_userposts_comments_table($row, $template)
|
|
{
|
|
// global $USERPOSTS_COMMENTS_TABLE, $pref, $gen, $tp, $id, $sql2, $comment_files;
|
|
|
|
$gen = e107::getDateConvert();
|
|
$datestamp = $gen->convert_date($row['comment_datestamp'], "short");
|
|
$bullet = '';
|
|
if(defined('BULLET'))
|
|
{
|
|
$bullet = '<img src="'.THEME_ABS.'images/'.BULLET.'" alt="" class="icon" />';
|
|
}
|
|
elseif(file_exists(THEME.'images/bullet2.gif'))
|
|
{
|
|
$bullet = '<img src="'.THEME_ABS.'images/bullet2.gif" alt="" class="icon" />';
|
|
}
|
|
$vars = new e_vars();
|
|
|
|
$vars->USERPOSTS_COMMENTS_ICON = $bullet;
|
|
$vars->USERPOSTS_COMMENTS_DATESTAMP = UP_LAN_11." ".$datestamp;
|
|
$vars->USERPOSTS_COMMENTS_HEADING = $row['comment_title'];
|
|
$vars->USERPOSTS_COMMENTS_COMMENT = $row['comment_comment'];
|
|
$vars->USERPOSTS_COMMENTS_HREF_PRE = "<a href='".$row['comment_url']."'>";
|
|
$vars->USERPOSTS_COMMENTS_TYPE = $row['comment_type'];
|
|
|
|
//return(preg_replace("/\{(.*?)\}/e", '$\1', $USERPOSTS_COMMENTS_TABLE));
|
|
return e107::getParser()->simpleParse($template, $vars);
|
|
}
|
|
|
|
|