Sign Up! Login: Password: New User? Forgot? Support
Top Mods!
Wowhead Search
by sonofsamedi
Digital Clock
by Wolfar15
Admin Forums
Welcome to the GuildPortal Help Community! These forums are for admin-to-admin help.
Available Forums
Forums : Feature Discussion > Recent Forum Activity
jpkeller (New Admin) 11/24/2008 10:10 AM EST : Recent Forum Activity
jpkeller
Posts: 2206
Zomgawsh Poster

Does GuildPortal have a way to display all of the mostrecent threads in a list but only list once for each reply?   This waythreads wouldn't get bumped off the list by a few, more active threads?

TopBottom

waedon (Guild Admin) 12/2/2008 12:56 AM EST : RE: Recent Forum Activity

waedon
Posts: 558
Zomgawsh Poster

I Like that idea. With 140 of 1200 guildies signed up on site, my site is getting very active. The available slot of the most resent post does not seem like enough. Jpkeller idea of just one line for the most recent post on that thread is a great idea.

TopBottom

Bob_Laublaw (New Admin) 1/20/2009 6:47 AM EST : RE: Recent Forum Activity
Bob_Laublaw
Posts: 1256
Zomgawsh Poster

I submitted this as a "Feature Request" a while ago... with no response.

I, too, hate having important threads bumped off the "Recent Activity" list by one hot thread. I'd much rather have members see what threads have had updates since they last viewed them.

Granted... it takes a much more involved process to track what threads and posts a specific user has seen and xref that against what is there now. But it's not a new concept... most stand alone forum systems do it.
TopBottom

Bob_Laublaw (New Admin) 2/5/2009 6:21 AM EST : RE: Recent Forum Activity
Bob_Laublaw
Posts: 1256
Zomgawsh Poster

In addition to the request that the "Recent Activity" be changed to show THREADS that have updates (and not just the individual posts)... I have another one.

With the current system of only showing recent posts, it has come to my attention that users only see the posts they have access to. This, in and of itself, is not the problem. The problem is the Recent Activity section only tries to display the most recent number of posts, and then filters it based on security.

For example... on my site we've only had a few posts in the members area recently, but a shit-storm of activity in the officers forums. When a member looks at the site now they only see one or two posts that were made during the deluge of officer posts.

If GP won't recode to show only "Threads Updated Since Last Visit"... at least move the security check on Recent Posts to before you grab the last fifteen (or whatever number you chose to display). That way Members will see the last fifteen posts available to them, and Officers can see the last fifteen available to them.

Thank you.
TopBottom

Miles Clennell (Guild Admin) 2/7/2009 12:58 PM EST : RE: Recent Forum Activity
Miles Clennell
Posts: 3134
Zomgawsh Poster

Both splendid ideas, I really think a little work needs doing on the forums. It's looking decidely old school compared to many free alternatives.Stil one thing bugs me more than anything though, I make a post and because GP seems to work on a localized time zone mine comes up as being posted 'tomorrow'.This perhaps should be a seperate post though (if it already isn't).
Anemia Sig 1
TopBottom

Terratonic (Guild Admin) 2/10/2009 8:06 AM EST : RE: Recent Forum Activity
Terratonic
Posts: 2637
Zomgawsh Poster

I hope that this feature on GP gets some attention, and soon.   I have this feature set to display the maximum number of posts, but if we are having a big discussion in one of the officer areas, it can completely dominate that section, leaving regular members not seenig ANY recent posts, as posts that they don't have access to ARE counted against the number of 'recent posts'.


forumavatar.jpg picture by terrafan02 
GAH - Wendy Wildstar
HeroWorks - Lady Spectrum, Terratonic

@Titansfan
TopBottom

Phewmite (Guild Admin) 2/15/2009 3:32 PM EST : RE: Recent Forum Activity
Phewmite
Posts: 241
Fingers of Fury!

I'm a new user to the Web Design process and this is one of the things that has been brought to my attention.  Just out of curiosity, how do you set the recent activity to the maximum number?
TopBottom

