aboutsummaryrefslogtreecommitdiffstats
path: root/boot.php
diff options
context:
space:
mode:
authorMike Macgirvin <mike@macgirvin.com>2010-07-01 16:48:07 -0700
committerMike Macgirvin <mike@macgirvin.com>2010-07-01 16:48:07 -0700
commit6348e70daa113e8b3203de8fbc919d08c90d972e (patch)
tree1bc3dd3bc85fe6136411086785cf6753960e22f9 /boot.php
downloadvolse-hubzilla-6348e70daa113e8b3203de8fbc919d08c90d972e.tar.gz
volse-hubzilla-6348e70daa113e8b3203de8fbc919d08c90d972e.tar.bz2
volse-hubzilla-6348e70daa113e8b3203de8fbc919d08c90d972e.zip
Initial checkin
Diffstat (limited to 'boot.php')
-rw-r--r--boot.php302
1 files changed, 302 insertions, 0 deletions
diff --git a/boot.php b/boot.php
new file mode 100644
index 000000000..7f7a81727
--- /dev/null
+++ b/boot.php
@@ -0,0 +1,302 @@
+<?php
+
+set_time_limit(0);
+
+define('EOL', '<br />');
+
+define('REGISTER_CLOSED', 0);
+define('REGISTER_APPROVE', 1);
+define('REGISTER_OPEN', 2);
+
+
+if(! class_exists('App')) {
+class App {
+
+ public $module_loaded = false;
+ public $config;
+ public $page;
+ public $profile;
+ public $user;
+ public $content;
+ public $error = false;
+ public $cmd;
+ public $argv;
+ public $argc;
+ public $module;
+
+ private $scheme;
+ private $hostname;
+ private $path;
+ private $db;
+
+ function __construct() {
+
+ $this->config = array();
+ $this->page = array();
+
+ $this->scheme = ((isset($_SERVER['HTTPS'])
+ && ($_SERVER['HTTPS'])) ? 'https' : 'http' );
+ $this->hostname = str_replace('www.','',
+ $_SERVER['SERVER_NAME']);
+ set_include_path("include/$this->hostname"
+ . PATH_SEPARATOR . 'include'
+ . PATH_SEPARATOR . '.' );
+
+ 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])) {
+ $this->module = $this->argv[0];
+ }
+ else {
+ $this->module = 'home';
+ }
+ }
+
+ function get_baseurl($ssl = false) {
+
+ return (($ssl) ? 'https' : $this->scheme) . "://" . $this->hostname
+ . ((isset($this->path) && strlen($this->path))
+ ? '/' . $this->path : '' );
+ }
+
+ function set_path($p) {
+ $this->path = ltrim(trim($p),'/');
+ }
+
+ function init_pagehead() {
+ if(file_exists("view/head.tpl"))
+ $s = file_get_contents("view/head.tpl");
+ $this->page['htmlhead'] = replace_macros($s,array('$baseurl' => $this->get_baseurl()));
+ }
+
+}}
+
+
+if(! function_exists('x')) {
+function x($s,$k = NULL) {
+ if($k != NULL) {
+ if((is_array($s)) && (array_key_exists($k,$s))) {
+ if($s[$k])
+ return (int) 1;
+ return (int) 0;
+ }
+ return false;
+ }
+ else {
+ if(isset($s)) {
+ if($s) {
+ return (int) 1;
+ }
+ return (int) 0;
+ }
+ return false;
+ }
+}}
+
+if(! function_exists('system_unavailable')) {
+function system_unavailable() {
+ include('system_unavailable.php');
+ killme();
+}}
+
+if(! function_exists('replace_macros')) {
+function replace_macros($s,$r) {
+
+ $search = array();
+ $replace = array();
+
+ if(is_array($r) && count($r)) {
+ foreach ($r as $k => $v ) {
+ $search[] = $k;
+ $replace[] = $v;
+ }
+ }
+ return str_replace($search,$replace,$s);
+}}
+
+
+
+if(! function_exists('fetch_url')) {
+function fetch_url($url,$binary = false) {
+ $ch = curl_init($url);
+ if(! $ch) return false;
+
+ curl_setopt($ch, CURLOPT_HEADER, 0);
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
+ curl_setopt($ch, CURLOPT_MAXREDIRS,8);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
+ if($binary)
+ curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
+
+ $s = curl_exec($ch);
+ curl_close($ch);
+ return($s);
+}}
+
+
+if(! function_exists('post_url')) {
+function post_url($url,$params) {
+ $ch = curl_init($url);
+ if(! $ch) return false;
+
+ curl_setopt($ch, CURLOPT_HEADER, 0);
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
+ curl_setopt($ch, CURLOPT_MAXREDIRS,8);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
+ curl_setopt($ch, CURLOPT_POST,1);
+ curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
+
+ $s = curl_exec($ch);
+ curl_close($ch);
+ return($s);
+}}
+
+
+if(! function_exists('random_string')) {
+function random_string() {
+ return(hash('sha256',uniqid(rand(),true)));
+}}
+
+if(! function_exists('notags')) {
+function notags($string) {
+ // protect against :<> with high-bit set
+ 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('&lt;','&gt;','&amp;'), $string));
+}}
+
+if(! function_exists('login')) {
+function login($register = false) {
+ $o = "";
+ $register_html = (($register) ? file_get_contents("view/register-link.tpl") : "");
+
+
+ if(x($_SESSION,'authenticated')) {
+ $o = file_get_contents("view/logout.tpl");
+ }
+ else {
+ $o = file_get_contents("view/login.tpl");
+
+ $o = replace_macros($o,array('$register_html' => $register_html ));
+ }
+ return $o;
+}}
+
+
+if(! function_exists('autoname')) {
+function autoname($len) {
+
+ $vowels = array('a','a','ai','au','e','e','e','ee','ea','i','ie','o','ou','u');
+ if(mt_rand(0,5) == 4)
+ $vowels[] = 'y';
+
+ $cons = array(
+ 'b','bl','br',
+ 'c','ch','cl','cr',
+ 'd','dr',
+ 'f','fl','fr',
+ 'g','gh','gl','gr',
+ 'h',
+ 'j',
+ 'k','kh','kl','kr',
+ 'l',
+ 'm',
+ 'n',
+ 'p','ph','pl','pr',
+ 'qu',
+ 'r','rh',
+ 's','sc','sh','sm','sp','st',
+ 't','th','tr',
+ 'v',
+ 'w','wh',
+ 'x',
+ 'z','zh'
+ );
+
+ $midcons = array('ck','ct','gn','ld','lf','lm','lt','mb','mm', 'mn','mp',
+ 'nd','ng','nk','nt','rn','rp','rt');
+
+ $noend = array('bl', 'br', 'cl','cr','dr','fl','fr','gl','gr',
+ 'kh', 'kl','kr','mn','pl','pr','rh','tr','qu','wh');
+
+ $start = mt_rand(0,2);
+ if($start == 0)
+ $table = $vowels;
+ else
+ $table = $cons;
+
+ $word = '';
+
+ for ($x = 0; $x < $len; $x ++) {
+ $r = mt_rand(0,count($table) - 1);
+ $word .= $table[$r];
+
+ if($table == $vowels)
+ $table = array_merge($cons,$midcons);
+ else
+ $table = $vowels;
+
+ }
+
+ $word = substr($word,0,$len);
+
+ foreach($noend as $noe) {
+ if((strlen($word) > 2) && (substr($word,-2) == $noe)) {
+ $word = substr($word,0,-1);
+ break;
+ }
+ }
+ if(substr($word,-1) == 'q')
+ $word = substr($word,0,-1);
+ return $word;
+}}
+
+if(! function_exists('killme')) {
+function killme() {
+ session_write_close();
+ exit;
+}}
+
+if(! function_exists('goaway')) {
+function goaway($s) {
+ header("Location: $s");
+ killme();
+}}
+
+
+if(! function_exists('xml_status')) {
+function xml_status($st) {
+ header( "Content-type: text/xml");
+ echo '<?xml version="1.0" encoding="UTF-8"?>'."\r\n";
+ echo "<result><status>$st</status></result>\r\n";
+ killme();
+}}
+
+if(! function_exists('local_user')) {
+function local_user() {
+ if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid')))
+ return $_SESSION['uid'];
+ return false;
+}}
+
+if(! function_exists('remote_user')) {
+function remote_user() {
+ if((x($_SESSION,'authenticated')) && (x($_SESSION,'cid')))
+ return $_SESSION['cid'];
+ return false;
+}}
+
+function footer(&$a) {
+
+ $s = fetch_url("http://fortunemod.com/cookie.php?equal=1");
+ $a->page['content'] .= "<div class=\"fortune\" >$s</div>";
+} \ No newline at end of file