1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-07 07:06:30 +02:00

Issue #784 - Track overview page rewrite. Forum template upgrades.

This commit is contained in:
Cameron
2016-01-31 21:44:11 -08:00
parent cad4e9d869
commit ee32537db4
5 changed files with 209 additions and 54 deletions

View File

@@ -37,6 +37,12 @@ class forum_url // plugin-folder + '_url'
'redirect' => '{e_PLUGIN}forum/forum_stats.php',
);
$config['track'] = array(
'regex' => '^forum/track/?',
'sef' => 'forum/track',
'redirect' => '{e_PLUGIN}forum/forum.php?f=track',
);
$config['post'] = array(
'regex' => '^forum/post/?',
'sef' => 'forum/post/',

View File

@@ -41,6 +41,15 @@ if(!deftrue('BOOTSTRAP'))
require_once(e_PLUGIN.'forum/forum_class.php');
$forum = new e107forum;
if(e_AJAX_REQUEST)
{
if(varset($_POST['action']) == 'track')
{
$forum->ajaxTrack();
}
}
if ($untrackId = varset($_REQUEST['untrack']))
{
$forum->track('del', USERID, $untrackId);
@@ -64,9 +73,17 @@ if(isset($_GET['f']))
break;
case 'rules':
include_once(HEADERF);
forum_rules('show');
include_once(FOOTERF);
exit;
break;
case 'track':
include_once(HEADERF);
forum_rules('show');
forum_track();
include_once(FOOTERF);
exit;
break;
@@ -112,6 +129,11 @@ if(!empty($rules_text))
$uInfo[1] = "<a href='".e107::url('forum','rules')."'>".LAN_FORUM_0016.'</a>';
}
$trackPref = $forum->prefs->get('track');
if(!empty($trackPref))
{
$uInfo[2] = "<a href='".e107::url('forum','track')."'>".LAN_FORUM_0030."</a>";
}
$fVars->USERINFOX = implode(" | ",$uInfo);
// -----------
@@ -259,25 +281,33 @@ elseif(file_exists(THEME.'templates/forum/forum_template.php'))
require_once(THEME.'templates/forum/forum_template.php');
}
if(is_array($FORUM_TEMPLATE) && deftrue('BOOTSTRAP',false)) // new v2.x format.
{
$FORUM_MAIN_START = $FORUM_TEMPLATE['main-start'];
$FORUM_MAIN_PARENT = $FORUM_TEMPLATE['main-parent'];
$FORUM_MAIN_FORUM = $FORUM_TEMPLATE['main-forum'];
$FORUM_MAIN_END = $FORUM_TEMPLATE['main-end'];
$FORUM_NEWPOSTS_START = $FORUM_TEMPLATE['main-start']; // $FORUM_TEMPLATE['new-start'];
$FORUM_NEWPOSTS_MAIN = $FORUM_TEMPLATE['main-forum']; // $FORUM_TEMPLATE['new-main'];
$FORUM_NEWPOSTS_END = $FORUM_TEMPLATE['main-end']; // $FORUM_TEMPLATE['new-end'];
if(varset($FORUM_TEMPLATE['main-start'])) // correction of previous v2.x setup.
{
$FORUM_TEMPLATE['main']['start'] = $FORUM_TEMPLATE['main-start'];
$FORUM_TEMPLATE['main']['parent'] = $FORUM_TEMPLATE['main-parent'];
$FORUM_TEMPLATE['main']['forum'] = $FORUM_TEMPLATE['main-forum'];
$FORUM_TEMPLATE['main']['end'] = $FORUM_TEMPLATE['main-end'];
}
$FORUM_MAIN_START = $FORUM_TEMPLATE['main']['start'];
$FORUM_MAIN_PARENT = $FORUM_TEMPLATE['main']['parent'];
$FORUM_MAIN_FORUM = $FORUM_TEMPLATE['main']['forum'];
$FORUM_MAIN_END = $FORUM_TEMPLATE['main']['end'];
$FORUM_NEWPOSTS_START = $FORUM_TEMPLATE['main']['start']; // $FORUM_TEMPLATE['new-start'];
$FORUM_NEWPOSTS_MAIN = $FORUM_TEMPLATE['main']['forum']; // $FORUM_TEMPLATE['new-main'];
$FORUM_NEWPOSTS_END = $FORUM_TEMPLATE['main']['end']; // $FORUM_TEMPLATE['new-end'];
$FORUM_TRACK_START = $FORUM_TEMPLATE['main-start']; // $FORUM_TEMPLATE['track-start'];
$FORUM_TRACK_MAIN = $FORUM_TEMPLATE['main-forum']; // $FORUM_TEMPLATE['track-main'];
$FORUM_TRACK_END = $FORUM_TEMPLATE['main-end']; // $FORUM_TEMPLATE['track-end'];
}
require_once(HEADERF);
$forumList = $forum->forumGetForumList();
@@ -484,43 +514,7 @@ function parse_subs($forumList, $id ='', $lastpost_datestamp)
if (e_QUERY == 'track')
{
if($trackedThreadList = $forum->getTrackedThreadList(USERID, 'list'))
{
$trackVars = new e_vars;
$viewed = $forum->threadGetUserViewed();
$qry = "
SELECT t.*, p.* from `#forum_thread` AS t
LEFT JOIN `#forum_post` AS p ON p.post_thread = t.thread_id AND p.post_datestamp = t.thread_datestamp
WHERE thread_id IN({$trackedThreadList})
ORDER BY thread_lastpost DESC
";
if($sql->gen($qry))
{
while($row = $sql->fetch(MYSQL_ASSOC))
{
$trackVars->NEWIMAGE = IMAGE_nonew_small;
if ($row['thread_datestamp'] > USERLV && !in_array($row['thread_id'], $viewed))
{
$trackVars->NEWIMAGE = IMAGE_new_small;
}
$url = $e107->url->create('forum/thread/view', $row); // configs will be able to map thread_* vars to the url
$trackVars->TRACKPOSTNAME = "<a href='{$url}'>".$tp->toHTML($row['thread_name']).'</a>';
$trackVars->UNTRACK = "<a href='".e_SELF."?untrack.".$row['thread_id']."'>".LAN_FORUM_0070."</a>";
$forum_trackstring .= $tp->simpleParse($FORUM_TRACK_MAIN, $trackVars);
}
}
$forum_track_start = $tp->simpleParse($FORUM_TRACK_START, $trackVars);
$forum_track_end = $tp->simpleParse($FORUM_TRACK_END, $trackVars);
if ($forum->prefs->get('enclose'))
{
$ns->tablerender($forum->prefs->get('title'), $forum_track_start.$forum_trackstring.$forum_track_end, array('forum', 'main1'));
}
else
{
echo $forum_track_start.$forum_trackstring.$forum_track_end;
}
}
}
@@ -640,4 +634,126 @@ function forum_rules($action = 'check')
e107::getRender()->tablerender(LAN_FORUM_0016, $text, array('forum', 'forum_rules'));
}
function forum_track()
{
global $forum;
$trackPref = $forum->prefs->get('track');
if(empty($trackPref))
{
echo "Disabled";
return false;
}
$FORUM_TEMPLATE = null;
include(e_PLUGIN.'forum/templates/forum_template.php');
// Override with theme template
if (file_exists(THEME.'forum_template.php'))
{
include(THEME.'forum_template.php');
}
elseif(file_exists(THEME.'templates/forum/forum_template.php'))
{
require(THEME.'templates/forum/forum_template.php');
}
$IMAGE_nonew_small = IMAGE_nonew_small;
$IMAGE_new_small = IMAGE_new_small;
if(is_array($FORUM_TEMPLATE) && deftrue('BOOTSTRAP',false)) // new v2.x format.
{
$FORUM_TRACK_START = $FORUM_TEMPLATE['track']['start']; // $FORUM_TEMPLATE['track-start'];
$FORUM_TRACK_MAIN = $FORUM_TEMPLATE['track']['item']; // $FORUM_TEMPLATE['track-main'];
$FORUM_TRACK_END = $FORUM_TEMPLATE['track']['end']; // $FORUM_TEMPLATE['track-end'];
$IMAGE_nonew_small = IMAGE_nonew;
$IMAGE_new_small = IMAGE_new;
}
$sql = e107::getDb();
$tp = e107::getParser();
if($trackedThreadList = $forum->getTrackedThreadList(USERID, 'list'))
{
$viewed = $forum->threadGetUserViewed();
$qry = "SELECT t.*,th.*, f.* FROM `#forum_track` AS t
LEFT JOIN `#forum_thread` AS th ON t.track_thread = th.thread_id
LEFT JOIN `#forum` AS f ON th.thread_forum_id = f.forum_id
WHERE t.track_userid = ".USERID." ORDER BY th.thread_lastpost DESC";
$forum_trackstring = '';
$data = array();
if($sql->gen($qry))
{
while($row = $sql->fetch(MYSQL_ASSOC))
{
$row['thread_sef'] = eHelper::title2sef($row['thread_name'],'dashl');
$data['NEWIMAGE'] = $IMAGE_nonew_small;
if ($row['thread_datestamp'] > USERLV && !in_array($row['thread_id'], $viewed))
{
$data['NEWIMAGE'] = $IMAGE_new_small;
}
$buttonId = "forum-track-button-".intval($row['thread_id']);
$forumUrl = e107::url('forum','forum',$row);
$threadUrl = e107::url('forum','topic',$row, array('query'=>array('last'=>1))); // ('forum/thread/view', $row); // configs will be able to map thread_* vars to the url
$data['TRACKPOSTNAME'] = "<a href='".$forumUrl."'>". $row['forum_name']."</a> / <a href='".$threadUrl."'>".$tp->toHTML($row['thread_name']).'</a>';
// $data['UNTRACK'] = "<a class='btn btn-default' href='".e_SELF."?untrack.".$row['thread_id']."'>".LAN_FORUM_0070."</a>";
$data['UNTRACK'] = "<a id='".$buttonId."' href='#' title=\"".LAN_FORUM_3040."\" data-token='".e_TOKEN."' data-forum-insert='".$buttonId."' data-forum-post='".$row['thread_forum_id']."' data-forum-thread='".$row['thread_id']."' data-forum-action='track' name='track' class='btn btn-primary' >".IMAGE_track."</a>";
$forum_trackstring .= $tp->simpleParse($FORUM_TRACK_MAIN, $data);
}
}
// print_a($FORUM_TRACK_START);
if(deftrue('BOOTSTRAP'))
{
$breadarray = array(
array('text'=> e107::pref('forum','title', LAN_PLUGIN_FORUM_NAME), 'url' => e107::url('forum','index') ),
array('text'=>LAN_FORUM_0030, 'url'=>null)
);
$data['FORUM_BREADCRUMB'] = e107::getForm()->breadcrumb($breadarray);
}
$forum_track_start = $tp->simpleParse($FORUM_TRACK_START, $data);
$forum_track_end = $tp->simpleParse($FORUM_TRACK_END, $data);
// if ($forum->prefs->get('enclose'))
{
// $ns->tablerender($forum->prefs->get('title'), $forum_track_start.$forum_trackstring.$forum_track_end, array('forum', 'main1'));
}
// else
{
$tracktext = $forum_track_start.$forum_trackstring.$forum_track_end;
}
}
$text ='';
$text .= $tracktext;
$text .= "<div class='center'>".e107::getForm()->pagination(e107::url('forum','index'), LAN_BACK)."</div>";
e107::getRender()->tablerender(LAN_FORUM_0030, $text, array('forum', 'forum_track'));
}
?>