Bob_Laublaw (New Admin) 2/25/2009 6:42 AM EST : RE: Recent Forum Activity
Bob_Laublaw
Posts: 1256
Zomgawsh Poster

Phewmite said:
I'm a new user to the Web Design process and this is one of the things that has been brought to my attention.  Just out of curiosity, how do you set the recent activity to the maximum number?


Control Panel > Site Pages > Forum Page > Forum Content Box (Edit) > Display Options > Recent Topics to List
TopBottom

Bob_Laublaw (New Admin) 7/16/2009 5:45 PM EST : RE: Recent Forum Activity
Bob_Laublaw
Posts: 1256
Zomgawsh Poster

I'm going to necro this thread in hopes someone at GP reads it.

There are two "feature requests" for the forums in this post. Any word on yes or no in terms of implementation?
TopBottom

Mottie (MVP) 7/17/2009 12:34 AM EST : RE: Recent Forum Activity
GuildPortal MVP
Mottie
Posts: 3884
Zomgawsh Poster

Hey Guys... funny how you resurrected this thread Bob_Laublaw when this was my most recent project 


Adding A Most Recent Post Display Box
  • I will apologize in advance to the staff at GuildPortal if this script causes too much server load... I will remove it if it does start to cause problems.
  • Please check out the load time of this script on my help site forum's page to see if are ok with the time delay before adding this script to your site.
  • Add this code to a "Free Form Text/HTML" type content box on any page of your site. If you add it to your Forum page, it will automatically replace the "Most Recent Posts" listing below the forums.
  • The time difference between the two displays is odd... but it is pulled directly from the forums, so I think this script may be more accurate than the original *shrug*
* Just one quick note about working on this script... I tried to include the forum group where the post was added, but this proved to increase the page loading time too much and at least for my help site it messed up the CSS, so I removed it. I might look into this again at a later time.
Original Recent Post Display
  • 10 Posts - displays up to 10 of the most recent postings
  • RSS feed - available
  • Fast - instant display of information
  • Any Site Page - this information can be placed on any page of your site - it is called the "Recent Post Stand-Alone" type content box.
