# 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) {
$tem->set('$navbar_items', $nav_items);
}
- $cms_page_id = cms_display_content($tem, 'where filename=%"', $basename);
+ $header_image = persistent_get('wfplcms_header_image');
+ if ($header_image) {
+ $hi_css = "\n<style>\n";
+ if ($header_image['width'] != WFPL_SITE_WIDTH) {
+ $hi_css .= "#site_header {\n";
+ $hi_css .= 'width: ' . $header_image['width'] . "px;\n";
+ $hi_css .= "}\n";
+ }
+ $hi_css .= "#site_header:before {\n";
+ $hi_css .= "content: \"\";\n";
+ $hi_css .= 'background-image: url(' . $header_image['url'] . ");\n";
+ $hi_css .= 'padding-top: ' . ($header_image['height'] / $header_image['width'] * 100) . "%;\n";
+ $hi_css .= "}\n";
+ if ($header_image['caption']) {
+ $hi_css .= "#site_header:after {\n";
+ $hi_css .= "content: \"" . enc_css_str($header_image['caption']) . "\";\n";
+ $hi_css .= "}\n";
+ }
+ $hi_css .= "</style>\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);
}
- $header = db_get_value('cms_images', 'image', 'where name="Header"');
- if ($header) {
- $parts = explode(' ', $header . ' ', 7);
- $tem->set('$cms_header',
- '<div style="'
- . 'padding-top: ' . round(100000 * (int)$parts[2] / (int)$parts[1] / 1000) . '%;'
- . 'background-image: url(' . $parts[0] . ');'
- . 'background-repeat: no-repeat;'
- . 'background-size: 100% auto;'
- . '"></div>'
- );
- }
-
if(session_auth_can('admin_links')) {
$admin_links = array();
- if($cms_page_id) {
- $admin_links['$edit_page_id'] = $cms_page_id;
+ if($cms_page) {
+ $admin_links['$edit_page_id'] = $cms_page['id'];
}
$tem->set('$admin_links', $admin_links);
}
- if($cms_page_id) {
+ 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,layout,content,sidebar_content'), $args);
- $row = call_user_func_array('db_get_assoc', $args);
+function cms_display_content(&$tem, $row) {
if($row) {
$tem->set('$cms_title', $row['title']);
$tem->set('$meta_keywords', $row['keywords']);
} else {
$tem->set('$layout_centerer_class', 'full');
}
- return false;
}