Вход Регистрация
Файл: admin/inc/theme_functions.php
Строк: 573
<?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);
    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);
    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($istrtotime($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 != '') {
        
$description get_page_meta_desc(FALSE);
    } 
    else if(
getDef('GSAUTOMETAD',true))
    {
        
// get meta from content excerpt
        
if (function_exists('mb_substr')) { 
            
$description trim(mb_substr(strip_tags(strip_decode($content)), 0160));
        } else {
            
$description trim(substr(strip_tags(strip_decode($content)), 0160));
        }

        
$description str_replace('"',''$description);
        
$description str_replace("'",''$description);
        
$description preg_replace('/n/'" "$description);
        
$description preg_replace('/r/'" "$description);
        
$description preg_replace('/t/'" "$description);
        
$description preg_replace('/ +/'" "$description);
    }

    if(!empty(
$description)) echo '<meta name="description" content="'.$description.'" />'."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 '';

    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;
    
    
$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    
    
}
}
?>
Онлайн: 1
Реклама