Seditio Source
Root |
./othercms/GetSimpleCMS-3.3.16/admin/inc/theme_functions.php
<?php if(!defined('IN_GS')){ die('you cannot load this page directly.'); }
/**
 * Theme Functions
 *
 * These functions are used within the front-end of a GetSimple installation
 *
 * @link http://get-simple.info/docs/theme-codex/
 *
 * @package GetSimple
 * @subpackage Theme-Functions
 */

/**
 * Get Page Content
 *
 * @since 1.0
 * @uses $content
 * @uses exec_action
 * @uses exec_filter
 * @uses strip_decode
 *
 * @return string Echos.
 */
function get_page_content() {
    global
$content;
   
exec_action('content-top');
   
$content = strip_decode($content);
   
$content = exec_filter('content',$content);
    if(
getDef('GSCONTENTSTRIP',true)) $content = strip_content($content);
    echo
$content;
   
exec_action('content-bottom');
}

/**
 * Get Page Excerpt
 *
 * @since 2.0
 * @uses $content
 * @uses exec_filter
 * @uses strip_decode
 *
 * @param string $n Optional, default is 200.
 * @param bool $striphtml Optional, default false, true will strip html from $content
 * @param string $ellipsis Optional, Default '...', specify an ellipsis
 * @return string Echos.
 */
function get_page_excerpt($len=200, $striphtml=true, $ellipsis = '...') {
    GLOBAL
$content;
    if (
$len<1) return '';
   
$content_e = strip_decode($content);
   
$content_e = exec_filter('content',$content_e);
    if(
getDef('GSCONTENTSTRIP',true)) $content_e = strip_content($content_e);    
    echo
getExcerpt($content_e, $len, $striphtml, $ellipsis);
}


/**
 * Get Page Meta Keywords
 *
 * @since 2.0
 * @uses $metak
 * @uses strip_decode
 *
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_page_meta_keywords($echo=true) {
    global
$metak;
   
$myVar = encode_quotes(strip_decode($metak));
   
    if (
$echo) {
        echo
$myVar;
    } else {
        return
$myVar;
    }
}

/**
 * Get Page Meta Description
 *
 * @since 2.0
 * @uses $metad
 * @uses strip_decode
 *
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_page_meta_desc($echo=true) {
    global
$metad;
   
$myVar = encode_quotes(strip_decode($metad));
    if (
$echo) {
        echo
$myVar;
    } else {
        return
$myVar;
    }
}

/**
 * Get Page Title
 *
 * @since 1.0
 * @uses $title
 *
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_page_title($echo=true) {
    global
$title;
   
$myVar = strip_decode($title);
   
    if (
$echo) {
        echo
$myVar;
    } else {
        return
$myVar;
    }
}

/**
 * Get Page Clean Title
 *
 * This will remove all HTML from the title before returning
 *
 * @since 1.0
 * @uses $title
 *
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_page_clean_title($echo=true) {
    global
$title;
   
$myVar = strip_tags(strip_decode($title));
   
    if (
$echo) {
        echo
$myVar;
    } else {
        return
$myVar;
    }
}

/**
 * Get Page Slug
 *
 * This will return the slug value of a particular page
 *
 * @since 1.0
 * @uses $url
 *
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_page_slug($echo=true) {
    global
$url;
   
$myVar = $url;
   
    if (
$echo) {
        echo
$myVar;
    } else {
        return
$myVar;
    }
}

/**
 * Get Page Parent Slug
 *
 * This will return the slug value of a particular page's parent
 *
 * @since 1.0
 * @uses $parent
 *
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_parent($echo=true) {
    global
$parent;
   
$myVar = $parent;
   
    if (
$echo) {
        echo
$myVar;
    } else {
        return
$myVar;
    }
}

/**
 * Get Page Date
 *
 * This will return the page's updated date/timestamp
 *
 * @since 1.0
 * @uses $date
 * @uses $TIMEZONE
 *
 * @param string $i Optional, default is "l, F jS, Y - g:i A"
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_page_date($i = "l, F jS, Y - g:i A", $echo=true) {
    global
$date;
    global
$TIMEZONE;
    if (
$TIMEZONE != '') {
        if (
function_exists('date_default_timezone_set')) {
           
date_default_timezone_set($TIMEZONE);
        }
    }
   
   
$myVar = date($i, strtotime($date));
   
    if (
$echo) {
        echo
$myVar;
    } else {
        return
$myVar;
    }
}

/**
 * Get Page Full URL
 *
 * This will return the full url
 *
 * @since 1.0
 * @uses $parent
 * @uses $url
 * @uses $SITEURL
 * @uses $PRETTYURLS
 * @uses find_url
 *
 * @param bool $echo Optional, default is false. True will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_page_url($echo=false) {
    global
$url;
    global
$SITEURL;
    global
$PRETTYURLS;
    global
$parent;

    if (!
$echo) {
        echo
find_url($url, $parent);
    } else {
        return
find_url($url, $parent);
    }
}

/**
 * Get Page Header HTML
 *
 * This will return header html for a particular page. This will include the
 * meta desriptions & keywords, canonical and title tags
 *
 * @since 1.0
 * @uses exec_action
 * @uses get_page_url
 * @uses strip_quotes
 * @uses get_page_meta_desc
 * @uses get_page_meta_keywords
 * @uses $metad
 * @uses $title
 * @uses $content
 * @uses $site_full_name from configuration.php
 * @uses GSADMININCPATH
 *
 * @return string HTML for template header
 */
