We are an event drivin site. Who knows how to display the total number of events in a text box on the main page?

Views: 91

Reply to This

Replies to This Discussion

Hi Andrew , there are two ways of doing this:

1) Use jQuery .load() to load up the event page and get the total event number out , this approach is simple however it will slow down(a little) your site for loading up another page.

2) Using a much complicated technique which requires a server to store that information, first we obtain the currently existing event count , then add a function to add event button to increase that count , the count information will be stored in database of a server outside of Ning. Then when user loads the home page , a script will retrieve the count information from the server then display it out on home page textbox. Well I don't recommend this approach as it involves a lot of work but this one does not increase your site loadtime as much as first approach.

Assume that you want the total events (upcoming+past events) , so we need to get the data from

http://yournetwork/events/event/listAllTypes

So here is the FIRST approach code:

HTML: use this code so that the script can inject the count into the span(of course , put this in your textbox)

<span id="eventcount"></span>


You can put content in front of it like :

Total Events: <span id="eventcount"></span>

Now the script(put this in custom code):

<script type="text/javascript">

//coded by Elson Tan (@elsodev) elsodev.com
 var ecount = '0';
if(x$('span#eventcount').length){
      
//event count span exists
x$('#xn_bar').before('<div id="ecountstore" style="display:none;width:0px;height:0px;"></div>');
//we load up that page and put the html into an invisible box
x$('#ecountstore').load('events/event/listAllTypes .xg_span-12 ul', function(){
x$('#ecountstore ul li a').remove();
  x$('#ecountstore ul li').each(function(){
      var tempstore = x$(this).text();
      //we remove brackets from the each numbers
       var getecount = tempstore.replace(/\((.*?)\)/g, '$1');
     //we add it up to obtain a total
       ecount = parseInt(parseFloat(ecount) + parseFloat(getecount));
  });
//after each function done , we display out the total
x$('span#eventcount').html(ecount);
});
}
else{
}
</script>

There are a few things in the script that you may not understand:

  •        var getecount = tempstore.replace(/\((.*?)\)/g, '$1');

This is to remove the brackgets using regex , you can learn more about it here , its awesome for matching things

  •        ecount = parseInt(parseFloat(ecount) + parseFloat(getecount));

This is adding up to get the total value , I used parseFloat to turn it into an floating point integer , this might be new to you. What it does is to make your integer able to undergo calculation properly. Normally if you don't use parseFloat , javascript will turn 2+1 into 21 , while using parseFloat 2+1 =3 . You can learn more about it here

That's it , hope it helps. I havent tested the code , just roughly coded , I hope it works.

TJ's script only gets the upcoming events count with brackets, not all existing events sum/total.

I guess that is true.

Thats cool...actually, I am only interested in the upcoming events. thanks guys.

RSS

Latest Activity

Riccardo Rossini replied to Riccardo Rossini's discussion 'FANTASTIC!!'
"How can I do the same in Facebook? It seems that is not working"
29 minutes ago

NC for Hire
SweetPotato replied to Phil McCluskey's discussion 'Site Manager Updates for Ning 3.0 Networks'
"Phil, When you release the migration tool, will there be a way to migrate certain blog posts (by…"
47 minutes ago
Riccardo Rossini replied to Phil McCluskey's discussion 'Site Manager Updates for Ning 3.0 Networks'
"Me too you can style it in chrome via CSS but not in FF. Thanks"
2 hours ago
Lady Panter favorited Rafael's group Ning Networks en español
5 hours ago
Dustin Craig replied to John Bizley's discussion 'Show Your Ning 3.0 Sites'
"Thanks!"
6 hours ago
Dustin Craig replied to John Bizley's discussion 'Show Your Ning 3.0 Sites'
"Let me send you a friend request so I can message you rather than take this thread more off-topic."
6 hours ago
Paul Corona replied to Suzie Nielsen's discussion 'Watching Cultivating videos- have questions!'
"So many folks were asking the same questions that I thought actually showing them the basics of the…"
8 hours ago
Chris replied to JFarrow's discussion 'Ning Emails Going to Spam?'
"Nope, had all the answers: "it's not a bug", "it is a bug and has been…"
8 hours ago

© 2013   Created by Ning.

Badges  |  Report an Issue  |  Terms of Service