359 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			359 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?
 | 
						|
/*
 | 
						|
Copyright (C) 2009 Zbigniew Zolkiewski
 | 
						|
 | 
						|
This program is free software; you can redistribute it and/or
 | 
						|
modify it under the terms of the GNU General Public License
 | 
						|
as published by the Free Software Foundation; either version 2
 | 
						|
of the License, or (at your option) any later version.
 | 
						|
 | 
						|
This program is distributed in the hope that it will be useful,
 | 
						|
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
GNU General Public License for more details.
 | 
						|
 | 
						|
You should have received a copy of the GNU General Public License
 | 
						|
along with this program; if not, write to the Free Software
 | 
						|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 | 
						|
 | 
						|
###########################################################################
 | 
						|
 | 
						|
Helper classes for Jorge. Performs various operations.
 | 
						|
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
Class url_crypt Extends parser {
 | 
						|
 | 
						|
	private $td;
 | 
						|
 | 
						|
	public function __construct($key) {
 | 
						|
		
 | 
						|
		$td = mcrypt_module_open('des', '', 'ecb', '');
 | 
						|
		$key = substr($key, 0, mcrypt_enc_get_key_size($td));
 | 
						|
		$iv_size = mcrypt_enc_get_iv_size($td);
 | 
						|
		$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
 | 
						|
		mcrypt_generic_init($td, $key, $iv);
 | 
						|
		$this->td = $td;
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	public function __destruct() {
 | 
						|
 | 
						|
		mcrypt_generic_deinit($this->td);
 | 
						|
		mcrypt_module_close($this->td);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	public function crypt_url($url) {
 | 
						|
 | 
						|
		return str_replace("+", "kezyt2s0", $this->url_encrypt($url));
 | 
						|
	}
 | 
						|
 | 
						|
	public function decrypt_url($url) {
 | 
						|
 | 
						|
		$url = str_replace("kezyt2s0", "+",$url);
 | 
						|
		return $this->decode_string($this->url_decrypt(base64_decode($url)));
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	private function url_encrypt($url) {
 | 
						|
 | 
						|
		$prepared_string = "begin&".$url;
 | 
						|
		$integrity = md5($prepared_string);
 | 
						|
		$url = "integrity=$integrity&".$prepared_string;
 | 
						|
		$td = $this->td;
 | 
						|
        	$c_t = mcrypt_generic($td, $url);
 | 
						|
		return base64_encode($c_t);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	private function url_decrypt($url) {
 | 
						|
 | 
						|
		$td = $this->td;
 | 
						|
		$p_t = mdecrypt_generic($td, $url);
 | 
						|
		return trim($p_t);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
Class parser {
 | 
						|
 | 
						|
	public $tslice = null;
 | 
						|
	public $peer_name_id = null;
 | 
						|
	public $peer_name = null;
 | 
						|
	public $peer_server_id = null;
 | 
						|
	public $peer_server = null;
 | 
						|
	public $jid = null;
 | 
						|
	public $ismylink = null;
 | 
						|
	public $linktag = null;
 | 
						|
	public $strt = null;
 | 
						|
	public $lnk = null;
 | 
						|
	public $action = null;
 | 
						|
	public $search_phase = null;
 | 
						|
	public $offset_arch = null;
 | 
						|
	public $offset_day = null;
 | 
						|
	public $tag_count = null;
 | 
						|
	public $time_start = null;
 | 
						|
	public $time_end = null;
 | 
						|
	public $single = null;
 | 
						|
 | 
						|
 | 
						|
	protected function decode_string($url) {
 | 
						|
 | 
						|
		parse_str($url);
 | 
						|
		$reconstructed = strstr($url,"begin");
 | 
						|
		settype($integrity,"string");
 | 
						|
		if ($integrity === md5($reconstructed)) { 
 | 
						|
				
 | 
						|
				if (isset($tslice)) { 
 | 
						|
						$this->tslice = $tslice; 
 | 
						|
					}
 | 
						|
				if (isset($peer_name_id)) { 
 | 
						|
						$this->peer_name_id = $peer_name_id; 
 | 
						|
					}
 | 
						|
				if (isset($peer_server_id)) { 
 | 
						|
						$this->peer_server_id = $peer_server_id; 
 | 
						|
					}
 | 
						|
				if (isset($jid)) {
 | 
						|
						$this->jid = $jid;
 | 
						|
					}
 | 
						|
				if (isset($lnk)) { 
 | 
						|
						$this->lnk = $lnk; 
 | 
						|
					}
 | 
						|
				if (isset($ismylink)) { 
 | 
						|
						$this->ismylink = $ismylink; 
 | 
						|
					}
 | 
						|
				if (isset($linktag)) { 
 | 
						|
						$this->linktag = $linktag; 
 | 
						|
					}
 | 
						|
				if (isset($strt)) { 
 | 
						|
						$this->strt = $strt; 
 | 
						|
					}
 | 
						|
				if (isset($action)) { 
 | 
						|
						$this->action = $action; 
 | 
						|
					}
 | 
						|
				if (isset($peer_name)) {
 | 
						|
						$this->peer_name = $peer_name;
 | 
						|
					}
 | 
						|
				if (isset($peer_server)) {
 | 
						|
						$this->peer_server = $peer_server;
 | 
						|
					}
 | 
						|
				if (isset($search_phase)) {
 | 
						|
						$this->search_phase = $search_phase;
 | 
						|
					}
 | 
						|
				if (isset($offset_arch)) {
 | 
						|
						$this->offset_arch = $offset_arch;
 | 
						|
					}
 | 
						|
				if (isset($offset_day)) {
 | 
						|
						$this->offset_day = $offset_day;
 | 
						|
					}
 | 
						|
				if (isset($tag_count)) {
 | 
						|
						$this->tag_count = $tag_count;
 | 
						|
					}
 | 
						|
				if (isset($time_start)) {
 | 
						|
						$this->time_start = $time_start;
 | 
						|
					}
 | 
						|
				if (isset($time_end)) {
 | 
						|
						$this->time_end = $time_end;
 | 
						|
					}
 | 
						|
				if (isset($single)) {
 | 
						|
						$this->single = $single;
 | 
						|
					}
 | 
						|
				
 | 
						|
				return true;
 | 
						|
				
 | 
						|
			} 
 | 
						|
			else { 
 | 
						|
				
 | 
						|
				return false;
 | 
						|
				
 | 
						|
			}
 | 
						|
 | 
						|
	return false;
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
Class render_html {
 | 
						|
 | 
						|
	protected $html_head = array();
 | 
						|
	protected $html_menu = array();
 | 
						|
	protected $html_over;
 | 
						|
	protected $html_main = array();
 | 
						|
	protected $html_body = array();
 | 
						|
	protected $html_foot = array();
 | 
						|
	private $head_items = integer;
 | 
						|
	private $menu_items = integer;
 | 
						|
	private $main_items = integer;
 | 
						|
	private $body_items = integer;
 | 
						|
	private $foot_itesm = integer;
 | 
						|
 | 
						|
        public function system_message($html) {
 | 
						|
 | 
						|
                $this->html_main = array("sys_message"=>$this->render_system($html));
 | 
						|
                return;
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
	public function status_message($html) {
 | 
						|
 | 
						|
		$this->html_main = array("status_message"=>$this->render_status($html));
 | 
						|
		return;
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
	public function alert_message($html) {
 | 
						|
 | 
						|
		$this->html_main = array("alert_message"=>$this->render_alert($html));
 | 
						|
		return;
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
	public function headers($html) {
 | 
						|
 | 
						|
		if ($this->head_items === 0) {
 | 
						|
 | 
						|
				$this->html_head = array("0"=>$html);
 | 
						|
				$this->head_items = 1;
 | 
						|
 | 
						|
			}
 | 
						|
			else{
 | 
						|
 | 
						|
				$this->head_items = $this->head_items + 1;
 | 
						|
				$this->html_head = $this->html_head += array($this->head_items=>$html);
 | 
						|
 | 
						|
		}
 | 
						|
                return;
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        public function menu($html) {
 | 
						|
 | 
						|
                if ($this->menu_items === 0) {
 | 
						|
 | 
						|
                                $this->html_menu = array("0"=>$html);
 | 
						|
				$this->menu_items = 1;
 | 
						|
 | 
						|
                        }
 | 
						|
                        else{
 | 
						|
 | 
						|
				$this->menu_items = $this->menu_items + 1;
 | 
						|
				$this->html_menu = $this->html_menu += array($this->menu_items=>$html);
 | 
						|
                }
 | 
						|
                return;
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
	public function set_overview($html) {
 | 
						|
 | 
						|
		$this->html_over = $html;
 | 
						|
		return;
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
        public function set_body($html) {
 | 
						|
 | 
						|
                if ($this->body_items === 0) {
 | 
						|
 | 
						|
                                $this->html_body = array("0"=>$html);
 | 
						|
				$this->body_items = 1;
 | 
						|
 | 
						|
                        }
 | 
						|
                        else{
 | 
						|
 | 
						|
				$this->body_items = $this->body_items + 1;
 | 
						|
				$this->html_body = $this->html_body += array($this->body_items=>$html);
 | 
						|
                }
 | 
						|
                return;
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        public function foot($html) {
 | 
						|
 | 
						|
		if ($this->foot_items === 0) {
 | 
						|
				
 | 
						|
				$this->html_foot = array("0"=>$html);
 | 
						|
				$this->foot_items = 1;
 | 
						|
			}
 | 
						|
			else{
 | 
						|
 | 
						|
				$this->foot_items = $this->foot_items + 1;
 | 
						|
				$this->html_foot = $this->html_foot += array($this->foot_items=>$html);
 | 
						|
		}
 | 
						|
                return;
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        public function commit_render() {
 | 
						|
		
 | 
						|
		$html_head = $this->html_head;
 | 
						|
		$html_menu = $this->html_menu;
 | 
						|
		$html_over = $this->html_over;
 | 
						|
                $html_main = $this->html_main;
 | 
						|
                $html_body = $this->html_body;
 | 
						|
		$html_foot = $this->html_foot;
 | 
						|
 | 
						|
		for ($z=0;$z<=$this->head_items;$z++) {
 | 
						|
			
 | 
						|
                	$out  .= $html_head[$z];
 | 
						|
 | 
						|
		}
 | 
						|
		$out .= $html_main[sys_message];
 | 
						|
		for ($z=0;$z<=$this->menu_items;$z++) {
 | 
						|
 | 
						|
			$out .= $html_menu[$z];
 | 
						|
		
 | 
						|
		}
 | 
						|
		$out .= $html_over;
 | 
						|
		$out .= $html_main[alert_message];
 | 
						|
		$out .= $html_main[status_message];
 | 
						|
                for ($z=0;$z<=$this->body_items;$z++) {
 | 
						|
 | 
						|
                        $out .= $html_body[$z];
 | 
						|
 | 
						|
                }
 | 
						|
		for ($z=0;$z<=$this->foot_items;$z++) {
 | 
						|
 | 
						|
                	$out .= $html_foot[$z];
 | 
						|
 | 
						|
		}
 | 
						|
                echo $out;
 | 
						|
		return;
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
	public function destroy_content() {
 | 
						|
 | 
						|
		$this->html_body = array();
 | 
						|
		return;
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	protected function render_alert($message, $class = "message") {
 | 
						|
 | 
						|
 | 
						|
		return '<center><div class="'.$class.'">'.$message.'</div><br></center>';
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	protected function render_status($message, $class = "message") {
 | 
						|
 | 
						|
		return '<center><div class="'.$class.'">'.$message.'</div><br></center>';
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
	protected function render_system($message, $class = null) {
 | 
						|
 | 
						|
		return '<center><div class="system">'.$message.'</div><br></center>';
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
?>
 |