function get_header($full=true) {
    global
$metad;
    global
$title;
    global
$content;
    include(
GSADMININCPATH.'configuration.php');
   
   
// meta description    
   
if ($metad != '') {
       
$desc = get_page_meta_desc(FALSE);
    }
    else if(
getDef('GSAUTOMETAD',true))
    {
       
// use content excerpt, NOT filtered
       
$desc = strip_decode($content);
        if(
getDef('GSCONTENTSTRIP',true)) $desc = strip_content($desc);
       
$desc = cleanHtml($desc,array('style','script')); // remove unwanted elements that strip_tags fails to remove
       
$desc = getExcerpt($desc,160); // grab 160 chars
       
$desc = strip_whitespace($desc); // remove newlines, tab chars
       
$desc = encode_quotes($desc);
       
$desc = trim($desc);
    }

    if(!empty(
$desc)) echo '<meta name="description" content="'.$desc.'" />'."\n";

   
// meta keywords
   
$keywords = get_page_meta_keywords(FALSE);
    if (
$keywords != '') echo '<meta name="keywords" content="'.$keywords.'" />'."\n";
   
    if (
$full) {
        echo
'<link rel="canonical" href="'. get_page_url(true) .'" />'."\n";
    }

   
// script queue
   
get_scripts_frontend();
   
   
exec_action('theme-header');
}

/**
 * Get Page Footer HTML
 *
 * This will return footer html for a particular page. Right now
 * this function only executes a plugin hook so developers can hook into
 * the bottom of a site's template.
 *
 * @since 2.0
 * @uses exec_action
 *
 * @return string HTML for template header
 */
function get_footer() {
   
get_scripts_frontend(TRUE);
   
exec_action('theme-footer');
}

/**
 * Get Site URL
 *
 * This will return the site's full base URL
 * This is the value set in the control panel
 *
 * @since 1.0
 * @uses $SITEURL
 *
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_site_url($echo=true) {
    global
$SITEURL;
   
    if (
$echo) {
        echo
$SITEURL;
    } else {
        return
$SITEURL;
    }
}

/**
 * Get Theme URL
 *
 * This will return the current active theme's full URL
 *
 * @since 1.0
 * @uses $SITEURL
 * @uses $TEMPLATE
 *
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_theme_url($echo=true) {
    global
$SITEURL;
    global
$TEMPLATE;
   
$myVar = trim($SITEURL . "theme/" . $TEMPLATE);
   
    if (
$echo) {
        echo
$myVar;
    } else {
        return
$myVar;
    }
}

/**
 * Get Site's Name
 *
 * This will return the value set in the control panel
 *
 * @since 1.0
 * @uses $SITENAME
 *
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_site_name($echo=true) {
    global
$SITENAME;
   
$myVar = cl($SITENAME);
   
    if (
$echo) {
        echo
$myVar;
    } else {
        return
$myVar;
    }
}

/**
 * Get Administrator's Email Address
 *
 * This will return the value set in the control panel
 *
 * @depreciated as of 3.0
 *
 * @since 1.0
 * @uses $EMAIL
 *
 * @param bool $echo Optional, default is true. False will 'return' value
 * @return string Echos or returns based on param $echo
 */
