The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
vB Weather Mk. 2 Details »» | |||||||||||||||||||||||||
This is a post of a much-revised hack originally posted (by myself) here. I am posting this as a new hack because MSNBC, who the raw weather data is provided through, has changed their source provider (from AccuWeather to The Weather Channel), which required a retooling of the data parsing code, as well as completely new databases. I have also made obsolete the weather_functions.php file, moving the functions to admin/functions.php, simplifying the ability to show current weather data on any page (if desired). Finally, in what I'm sure will be welcome news to many people who have installed the original, I've completely rewritten the instructions, making them, as far as I can tell, much simpler.
If you are unfamiliar with the original: This hack provides current weather conditions and a five-day forecast to your members. Each member can select from over 34,000 cities, by narrowing down from region (like continents), country, and subdivision (like states). Each member can also select to see temperatures in Fahrenheit or Celsius, as well as metric or standard measurements for the other data. A demo is available on my test board: http://www.jjr512.com/testboard/. I have set up an account for anyone to use to test it out (username: test; pw: test). If you are not logged in, you will see default weather on the home page (default is set to New York City), and cannot change settings (I forget if you can view a detailed forecast, though; you may be able to). If you do log in, you can change the settings for the test account, to see how it works. *** If you have installed any previous version, you should completely uninstall it. Read the instructions and work backwards from there: Delete all templates added, remove changes to any existing templates (I forget if there were any or not), delete all new tables from the database, delete all new files added by the old hack. All have been changed to some extent, some more than others, and it would be easier to work from a clean slate. Especially since some of the template names have changes, so if you don't delete the old ones, they'll just be sitting there doing nothing at all. It is also vitally important to delete (or "drop") the tables--I believe there were six--you added for the original version. The new ones have different data and, for some, a different structure, so do not just empty them. Remove them totally. Good luck! Change Log v1.1a: Current Version: Corrects a small error where an incorrect variable was used in the code to show the local time of the last update. If you already have v1.1, you only need to do the fix described in Post #82 below. v1.1: Changes display of last update time to be the correct time in the user's own local time zone; previously, it was always Eastern Time (GMT-5) (Upgrade instructions are in Post #79 below). Also breaks the weather_city.sql into six smaller pieces (useful only to new installations; existing installations need not worry about this). v1.0a: Adds instructions on how to add location to current weather on forums home page (changes to code added to index.php and forumhome_weather template). v1.0: Original Release Show Your Support
|
Comments |
#77
|
|||
|
|||
This is a great hack. Thank you!
Got a couple of probs tho...... 1) The table and default data comes up fine, but the 'Change Settings' and 'Get More Detailed Forecast. don't work. The pages loads but it just contains my header and background, nothing else. What am I doing wrong?? 2) I don't actually want it on my forums page, I'm using VPBLite, so I want a vertical box like the ones on phpportals. I managed to get it into that format ok, but how would I get it to appear on the portal page? I've given up on making it a 'block'. I tried adding the info to the 'vpbincfile' (which generates the portal page), instead of the index, and putting the variable into the portal template instead of the forumhome, but it won't appear. Any ideas? |
#78
|
||||
|
||||
Ok, I see what you are saying now. What I was looking for is the time that my site went out and got the update, whether is be automatically or through force update type setting (since I can't do force update and have to do it through settings, I will call it that). They must be going by the server time itself on MSNBC then.
If you come up with the time conversion, I would be very interested in trying it out. Thank you. Quote:
|
#79
|
||||
|
||||
Quote:
If whoever is responsible for that add-on to vbP hasn't updated it yet (last time I checked phpportals.com, they hadn't yet), they're welcome to take a look at mine to see what the changes are. And that would be the greatest of ironies, too, considering the fact that I wrote my hack because I couldn't get theirs without paying. |
#80
|
||||
|
||||
OK, I have uploaded a new ZIP which should show the time of the last update in the user's own local time zone. I have tested it on my own board and it seems to work fine, but let me know if there are any issues. Please note the time shown is the time stamp in the raw data that was last cached for the user. In other words, if a user sees the weather and this gets cached, then right after that, MSNBC releases a new raw data set, the user will still see the cached data, including the time stamp from it (adjusted for local time zone, of course), until the cache expires (by default after two hours), or the user does a force update.
If you already have an earlier version installed, here's how you upgrade. Upload the new weather.php file. Next, open index.php, and find Code:
eval("\$currentweather = \"".gettemplate("forumhome_weather")."\";"); Code:
$time_lastup = strtotime($weather[lastup]); $weather[updatedate] = vbdate($dateformat,$time_lastup); $weather[updatetime] = vbdate($timeformat,$time_lastup); Now you need to change two templates: weather_main and forumhome_weather. Do the same change to both templates. Find: Code:
Time of last update: $weatherdata[lastup] Code:
Time of last update: $weather[updatedate] at $weather[updatetime] *** If you've already installed this hack, you needn't worry about it, but, for the record, I've broken the weather_city.sql file into six smaller parts would should be easier for many websites to import without timing out. |
#81
|
|||
|
|||
Quote:
The old one worked - not in the blocks but it rendered on the portal page. This one appears to only render when the code is in the index.php and the variable is on the forum page. Regardless of where I put it tho, the fact remains that even on the forum home page I cannot change the settings or get a detailed forecast. I just get a blank page. Is this fixable, or is this because the of the portal (which is only the lite version and shouldn't interfere with anything). Obviously if users can't change the settings it will be unusable. |
#82
|
||||
|
||||
You can theoretically get it to appear on any page by adding the same bit of code you added to index.php to whatever file generates the page where you want it. For example, in vBulletin, if you wanted it to appear on the same page as a thread, you'd put it in showthread.php. Some files contain multiple actions which generate different displays and you may need to put the code in more than one spot in the same file. In general, you should probably put the code just before the line that calls the main template for the page you want it on. Because each page, file, and template are different, that is as far as I can go with helping to get it on other pages.
As for the other problem, I can't say if it's caused by the portal or not, because I don't have it. I don't know how the lite version is different from the regular version, but if it's really a portal, it should probably affect every single page. I just don't know how to help. |
#83
|
||||
|
||||
In the 1.1 version, in the new bit of code to show the update time in the local correct time, I had used an incorrect variable. If you've already installed it, in both index.php and weather.php, please find:
Code:
$time_lastup = strtotime($weather[lastup]); Code:
$time_lastup = strtotime($weatherdata[lastup]); The fix will be in v1.1a which I am about to attach. This is the only difference between v1.1 and v1.1a, so if you already have v1.1, just use the fix I just described. |
#84
|
||||
|
||||
JJR512 - Thanks, the update works great!
PhoenixBB - the vBPortal weather add-on adds a whole LOT of queries to your forum, as opposed to this one, which only adds 2. I actually removed vBPortal which has optimized by many many times. You can convert your forum index into a portal very easily - no need to use a 3rd-party program. |
#85
|
||||
|
||||
It seemed to be working without the new variables being changed, but I've changed them anyway.
|
#86
|
||||
|
||||
For some reason, the time of update lies 1 hour in the future for me... any way of fixing that?
|
#87
|
||||
|
||||
What do you have your Time Zone Offset set to (in the admin cp/vbulletin options/date time options)? And your own time zone?
|
#88
|
||||
|
||||
My time and timezone works everywhere else in vB - just not for weather.
Let me make sure I upgraded correctly... I followed the instructions in Post#79 and Post#82 - that's correct? |
#89
|
||||
|
||||
I didn't say anything else doesn't work anywhere else. I'd just like to know what those settings are so I can test it myself and maybe see what's going on.
|
#90
|
||||
|
||||
I see... the server time is Pacific Mountain Time. My time is GMT +10. Currently my time is 11:12 am. The Weather tells me that it last updated 11:40 am. (Has been telling me that since 10 am actually).
|
#91
|
||||
|
||||
Is the server time Pacific Time or Mountain Time? The two are different (PT is GMT-8, MT is GMT-7).
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|