<?php
/* Ulyxex version 1.5.4.6 ***************/
/* code http://ulyxex.logz.org **********/
/* Andre Lozano http://andre-lozano.org */
class Html extends Htmlz {
//~ to keep retro-compatibility with special scripts
//~ because name "Html" as a class produce a warning in php7 ?
}
class XmlSitemap {
public function urlset($val=null){
$result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?".">\n";
$result .= "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
$result .= $val."\n</urlset>\n";
return $result;
}
function tag($tag=null,$val=null){;
if ($val) return "<".$tag.">".$val."</".$tag.">";
}
/* xml sitemap tags */
public function url($val=null){
return $this->tag("url",$val);
}
public function loc($val=null){
return $this->tag("loc",$val);
}
public function lastmod($val=null){
return $this->tag("lastmod",$val);
}
public function changefreq($val=null){
return $this->tag("changefreq",$val);
}
public function priority($val=null){
return $this->tag("priority",$val);
}
}
class XmlRss {
public function rss($val=null,$params=null){
$result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?".">\n";
$result .= "<rss version=\"2.0\">\n<channel>\n";
$result .= $val."\n</channel>\n</rss>\n";
return $result;
}
function tag($tag=null,$val=null){
$params = $this->_sp($params);
if ($val) return "<".$tag.">".$val."</".$tag.">";
}
/* rss sitemap tags */
public function item($val=null){
return $this->tag("title",$val);
}
public function title($val=null){
return $this->tag("title",$val);
}
public function link($val=null){
return $this->tag("link",$val);
}
public function author($val=null){
return $this->tag("lastmod",$val);
}
public function description($val=null){
return $this->tag("description",$val);
}
public function pubdate($val=null){
return $this->tag("pubdate",$val);
}
}
#[\AllowDynamicProperties]
class Htmlz {
function __construct(){
$this->extUploadAllowed = array("7z","aac","ai","aif","aifc","aiff","arj","asf","asr","asx","au","avi","bin","bmp","cda","dcr","doc","dot","eps","flv","gif","gz","hqx","html","ico","jfif","jpe","jpeg","jpg","m4a","m4b","m4v","mid","mov","mp2","mp3","mp4","mpa","mpe","mpeg","mpg","odb","odc","odf","odg","odi","odm","odp","ods","odt","ogg","pdf","png","pps","ppt","ps","psd","ra","ram","rar","rm","rmi","rtf","sea","sit","sla","stc","std","sti","stw","swf","sxc","sxd","sxg","sxi","sxm","sxw","tar","tgz","tif","tiff","torrent","txt","vcf","wav","wcm","wdb","webm","webp","wks","wma","wmf","wmv","wps","wri","wrl","wrz","xaf","xbm","xla","xlc","xlm","xls","xlt","xlw","xml","xof","xpm","xsd","xsl","xwd","xspf","zip","pict");
}
/* ulyxex specific functions */
public function ulyxCredits($firstLine=True,$secondLine=True){
$t = new Translate();
$version = defined('VERSION')?VERSION:"0.0.0";
$firstLine = ($firstLine)?$this->p(
$this->span($this->ahref($this->root_url("index.php?k=contact&v=0"),$t->w("Contact website")),"class='contactsite'")
." ".
$this->span($this->ahref($this->root_url("login.php"),$t->w("Login")),"class='linklogin'")
,"class='contact'"):"";
$secondLine = ($secondLine)?$this->p( $this->ahref("http://ulyxex.logz.org",$t->wr("Made with Ulyxex").$version),"class='credits'"):"";
return $firstLine.$secondLine;
}
public function countQ(){
return $this->p("queries = ".$_SESSION['countqueries']);
}
/* special change menu */
public function selectOnChangeMenu($options=null,$name=null,$selected=null){
if ($name){$name = " id=\"".$name."\" name=\"".$name."\"";}
return "\n<select".$name." onchange='this.form.submit()' onmouseover='this.click()'>
>".$this->optionsChangeMenu($options,$selected)."\n</select>";
}
function optionsChangeMenu($options=null,$selected=null){
$optionsList = array();
foreach($options as $item=>$value){
if ($value == $selected){
//~ menu icon ☰
$optionsList[] = "<option value=\"".$value."\" selected=\"selected\">"."☰ ".$item."</option>";
} else {
$optionsList[] = "<option value=\"".$value."\">".$item."</option>";
}
}
return implode("\n",$optionsList);
}
/* html */
public function html($val=null,$params=null){
// ulyxex default use html version 5
return $this->html5($val,$params);
// return $this->html4($val,$params);
// return $this->xhtml1($val,$params);
}
public function html5($val=null,$params=null){
$params = $this->_sp($params);
$result = "<!DOCTYPE HTML>\n";
$result .= "<html".$params.">";
$result .= $val."</html>";
return $result;
}
public function html4($val=null,$params=null){
$params = $this->_sp($params);
$result = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
$result .= "<html".$params.">";
$result .= $val."</html>";
return $result;
}
public function xhtml1($val=null,$params=null){
$params = $this->_sp($params);
$result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?".">\n";
$result .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/html51/DTD/html51-transitional.dtd\">\n";
$result .= "<html xmlns=\"http://www.w3.org/1999/xhtml\"".$params.">";
$result .= $val."</html>\n";
return $result;
}
/* regular tags */
function tag($tag=null,$val=null,$params=null){
$params = $this->_sp($params);
if ($val) return "<".$tag.$params.">".$val."</".$tag.">\n";
}
public function head($val=null){
return $this->tag("head",$val);
}
public function body($val=null,$params=null){
$params = $this->_sp($params);
return $this->tag("body",$val,$params);
}
public function title($val=null){
return $this->tag("title",$val);
}
public function header($val=null,$params=null){
return $this->tag("header",$val,$params);
}
public function article($val=null,$params=null){
return $this->tag("article",$val,$params);
}
public function aside($val=null,$params=null){
return $this->tag("aside",$val,$params);
}
public function mark($val=null,$params=null){
return $this->tag("mark",$val,$params);
}
public function nav($val=null,$params=null){
return $this->tag("nav",$val,$params);
}
public function footer($val=null,$params=null){
return $this->tag("footer",$val,$params);
}
public function h1($val=null,$params=null){
return $this->tag("h1",$val,$params);
}
public function h2($val=null,$params=null){
return $this->tag("h2",$val,$params);
}
public function h3($val=null,$params=null){
return $this->tag("h3",$val,$params);
}
public function p($val=null,$params=null){
return $this->tag("p",$val,$params);
}
public function b($val=null,$params=null){
return $this->tag("strong",$val,$params);
}
public function pre($val=null,$params=null){
return $this->tag("pre",$val,$params);
}
public function div($val=null,$params=null){
return $this->tag("div",$val,$params);
}
public function span($val=null,$params=null){
return $this->tag("span",$val,$params);
}
public function ol($val=null,$params=null){
return $this->tag("ol",$val,$params);
}
public function ul($val=null,$params=null){
return $this->tag("ul",$val,$params);
}
public function li($val=null,$params=null){
return $this->tag("li",$val,$params);
}
public function table($val=null,$params=null){
return $this->tag("table",$val,$params);
}
public function thead($val=null,$params=null){
return $this->tag("thead",$val,$params);
}
public function tbody($val=null,$params=null){
return $this->tag("tbody",$val,$params);
}
public function tfoot($val=null,$params=null){
return $this->tag("tfoot",$val,$params);
}
public function th($val=null,$params=null){
return $this->tag("th",$val,$params);
}
public function tr($val=null,$params=null){
return $this->tag("tr",$val,$params);
}
public function td($val=null,$params=null){
return $this->tag("td",$val,$params);
}
/* unique tags head */
public function meta($action=null,$content=null,$type="http-equiv"){
if ($action) return "\n<meta ".$type."=\"".$action."\" content=\"".$content."\" />";
}
public function canonical($val){
//~ only for articles
if (!defined('HTTPSVAL')) {
define("HTTPSVAL",null);
}
$http = HTTPSVAL ? "https://":"http://";
if ($val) return "\n<link rel=\"canonical\" href=\"".$http.$val."\" />";
}
public function ico($val=null){
if ($val && file_exists($val)) return "<link rel=\"icon\" type=\"image/png\" href=\"".$val."\" />";
}
/* unique tags body */
public function br($val=null){
return $val."<br />\n";
}
public function ahref($target=null,$val=null,$params=null){
$params = $this->_sp($params);
if ($val && $target) return "<a href=\"".$target."\"".$params.">".$val."</a>";
}
public function audio($val=null,$type=null,$params=null){
$params = $this->_sp($params);
$result = "\n<audio".$params.">";
$result .= "\n<source src=\"".$val."\" type=\"".$type."\">";
$result .= "\n</audio>";
if ($val) return $result;
}
public function video($val=null,$type=null,$params=null){
$params = $this->_sp($params);
$result = "\n<video".$params.">";
$result .= "\n<source src=\"".$val."\" type=\"".$type."\">";
$result .= "\n</video>";
if ($val) return $result;
}
public function img($val=null,$params=null){
$params = $this->_sp($params);
if ($val) return "<img src=\"".$val."\"".$params." />";
}
/* special tag */
public function tag_by_fileType($val=null,$type=null,$params=null) {
$params = $this->_sp($params);
$data = explode("/",$type);
if ($data[0] == "audio") {
return $this->audio($val,$type,"controls=\"controls\"".$params);
} else if ($data[0] == "video") {
return $this->video($val,$type,"controls=\"controls\"".$params);
} else if ($data[0] == "image") {
return $this->img($val,$params);
} else {
return $this->ahref($val,$val,$params);
}
}
public function text2ascii($text=null) {
$text = strip_tags($text);
$text = trim($text);
$text = $this->replace_accent($text);
$text = preg_replace("/[^[:alnum:]\.]/","-",$text);
$text = preg_replace("/-+/","-",$text);
return $text;
}
public function error404(){
$head = $this->title("404 Not Found");
$body = $this->h1("Not Found").$this->p("The requested URL ".$_SERVER['PHP_SELF']." was not found on this server.");
return $this->html($this->head($head).$this->body($body));
}
public function alertPage($content="") {
$head = $this->title("Alert !");
$body = $this->p("Alert !","style='color:red'");
$body .= $this->h1($content,"style='color:red'");
return $this->html($this->head($head).$this->body($body));
}
public function color($val="",$color="black") {
if ($val) return "<span style=\"color:".$color."\">".$val."</span>";
}
public function comment($val=null){
if ($val) return "<!--".$val."-->\n";
}
public function css($val=null,$external=null){
$result = "";
if ($val!=null && $external==null){
$result = "\n<style type=\"text/css\">\n".$val."\n</style>";
} elseif($val!=null && $external!=null){
$result = "\n<link href=\"".$val."\" rel=\"stylesheet\" type=\"text/css\" />";
}
if ($val) return $result;
}
public function script($val=null,$external=null){
$result = "";
if ($val!=null && $external==null){
$result = "\n<script type=\"text/javascript\">\n".$val."\n</script>";
} elseif($val!=null && $external!=null && file_exists($val)){
$result = "\n<script src=\"".$val."\" type=\"text/javascript\"></script>";
}
if ($val) return $result;
}
/* form tag */
public function form($val="",$name=null,$method=null,$action=null,$enctype=null){
$result = "";
$result = "\n<form";
if ($name != null) $result .= " id=\"".$name."\" name=\"".$name."\"";
if ($method != null) $result .= " method=\"".$method."\"";
if ($action != null) $result .= " action=\"".$action."\"";
if ($enctype != null) $result .= " enctype=\"".$enctype."\"";
$result .= ">";
$result .= $val;
$result .= "\n</form>";
if ($val) return $result;
}
public function textarea($val=null,$name=null,$sizes=array(4,80),$params=null){
$result = "\n<textarea ";
if ($name != null) $result .= "id=\"".$name."\" name=\"".$name."\" ";
$result .= "rows=\"".$sizes[0]."\" cols=\"".$sizes[1]."\" ";
if ($params != null) $result .= $params;
$result .= ">";
$result .= $val;
$result .= "</textarea>";
return $result;
}
public function input($type=null,$name=null,$value=null,$params=null){
$result = "<input ";
if ($type != null) $result .= "type=\"".$type."\" ";
if ($name != null) $result .= "id=\"".$name."\" name=\"".$name."\" ";
if ($value != null) $result .= "value=\"".$value."\" ";
if ($params != null) $result .= $params." ";
$result .= "/>";
if ($type) return $result;
}
public function select($options=null,$name=null,$selected=null,$params=null){
if ($name){$name = " id=\"".$name."\" name=\"".$name."\"";}
$params = $this->_sp($params);
return "\n<select".$name.$params.">".$this->options($options,$selected)."\n</select>";
}
function options($options=null,$selected=null){
$optionsList = array();
foreach($options as $item=>$value){
if ($value == $selected){
$optionsList[] = "<option value=\"".$value."\" selected=\"selected\">".$item."</option>";
} else {
$optionsList[] = "<option value=\"".$value."\">".$item."</option>";
}
}
return implode("\n",$optionsList);
}
public function fieldset($val=null,$params=null){
return $this->tag("fieldset",$val,$params);
}
public function label($val=null,$params=null){
return $this->tag("label",$val,$params);
}
/* utilities */
function _sp($val=null){
if ($val) {
return " ".$val;
} else {
return $val;
}
}
public function crypt($word){
if (function_exists('sha1')){ // Only in PHP 4.3.0+
return sha1($word);
} elseif (function_exists('mhash')){ // Only if Mhash library is loaded
return bin2hex(mhash(MHASH_SHA1, $word));
} else {
return md5($word);
}
}
public function num($num){
if (!preg_match("/^[0-9]+$/",trim($num))) exit("number entry incorrect !".$num);
return $num;
}
public function word($word){
if ($word && !preg_match("/^[A-Za-z0-9_\/\.\:]+$/",trim($word))) exit("word entry incorrect ! use only 'A-Z a-z 0-9 or _ / . :' chars");
return $word;
}
public function safe($val=null){
$val = stripslashes($val);
$dbLink = mysqli_connect(HOSTMYSQL,USERMYSQL,PASSMYSQL,BASEMYSQL) or die("Error ".mysqli_error($link));
$result = mysqli_real_escape_string($dbLink,$val);
mysqli_close($dbLink);
return $result;
}
public function strWidthLeft($val=null,$size=128){
$val = strip_tags(html_entity_decode(utf8_decode(trim($val))));
if (strlen($val) > $size){
$result = substr($val,0,$size);
$words = array_filter(explode(" ",$result));
// delete last word fragment
if (count($words) > 1) array_pop($words);
$result = implode(" ",$words)."...";
} else {
$result = $val;
}
return utf8_encode($result);
}
public function strWidth($val=null,$size=64){
$val = strip_tags(html_entity_decode(utf8_decode(trim($val))));
$stringLen = strlen($val);
if ( $stringLen > $size ){
$e = floor(($size-2) / 2);
$result = substr($val,0,$e)."..".substr($val,-$e);
} else {
$result = $val;
}
if (strlen($result) < $size) $result = $result.str_repeat(" ",$size-strlen($result));
return utf8_encode($result);
}
public function url($val=Null){
return urlencode($val);
}
public function clean_short_url($val=Null,$length=128){
$val = html_entity_decode($val);
$val = $this->uly_strip_tags($val);
$val = $this->replace_accent($val);
$val = preg_replace('/[^\w\s]/', '', $val);
$val = preg_replace('/\s+/', ' ', $val);
if (strlen($val) > $length){
$result = substr($val,0,$length);
$words = array_filter(explode(" ",$result));
// delete last word fragment
if (count($words) > 1) array_pop($words);
$result = implode(" ",$words);
} else {
$result = $val;
}
return urlencode($result);
}
public function uly_htmlentities($val=Null){
return htmlentities($val,ENT_QUOTES,"UTF-8");
}
public function uly_strip_tags($val=Null){
return strip_tags(trim($val));
}
public function f4d($val){
return sprintf("%'-4d",$val);
}
public function echo_arr($arr=array()){
echo "<pre>",print_r($arr,true),"</pre>";
}
public function root_url($val=null){
if (!defined('HTTPSVAL')) {
define("HTTPSVAL",null);
}
$http = HTTPSVAL ? "https://":"http://";
if (isset($_SERVER['REQUEST_URI'])) {
$script = $_SERVER['REQUEST_URI'];
} elseif (isset($_SERVER['SCRIPT_NAME'])) {
$script = $_SERVER['SCRIPT_NAME'];
} elseif (isset($_SERVER['PHP_SELF'])) {
$script = $_SERVER['PHP_SELF'];
} else {
$script = null;
}
if ( preg_match("/\//",$script) ){
$relativPath = array();
$relativPath = explode("/",$script);
array_pop($relativPath);
$localDir = implode("/",$relativPath);
} else {
$localDir = "";
}
if (isset($_SERVER['HTTP_HOST'])){
$result = $http.$_SERVER['HTTP_HOST'].$localDir."/";
} elseif ( isset($_SERVER['SERVER_NAME']) ){
$result = $http.$_SERVER['SERVER_NAME'].$localDir."/";
} else {
$result = $localDir."/";
}
if (!empty($val)) $result .= $val;
return $result;
}
function replace_accent($val=null) {
return strtr(utf8_decode($val),
utf8_decode('ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ'),
'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy');
}
public function get_ext($fileName=null){
$data = explode(".",$fileName);
$ext = array_pop($data);
$ext = strtolower($ext);
return $ext;
}
public function format_file_size($octets) {
$resultat = $octets;
for ($i=0; $i < 8 && $resultat >= 1024; $i++) {
$resultat = $resultat / 1024;
}
if ($i > 0) {
return preg_replace('/,00$/', '', number_format($resultat, 2, ',', '')) . ' ' . substr('KMGTPEZY',$i-1,1) . 'o';
} else {
return $resultat . ' o';
}
}
public function sp($list){
return implode(" ", $list);
}
}
?>