New Default Web Site Information: Difference between revisions

From Cumulus Wiki
Jump to navigationJump to search
(6 intermediate revisions by one other user not shown)
Line 10: Line 10:
# The web site is now "data driven". The old template had the all the data except for the graphs embedded within every page. This meant that every page was processed by Cumulus and uploaded to your web site at every update. The new template pages only have to be uploaded once, they then populate their data from a single JSON data file that Cumulus uploads at each update. This is much more efficient both in terms of bandwidth used and time taken.
# The web site is now "data driven". The old template had the all the data except for the graphs embedded within every page. This meant that every page was processed by Cumulus and uploaded to your web site at every update. The new template pages only have to be uploaded once, they then populate their data from a single JSON data file that Cumulus uploads at each update. This is much more efficient both in terms of bandwidth used and time taken.


You can view a live site using the new templates using live data [https://weather.oaktreewebs.co.uk here]. The only page that has been changed is the gauges page and this it is hoped that this will soon be part of the default site as well.
You can view a live site using the new templates using live data [https://weather.oaktreewebs.co.uk here]. The only page that has been changed is the gauges page and it is hoped that this will soon be part of the default site as well.


=== Installing the new template for new users ===
=== Installing the new template for new users ===
Line 25: Line 25:
=== Adding new pages to the new site menus ===
=== Adding new pages to the new site menus ===
Unlike the old site where you had the edit the menu on every existing page in order to add a new one, the new site has the menus defined once.
Unlike the old site where you had the edit the menu on every existing page in order to add a new one, the new site has the menus defined once.
You will find them (one for large screens, one for mobile) in the /js/setpagedata.js file defined as two long strings.
You will find it in the /js/menu.js file defined as a single object.
Here is the full menu...
Here is the full menu...
  <nowiki>
  <nowiki>
let menu = '<a href="index.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Now</a>' +
menuSrc = [
'<a href="gauges.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Gauges</a>' +
{title: "Now",          menu: "b",    url: "index.htm"},
'<a href="today.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Today</a>' +
{title: "Today",        menu: "b",    url: "today.htm"},
'<a href="yesterday.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Yesterday</a>' +
{title: "Yesterday",    menu: "b",    url: "yesterday.htm"},
'<a href="thismonth.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">This Month</a>' +
{title: "Gauges",      menu: "b",    url: "gauges.htm"},
'<a href="thisyear.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">This Year</a>' +
{title: "Records",      menu: "b",    submenu: true,      items: [
'<a href="record.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Records</a>' +
{title: "This Month",        menu: "b",    url: "thismonth.htm"},
'<a href="monthlyrecord.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Monthly Records</a>' +
{title: "This Year",        menu: "b",    url: "thisyear.htm"},
'<div class="w3-dropdown-hover">' +
{title: "All Time",          menu: "b",    url: "record.htm"},
'<button class="w3-btn w3-theme-hvr  at-slim w3-hide-medium w3-hide-small">Charts</button>' +
{title: "Monthly",          menu: "b",    url: "monthlyrecord.htm"}
'<div class="w3-dropdown-content w3-bar-block w3-theme">' +
]},
'<a href="trends.htm" class="w3-bar-item w3-btn w3-theme-d5-hvr at-slim">Trends</a>' +
{title: "Charts",    menu: "b",    submenu: true,    items: [
'<a href="selectachart.htm" class="w3-bar-item w3-btn w3-theme-d5-hvr at-slim">Select-a-graph</a>' +
{title: "Trends",            menu: "b",    url: "trends.htm"},
'<a href="historic.htm" class="w3-bar-item w3-btn w3-theme-d5-hvr at-slim">Historic</a>' +
{title: "Select-a-graph",    menu: "b",    url: "selectachart.htm"},
'</div>' +
{title: "Historic",          menu: "b",    url: "historic.htm"}
'</div>' +
]},
'<a href="https://cumulus.hosiene.co.uk/index.php" data-cmx-forumlink class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium w3-hide" target="_blank">Forum</a>' +
{title: "Reports",  menu: "b",    url: "noaareport.htm"},
'<a href="#" data-cmx-webcamlink class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium w3-hide webcamlink">Webcam</a>' +
{title: "Forum",    menu: "b",    url: "#",    forum: true,    new_window: true},
'<button class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-large w3-right" onClick="toggleMenu(\'Main_Menu_Mobile\')">&#9776;</button>';</nowiki>
{title: "Webcam",    menu: "b",    url: "#",    webcam: true}
];
</nowiki>
You can see each page is defined in this format...
You can see each page is defined in this format...
  <nowiki>
  <nowiki>
'<a href="today.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Today</a>' +
{title: "Now",          menu: "b",    url: "index.htm"},</nowiki>
</nowiki>
Where:
You can just add to this string variable, and the new menu item will then appear on every page. So to add a NOAA page add this...
title = the text that appears on the menu
menu = b - appears on both the full and mobile menus, w - show on full (wide) menu only, n - show on mobile (narrow) menu only
 
You can just add new items to this object, and the new menu item will then appear on every page. So to add a Custom page add this...
  <nowiki>
  <nowiki>
'<a href="noaa.php" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">NOAA Reports</a>' +
{title: "Custom",          menu: "b",    url: "custom.htm"},</nowiki>
</nowiki>
So it becomes...
So it becomes...
  <nowiki>
  <nowiki>
let menu = '<a href="index.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Now</a>' +
{title: "Now",          menu: "b",    url: "index.htm"},
'<a href="gauges.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Gauges</a>' +
{title: "Today",        menu: "b",    url: "today.htm"},
'<a href="today.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Today</a>' +
{title: "Custom",      menu: "b",    url: "custom.htm"},
'<a href="yesterday.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Yesterday</a>' +
{title: "Yesterday",    menu: "b",    url: "yesterday.htm"},
'<a href="thismonth.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">This Month</a>' +
{title: "Gauges",      menu: "b",    url: "gauges.htm"},
'<a href="thisyear.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">This Year</a>' +
{title: "Records",      menu: "b",    submenu: true,      items: [
'<a href="noaa.php" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">NOAA Reports</a>' +
{title: "This Month",        menu: "b",    url: "thismonth.htm"},
'<a href="record.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Records</a>' +
{title: "This Year",        menu: "b",    url: "thisyear.htm"},
'<a href="monthlyrecord.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium">Monthly Records</a>' +
{title: "All Time",          menu: "b",    url: "record.htm"},
'<div class="w3-dropdown-hover">' +
{title: "Monthly",          menu: "b",    url: "monthlyrecord.htm"}
'<button class="w3-btn w3-theme-hvr  at-slim w3-hide-medium w3-hide-small">Charts</button>' +
]},
'<div class="w3-dropdown-content w3-bar-block w3-theme">' +
{title: "Charts",    menu: "b",    submenu: true,    items: [
'<a href="trends.htm" class="w3-bar-item w3-btn w3-theme-d5-hvr at-slim">Trends</a>' +
{title: "Trends",            menu: "b",    url: "trends.htm"},
'<a href="selectachart.htm" class="w3-bar-item w3-btn w3-theme-d5-hvr at-slim">Select-a-graph</a>' +
{title: "Select-a-graph",    menu: "b",    url: "selectachart.htm"},
'<a href="historic.htm" class="w3-bar-item w3-btn w3-theme-d5-hvr at-slim">Historic</a>' +
{title: "Historic",          menu: "b",    url: "historic.htm"}
'</div>' +
]},
'</div>' +
{title: "Reports",  menu: "b",    url: "noaareport.htm"},
'<a href="https://cumulus.hosiene.co.uk/index.php" data-cmx-forumlink class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium w3-hide" target="_blank">Forum</a>' +
{title: "Forum",    menu: "b",    url: "#",    forum: true,    new_window: true},
'<a href="#" data-cmx-webcamlink class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-small w3-hide-medium w3-hide webcamlink">Webcam</a>' +
{title: "Webcam",    menu: "b",    url: "#",    webcam: true}
'<button class="w3-bar-item w3-btn w3-theme-hvr at-slim w3-hide-large w3-right" onClick="toggleMenu(\'Main_Menu_Mobile\')">&#9776;</button>';
</nowiki>
</nowiki>
Where I have inserted the new NOAA page between "This Year" and "Records"
Where I have inserted the new Custom page between "Now" and "Yesterday"
 
Submenus can also be defined, they use the property "submenu: true", and then have an array of submenu items (defined as above) added to the "items: []" array.
 
You will also find an example extended menu called "menuSample.js" in the webfiles/js folder.
 
Note: the forum and webcam menu items only have special properties "forum" and "webcam", these are used by the main page code to determine if these menu items should be displayed or not.


You will need to do a similar thing for the mobile menu, which begins...
<nowiki>
let mobileMenu = '<a href="index.htm" class="w3-bar-item w3-btn w3-theme-hvr at-slim">Now</a>' +
</nowiki>
Note that because the mobile menu is separate from the full screen menu, you can make the menu entries a little more descriptive if you wish.
=== Making changes to the pages===
=== Making changes to the pages===
Although looking at the new template pages makes the idea of editing them daunting, it really is not that hard.  There are just a few classes that are really useful.
Although looking at the new template pages makes the idea of editing them daunting, it really is not that hard.  There are just a few classes that are really useful.
Line 106: Line 110:
If you look at any of these panels you will see that they all have the following styles: w3-panel, w3-card and w3-theme-white.
If you look at any of these panels you will see that they all have the following styles: w3-panel, w3-card and w3-theme-white.


* w3-panel gives it its padding which is controlled by the w3Pro style sheet - I would not recommend messing with this - it's semi-minified.
* w3-panel gives it its left and right padding and top and bottom margin.  This is controlled by the w3Pro style sheet - I would not recommend messing with this - it's semi-minified.  If you change panel to container you loose the top and bottom margin.
* w3-card gives the panel the border shadow.  If you don't like this simply remove this class. Personally I just put an 'X' at the end of the style - 'w3-cardX, which means it is ignored.  This allows me to easily change my mind.
* w3-card gives the panel the border shadow.  If you don't like this simply remove this class. Personally I just put an 'X' at the end of the style - 'w3-cardX, which means it is ignored.  This allows me to easily change my mind.
* Finally the w3-theme-white gives the panel its background and foreground colour.  You have 10 variations on this; 'w3-theme-l1' to 'w3-theme-d5' as well as w3-theme, w3-theme-light and w3-theme-dark.
* Finally the w3-theme-white gives the panel its background and foreground colour.  You have 10 variations on this; 'w3-theme-l1' to 'w3-theme-d5' as well as w3-theme, w3-theme-light and w3-theme-dark.
Line 129: Line 133:


== Creating New Pages ==
== Creating New Pages ==
The new template is based on the w3schools template. You can read all about this template here: [https://www.w3schools.com/html/html_responsive.asp HTML Responsive Web Design]
The new template is based on the w3schools template. You can read all about this template here: [https://www.w3schools.com/html/html_responsive.asp HTML Responsive Web Design].
 
You should also visit the page [[Default_Website_Development|Default Website Development]] for up to date resources and information about developments that we are making to the default system.
=== Blank Template Pages ===
=== Blank Template Pages ===
The are a number of blank page templates available for download. You can find them here: [//{{SERVERNAME}}/Downloads/WebTemplatesCurrent-v1.zip Blank page templates v1]
The are a number of blank page templates available for download. You can find them here: [//{{SERVERNAME}}/Downloads/WebTemplatesCurrent-v1.zip Blank page templates v1]
Line 139: Line 146:
You can delete the sidebar if it is not required and say you just want a single column of information. This won't make the main page area expand into the sidebar area.  To do this I recommend you take a look at the existing chart pages - these all use an expanded single column layout.  (If you don't want it expanded, just change all divs that have the class 'graph-width' to 'site-width'.
You can delete the sidebar if it is not required and say you just want a single column of information. This won't make the main page area expand into the sidebar area.  To do this I recommend you take a look at the existing chart pages - these all use an expanded single column layout.  (If you don't want it expanded, just change all divs that have the class 'graph-width' to 'site-width'.


A new complete set of templates in three variations will be published Tues 9th March.  These are as follows:
* A set of four templates; 1, 2, 3 and 4 column with a sidebar on the left.
* A set of four templates; 1, 2, 3 and 4 column with NO sidebar
* A set of four templates; 1, 2, 3 and 4 column with the sidebar on the right.  (These are slightly different as the sidebar content starts at the top of the page.
If you wish to view them before downloading, they can be viewed at [https://weather.oaktreewebs.co.uk here]
These templates also demonstrate the various colour themes that are also available to download.  It is hoped by the end of the month to have at least one of these available as a complete alternative package.  If these's one template style that is preferred, I'll focus on that one.


=== Adding Data from the websitedata.json File ===
=== Adding Data from the websitedata.json File ===

Navigation menu