[code.view]

[top] / php / GetSimpleCMS-3.2.3 / 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);
     	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 $html Optional, default is false.  
      * 				If this is true, it will strip out html from $content
      * @return string Echos.
      */
     function get_page_excerpt($n=200, $html=false) {
     	global $content;
     	$content_e = strip_decode($content);
     	$content_e = exec_filter('content',$content_e);
     	
     	if (!$html) {
     		$content_e = strip_tags($content_e);
     	}
     	
     	if (function_exists('mb_substr')) { 
     		$content_e = trim(mb_substr($content_e, 0, $n)) . '...';
     	} else {
     		$content_e = trim(substr($content_e, 0, $n)) . '...';
     	}
     
     	echo $content_e;
     }
     
     /**
      * 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 != '') {
     		$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)), 0, 160));
     		} else {
     			$description = trim(substr(strip_tags(strip_decode($content)), 0, 160));
     		}
     
     		$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 = '';
         
         $path = GSDATAPAGESPATH;
         $dir_handle = opendir($path) or die("Unable to open $path");
         $filenames = array();
         while ($filename = readdir($dir_handle)) {
             $filenames[] = $filename;
         }
         closedir($dir_handle);
         
         $count="0";
         $pagesArray = array();
         if (count($filenames) != 0) {
             foreach ($filenames as $file) {
                 if ($file == "." || $file == ".." || is_dir($path . $file) || $file == ".htaccess"  ) {
                     // not a page data file
                 } else {
     								$data = getXML($path . $file);
                     if ($data->private != 'Y') {
                         $pagesArray[$count]['menuStatus'] = $data->menuStatus;
                         $pagesArray[$count]['menuOrder'] = $data->menuOrder;
                         $pagesArray[$count]['menu'] = $data->menu;
                         $pagesArray[$count]['parent'] = $data->parent;
                         $pagesArray[$count]['title'] = $data->title;
                         $pagesArray[$count]['url'] = $data->url;
                         $pagesArray[$count]['private'] = $data->private;
                         $pagesArray[$count]['pubDate'] = $data->pubDate;
                         $count++;
                     }
                 }
             }
         }
         
         $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;
         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
      * @return string 
      */	
     function get_navigation($currentpage) {
     
     	$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') { 
     				if ("$currentpage" == "$url_nav") { $classes = "current active ". $page['parent'] ." ". $url_nav; } else { $classes = trim($page['parent'] ." ". $url_nav); }
     				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	
     	}
     }
     ?>

[top] / php / GetSimpleCMS-3.2.3 / admin / inc / theme_functions.php

contact | logmethods.com