function get_site_email($echo=true) {
    global
$EMAIL;
   
$myVar = trim(stripslashes($EMAIL));
   
    if (
$echo) {
        echo
$myVar;
    } else {
        return
$myVar;
    }
}


/**
 * Get Site Credits
 *
 * This will return HTML that displays 'Powered by GetSimple X.XX'
 * It will always be nice if developers left this in their templates
 * to help promote GetSimple.
 *
 * @since 1.0
 * @uses $site_link_back_url from configuration.php
 * @uses $site_full_name from configuration.php
 * @uses GSVERSION
 * @uses GSADMININCPATH
 *
 * @param string $text Optional, default is 'Powered by'
 * @return string
 */
function get_site_credits($text ='Powered by ') {
    include(
GSADMININCPATH.'configuration.php');
   
   
$site_credit_link = '<a href="'.$site_link_back_url.'" target="_blank" >'.$text.' '.$site_full_name.'</a>';
    echo
stripslashes($site_credit_link);
}

/**
 * Menu Data
 *
 * This will return data to be used in custom navigation functions
 *
 * @since 2.0
 * @uses GSDATAPAGESPATH
 * @uses find_url
 * @uses getXML
 * @uses subval_sort
 *
 * @param bool $xml Optional, default is false.
 *                True will return value in XML format. False will return an array
 * @return array|string Type 'string' in this case will be XML
 */
function menu_data($id = null,$xml=false) {
   
$menu_extract = array();

    global
$pagesArray;
   
$pagesSorted = subval_sort($pagesArray,'menuOrder');
    if (
count($pagesSorted) != 0) {
     
$count = 0;
      if (!
$xml){
        foreach (
$pagesSorted as $page) {
         
$text = (string)$page['menu'];
         
$pri = (string)$page['menuOrder'];
         
$parent = (string)$page['parent'];
         
$title = (string)$page['title'];
         
$slug = (string)$page['url'];
         
$menuStatus = (string)$page['menuStatus'];
         
$private = (string)$page['private'];
                   
$pubDate = (string)$page['pubDate'];
         
         
$url = find_url($slug,$parent);
         
         
$specific = array("slug"=>$slug,"url"=>$url,"parent_slug"=>$parent,"title"=>$title,"menu_priority"=>$pri,"menu_text"=>$text,"menu_status"=>$menuStatus,"private"=>$private,"pub_date"=>$pubDate);
         
          if (
$id == $slug) {
              return
$specific;
              exit;
          } else {
             
$menu_extract[] = $specific;
          }
        }
        return
$menu_extract;
      } else {
       
$xml = '<?xml version="1.0" encoding="UTF-8"?><channel>';    
            foreach (
$pagesSorted as $page) {
           
$text = $page['menu'];
           
$pri = $page['menuOrder'];
           
$parent = $page['parent'];
           
$title = $page['title'];
           
$slug = $page['url'];
           
$pubDate = $page['pubDate'];
           
$menuStatus = $page['menuStatus'];
           
$private = $page['private'];
               
           
$url = find_url($slug,$parent);
           
           
$xml.="<item>";
           
$xml.="<slug><![CDATA[".$slug."]]></slug>";
           
$xml.="<pubDate><![CDATA[".$pubDate."]]></pubDate>";
           
$xml.="<url><![CDATA[".$url."]]></url>";
           
$xml.="<parent><![CDATA[".$parent."]]></parent>";
           
$xml.="<title><![CDATA[".$title."]]></title>";
           
$xml.="<menuOrder><![CDATA[".$pri."]]></menuOrder>";
           
$xml.="<menu><![CDATA[".$text."]]></menu>";
           
$xml.="<menuStatus><![CDATA[".$menuStatus."]]></menuStatus>";
           
$xml.="<private><![CDATA[".$private."]]></private>";
           
$xml.="</item>";
            }
           
$xml.="</channel>";
            return
$xml;
        }
    }
}

