X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=inc%2Fcms.php;h=827880c5c0da476f59dadbdeb7d5185701b31143;hb=033b3723557ef39ca72c8440ba1c1a49dd47b319;hp=6628dea2a12cb55be8f805e7e5a0cde61b392a25;hpb=981eb0d01458cebf032955ef788c8c88a3a99428;p=wfpl-cms.git diff --git a/inc/cms.php b/inc/cms.php index 6628dea..827880c 100644 --- a/inc/cms.php +++ b/inc/cms.php @@ -2,55 +2,97 @@ # This function (which loads the navbar and page content from the database) is # called automatically by wfpl_main() + +function enc_css_str($str) { + $str = str_replace("\\", "\\00005c", $str); + return str_replace("\"", "\\000022", $str); +} + function cms_display($basename, &$tem) { - if(preg_match('/([.]l(ocal)?$)|^192[.]168[.]|^127.0.0.1$|^10[.]/', $_SERVER['HTTP_HOST'])) { - $GLOBALS['wfpl_main_template']->set('$running_locally'); - } - $tem->set('$host', this_host()); - $nav_items = db_get_assocs('cms_pages', "coalesce(nullif(nav_title,''), title) as title,filename", 'where navbar!=0 order by navbar'); - if($nav_items) { - foreach($nav_items as &$item) { - $item['basename'] = $item['filename']; # for nav-links as images - if($item['filename'] == $basename) { - $item['current'] = true; - } - if($item['filename'] == 'index') { - $item['filename'] = './'; - } - if($item['title'] == '') { - $item['title'] = '(untitled)'; - } - } - $tem->set('$navbar_items', $nav_items); - } - - $cms_page_id = cms_display_content($tem, 'where filename=%"', $basename); - - if(session_auth_can('admin_links')) { - $admin_links = array(); - if($cms_page_id) { - $admin_links['id'] = $cms_page_id; - } - $tem->set('$admin_links', $admin_links); - } - - if($cms_page_id) { - return true; - } else { - return false; - } + $tem->set('$host', this_host()); + $nav_items = db_get_assocs('cms_pages', "coalesce(nullif(nav_title,''), title) as title,filename", 'where navbar!=0 order by navbar'); + if($nav_items) { + foreach($nav_items as &$item) { + $item['basename'] = $item['filename']; # for nav-links as images + if($item['filename'] == $basename) { + $item['current'] = true; + } + if($item['filename'] == 'index') { + $item['filename'] = './'; + } + if($item['title'] == '') { + $item['title'] = '(untitled)'; + } + } + $tem->set('$navbar_items', $nav_items); + } + + $header_image = persistent_get('wfplcms_header_image'); + if ($header_image) { + $hi_css = "\n\n"; + + $tem->set('$cms_css', $hi_css); + } + + $cms_page = db_get_assoc('cms_pages', 'id,title,keywords,description,layout,content,sidebar_content', 'where filename=%"', $basename); + cms_display_content($tem, $cms_page); + + $footer = db_get_value('cms_pages', 'content', 'where filename="_footer"'); + if ($footer) { + $tem->set('$cms_footer', $footer); + } + + if(session_auth_can('admin_links')) { + $admin_links = array(); + if($cms_page) { + $admin_links['$edit_page_id'] = $cms_page['id']; + } + $tem->set('$admin_links', $admin_links); + } + + if($cms_page) { + return true; + } else { + return false; + } } -function cms_display_content(&$tem /*, 'where clause %", %i', string, int */) { - $args = array_slice(func_get_args(), 1); - $args = array_merge(array('cms_pages', 'id,title,keywords,description,content'), $args); - $row = call_user_func_array('db_get_assoc', $args); - if($row) { - $tem->set('$cms_title', $row['title']); - $tem->set('$meta_keywords', $row['keywords']); - $tem->set('$meta_description', $row['description']); - $tem->set('$cms_body', $row['content']); - return $row['id']; - } - return false; +function cms_display_content(&$tem, $row) { + if($row) { + $tem->set('$cms_title', $row['title']); + $tem->set('$meta_keywords', $row['keywords']); + $tem->set('$meta_description', $row['description']); + $tem->set('$cms_body', $row['content']); + if ($row['layout'] === '' || $row['layout'] === '0') { + $tem->set('siteLayoutClass', 'siteLayoutFull'); + } else { + $tem->set('siteLayoutClass', 'siteLayoutSidebar'); + if ($row['layout'] === '1') { + $tem->set('$layout_sidebar_class', 'plain'); + } else { + $tem->set('$layout_sidebar_class', 'bordered'); + } + $tem->set('$cms_sidebar', $row['sidebar_content']); + } + return $row['id']; + } else { + $tem->set('siteLayoutClass', 'siteLayoutFull'); + } }