This Recent Post Display
  • 10+ Posts - displays much more than 10 recent posts - this is dependent on how many forum groups your site has. The formula for the max number of post listings would be ( # of forum groups on your site X 25 ). The 25 is from the number of posts per page in the forums.... so for my Help site with 6 forum groups, I could display up to 150 of my most recent posts!
  • No RSS Feed 
  • Slower - display of information is dependent on your internet speed and how many forum groups you have on your site. This script needs to load the first page of each forum group. With my connection speed (DSL) it takes about 1-2 seconds per group for a total time of 5-10 seconds. So this method is a lot slower than the original.
  • Any GuildPortal Page - this script shows your site's most recent posts on any GuildPortal web site. So this would be a nice addition if you have more than one GuildPortal website, say for different games, etc. I haven't tested it, but I think it should also work with alliance forums.

The Code
<style type="text/css">
#recentPosts .ForumTitleHeaderCell { color: #0080ff; }
#recentPosts .ForumTopicCountHeaderCell { width: 90px; }
#recentPosts .ForumLastPostInfoHeaderCell { width: 150px; }
#recentPosts th { text-align: left; }
.page-number, .view-all { padding: 0 2px; cursor: pointer; color: #aaaaaa; }
</style>

<div id="rpContainer">
<div id="rpLoading" style="text-align:center">
<img src="http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/loading4.gif"><br>
Loading
</div>
<table width="100%" style="display:none;" id="recentPosts">
 <thead>
  <tr class="ForumCategoryHeader">
   <th colspan="3" class="ForumCategoryHeader">Most Recent Posts</th>
  </tr>
  <tr>
   <th class="ForumTitleHeaderCell">Post Title</th>
   <th class="ForumTopicCountHeaderCell">Poster</th>
   <th class="ForumLastPostInfoHeaderCell sort-date sorted-asc">Posted</th>
  </tr>
 </thead>
 <tbody>
 </tbody>
</table>
</div>
<div style="display:none;" id="preloadPosts"></div>
<input type="hidden" style="display:none;" value="0" id="fgindex" />
<script type="text/javascript" src="http://www.axiomfiles.com/Files/258012/jquerysortpage.js"></script>
<script type="text/javascript">

var showPostHeader = false;
var recentPostsToDisplay = 20; // set to zero to display all found posts ( max = #forum groups x 25 )
var paginatePosts = true;
var paginateLocationTop = true; // Set to true to place at top, false to add below 
var postsPerPage = 10; // number of posts to display when using paginate function ( paginatePosts must be true for this to work )
var forumURL = 'http://guildportal.com/Guild.aspx?GuildID=258012&TabID=2168224';

/*******************************    
 Don't change anything below    
*******************************/    
var recentPosts = new Array();    
var forumGroups = new Array();    
var tmp,ttile,tx,tdate,tlink,tposter;    
forumURL = forumURL.substring(forumURL.lastIndexOf('/Guild.aspx'),forumURL.length);    
$(document).ready(function(){    
 if ( $("div[id*='pnlMostRecent']").length || ( gup('TabID',forumURL) != gup('TabID',location.href) ) ) {    
  $('#preloadPosts').hide('fast',loadForum); /* Load main forum page only if recent post box exists or it's not on forum page */    
 }    
})    
function loadForum(){    
 $('#preloadPosts').load(forumURL + ' div[id*="ForumView"]',findGroups);    
}    
function findGroups(){    
 /* get URL for each forum group */    
 $('#preloadPosts .ForumTitleCell').each(function(){    
  tmp = $(this).find('a').attr('href');    
  tx = (tmp.match('#')) ? tmp.lastIndexOf('#') : tmp.length;    
  forumGroups.push([tmp.substring(0,tx)]);    
 })    
 /* search each forum group's first page for posts */    
 for (j=0; j < forumGroups.length; j++) {    
  $('#preloadPosts').hide('fast',loadTopics(j));    
 }    
 /* wait until all data is loaded into the table */    
 $("#preloadPosts").bind("ajaxComplete", function(){    
  var k = $('#fgindex').val();    
  k++;    
  if (k>forumGroups.length){    
   sortme();    
   if (recentPostsToDisplay != 0) {    
    $('#recentPosts tbody tr:gt(' + (recentPostsToDisplay-1) + ')').remove(); /* remove left over posts */    
   }    
   if (paginatePosts) pageinate();    
   $('#recentPosts tbody tr:odd').addClass('AltGridRow');    
   $('#recentPosts tbody tr:even').addClass('NormGridRow');    
   if (!showPostHeader) $('#recentPosts tr.ForumCategoryHeader').remove(); /* hide header */    
   if ( $("div[id*='pnlMostRecent']").length ) {    
    $("div[id*='pnlMostRecent']").html( $('#rpContainer').html() ); /* replace Most Recent Posts on Forums page */    
    $('#rpContainer').hide();    
   };    
   $('#rpLoading').hide();    
   $('#recentPosts').show(); /* show posts */    
  };    
  $('#fgindex').val(k);    
 });    
};    
function loadTopics(j){    
 $('#preloadPosts').load(forumGroups[j] + ' div[id*="ThreadView"]',findTopics)    
}    
function findTopics(){    
 $('#preloadPosts').find('.NormGridRow,.AltGridRow').each(function(){    
  ttitle = $(this).find('.TopicTitleCell a').html();    
  tx = $(this).find('.TopicLastPosterCell');    
  tdate = tx.find('a:last-child').html();    
  tlink = tx.find('a:last-child').attr('href');    
  tx.find('a').remove(); /* strips out date so only the poster is left */    
  tposter = tx.text().replace(/&nbsp/,'');    
  tmp = '<tr onclick="location.href=\'' + tlink + '\'"><td class="SmallDisplay"><a href="' + tlink +    
   '">' + ttitle + '</a></td><td class="SmallDisplay">' + tposter + '</td><td>' + tdate +'</td></tr>';    
  $('#recentPosts').find('tbody').append(tmp);    
 })    
}    
function gup(name, myString) {    
 name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");    
 var regexS = "[\\?&]"+name+"=([^&#]*)";    
 var regex = new RegExp( regexS );    
 var results = regex.exec( myString );    
 if( results == null )    
  return "";    
 else    
  return results[1];    
}    
</script>
Customizing

  • You can change the Recent Post header title and each of the column headers by modifying the text within the HTML (in green). I didn't want to add more coding to the script just to allow these names to be changed via the javascript... in addition, you can hide the table header ("Most Recent Posts") by setting the javascript variable below to false.

  • The styling of this box follows the same styling of the recent posts listing on your forum page, you can change the CSS specific to this display by using the "recentPosts" ID in the CSS. For example, you could add this bit of CSS to change the Post Title header. The rest of the CSS shown sets the width of each column, aligns the text and adds color to the page selectors.
    #recentPosts .ForumTitleHeaderCell { color: #0080ff; }
    #recentPosts .ForumTopicCountHeaderCell { width: 90px; }
    #recentPosts .ForumLastPostInfoHeaderCell { width: 150px; }
    #recentPosts th { text-align: left; }
    .page-number, .view-all { padding: 0 2px; cursor: pointer; color: #aaaaaa; }
  • The header (as seen in the image above) can be shown or hidden by changing the "showPostHeader" variable in the script.
    var showPostHeader = false;
  • The number of recent posts to display can be set in the script by replacing the number in red with the number of posts you wish to display on your site. As stated above, this number doesn't have a set maximum, but is dependent on the number of forum groups you have on your site. If you have 4 forum groups, this script could potentially display 100 posts ( # forums groups x 25 )... that's 25 posts per page. The script only looks at the first page of the forum group. If you set this to zero, it will display all the posts it finds!
    var recentPostsToDisplay = 20;
  • The next varibles are "paginatePosts" and "paginateLocationTop". What this means is if you have for example 50 posts, and you set the number of posts per page (postsPerPage, set below) to 10,  it will make 5 pages of 10 posts. So, it makes the list more compact and easier to read. Set this to true to activate it. "paginateLocationTop" will position the page selector at the top if set to true and bottom if set to false.
    var paginatePosts = true;
    var paginateLocationTop = true;
  • If you decide to paginate your posts by setting the variable above to true. Set the "postsPerPage" variable to the number of posts you want to display on each page.
    var postsPerPage = 10;
  • This last variable "forumURL" must have the URL to your forum page. Below is the URL to my Help site forum page. Modify the text in orange with your URL. This code isn't set up to handle more than one copy of this script on a page with different forum URLs... if I get a request to do this, I'll look into it.
    var forumURL = 'http://guildportal.com/Guild.aspx?GuildID=258012&TabID=2168224';
  • To change the loading image, look up in the HTML for the image URL in orange. I used http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/loading4.gif, but also provided a few more images:
  • http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/loading.gif
    http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/loading2.gif
    http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/loading3.gif
    http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/loading4.gif
    http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/loading5.gif
    http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/loading6.gif
    http://i201.photobucket.com/albums/aa236/Mottie1/testsite/icons/loading7.gif

Edit (9/3/2009): Updated the script to work with IE. It seems IE doesn't like having a "#forums" at the end of a URL. I also added a "loading" image.
Edit (10/26/2009): Replaced the old table sorting script with a different one, hopefully it won't cause as much trouble. This means I also had to update the HTML, so if you are using this script, you'll need to update the whole thing.
Edit (10/27/2009): Fixed a sorting problem, also added pagination of the posts.
Edit (10/28/2009): Changed the sorting program, hopefully it'll work with all sites now. Also added a new variable "paginateLocationTop" that allows you to move the page selector to the top or bottom.
Edit (6/18/2010): updated the code above to work with the changes to the forum layout.
TopBottom

Admins Online
There are   members online.
So-and-so has logged on!
%title%
%message%