One thing that is missing in the blogs pages is the chance to filter by Newest, Most Popular and Latest Activity, this is available in forums but not blogs so here is a way to be able to add one.
Maybe this is something the new Ning team could add but until then here is my option.
You can go to my blog page to see it working here : http://bizzssite.ning.com/blog
Let's get started.
First we need to add the sort options list onto the blog page. We do this for each blog instance you want to add the sort option for. So if you have more than one blog page you would just do this part on each of those pages.
- Go to your sites&pages and click on the blog page you are adding this to.
- Select the add content option and choose html, click on the small html icon and paste the html code below into it then click save/update
- Next move the html box to the top of your blog page.
- Save the page.
CODE TO PASTE INTO THE BOX ( DO NOT COPY THIS LINE )
<div class="filterBlogs">Sort Blogs<br />
<select name="sort" onchange="document.location.href=this.options[this.selectedIndex].value;">
<option value="/blog" selected="selected">Select An Option</option>
<option value="/blog?sort=newestPosts">Newest Posts</option>
<option value="/blog?sort=latestActivity">Latest Activity</option>
<option value="/blog?sort=mostPopular">Most Popular</option>
</select></div>
Now we need to add the CSS to your custom css section, we only need to do this once, it's only the html box's you copy more than once if you have multiple blog pages.
/** BLOGS FILTER CSS CODE **/
/* Filter Blogs Box Under Module Header In Blogs */
.filterBlogsBox{
border-width:2px;
border-style: none none solid;
border-color: lightgrey;
padding: 4px 10px;
border-radius: 0px;}
/* Adjust the size for the font for the additional text under the name to show the filter state */
.blogListPage .sortstate{ font-size:0.6em }
Finally we add the Custom Code which goes into your Site Manager Custom Code End Of Page section. Again we only need to add this once.
<!-- ADDS THE TYPE OF FILTER YOU CHOSE TO THE BLOG HEADING WHEN SORTING -->
<script>
x$(document).ready(function() {
if(x$(location).attr('search')==="?sort=newestPosts"){
x$('.blogListPage .module-name').append("<div class='sortstate'>Sorted By: Newest Posts</div>");
}
});
</script>
<script>
x$(document).ready(function() {
if(x$(location).attr('search')==="?sort=latestActivity"){
x$('.blogListPage .module-name').append("<div class='sortstate'>Sorted By: Latest Activity</div>");
}
});
</script>
<script>
x$(document).ready(function() {
if(x$(location).attr('search')==="?sort=mostPopular"){
x$('.blogListPage .module-name').append("<div class='sortstate'>Sorted By: Most Popular</div>");
}
});
</script>
<!-- FILTER TIPS BOX CLASS ADDITION TO THE HTML BOX -->
<script>
x$('.filterBlogs').closest('.grid-frame.sheet.section-html').addClass('filterBlogsBox');
</script>
<!-- PLACES THE BLOG FILTER UNDER THE MODULE HEADER MAIN SECTION -->
<script>
x$('.filterBlogsBox').prependTo('.section-primaryContent .blogListPage .module-body');
</script>
<!-- REMOVES THE BLOG FILTER UNDER THE MODULE HEADER DETAIL PAGE -->
<script>
x$(".blogDetailPage").parents().find(".filterBlogsBox").remove();
</script>
That's it your all done now you should have a blog filter.
John :-)
Replies
I just added this to my site. Thank you so much! Do you know how to add a search box to my site? I would be so appreciative!
Hi Jennifer,
Maybe Google Custom Search will be suitable for your network. You can find more bout his in our help center by following the link http://www.ning.com/ning3help/add-google-custom-search-to-your-netw...
Best regards,
Ning Team.
Your welcome Jennifer, pleased you found it useful. With regards to the search this is one of those items that the New Ning team are going to be adding in the future. Kyrl has pointed out the Google search you could add or Kos has used another one but cannot seem to find the post for it on the forum as yet, maybe she will pop into this with the link. I will keep searching though for you.
John :-)
Thank you John!