3 # This function (which loads the navbar and page content from the database) is
4 # called automatically by wfpl_main()
6 function enc_css_str($str) {
7 $str = str_replace("\\", "\\00005c", $str);
8 return str_replace("\"", "\\000022", $str);
11 function cms_display($basename, &$tem) {
12 if(preg_match('/([.]l(ocal)?$)|^192[.]168[.]|^127.0.0.1$|^10[.]/', $_SERVER['HTTP_HOST'])) {
13 $GLOBALS['wfpl_main_template']->set('$running_locally');
15 $tem->set('$host', this_host());
16 $nav_items = db_get_assocs('cms_pages', "coalesce(nullif(nav_title,''), title) as title,filename", 'where navbar!=0 order by navbar');
18 foreach($nav_items as &$item) {
19 $item['basename'] = $item['filename']; # for nav-links as images
20 if($item['filename'] == $basename) {
21 $item['current'] = true;
23 if($item['filename'] == 'index') {
24 $item['filename'] = './';
26 if($item['title'] == '') {
27 $item['title'] = '(untitled)';
30 $tem->set('$navbar_items', $nav_items);
33 $header_image = persistent_get('wfplcms_header_image');
35 $hi_css = "\n<style>\n";
36 if ($header_image['width'] != WFPL_SITE_WIDTH) {
37 $hi_css .= "#site_header {\n";
38 $hi_css .= 'width: ' . $header_image['width'] . "px;\n";
41 $hi_css .= "#site_header:before {\n";
42 $hi_css .= "content: \"\";\n";
43 $hi_css .= 'background-image: url(' . $header_image['url'] . ");\n";
44 $hi_css .= 'padding-top: ' . ($header_image['height'] / $header_image['width'] * 100) . "%;\n";
46 if ($header_image['caption']) {
47 $hi_css .= "#site_header:after {\n";
48 $hi_css .= "content: \"" . enc_css_str($header_image['caption']) . "\";\n";
51 $hi_css .= "</style>\n";
53 $tem->set('$cms_css', $hi_css);
56 $cms_page = db_get_assoc('cms_pages', 'id,title,keywords,description,layout,content,sidebar_content', 'where filename=%"', $basename);
57 cms_display_content($tem, $cms_page);
59 $footer = db_get_value('cms_pages', 'content', 'where filename="_footer"');
61 $tem->set('$cms_footer', $footer);
64 if(session_auth_can('admin_links')) {
65 $admin_links = array();
67 $admin_links['$edit_page_id'] = $cms_page['id'];
69 $tem->set('$admin_links', $admin_links);
79 function cms_display_content(&$tem, $row) {
81 $tem->set('$cms_title', $row['title']);
82 $tem->set('$meta_keywords', $row['keywords']);
83 $tem->set('$meta_description', $row['description']);
84 $tem->set('$cms_body', $row['content']);
85 if ($row['layout'] === '' || $row['layout'] === '0') {
86 $tem->set('$layout_centerer_class', 'full');
88 $tem->set('$layout_centerer_class', 'with_sidebar');
89 if ($row['layout'] === '1') {
90 $tem->set('$layout_sidebar_class', 'plain');
92 $tem->set('$layout_sidebar_class', 'bordered');
94 $tem->set('$cms_sidebar', $row['sidebar_content']);
98 $tem->set('$layout_centerer_class', 'full');