/**
 * Get Component
 *
 * This will return the component requested.
 * Components are parsed for PHP within them.
 *
 * @since 1.0
 * @uses GSDATAOTHERPATH
 * @uses getXML
 * @modified mvlcek 6/12/2011
 *
 * @param string $id This is the ID of the component you want to display
 *                True will return value in XML format. False will return an array
 * @return string
 */
function get_component($id) {
    global
$components;

   
// normalize id
   
$id = to7bit($id, 'UTF-8');
   
$id = clean_url($id);

    if (!
$components) {
         if (
file_exists(GSDATAOTHERPATH.'components.xml')) {
           
$data = getXML(GSDATAOTHERPATH.'components.xml');
           
$components = $data->item;
        } else {
           
$components = array();
        }
    }
    if (
count($components) > 0) {
        foreach (
$components as $component) {
            if (
$id == $component->slug) {
                eval(
"?>" . strip_decode($component->value) . "<?php ");
            }
        }
    }
}

/**
 * Get Main Navigation
 *
 * This will return unordered list of main navigation
 * This function uses the menu opitions listed within the 'Edit Page' control panel screen
 *
 * @since 1.0
 * @uses GSDATAOTHERPATH
 * @uses getXML
 * @uses subval_sort
 * @uses find_url
 * @uses strip_quotes
 * @uses exec_filter
 *
 * @param string $currentpage This is the ID of the current page the visitor is on
 * @param string $classPrefix Prefix that gets added to the parent and slug classnames
 * @return string
 */    
function get_navigation($currentpage = "",$classPrefix = "") {

   
$menu = '';

    global
$pagesArray,$id;
    if(empty(
$currentpage)) $currentpage = $id;
   
   
$pagesSorted = subval_sort($pagesArray,'menuOrder');
    if (
count($pagesSorted) != 0) {
        foreach (
$pagesSorted as $page) {
           
$sel = ''; $classes = '';
           
$url_nav = $page['url'];
           
            if (
$page['menuStatus'] == 'Y') {
               
$parentClass = !empty($page['parent']) ? $classPrefix.$page['parent'] . " " : "";
               
$classes = trim( $parentClass.$classPrefix.$url_nav);
                if (
$currentpage == $url_nav) $classes .= " current active";
                if (
$page['menu'] == '') { $page['menu'] = $page['title']; }
                if (
$page['title'] == '') { $page['title'] = $page['menu']; }
               
$menu .= '<li class="'. $classes .'"><a href="'. find_url($page['url'],$page['parent']) . '" title="'. encode_quotes(cl($page['title'])) .'">'.strip_decode($page['menu']).'</a></li>'."\n";
            }
        }
       
    }
   
    echo
exec_filter('menuitems',$menu);
}

/**
 * Check if a user is logged in
 *
 * This will return true if user is logged in
 *
 * @since 3.2
 * @uses get_cookie();
 * @uses $USR
 *
 * @return bool
 */    
function is_logged_in(){
  global
$USR;
  if (isset(
$USR) && $USR == get_cookie('GS_ADMIN_USERNAME')) {
    return
true;
  }
}    
   

   
/**
 * @depreciated as of 2.04
 */
function return_page_title() {
    return
get_page_title(FALSE);
}
/**
 * @depreciated as of 2.04
 */
function return_parent() {
    return
get_parent(FALSE);
}
/**
 * @depreciated as of 2.04
 */
function return_page_slug() {
  return
get_page_slug(FALSE);
}
/**
 * @depreciated as of 2.04
 */
function return_site_ver() {
    return
get_site_version(FALSE);
}    
/**
 * @depreciated as of 2.03
 */
if(!function_exists('set_contact_page')) {
    function
set_contact_page() {
       
#removed functionality    
   
}
}
?>