View File

@@ -702,7 +702,7 @@ class e107forum
{
$ret = array();
while($row = $sql->fetch(MYSQL_ASSOC))
while($row = $sql->fetch())
{
$ret[] = $row['track_thread'];
}

View File

@@ -53,7 +53,7 @@ define("LAN_FORUM_0025", "It is now"); // LAN_37
define("LAN_FORUM_0027", "You have read"); // LAN_196
define("LAN_FORUM_0028", "of these posts."); // LAN_197
define("LAN_FORUM_0029", "All new posts have been read."); // LAN_198
define("LAN_FORUM_0030", "List tracked topics"); // LAN_393
define("LAN_FORUM_0030", "Tracked topics"); // LAN_393
define("LAN_FORUM_0031", "The users of this forum have made a total of [x] posts."); // LAN_192 and LAN_404
define("LAN_FORUM_0032", "topic"); // LAN_411
define("LAN_FORUM_0033", "topics"); // LAN_413
@@ -132,6 +132,8 @@ define("LAN_FORUM_1016", "Poll"); // FORLAN_23
define("LAN_FORUM_1017", "Go to"); // LAN_401 (p?)
define("LAN_FORUM_1018", "New topic");
// define("LAN_FORUM_1019", "Are you sure?"); // new
define("LAN_FORUM_1020", "Modify");
// starting at LAN_FORUM_2xxx => forum_viewtopic.php
define("LAN_FORUM_2001", "Previous topic"); // LAN_389

View File

@@ -79,7 +79,7 @@ $FORUM_TRACK_END = "<br />TRACK-END";
// New in v2.x - requires a bootstrap theme be loaded.
$FORUM_TEMPLATE['main-start'] = "{FORUM_BREADCRUMB}
$FORUM_TEMPLATE['main']['start'] = "{FORUM_BREADCRUMB}
<div class=''>
<div class='form-group right'>
@@ -99,7 +99,7 @@ $FORUM_TEMPLATE['main-start'] = "{FORUM_BREADCRUMB}
<th colspan='5'>{FORUMTITLE}</th>
</tr>";
$FORUM_TEMPLATE['main-parent'] = "<tr>
$FORUM_TEMPLATE['main']['parent'] = "<tr>
<th colspan='2'>{PARENTNAME} {PARENTSTATUS}</th>
<th class='hidden-xs text-center'>".LAN_FORUM_0003."</th>
<th class='text-center'>".LAN_FORUM_0002."</th>
@@ -107,7 +107,7 @@ $FORUM_TEMPLATE['main-parent'] = "<tr>
</tr>";
$FORUM_TEMPLATE['main-forum'] = "<tr>
$FORUM_TEMPLATE['main']['forum'] = "<tr>
<td>{NEWFLAG}</td>
<td>{FORUMNAME}<br /><small>{FORUMDESCRIPTION}</small>{FORUMSUBFORUMS}</td>
<td class='hidden-xs text-center'>{REPLIESX}</td>
@@ -115,7 +115,38 @@ $FORUM_TEMPLATE['main-forum'] = "<tr>
<td class='hidden-xs text-center'><small>{LASTPOSTUSER} {LASTPOSTDATE}</small></td>
</tr>";
$FORUM_TEMPLATE['main-end'] = "</table><div class='center'><small>{USERINFOX}</small></div></div>";
$FORUM_TEMPLATE['main']['end'] = "</table><div class='center'><small>{USERINFOX}</small></div></div>";
// Tracking
$FORUM_TEMPLATE['track']['start'] = "{FORUM_BREADCRUMB}<div id='forum-track'>
<table class='table table-striped table-bordered table-hover'>
<colgroup>
<col style='width:5%' />
<col />
<col style='width:10%' />
</colgroup>
<thead>
<tr>
<th colspan='2'>".LAN_FORUM_1003."</th>
<th class='text-center'>".LAN_FORUM_1020."</th>
</tr>
</thead>
";
$FORUM_TEMPLATE['track']['item'] = "<tr>
<td class='text-center'>{NEWIMAGE}</td>
<td>{TRACKPOSTNAME}</td>
<td class='text-center'>{UNTRACK}</td>
</tr>";
$FORUM_TEMPLATE['track']['end'] = "</table>\n</div>";
/*
$FORUM_TEMPLATE['main-end'] .= "