'; }
+ }
+ else {
+
+
+// THIS is a typical menu link. What do you want it to look like?
+// Note that this is in here twice to deal with if the link has http in it for a link to another website
+ $fix = $menuItem['link'];
+ if(substr($fix,0,4) == "http"){$e = 1;}else{$e=0;}
+ if($e == 1){
+
+//It works the same for bootstrap 3 and 4 by default, but yourt template might want something other than li tags
+ $itemString.='
'; }
+ }
+ else {
+
+
+// THIS is a typical menu link. What do you want it to look like?
+// Note that this is in here twice to deal with if the link has http in it for a link to another website
+ $fix = $menuItem['link'];
+ if(substr($fix,0,4) == "http"){$e = 1;}else{$e=0;}
+ if($e == 1){
+
+//It works the same for bootstrap 3 and 4 by default, but yourt template might want something other than li tags
+ $itemString.=' '.$menuItem['label'].'';
+ }else{
+ $itemString.=' '.$menuItem['label'].'';
+}}
+ return $itemString;
+
+}
+
+// Let's deal with dropdown menus
+function customDropdownString($menuItem,$user_id){
+ $itemString='';
+ //bs4 usually uses divs, bs3 often uses li tags here
+ $itemString.='
';
+
+ // This is the little down arrow next to a dropdown menu. It works for bs3 and 4
+ $itemString.=' '.$menuItem['label'].'';
+
+ //bs4 usually uses divs, bs3 often uses ul tags here
+ $itemString.='
';
+
+ // These are the "child items" -- the things in the dropdown menu itself
+ // You can usually leave this section alone
+ foreach ($menuItem['children'] as $childItem){
+ $authorizedGroups = array();
+ foreach (fetchGroupsByMenu($childItem['id']) as $g) {
+ $authorizedGroups[] = $g->group_id;
+ }
+ if($childItem['logged_in']==0 || (hasPerm($authorizedGroups,$user_id) || in_array(0,$authorizedGroups))) {
+ $itemString.=DropdownString($childItem,$user_id); }
+ }
+ //if you used li and ul above, make sure you close those here.
+ $itemString.='
';
+ return $itemString;
+}
+
+// Set up notifications button/modal
+if ($user->isLoggedIn()) {
+ if ($dayLimitQ = $db->query('SELECT notif_daylimit FROM settings', array())) $dayLimit = $dayLimitQ->results()[0]->notif_daylimit;
+ else $dayLimit = 7;
+
+ // 2nd parameter- true/false for all notifications or only current
+ $notifications = new Notification($user->data()->id, false, $dayLimit);
+}
+/*
+Load main navigation menus
+*/
+$main_nav_all = $db->query("SELECT * FROM menus WHERE menu_title='main' ORDER BY display_order");
+
+/*
+Set "results" to true to return associative array instead of object...part of db class
+*/
+$main_nav=$main_nav_all->results(true);
+$prep=prepareMenuTree($main_nav); ;
+foreach ($prep as $key => $value) {
+ $authorizedGroups = array();
+ foreach (fetchGroupsByMenu($value['id']) as $g) {
+ $authorizedGroups[] = $g->group_id;
+ }
+ /*
+ Check if there are children of the current nav item...if no children, display single menu item, if children display dropdown menu
+ */
+ if (sizeof($value['children'])==0) {
+ if ($user->isLoggedIn()) {
+ if((hasPerm($authorizedGroups,$user->data()->id) || in_array(0,$authorizedGroups)) && $value['logged_in']==1) {
+ //if (checkMenu($value['id'],$user->data()->id) && $value['logged_in']==1) {
+ if($value['label']=='{{notifications}}') {
+ $itemString='';
+ if($settings->notifications==1) {
+ $itemString='
+
+navigation_type == 0) {
+ $query = $db->query("SELECT * FROM email");
+ $results = $query->first();
+
+ //Value of email_act used to determine whether to display the Resend Verification link
+ $email_act = $results->email_act;
+
+ // Set up notifications button/modal
+ if ($user->isLoggedIn()) {
+ if ($dayLimitQ = $db->query('SELECT notif_daylimit FROM settings', array()))
+ $dayLimit = $dayLimitQ->results()[0]->notif_daylimit;
+ else
+ $dayLimit = 7;
+
+ // 2nd parameter- true/false for all notifications or only current
+ $notifications = new Notification($user->data()->id, false, $dayLimit);
+ } ?>
+
+
Tabs can be used to contain a variety of content & elements. They are a good way to group relevant content. Display initial content in context to the user. Enable the user to flow through
+ more information as needed.
+
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor,
+ sunt cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable
+ VHS.
+
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf
+ moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. samus labore sustainable VHS.
+
Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content. Imagine the content here.
+
+
+
+
+
+
+ Heads up! Vestibulum tincidunt ullamcorper eros eget luctus. Nulla info porttitor libero.
+
+
+ Yo there! You should check danger in on some of those fields below.
+
+ Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
+ Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla. Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur
+ ac, vestibulum at eros. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
+
+ Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid
+ single-origin coffee nulla assumenda shoreditch et. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore
+ sustainable VHS.
+
Shiny, shiny. Varius azdipiscing elit. Duis pharetra codeply varius quam sit amet vulputate. Ovi lipsim diro? Then puska craft beer labore wes anderson cred nesciunt sapiente ea proident!
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor,
+ sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher
+ vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
+
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf
+ moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. samus labore sustainable VHS.
+