public $page;
public $profile;
public $user;
+ public $cid;
+ public $contact;
public $content;
public $error = false;
public $cmd;
public $argv;
public $argc;
public $module;
+ public $pager;
private $scheme;
private $hostname;
private $path;
+ private $baseurl;
private $db;
function __construct() {
$this->config = array();
$this->page = array();
+ $this->pager= array();
$this->scheme = ((isset($_SERVER['HTTPS'])
&& ($_SERVER['HTTPS'])) ? 'https' : 'http' );
if(substr($_SERVER['QUERY_STRING'],0,2) == "q=")
$_SERVER['QUERY_STRING'] = substr($_SERVER['QUERY_STRING'],2);
-// $this->cmd = trim($_SERVER['QUERY_STRING'],'/');
$this->cmd = trim($_GET['q'],'/');
+
$this->argv = explode('/',$this->cmd);
$this->argc = count($this->argv);
if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
else {
$this->module = 'home';
}
+ $this->pager['page'] = ((x($_GET,'page')) ? $_GET['page'] : 1);
+ $this->pager['itemspage'] = 50;
+ $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+ $this->pager['total'] = 0;
}
function get_baseurl($ssl = false) {
-
- return (($ssl) ? 'https' : $this->scheme) . "://" . $this->hostname
+ if(strlen($this->baseurl))
+ return $this->baseurl;
+
+ $this->baseurl = (($ssl) ? 'https' : $this->scheme) . "://" . $this->hostname
. ((isset($this->path) && strlen($this->path))
? '/' . $this->path : '' );
+ return $this->baseurl;
+ }
+
+ function set_baseurl($url) {
+ $this->baseurl = $url;
+ }
+
+ function get_hostname() {
+ return $this->hostname;
+ }
+
+ function set_hostname($h) {
+ $this->hostname = $h;
}
function set_path($p) {
$this->path = ltrim(trim($p),'/');
}
+ function get_path() {
+ return $this->path;
+ }
+
+ function set_pager_total($n) {
+ $this->pager['total'] = intval($n);
+ }
+
+ function set_pager_itemspage($n) {
+ $this->pager['itemspage'] = intval($n);
+ $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+
+ }
+
function init_pagehead() {
if(file_exists("view/head.tpl"))
$s = file_get_contents("view/head.tpl");
return(str_replace(array("<",">","\xBA","\xBC","\xBE"), array('[',']','','',''), $string));
}}
-// The PHP built-in tag escape function has traditionally been buggy
if(! function_exists('escape_tags')) {
function escape_tags($string) {
- return(str_replace(array("<",">","&"), array('<','>','&'), $string));
+
+ return(htmlspecialchars($string));
}}
if(! function_exists('login')) {
if(! function_exists('xml_status')) {
function xml_status($st) {
- header( "Content-type: text/xml");
+ header( "Content-type: text/xml" );
echo '<?xml version="1.0" encoding="UTF-8"?>'."\r\n";
echo "<result><status>$st</status></result>\r\n";
killme();
$_SESSION['sysmsg'] .= $s;
-}}
\ No newline at end of file
+}}
+
+if(! function_exists('get_max_import_size')) {
+function get_max_import_size() {
+ global $a;
+ return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 );
+}}
+
+if(! function_exists('xmlify')) {
+function xmlify($str) {
+ $buffer = '';
+
+ for($x = 0; $x < strlen($str); $x ++) {
+ $char = $str[$x];
+
+ switch( $char ) {
+
+ case "\r" :
+ break;
+ case "&" :
+ $buffer .= '&';
+ break;
+ case "'" :
+ $buffer .= ''';
+ break;
+
+ case "\"" :
+ $buffer .= '"';
+ break;
+ case '<' :
+ $buffer .= '<';
+ break;
+ case '>' :
+ $buffer .= '>';
+ break;
+ case "\n" :
+ $buffer .= ' ';
+ break;
+ default :
+ $buffer .= $char;
+ break;
+ }
+ }
+ $buffer = trim($buffer);
+ return($buffer);
+}}
+
+function unxmlify($s) {
+ $ret = str_replace('&','&', $s);
+ $ret = str_replace(array('<','>','"','''),array('<','>','"',"'"),$ret);
+ return $ret;
+}
+
+function hex2bin($s) {
+ return(pack("H*",$s));
+}
+
+
+function paginate(&$a) {
+ $o = '';
+ $stripped = ereg_replace("(&page=[0-9]*)","",$_SERVER['QUERY_STRING']);
+ $stripped = str_replace('q=','',$stripped);
+ $stripped = trim($stripped,'/');
+ $url = $a->get_baseurl() . '/' . $stripped;
+
+
+ if($a->pager['total'] > $a->pager['itemspage']) {
+ $o .= '<div class="pager">';
+ if($a->pager['page'] != 1)
+ $o .= '<span class="pager_prev">'."<a href=\"$url".'&page='.($a->pager['page'] - 1).'">prev</a></span> ';
+
+ $o .= "<span class=\"pager_first\"><a href=\"$url"."&page=1\">first</a></span> ";
+
+ $numpages = $a->pager['total'] / $a->pager['itemspage'];
+
+ $numstart = 1;
+ $numstop = $numpages;
+
+ if($numpages > 14) {
+ $numstart = (($pagenum > 7) ? ($pagenum - 7) : 1);
+ $numstop = (($pagenum > ($numpages - 7)) ? $numpages : ($numstart + 14));
+ }
+
+ for($i = $numstart; $i <= $numstop; $i++){
+ if($i == $a->pager['page'])
+ $o .= '<span class="pager_current">'.(($i < 10) ? ' '.$i : $i);
+ else
+ $o .= "<span class=\"pager_n\"><a href=\"$url"."&page=$i\">".(($i < 10) ? ' '.$i : $i)."</a>";
+ $o .= '</span> ';
+ }
+
+ if(($a->pager['total'] % $a->pager['itemspage']) != 0) {
+ if($i == $a->pager['page'])
+ $o .= '<span class="pager_current">'.(($i < 10) ? ' '.$i : $i);
+ else
+ $o .= "<span class=\"pager_n\"><a href=\"$url"."&page=$i\">".(($i < 10) ? ' '.$i : $i)."</a>";
+ $o .= '</span> ';
+ }
+
+ $lastpage = (($numpages > intval($numpages)) ? intval($numpages)+1 : $numpages);
+ $o .= "<span class=\"pager_last\"><a href=\"$url"."&page=$lastpage\">last</a></span> ";
+
+ if(($a->pager['total'] - ($a->pager['itemspage'] * $a->pager['page'])) > 0)
+ $o .= '<span class="pager_next">'."<a href=\"$url"."&page=".($a->pager['page'] + 1).'">next</a></span>';
+ $o .= '</div>'."\r\n";
+ }
+ return $o;
+}
+
+function expand_acl($s) {
+
+ if(strlen($s)) {
+ $a = explode('<',$s);
+ for($x = 0; $x < count($a); $x ++) {
+ $a[$x] = intval(str_replace(array('<','>'),array('',''),$a[$x]));
+ }
+ return $a;
+ }
+ return array();
+}