commit 43ad32700cc4b8998ea3a608922e47e9f6d7a861 Author: genuineparts Date: Mon Jun 2 10:01:12 2025 +0200 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b706ea6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/forum diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..c195377 --- /dev/null +++ b/.htaccess @@ -0,0 +1,50 @@ +Options -Indexes + +ErrorDocument 400 /error/404.html +ErrorDocument 401 /error/401.html +ErrorDocument 403 /error/403.html +ErrorDocument 404 /error/404.html +ErrorDocument 500 /error/500.html +ErrorDocument 503 /error/503.html + + +RewriteEngine On +RewriteBase / + +RewriteRule error/(.*)\.html$ index.php?task=error&sub=$1 + +RewriteRule ^register/(.*)? register.php?regstring=$1 +RewriteRule ^avatar/(.*)? index.php?task=rp&sum=avatar&id=$1 +RewriteRule ^reports/(.*)? index.php?task=chat&sub=report&uid=$1 +RewriteRule create_char.html index.php?task=rp&sub=create +RewriteRule chat.html index.php?task=chat +RewriteRule my_chars.html index.php?task=rp&sub=chars [QSA,L] +RewriteRule canon_chars.html index.php?task=rp&sub=canons [QSA,L] +RewriteRule logs.html index.php?task=chat&sub=logs [QSA,L] +RewriteRule private.html index.php?task=chat&sub=privatelogs [QSA,L] +RewriteRule ^text/guidelines.html$ /text/rules.html [R=301,L] +RewriteRule ^text/(.*\.html?)$ index.php?task=text&url=$1 [L] +RewriteRule profile/(.*) index.php?task=rp&sub=show&name=$1 + +RewriteCond %{HTTP_HOST} ^chat\.coppertopia\.net$ +RewriteRule ^in.html$ ?task=chat&sub=in [QSA,L] +RewriteCond %{HTTP_HOST} ^chat\.coppertopia\.net$ +RewriteRule ^$ ?task=chat [QSA,L] +RewriteCond %{HTTP_HOST} ^chat\.coppertopia\.net$ +RewriteRule ^online.html$ ?task=chat&sub=online [QSA,L] +RewriteCond %{HTTP_HOST} ^chat\.coppertopia\.net$ +RewriteRule ^style.css$ /modules/chat/style.css [QSA,L] +RewriteCond %{HTTP_HOST} ^chat\.coppertopia\.net$ +RewriteRule ^mobile.css$ /modules/chat/mobile.css [QSA,L] + +RewriteCond %{HTTP_HOST} ^logs\.coppertopia\.net$ +RewriteRule ^user/(.*)/key/(.*)$ ?task=chat&sub=privatelogs&user=$1&key=$2 [QSA,L] +RewriteCond %{HTTP_HOST} ^logs\.coppertopia\.net$ +RewriteRule ^id/(.*)$ ?task=chat&sub=privatelogs&id=$1 [QSA,L] +RewriteCond %{HTTP_HOST} ^logs\.coppertopia\.net$ +RewriteRule ^pdf/(.*)$ ?task=chat&sub=privatelogs&id=$1&out=pdf [QSA,L] +RewriteCond %{HTTP_HOST} ^logs\.coppertopia\.net$ +RewriteRule ^user/(.*)$ ?task=chat&sub=privatelogs&user=$1 [QSA,L] +RewriteCond %{HTTP_HOST} ^logs\.coppertopia\.net$ +RewriteRule ^$ ?task=chat&sub=logs [QSA,L] + \ No newline at end of file diff --git a/admin/addgroup.apnl.php b/admin/addgroup.apnl.php new file mode 100644 index 0000000..22b9f80 --- /dev/null +++ b/admin/addgroup.apnl.php @@ -0,0 +1,151 @@ + + * @package astat core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id: addgroup.apnl.php 41 2009-06-21 19:24:29Z genuineparts $ +*/ +If (!defined("in_BL_ADMIN")) { + die("Dieses Script kann nicht ausserhalb des Frameworks laufen!"); +} +$addnav["right"]=FALSE; +$session->page_begin("addgroup", True); + +class addgroup_panel extends admin_module{ + + function output(){ + global $session,$config,$db,$panel,$admin,$module,$root,$firephp,$log; + if(isset($_POST["send"])){ + if(!empty($_POST["name"])){ + $db->query("BEGIN"); + $db->query("INSERT INTO `" . $config["prefix"] . "role` (`role_name`) VALUES ('".$db->escape($_POST["name"])."')"); + $role_id=$db->last_id(); + unset($_POST["name"]); + unset($_POST["submit"]); + unset($_POST["send"]); + foreach($_POST as $key=>$value){ + $db->query("INSERT INTO `" . $config["prefix"] . "roleset` (`role_id`,`role_value_id`,`value`) VALUES ('".intval($role_id)."','".intval($key)."','".$db->escape($value)."')"); + } + $db->query("COMMIT"); + $panel->admin_message("Daten übernommen!","Die Daten wurden erfolgreich übernommen.",True,"addgroup",3); + }else{ + $panel->admin_message("Fehler!","Der Rollenname muss ausgefüllt werden.",True,"addgroup",3); + } + + }else{ + $result = $db->query("SELECT * FROM " . $config["prefix"] . "role_values"); + $panel->title="Gruppe anlegen"; + $panel->content='Hier kann man Benutzergruppen anlegen.'; + $panel->form(array("action"=>$config["path"]."/admin/index.php?panel=addgroup")); + $panel->content.="

Gruppename:

"; + $panel->field(array("name"=>"name","typ"=>"text","value"=>$data["name"])); + $panel->content.="

"; + $panel->content.=" + + + "; + while ($row = $db->fetch_array($result)){ + $panel->content.=""; + } + $panel->content.="
Rechte
".$row["text"].":
".$this->get_option($row["type"],$row["id"])."

"; + $panel->field(array("name"=>"send","typ"=>"hidden","value"=>"1")); + $panel->content.="
"; + $panel->submit(); + $panel->formClose(); + } + } + + function get_option($option,$name) { + global $config,$db,$panel,$userinfo,$admin,$root,$firephp; + + if($option=="yesno"){ + $checked["yes"]=""; + $checked["no"]=""; + $yn=$panel->radio(array("name"=>$name,"value"=>"1"),NULL,TRUE); + $yn.="Ja"; + $yn.=$panel->radio(array("name"=>$name,"value"=>"0"),NULL,TRUE); + $yn.="Nein"; + return $yn; + } + if($option=="onoff"){ + $checked["on"]=""; + $checked["off"]=""; + $yn=$panel->radio(array("name"=>$name,"value"=>"1"),NULL,TRUE); + $yn.="An"; + $yn.=$panel->radio(array("name"=>$name,"value"=>"0"),NULL,TRUE); + $yn.="Aus"; + return $yn; + } + + if($option=="text"){ + $text=$panel->field(array("name"=>$name,"typ"=>"text"),"",TRUE); + return $text; + } + + if(strstr($option,"wysiwyg")){ + $string=str_replace("wysiwyg(","",substr($option, 0, -1)); + $sarr=explode(";",$string); + foreach($sarr as $str){ + $substr=explode("|",$str); + $a_name[]=$substr[0]; + $value[]=$substr[1]; + } + if(is_array($sarr)){ + $text=$panel->textarea(array("name"=>$name, $a_name[0]=>$value[0],$a_name[1]=>$value[1]),"class=\"mceEditor\"",TRUE); + }else{ + $text=$panel->textarea(array("name"=>$name),"class=\"mceEditor\"",TRUE); + } + return $text; + } + + if(strstr($option,"textarea")){ + $string=str_replace("textarea(","",substr($option, 0, -1)); + $sarr=explode(";",$string); + foreach($sarr as $str){ + $substr=explode("|",$str); + $a_name[]=$substr[0]; + $value[]=$substr[1]; + } + if(is_array($sarr)){ + $text=$panel->textarea(array("name"=>$name, $a_name[0]=>$value[0],$a_name[1]=>$value[1]),"",TRUE); + }else{ + $text=$panel->textarea(array("name"=>$name),"",TRUE); + } + return $text; + } + + if(strstr($option,"select")){ + //$text=$panel->field("text",$name,"value=\"".$config[$name]."\"",TRUE); + $string=str_replace("select(","",substr($option, 0, -1)); + $sarr=explode(";",$string); + foreach($sarr as $str){ + $substr=explode("|",$str); + $values[$substr[0]]=$substr[1]; + } + $select=$panel->select($values,NULL,$name,"",TRUE); + return $select; + } + + } + +} +?> \ No newline at end of file diff --git a/admin/adduser.apnl.php b/admin/adduser.apnl.php new file mode 100644 index 0000000..08085ef --- /dev/null +++ b/admin/adduser.apnl.php @@ -0,0 +1,75 @@ +page_begin("adduser", True); + +class adduser_panel extends admin_module{ + + function output(){ + global $plugin,$session,$config,$db,$panel,$admin,$module,$root,$firephp,$log,$lang; + if(isset($_POST["send"])){ + if($_POST['role']==2 && $session->userdata['role']!=2){ + $panel->admin_message("Error","You cannot assign a role higher then yours!",True,"editusers",3); + } + if(!empty($_POST["name"]) && !empty($_POST["password"])){ + $key=$session->generate_key(50); + $plugin->run_hook('admin_user_before_create',array('data'=>$_POST,'key'=>$key,'user_fid'=>$session->userdata['fuid'])); + $db->query("INSERT INTO `" . $config["prefix"] . "users` (`username`,`realname`,`password`,`loginkey`,`role`,`email`,`active`) VALUES ('".$db->escape($_POST["name"])."','".$db->escape($_POST["realname"])."','".hash("sha256",$db->escape($_POST["password"]))."','".$key."','".$db->escape($_POST["role"])."','".$db->escape($_POST["email"])."','".$_POST["active"]."')"); + $_POST['uid']=$db->last_id(); + $plugin->run_hook('admin_user_after_create',array('data'=>$_POST)); + $panel->admin_message("Daten übernommen!","Die Daten wurden erfolgreich übernommen.",True,"adduser",3); + }else{ + $panel->admin_message("Fehler!","Der Name und das Passwort müssen ausgefült werden.",True,"adduser",3); + } + + }else{ + + $panel->title=$lang->_('ADDUSER'); + $panel->content=$lang->_('ADDUSERTEXT'); + $panel->form(array("action"=>$config["path"]."/admin/index.php?panel=adduser")); + $panel->content.="

".$lang->_('USERNAME').":

"; + $panel->field(array("name"=>"name","typ"=>"text","value"=>$data["name"])); + $panel->content.="

".$lang->_('REALNAME').":

"; + $panel->field(array("name"=>"realname","typ"=>"text","value"=>$data["realname"])); + $panel->content.="

".$lang->_('MAIL').":

"; + $panel->field(array("name"=>"email","value"=>$data["email"],"typ"=>"text")); + $panel->content.="

".$lang->_('PASSWORD').":

"; + $panel->field(array("name"=>"password","value"=>$data["password"],"typ"=>"password")); + $panel->content.="

".$lang->_('LOCATION').":

"; + $panel->field(array("name"=>"from","value"=>$data["from"],"typ"=>"text")); + $panel->content.="

".$lang->_('GENDER').":

"; + $panel->select(array("N/A"=>"u", "weiblich"=>"f","männlich"=>"m"),$data["gender"],"gender"); + + $panel->content.="

".$lang->_('BANREASON').":

"; + $panel->textarea(array("name"=>"bio","value"=>$data["bio"],"typ"=>"text")); + $panel->content.="

".$lang->_('HOMEPAGE').":

"; + $panel->field(array("name"=>"homepage","value"=>$data["homepage"],"typ"=>"text")); + $panel->content.="

ICQ:

"; + $panel->field(array("name"=>"icq","value"=>$data["icq"],"typ"=>"text")); + $panel->content.="

AIM:

"; + $panel->field(array("name"=>"aim","value"=>$data["aim"],"typ"=>"text")); + $panel->content.="

Skype:

"; + $panel->field(array("name"=>"skype","value"=>$data["skype"],"typ"=>"text")); + + $panel->content.="

".$lang->_('ROLE').":

"; + $result=$db->query("SELECT `id`,`role_name` FROM `" . $config["prefix"] . "role`"); + while($data = $db->fetch_array($result)){ + $dd[$data["role_name"]]=$data["id"]; + } + $panel->select($dd,"1","role"); + $panel->content.="

".$lang->_('ACTIVE').":

"; + $panel->select(array($lang->_('YES')=>1,$lang->_('NO')=>0),"0","active"); + $panel->field(array("name"=>"send","typ"=>"hidden","value"=>"1")); + $panel->content.="
"; + $panel->content.="
"; + $panel->submit(); + $panel->formClose(); + } + } + + + +} +?> diff --git a/admin/admin.css b/admin/admin.css new file mode 100644 index 0000000..f39763a --- /dev/null +++ b/admin/admin.css @@ -0,0 +1,287 @@ + +body{ + font: normal 12px/24px Verdana, Arial, Helvetica, sans-serif; + margin: 0; + padding: 0; + text-align: center; +} +a{ + color: #6699FF; +} +a:hover{ + color: #cccccc; +} +img{ + border:0px; +} +#sitetitle{ + width: 875px; + margin: 0 auto; + padding: 5px; + text-align: left; + border-right: 1px solid #d1d1d1; + border-left: 1px solid #d1d1d1; + border-bottom:1px solid #D1D1D1; + background-color: #fcfcfc; +} +table { + background:#E6E6E6; + border:2px solid #D1D1D1; + border-collapse:collapse; + border-spacing:1px; + color:#333333; +} +table td { + border:1px inset white; + padding:3px; +} +table th { + font-variant: small-caps; + border:1px inset white; + padding:3px; +} +#container{ + width: 1024px; + margin: 0 auto; + padding: 5px; + text-align: left; + border-right: 1px solid #d1d1d1; + border-left: 1px solid #d1d1d1; + border-bottom:1px solid #D1D1D1; + background-color: #fcfcfc; +} +#menu{ + float: left; + width: 190px; + margin: 0; +} +.menuitem_green{ + width: 175px; + height: 50px; + text-align: right; + background-image: url("images/green.gif"); +} +.menuitem_blue{ + width: 175px; + height: 50px; + text-align: right; + background-image: url("images/blue.gif"); +} +.menuitem_yellow{ + width: 175px; + height: 50px; + text-align: right; + background-image: url("images/yellow.gif"); +} +.menuitem_text{ + font-size:15px; + font-weight:bold; + text-decoration: bold; + font-variant:small-caps; + color: #FFFFFF; + padding:20px 12px 0 0; +} +#menu ul{ + list-style-type: none; + border-top: 1px solid #d1d1d1; + margin-top:5px; + padding: 0; +} +#menu li{ + text-indent: 1em; + + border-right: 1px solid #cccccc; + border-bottom:1px solid #D1D1D1; + border-left: 1px solid #d1d1d1 +} +#menu li a{ + color: #6699ff; + display: block; + padding: 2px 0 0 2px; + text-decoration: none; +} +#menu li a:hover{ + background-color: #CCCCCC; + text-decoration: underline; +} +#left p{ + margin: 1px; + padding-left: 1em; +} +#left form{ + padding: 1em 0 0 0; + margin: 0; +} +#left form input{ + margin: 0.2em 0; + background-color: #f3f3f3; + border: 1px solid #333333; + width: 125px; + font: 11px/22px Arial, Helvetica, sans-serif; + padding: 0.2em; +} +#left form .button{ + width: 75px; + background-color: #6699FF; + padding: 0; + margin: 0; +} +#content{ + border: 1px solid #d1d1d1; + float:left; + margin-bottom:5px; + margin-left:5px; + margin-top:5px; + min-height:300px; + padding-left:1em; + padding-right:1em; + padding-top:5px; + width:800px; +} +#minimal_content{ + float:left; + margin-left:-1px; + margin-right:-1px; + margin-top:-5px; + min-height:100px; + padding-left:1em; + padding-right:1em; + padding-top:5px; + width:800px; +} +#minimal_content h2{ + background-color: #B2EA6A; + text-indent: 1em; + font-size: 12px; + font-variant: small-caps; + color: #ffffff; + margin: 0; +} +#minimal_content h1{ + background-color:#B2EA6A; + color:#FFFFFF; + font-size:25px; + font-variant:small-caps; + height:25px; + margin:0; + text-indent:15px; +} +#minimal_content p{ + margin: 0; + padding: 1em; +} + +#content h2{ + background-color: #B2EA6A; + text-indent: 1em; + font-size: 12px; + font-variant: small-caps; + color: #ffffff; + margin: 0; +} +#content h1{ + background-color:#B2EA6A; + color:#FFFFFF; + font-size:25px; + font-variant:small-caps; + height:25px; + margin:0; + text-indent:15px; +} +#content p{ + margin: 0; + padding: 1em; +} #content form label{ + background-position:0 5px; + background-repeat:no-repeat; + clear:both; + margin-bottom:2px; + margin-right:3px; + padding-left:0.5em; + cursor:pointer; + padding:0.5em 0.5em 0.5em 20px; +} +.messageboxerror { + color: #ffffff; + background-color:#ff0000; + border: 1px solid #cc0000; +} + +.unchecked { + background-image:url("images/chk_off.png"); +} +.checked { + background-image:url("images/chk_on.png"); +} +.unselected { + background-image:url("images/rdo_off.png"); +} +.selected { + background-image:url("images/rdo_on.png"); +} +.sortcol { + cursor: pointer; + padding-right: 20px; + background-repeat: no-repeat; + background-position: right center; +} +.sortasc { + background-color: #DDFFAC; + background-image: url("images/up.gif"); +} +.sortdesc { + background-color: #B9DDFF; + background-image: url("images/down.gif"); +} +.nosort { + cursor: default; +} + +#footer{ + clear: both; + text-align: center; + margin: 0; + padding: 0; + background-color: #f9f9f9; + border: 1px solid #cccccc; +} + +.accordion_toggle { + display: block; + height: 30px; + width: 680px; + background: url(images/icons/arrow_left.png) no-repeat center left #a9d06a; + padding: 0 10px 0 10px; + line-height: 30px; + color: #ffffff; + font-weight: normal; + text-decoration: none; + outline: none; + font-size: 12px; + color: #000000; + border-bottom: 1px solid #cde99f; + cursor: pointer; + margin: 0 0 0 0; +} + +.accordion_toggle_active { + background: url(images/icons/arrow_down.png) no-repeat center left #e0542f; + color: #ffffff; + border-bottom: 1px solid #cde99f; +} + +.accordion_content { + background-color: #ffffff; + color: #444444; + overflow: hidden; +} + +.accordion_content h2 { + margin: 15px 0 5px 10px; + color: #0099FF; +} + +.accordion_content p { + line-height: 150%; + padding: 5px 10px 15px 10px; +} diff --git a/admin/banips.apnl.php b/admin/banips.apnl.php new file mode 100644 index 0000000..3f660c6 --- /dev/null +++ b/admin/banips.apnl.php @@ -0,0 +1,190 @@ + + * @package astat core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id$ +*/ +If (!defined("in_BL_ADMIN")) { + die("Dieses Script kann nicht ausserhalb des Frameworks laufen!"); +} +$addnav["right"]=FALSE; +$session->page_begin("edituser", True); + + +class banips_panel extends admin_module{ + + function output(){ + global $plugin,$session,$config,$db,$panel,$admin,$module,$root,$firephp,$lang; + if(isset($_GET['action']) && $_GET['action']=='add'){ + if(isset($_POST['send']) && !empty($_POST['ip'])){ + $db->query("INSERT INTO `" . $config["prefix"] . "banned_ips` (`ip`,`date`,`reason`) VALUES ('".$db->escape($_POST['ip'])."','".time()."','".$db->escape($_POST["reason"])."')"); + $panel->admin_message($lang->_('SUCCESS'),$lang->_('DATASAVED'),True,"banips",3); + } + }elseif($_GET["action"]=='delete' && $_GET['id']){ + $db->query("DELETE FROM `" . $config["prefix"] . "banned_ips` WHERE `id`='".intval($_GET['id'])."'"); + $panel->admin_message("Ban lifted","The ban was lifted.",True,"banips",3); + }else{ + + $left=""; + $right=""; + $asmodule=""; + $mainmodule=""; + $result=$db->query("SELECT * FROM `" . $config["prefix"] . "banned_ips`"); + while ($row = $db->fetch_array($result)){ + $ips[]=$row; + } + $panel->title=$lang->_('BANNEDIPS'); + $panel->content.=" + + + + + + + "; + if(!empty($ips)){ + foreach($ips as $i){ + $panel->content.=" + + + + "; + $panel->content.=" + "; + } + }else{ + $panel->content.=" + + "; + } + $panel->content.="
".$lang->_('ID')."".$lang->_('IP')."".$lang->_('DATE')."".$lang->_('REASON')."".$lang->_('ACTION')."
".$i['id']."".$i['ip']."".date('d.m.Y, H:i',$i['date'])."".$i['reason']."
".$lang->_('NOBANNEDIPS')."

"; + $panel->form(array("action"=>$config["path"]."/admin/index.php?panel=banips&action=add")); + $panel->content.="

".$lang->_('IP').":

"; + $panel->field(array("name"=>"ip","typ"=>"text")); + $panel->content.="

".$lang->_('REASON')."

"; + $panel->textarea(array("name"=>"reason","typ"=>"text")); + $panel->content.="
"; + $panel->field(array("name"=>"send","typ"=>"hidden","value"=>"1")); + $panel->content.="
"; + $panel->submit(); + $panel->formClose(); + $panel->parse_page(); + } + } + + function meta() { + global $module,$config,$db,$panel,$userinfo,$admin,$root; + $meta=' + + + + + '; + return $meta; + + } + + +} +?> diff --git a/admin/config.apnl.php b/admin/config.apnl.php new file mode 100644 index 0000000..c6a85cc --- /dev/null +++ b/admin/config.apnl.php @@ -0,0 +1,187 @@ +page_begin("config", True); + + +class config_panel extends admin_module{ + + function output(){ + global $module,$config,$db,$panel,$admin,$module,$root,$firephp,$log,$lang; + + if(isset($_POST["send"]) && $_POST["send"]==1){ + foreach($_POST as $post=>$value){ + if($post!="send" and $config[$post]!=$value){ + $field=$db->escape($post); + $update=$db->escape($value); + $db->query("UPDATE " . $config["prefix"] . "config SET `value`='".$update."' WHERE `name`='".$field."'"); + } + } + $result = $db->query("SELECT name, value FROM " . $config["prefix"] . "config"); + while ($row = $db->fetch_array($result)){ + $config[$row["name"]] = $row["value"]; + } + } + $result = $db->query("SELECT * FROM `" . $config["prefix"] . "config` v LEFT JOIN `" . $config["prefix"] . "config_categorys` c ON v.`category`=c.`cid`"); + while ($row = $db->fetch_array($result)){ + $data[$row["categoryname"]][]=$row; + } + $panel->title="Konfiguration"; + $panel->form(array("action"=>$config["path"]."/admin/index.php?panel=config")); + $panel->content.="
"; + foreach($data as $key=>$val){ + $panel->content.="

".$key."

+
"; + foreach($val as $v){ + $panel->content.=""; + } + + $panel->content.="
".$v["title"]."
".$v["description"]."
".$this->get_option($v["option"],$v["name"])."
"; + } + $panel->content.="


"; + $panel->field(array("typ"=>"hidden","name"=>"send","value"=>1)); + $panel->submit(); + $panel->formClose(); + $panel->foot.=''; + } + + function get_option($option,$name) { + global $config,$db,$panel,$userinfo,$admin,$root,$firephp,$lang; + + if($option=="yesno"){ + $checked["yes"]=""; + $checked["no"]=""; + if($config[$name]==1||$config[$name]==True||$config[$name]=="yes"){ + $checked["yes"]='checked="checked"'; + }else{ + $checked["no"]='checked="checked"'; + } + $yn=$panel->radio(array("name"=>$name,"value"=>"1"),$checked["yes"],TRUE); + $yn.="Ja"; + $yn.=$panel->radio(array("name"=>$name,"value"=>"0"),$checked["no"],TRUE); + $yn.="Nein"; + return $yn; + } + if($option=="onoff"){ + $checked["on"]=""; + $checked["off"]=""; + if($config[$name]==1||$config[$name]==True||$config[$name]=="on"){ + $checked["on"]='checked="checked"'; + }else{ + $checked["off"]='checked="checked"'; + } + $yn=$panel->radio(array("name"=>$name,"value"=>"1"),$checked["on"],TRUE); + $yn.="An"; + $yn.=$panel->radio(array("name"=>$name,"value"=>"0"),$checked["off"],TRUE); + $yn.="Aus"; + return $yn; + } + + if($option=="language"){ + $langs=$lang->getlanguages(); + foreach($langs as $lang){ + $values[$lang['name']]=$lang['short']; + } + $select=$panel->select($values,$config[$name],$name,"",TRUE); + return $select; + } + + if($option=="text"){ + $text=$panel->field(array("name"=>$name,"typ"=>"text","value"=>$config[$name]),"",TRUE); + return $text; + } + + if(strstr($option,"wysiwyg")){ + $string=str_replace("wysiwyg(","",substr($option, 0, -1)); + $sarr=explode(";",$string); + foreach($sarr as $str){ + $substr=explode("|",$str); + $a_name[]=$substr[0]; + $value[]=$substr[1]; + } + if(is_array($sarr)){ + $text=$panel->textarea(array("name"=>$name,"value"=>$config[$name], $a_name[0]=>$value[0],$a_name[1]=>$value[1]),"class=\"mceEditor\"",TRUE); + }else{ + $text=$panel->textarea(array("name"=>$name,"value"=>$config[$name]),"class=\"mceEditor\"",TRUE); + } + return $text; + } + + if(strstr($option,"textarea")){ + $string=str_replace("textarea(","",substr($option, 0, -1)); + $sarr=explode(";",$string); + foreach($sarr as $str){ + $substr=explode("|",$str); + $a_name[]=$substr[0]; + $value[]=$substr[1]; + } + if(is_array($sarr)){ + $text=$panel->textarea(array("name"=>$name,"value"=>$config[$name], $a_name[0]=>$value[0],$a_name[1]=>$value[1]),"",TRUE); + }else{ + $text=$panel->textarea(array("name"=>$name,"value"=>$config[$name]),"",TRUE); + } + return $text; + } + + if(strstr($option,"select")){ + //$text=$panel->field("text",$name,"value=\"".$config[$name]."\"",TRUE); + $string=str_replace("select(","",substr($option, 0, -1)); + $sarr=explode(";",$string); + foreach($sarr as $str){ + $substr=explode("|",$str); + $values[$substr[0]]=$substr[1]; + } + $select=$panel->select($values,$config[$name],$name,"",TRUE); + return $select; + } + + } + + function meta() { + global $module,$config,$db,$panel,$userinfo,$admin,$root; + $meta=' + + + + + + + '; + return $meta; + + } + + +} +?> diff --git a/admin/editgroup.apnl.php b/admin/editgroup.apnl.php new file mode 100644 index 0000000..47a176a --- /dev/null +++ b/admin/editgroup.apnl.php @@ -0,0 +1,304 @@ + + * @package astat core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id$ +*/ +If (!defined("in_BL_ADMIN")) { + die("Dieses Script kann nicht ausserhalb des Frameworks laufen!"); +} +$addnav["right"]=FALSE; +$session->page_begin("editgroup", True); + +class editgroup_panel extends admin_module{ + + function output(){ + global $session,$config,$db,$panel,$admin,$module,$root,$firephp,$log; + if(isset($_GET["editgroup"]) && $_GET["editgroup"]!=""){ + if(isset($_POST["send"]) && !empty($_POST["name"]) && !empty($_POST["group"])){ + if(!empty($_POST["name"])){ + $id=intval($_POST["group"]); + $db->query("UPDATE `" . $config["prefix"] . "role` SET `role_name`='".$db->escape($_POST["name"])."' WHERE id='".$id."'"); + unset($_POST["name"]); + unset($_POST["submit"]); + unset($_POST["send"]); + unset($_POST["group"]); + $db->query("DELETE FROM `" . $config["prefix"] . "roleset` WHERE `role_id`='".$id."'"); + foreach($_POST as $key=>$value){ + $db->query("INSERT INTO `" . $config["prefix"] . "roleset` (`role_id`,`role_value_id`,`value`) VALUES ('".$id."','".intval($key)."','".$db->escape($value)."')"); + } + $panel->admin_message("Daten übernommen!","Die Daten wurden erfolgreich übernommen.",True,"editgroup",3); + }else{ + $panel->admin_message("Fehler!","Der Rollenname muss ausgefüllt werden.",True,"editgroup",3); + } + }else{ + + $result = $db->query("SELECT * FROM `" . $config["prefix"] . "role` WHERE id='".intval($_GET["editgroup"])."'"); + $data = $db->fetch_array($result); + $panel->title="Gruppe editieren"; + $panel->content='Hier kann man Benutzergruppen bearbeiten.'; + $panel->form(array("action"=>$config["path"]."/admin/index.php?panel=editgroup&editgroup=".$data["id"])); + $panel->content.="

Gruppename:

"; + $panel->field(array("name"=>"name","typ"=>"text","value"=>$data["role_name"])); + $panel->content.="

"; + $panel->content.=" + + + "; + $result = $db->query("SELECT * FROM " . $config["prefix"] . "role_values"); + while ($row = $db->fetch_array($result)){ + $rval =$db->fetch_array($db->query("SELECT value FROM `" . $config["prefix"] . "roleset` WHERE role_value_id='".$row["id"]."' AND role_id='".$data["id"]."'")); + $row["value"]=$rval["value"]; + $rdata[]=$row; + } + foreach ($rdata as $d){ + $panel->content.=""; + } + $panel->content.="
Rechte
".$d["text"].":
".$this->get_option($d["type"],$d["id"],$d["value"])."

"; + $panel->field(array("name"=>"send","typ"=>"hidden","value"=>"1")); + $panel->field(array("name"=>"group","typ"=>"hidden","value"=>$data["id"])); + $panel->content.="
"; + $panel->submit(); + $panel->formClose(); + + $panel->parse_page(); + } + }elseif($_GET["action"]=="delete" && $_GET["group"]){ + $result=$db->query("SELECT id FROM `" . $config["prefix"] . "role` where `role_name`='User' LIMIT 1"); + $row = $db->fetch_array($result); + $db->query("UPDATE `" . $config["prefix"] . "users` SET `role`='".$row["id"]."' WHERE `role`='".intval($_GET["group"])."'"); + $db->query("DELETE FROM `" . $config["prefix"] . "role` WHERE id='".intval($_GET["group"])."'"); + $db->query("DELETE FROM `" . $config["prefix"] . "roleset` WHERE role_id='".intval($_GET["group"])."'"); + $panel->admin_message("Usergruppe gelöscht!","Die Gruppe wurde erfolgreich gelöscht.",True,"editgroup",3); + + }else{ + $result=$db->query("SELECT * FROM `" . $config["prefix"] . "role`"); + while ($row = $db->fetch_array($result)){ + $role[]=$row; + } + $panel->title="Vorhandene Rollen"; + $panel->content.=" + + + + + "; + if(!empty($role)){ + foreach($role as $u){ + $panel->content.=" + + "; + if(!$u["special_group"]){ + $panel->content.=" + "; + }else{ + $panel->content.=" + "; + } + } + }else{ + $panel->content.=" + + "; + } + $panel->content.="
IDNameAktionen
".$u["id"]."".$u["role_name"]."
Keine Rollen vorhanden.

"; + } + } + + function get_option($option,$name,$value) { + global $config,$db,$panel,$userinfo,$admin,$root,$firephp; + + if($option=="yesno"){ + $checked["yes"]=""; + $checked["no"]=""; + if($value==1||$value==True||$value=="yes"){ + $checked["yes"]='checked="checked"'; + }else{ + $checked["no"]='checked="checked"'; + } + $yn=$panel->radio(array("name"=>$name,"value"=>"1"),$checked["yes"],TRUE); + $yn.="Ja"; + $yn.=$panel->radio(array("name"=>$name,"value"=>"0"),$checked["no"],TRUE); + $yn.="Nein"; + return $yn; + } + if($option=="onoff"){ + $checked["on"]=""; + $checked["off"]=""; + if($value==1||$value==True||$value=="on"){ + $checked["on"]='checked="checked"'; + }else{ + $checked["off"]='checked="checked"'; + } + $yn=$panel->radio(array("name"=>$name,"value"=>"1"),$checked["on"],TRUE); + $yn.="An"; + $yn.=$panel->radio(array("name"=>$name,"value"=>"0"),$checked["off"],TRUE); + $yn.="Aus"; + return $yn; + } + + if($option=="text"){ + $text=$panel->field(array("name"=>$name,"typ"=>"text","value"=>$value),"",TRUE); + return $text; + } + + if(strstr($option,"wysiwyg")){ + $string=str_replace("wysiwyg(","",substr($option, 0, -1)); + $sarr=explode(";",$string); + foreach($sarr as $str){ + $substr=explode("|",$str); + $a_name[]=$substr[0]; + $value[]=$substr[1]; + } + if(is_array($sarr)){ + $text=$panel->textarea(array("name"=>$name,"value"=>$value, $a_name[0]=>$value[0],$a_name[1]=>$value[1]),"class=\"mceEditor\"",TRUE); + }else{ + $text=$panel->textarea(array("name"=>$name,"value"=>$value),"class=\"mceEditor\"",TRUE); + } + return $text; + } + + if(strstr($option,"textarea")){ + $string=str_replace("textarea(","",substr($option, 0, -1)); + $sarr=explode(";",$string); + foreach($sarr as $str){ + $substr=explode("|",$str); + $a_name[]=$substr[0]; + $value[]=$substr[1]; + } + if(is_array($sarr)){ + $text=$panel->textarea(array("name"=>$name,"value"=>$value, $a_name[0]=>$value[0],$a_name[1]=>$value[1]),"",TRUE); + }else{ + $text=$panel->textarea(array("name"=>$name,"value"=>$value),"",TRUE); + } + return $text; + } + + if(strstr($option,"select")){ + //$text=$panel->field("text",$name,"value=\"".$config[$name]."\"",TRUE); + $string=str_replace("select(","",substr($option, 0, -1)); + $sarr=explode(";",$string); + foreach($sarr as $str){ + $substr=explode("|",$str); + $values[$substr[0]]=$substr[1]; + } + $select=$panel->select($values,$value,$name,"",TRUE); + return $select; + } + + } + + function meta() { + global $module,$config,$db,$panel,$userinfo,$admin,$root; + $meta=' + + + + + '; + return $meta; + + } +} +?> diff --git a/admin/editusers.apnl.php b/admin/editusers.apnl.php new file mode 100644 index 0000000..17f4128 --- /dev/null +++ b/admin/editusers.apnl.php @@ -0,0 +1,260 @@ + + * @package astat core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id$ +*/ +If (!defined("in_BL_ADMIN")) { + die("Dieses Script kann nicht ausserhalb des Frameworks laufen!"); +} +$addnav["right"]=FALSE; +$session->page_begin("edituser", True); + + +class editusers_panel extends admin_module{ + + function output(){ + global $plugin,$session,$config,$db,$panel,$admin,$module,$root,$firephp,$lang; + if(isset($_GET["edituser"]) && $_GET["edituser"]!=""){ + if(isset($_POST["send"]) && !empty($_POST["name"]) && !empty($_POST["uid"])){ + $pwd=""; + if($_POST['role']==2 && $session->userdata['role']!=2){ + $panel->admin_message("Error","You cannot assign a role higher then yours!",True,"editusers",3); + } + $_POST['key']=$session->generate_key(50); + if($_POST["password"]!=""){ + $pwd=", `password`='".hash("sha256",$db->escape($_POST["password"]))."', `loginkey`='".$_POST['key']."'"; + } + $plugin->run_hook('admin_user_before_update',array('data'=>$_POST,'key'=>$key,'user_fid'=>$session->userdata['fuid'])); + $db->query("UPDATE `" . $config["prefix"] . "users` SET `username`='".$db->escape($_POST["name"])."',`realname`='".$db->escape($_POST["realname"])."',`email`='".$db->escape($_POST["email"])."',`from`='".$db->escape($_POST["from"])."',`gender`='".$db->escape($_POST["gender"])."',`bio`='".$db->escape($_POST["bio"])."',`homepage`='".$db->escape($_POST["homepage"])."',`icq`='".$db->escape($_POST["icq"])."',`aim`='".$db->escape($_POST["aim"])."',`skype`='".$db->escape($_POST["skype"])."',`role`='".$db->escape($_POST["role"])."',`active`='".$db->escape($_POST["active"])."',`char_suspended`='".$db->escape($_POST["char_suspended"])."'".$pwd." WHERE `uid`='".intval($_POST["uid"])."'"); + $_POST['user_fid']=$session->userdata['fuid']; + $plugin->run_hook('admin_user_after_update',array('data'=>$_POST)); + $panel->admin_message($lang->_('SUCCESS'),$lang->_('DATASAVED'),True,"editusers",3); + }else{ + $panel->title=$lang->_('EDITUSER'); + $panel->form(array("action"=>$config["path"]."/admin/index.php?panel=editusers&edituser=".$_GET["edituser"])); + $result=$db->query("SELECT * FROM `" . $config["prefix"] . "users` WHERE uid='".intval($_GET["edituser"])."'"); + $data = $db->fetch_array($result); + $panel->content.="

".$lang->_('USERNAME').":

"; + $panel->field(array("name"=>"name","typ"=>"text","value"=>$data["username"])); + $panel->content.="

".$lang->_('REALNAME').":

"; + $panel->field(array("name"=>"realname","typ"=>"text","value"=>$data["realname"])); + $panel->content.="

".$lang->_('MAIL').":

"; + $panel->field(array("name"=>"email","value"=>$data["email"],"typ"=>"text")); + $panel->content.="

".$lang->_('PASSWORD').":

"; + $panel->field(array("name"=>"password","value"=>"","typ"=>"password")); + $panel->content.="

".$lang->_('LOCATION').":

"; + $panel->field(array("name"=>"from","value"=>$data["from"],"typ"=>"text")); + $panel->content.="

".$lang->_('GENDER').":

"; + $panel->select(array($lang->_('N/A')=>"u", $lang->_('FEMALE')=>"f",$lang->_('MALE')=>"m"),$data["gender"],"gender"); + $panel->content.="

".$lang->_('HOMEPAGE').":

"; + $panel->field(array("name"=>"homepage","value"=>$data["homepage"],"typ"=>"text")); + $panel->content.="

".$lang->_('ICQ').":

"; + $panel->field(array("name"=>"icq","value"=>$data["icq"],"typ"=>"text")); + $panel->content.="

".$lang->_('AIM').":

"; + $panel->field(array("name"=>"aim","value"=>$data["aim"],"typ"=>"text")); + $panel->content.="

".$lang->_('SKYPE').":

"; + $panel->field(array("name"=>"skype","value"=>$data["skype"],"typ"=>"text")); + $panel->content.="

".$lang->_('BANREASON').":

"; + $panel->textarea(array("name"=>"bio","value"=>$data["bio"],"typ"=>"text")); + $panel->content.="
"; + $panel->content.="

".$lang->_('ROLE').":

"; + $result=$db->query("SELECT `id`,`role_name` FROM `" . $config["prefix"] . "role`"); + while($rdata = $db->fetch_array($result)){ + $dd[$rdata["role_name"]]=$rdata["id"]; + } + $panel->select($dd,$data["role"],"role"); + $panel->content.="
"; + $panel->content.="

".$lang->_('STATUS').":

"; + $panel->select(array($lang->_('ACTIVE')=>1,$lang->_('INACTIVE')=>0,$lang->_('BANNED')=>2),$data["active"],"active"); + $panel->content.="
"; + $panel->content.="

Char Creation supended?

"; + $panel->select(array($lang->_('YES')=>1,$lang->_('NO')=>0),$data["char_suspended"],"char_suspended"); + $panel->field(array("name"=>"send","typ"=>"hidden","value"=>"1")); + $panel->field(array("name"=>"uid","typ"=>"hidden","value"=>$data["uid"])); + $panel->content.="
"; + $panel->submit(); + $panel->formClose(); + $panel->parse_page(); + } + }elseif($_GET["action"]=="delete" && $_GET["user"]){ + $result=$db->query("SELECT * FROM `" . $config["prefix"] . "users` WHERE `uid`='".intval($_GET["user"])."'"); + $data = $db->fetch_array($result); + $plugin->run_hook('admin_user_before_delete',array('data'=>$data)); + $db->query("DELETE FROM `" . $config["prefix"] . "users` WHERE `uid`='".intval($_GET["user"])."'"); + $plugin->run_hook('admin_user_after_delete',array('data'=>$data)); + $panel->admin_message("User gelöscht!","Der User wurde erfolgreich gelöscht.",True,"editusers",3); + }else{ + + $left=""; + $right=""; + $asmodule=""; + $mainmodule=""; + $result=$db->query("SELECT * FROM `" . $config["prefix"] . "users` u LEFT JOIN `" . $config["prefix"] . "role` r ON r.id=u.role ORDER BY u.`uid`"); + while ($row = $db->fetch_array($result)){ + $user[]=$row; + } + $panel->title=$lang->_('USERS'); + $panel->content.=" + + + + + + + + + "; + if(!empty($user)){ + foreach($user as $u){ + if($u['active']==1){ + $u['activetext']=$lang->_('ACTIVE'); + }elseif($u['active']==2){ + $u['activetext']=$lang->_('BANNED'); + }else{ + $u['activetext']=$lang->_('INACTIVE'); + } + $panel->content.=" + + + + + "; + if($u["uid"]==$session->userdata["uid"]){ + $panel->content.=" + "; + }else{ + $panel->content.=" + "; + } + } + }else{ + $panel->content.=" + + "; + } + $panel->content.="
".$lang->_('ID')."".$lang->_('USERNAME')."".$lang->_('REALNAME')."".$lang->_('ROLE')."".$lang->_('STATUS')."".$lang->_('ACTION')."
".$u["uid"]."".$u["username"]."".$u["realname"]."".$u["role_name"]."".$u['activetext']."
Keine User verfügbar.

"; + } + } + + function meta() { + global $module,$config,$db,$panel,$userinfo,$admin,$root; + $meta=' + + + + + + '; + return $meta; + + } + + +} +?> diff --git a/admin/images/down.gif b/admin/images/down.gif new file mode 100644 index 0000000..c527b4e Binary files /dev/null and b/admin/images/down.gif differ diff --git a/admin/images/icons/accept.png b/admin/images/icons/accept.png new file mode 100644 index 0000000..89c8129 Binary files /dev/null and b/admin/images/icons/accept.png differ diff --git a/admin/images/icons/add.png b/admin/images/icons/add.png new file mode 100644 index 0000000..6332fef Binary files /dev/null and b/admin/images/icons/add.png differ diff --git a/admin/images/icons/anchor.png b/admin/images/icons/anchor.png new file mode 100644 index 0000000..9b3422c Binary files /dev/null and b/admin/images/icons/anchor.png differ diff --git a/admin/images/icons/application.png b/admin/images/icons/application.png new file mode 100644 index 0000000..1dee9e3 Binary files /dev/null and b/admin/images/icons/application.png differ diff --git a/admin/images/icons/application_add.png b/admin/images/icons/application_add.png new file mode 100644 index 0000000..2e94507 Binary files /dev/null and b/admin/images/icons/application_add.png differ diff --git a/admin/images/icons/application_cascade.png b/admin/images/icons/application_cascade.png new file mode 100644 index 0000000..da5c622 Binary files /dev/null and b/admin/images/icons/application_cascade.png differ diff --git a/admin/images/icons/application_delete.png b/admin/images/icons/application_delete.png new file mode 100644 index 0000000..0a335ac Binary files /dev/null and b/admin/images/icons/application_delete.png differ diff --git a/admin/images/icons/application_double.png b/admin/images/icons/application_double.png new file mode 100644 index 0000000..647592f Binary files /dev/null and b/admin/images/icons/application_double.png differ diff --git a/admin/images/icons/application_edit.png b/admin/images/icons/application_edit.png new file mode 100644 index 0000000..fb2efb8 Binary files /dev/null and b/admin/images/icons/application_edit.png differ diff --git a/admin/images/icons/application_error.png b/admin/images/icons/application_error.png new file mode 100644 index 0000000..b35fa57 Binary files /dev/null and b/admin/images/icons/application_error.png differ diff --git a/admin/images/icons/application_form.png b/admin/images/icons/application_form.png new file mode 100644 index 0000000..807b862 Binary files /dev/null and b/admin/images/icons/application_form.png differ diff --git a/admin/images/icons/application_form_add.png b/admin/images/icons/application_form_add.png new file mode 100644 index 0000000..28c2175 Binary files /dev/null and b/admin/images/icons/application_form_add.png differ diff --git a/admin/images/icons/application_form_delete.png b/admin/images/icons/application_form_delete.png new file mode 100644 index 0000000..cd305ec Binary files /dev/null and b/admin/images/icons/application_form_delete.png differ diff --git a/admin/images/icons/application_form_edit.png b/admin/images/icons/application_form_edit.png new file mode 100644 index 0000000..af486c9 Binary files /dev/null and b/admin/images/icons/application_form_edit.png differ diff --git a/admin/images/icons/application_form_magnify.png b/admin/images/icons/application_form_magnify.png new file mode 100644 index 0000000..7b7fbd1 Binary files /dev/null and b/admin/images/icons/application_form_magnify.png differ diff --git a/admin/images/icons/application_get.png b/admin/images/icons/application_get.png new file mode 100644 index 0000000..28e41ea Binary files /dev/null and b/admin/images/icons/application_get.png differ diff --git a/admin/images/icons/application_go.png b/admin/images/icons/application_go.png new file mode 100644 index 0000000..5cc2b0d Binary files /dev/null and b/admin/images/icons/application_go.png differ diff --git a/admin/images/icons/application_home.png b/admin/images/icons/application_home.png new file mode 100644 index 0000000..b60d0c8 Binary files /dev/null and b/admin/images/icons/application_home.png differ diff --git a/admin/images/icons/application_key.png b/admin/images/icons/application_key.png new file mode 100644 index 0000000..998d65c Binary files /dev/null and b/admin/images/icons/application_key.png differ diff --git a/admin/images/icons/application_lightning.png b/admin/images/icons/application_lightning.png new file mode 100644 index 0000000..7e91545 Binary files /dev/null and b/admin/images/icons/application_lightning.png differ diff --git a/admin/images/icons/application_link.png b/admin/images/icons/application_link.png new file mode 100644 index 0000000..f8fbb3e Binary files /dev/null and b/admin/images/icons/application_link.png differ diff --git a/admin/images/icons/application_osx.png b/admin/images/icons/application_osx.png new file mode 100644 index 0000000..9f022ec Binary files /dev/null and b/admin/images/icons/application_osx.png differ diff --git a/admin/images/icons/application_osx_terminal.png b/admin/images/icons/application_osx_terminal.png new file mode 100644 index 0000000..b3d8ce0 Binary files /dev/null and b/admin/images/icons/application_osx_terminal.png differ diff --git a/admin/images/icons/application_put.png b/admin/images/icons/application_put.png new file mode 100644 index 0000000..c30cf59 Binary files /dev/null and b/admin/images/icons/application_put.png differ diff --git a/admin/images/icons/application_side_boxes.png b/admin/images/icons/application_side_boxes.png new file mode 100644 index 0000000..efbf3c4 Binary files /dev/null and b/admin/images/icons/application_side_boxes.png differ diff --git a/admin/images/icons/application_side_contract.png b/admin/images/icons/application_side_contract.png new file mode 100644 index 0000000..3585f94 Binary files /dev/null and b/admin/images/icons/application_side_contract.png differ diff --git a/admin/images/icons/application_side_expand.png b/admin/images/icons/application_side_expand.png new file mode 100644 index 0000000..030cf7c Binary files /dev/null and b/admin/images/icons/application_side_expand.png differ diff --git a/admin/images/icons/application_side_list.png b/admin/images/icons/application_side_list.png new file mode 100644 index 0000000..248eaf1 Binary files /dev/null and b/admin/images/icons/application_side_list.png differ diff --git a/admin/images/icons/application_side_tree.png b/admin/images/icons/application_side_tree.png new file mode 100644 index 0000000..f04a52b Binary files /dev/null and b/admin/images/icons/application_side_tree.png differ diff --git a/admin/images/icons/application_split.png b/admin/images/icons/application_split.png new file mode 100644 index 0000000..a91c78a Binary files /dev/null and b/admin/images/icons/application_split.png differ diff --git a/admin/images/icons/application_tile_horizontal.png b/admin/images/icons/application_tile_horizontal.png new file mode 100644 index 0000000..8a1191c Binary files /dev/null and b/admin/images/icons/application_tile_horizontal.png differ diff --git a/admin/images/icons/application_tile_vertical.png b/admin/images/icons/application_tile_vertical.png new file mode 100644 index 0000000..1d40383 Binary files /dev/null and b/admin/images/icons/application_tile_vertical.png differ diff --git a/admin/images/icons/application_view_columns.png b/admin/images/icons/application_view_columns.png new file mode 100644 index 0000000..dc2e9d5 Binary files /dev/null and b/admin/images/icons/application_view_columns.png differ diff --git a/admin/images/icons/application_view_detail.png b/admin/images/icons/application_view_detail.png new file mode 100644 index 0000000..aba044b Binary files /dev/null and b/admin/images/icons/application_view_detail.png differ diff --git a/admin/images/icons/application_view_gallery.png b/admin/images/icons/application_view_gallery.png new file mode 100644 index 0000000..851950d Binary files /dev/null and b/admin/images/icons/application_view_gallery.png differ diff --git a/admin/images/icons/application_view_icons.png b/admin/images/icons/application_view_icons.png new file mode 100644 index 0000000..6a93cda Binary files /dev/null and b/admin/images/icons/application_view_icons.png differ diff --git a/admin/images/icons/application_view_list.png b/admin/images/icons/application_view_list.png new file mode 100644 index 0000000..acc30b8 Binary files /dev/null and b/admin/images/icons/application_view_list.png differ diff --git a/admin/images/icons/application_view_tile.png b/admin/images/icons/application_view_tile.png new file mode 100644 index 0000000..3bc0bd3 Binary files /dev/null and b/admin/images/icons/application_view_tile.png differ diff --git a/admin/images/icons/application_xp.png b/admin/images/icons/application_xp.png new file mode 100644 index 0000000..d22860a Binary files /dev/null and b/admin/images/icons/application_xp.png differ diff --git a/admin/images/icons/application_xp_terminal.png b/admin/images/icons/application_xp_terminal.png new file mode 100644 index 0000000..c28dd63 Binary files /dev/null and b/admin/images/icons/application_xp_terminal.png differ diff --git a/admin/images/icons/arrow_branch.png b/admin/images/icons/arrow_branch.png new file mode 100644 index 0000000..7542db1 Binary files /dev/null and b/admin/images/icons/arrow_branch.png differ diff --git a/admin/images/icons/arrow_divide.png b/admin/images/icons/arrow_divide.png new file mode 100644 index 0000000..61a7b1d Binary files /dev/null and b/admin/images/icons/arrow_divide.png differ diff --git a/admin/images/icons/arrow_down.png b/admin/images/icons/arrow_down.png new file mode 100644 index 0000000..2c4e279 Binary files /dev/null and b/admin/images/icons/arrow_down.png differ diff --git a/admin/images/icons/arrow_in.png b/admin/images/icons/arrow_in.png new file mode 100644 index 0000000..745c651 Binary files /dev/null and b/admin/images/icons/arrow_in.png differ diff --git a/admin/images/icons/arrow_inout.png b/admin/images/icons/arrow_inout.png new file mode 100644 index 0000000..1b76367 Binary files /dev/null and b/admin/images/icons/arrow_inout.png differ diff --git a/admin/images/icons/arrow_join.png b/admin/images/icons/arrow_join.png new file mode 100644 index 0000000..a128413 Binary files /dev/null and b/admin/images/icons/arrow_join.png differ diff --git a/admin/images/icons/arrow_left.png b/admin/images/icons/arrow_left.png new file mode 100644 index 0000000..5dc6967 Binary files /dev/null and b/admin/images/icons/arrow_left.png differ diff --git a/admin/images/icons/arrow_merge.png b/admin/images/icons/arrow_merge.png new file mode 100644 index 0000000..7502dbb Binary files /dev/null and b/admin/images/icons/arrow_merge.png differ diff --git a/admin/images/icons/arrow_out.png b/admin/images/icons/arrow_out.png new file mode 100644 index 0000000..2e9bc42 Binary files /dev/null and b/admin/images/icons/arrow_out.png differ diff --git a/admin/images/icons/arrow_redo.png b/admin/images/icons/arrow_redo.png new file mode 100644 index 0000000..fdc394c Binary files /dev/null and b/admin/images/icons/arrow_redo.png differ diff --git a/admin/images/icons/arrow_refresh.png b/admin/images/icons/arrow_refresh.png new file mode 100644 index 0000000..0de2656 Binary files /dev/null and b/admin/images/icons/arrow_refresh.png differ diff --git a/admin/images/icons/arrow_refresh_small.png b/admin/images/icons/arrow_refresh_small.png new file mode 100644 index 0000000..d3087df Binary files /dev/null and b/admin/images/icons/arrow_refresh_small.png differ diff --git a/admin/images/icons/arrow_right.png b/admin/images/icons/arrow_right.png new file mode 100644 index 0000000..b1a1819 Binary files /dev/null and b/admin/images/icons/arrow_right.png differ diff --git a/admin/images/icons/arrow_rotate_anticlockwise.png b/admin/images/icons/arrow_rotate_anticlockwise.png new file mode 100644 index 0000000..46c75aa Binary files /dev/null and b/admin/images/icons/arrow_rotate_anticlockwise.png differ diff --git a/admin/images/icons/arrow_rotate_clockwise.png b/admin/images/icons/arrow_rotate_clockwise.png new file mode 100644 index 0000000..aa65210 Binary files /dev/null and b/admin/images/icons/arrow_rotate_clockwise.png differ diff --git a/admin/images/icons/arrow_switch.png b/admin/images/icons/arrow_switch.png new file mode 100644 index 0000000..258c16c Binary files /dev/null and b/admin/images/icons/arrow_switch.png differ diff --git a/admin/images/icons/arrow_turn_left.png b/admin/images/icons/arrow_turn_left.png new file mode 100644 index 0000000..a3d6c9e Binary files /dev/null and b/admin/images/icons/arrow_turn_left.png differ diff --git a/admin/images/icons/arrow_turn_right.png b/admin/images/icons/arrow_turn_right.png new file mode 100644 index 0000000..629f20d Binary files /dev/null and b/admin/images/icons/arrow_turn_right.png differ diff --git a/admin/images/icons/arrow_undo.png b/admin/images/icons/arrow_undo.png new file mode 100644 index 0000000..6972c5e Binary files /dev/null and b/admin/images/icons/arrow_undo.png differ diff --git a/admin/images/icons/arrow_up.png b/admin/images/icons/arrow_up.png new file mode 100644 index 0000000..1ebb193 Binary files /dev/null and b/admin/images/icons/arrow_up.png differ diff --git a/admin/images/icons/asterisk_orange.png b/admin/images/icons/asterisk_orange.png new file mode 100644 index 0000000..1ebebde Binary files /dev/null and b/admin/images/icons/asterisk_orange.png differ diff --git a/admin/images/icons/asterisk_yellow.png b/admin/images/icons/asterisk_yellow.png new file mode 100644 index 0000000..bab7cc9 Binary files /dev/null and b/admin/images/icons/asterisk_yellow.png differ diff --git a/admin/images/icons/attach.png b/admin/images/icons/attach.png new file mode 100644 index 0000000..ea897cc Binary files /dev/null and b/admin/images/icons/attach.png differ diff --git a/admin/images/icons/award_star_add.png b/admin/images/icons/award_star_add.png new file mode 100644 index 0000000..9c4be9b Binary files /dev/null and b/admin/images/icons/award_star_add.png differ diff --git a/admin/images/icons/award_star_bronze_1.png b/admin/images/icons/award_star_bronze_1.png new file mode 100644 index 0000000..658c711 Binary files /dev/null and b/admin/images/icons/award_star_bronze_1.png differ diff --git a/admin/images/icons/award_star_bronze_2.png b/admin/images/icons/award_star_bronze_2.png new file mode 100644 index 0000000..e47babd Binary files /dev/null and b/admin/images/icons/award_star_bronze_2.png differ diff --git a/admin/images/icons/award_star_bronze_3.png b/admin/images/icons/award_star_bronze_3.png new file mode 100644 index 0000000..396e4b3 Binary files /dev/null and b/admin/images/icons/award_star_bronze_3.png differ diff --git a/admin/images/icons/award_star_delete.png b/admin/images/icons/award_star_delete.png new file mode 100644 index 0000000..4721b15 Binary files /dev/null and b/admin/images/icons/award_star_delete.png differ diff --git a/admin/images/icons/award_star_gold_1.png b/admin/images/icons/award_star_gold_1.png new file mode 100644 index 0000000..97a22b7 Binary files /dev/null and b/admin/images/icons/award_star_gold_1.png differ diff --git a/admin/images/icons/award_star_gold_2.png b/admin/images/icons/award_star_gold_2.png new file mode 100644 index 0000000..0eaa571 Binary files /dev/null and b/admin/images/icons/award_star_gold_2.png differ diff --git a/admin/images/icons/award_star_gold_3.png b/admin/images/icons/award_star_gold_3.png new file mode 100644 index 0000000..124c991 Binary files /dev/null and b/admin/images/icons/award_star_gold_3.png differ diff --git a/admin/images/icons/award_star_silver_1.png b/admin/images/icons/award_star_silver_1.png new file mode 100644 index 0000000..028a546 Binary files /dev/null and b/admin/images/icons/award_star_silver_1.png differ diff --git a/admin/images/icons/award_star_silver_2.png b/admin/images/icons/award_star_silver_2.png new file mode 100644 index 0000000..e487c3a Binary files /dev/null and b/admin/images/icons/award_star_silver_2.png differ diff --git a/admin/images/icons/award_star_silver_3.png b/admin/images/icons/award_star_silver_3.png new file mode 100644 index 0000000..1d72d47 Binary files /dev/null and b/admin/images/icons/award_star_silver_3.png differ diff --git a/admin/images/icons/basket.png b/admin/images/icons/basket.png new file mode 100644 index 0000000..b0686d7 Binary files /dev/null and b/admin/images/icons/basket.png differ diff --git a/admin/images/icons/basket_add.png b/admin/images/icons/basket_add.png new file mode 100644 index 0000000..3554368 Binary files /dev/null and b/admin/images/icons/basket_add.png differ diff --git a/admin/images/icons/basket_delete.png b/admin/images/icons/basket_delete.png new file mode 100644 index 0000000..1349974 Binary files /dev/null and b/admin/images/icons/basket_delete.png differ diff --git a/admin/images/icons/basket_edit.png b/admin/images/icons/basket_edit.png new file mode 100644 index 0000000..8138bbd Binary files /dev/null and b/admin/images/icons/basket_edit.png differ diff --git a/admin/images/icons/basket_error.png b/admin/images/icons/basket_error.png new file mode 100644 index 0000000..3978b29 Binary files /dev/null and b/admin/images/icons/basket_error.png differ diff --git a/admin/images/icons/basket_go.png b/admin/images/icons/basket_go.png new file mode 100644 index 0000000..ed8b9a5 Binary files /dev/null and b/admin/images/icons/basket_go.png differ diff --git a/admin/images/icons/basket_put.png b/admin/images/icons/basket_put.png new file mode 100644 index 0000000..be62faa Binary files /dev/null and b/admin/images/icons/basket_put.png differ diff --git a/admin/images/icons/basket_remove.png b/admin/images/icons/basket_remove.png new file mode 100644 index 0000000..04dd7fd Binary files /dev/null and b/admin/images/icons/basket_remove.png differ diff --git a/admin/images/icons/bell.png b/admin/images/icons/bell.png new file mode 100644 index 0000000..6e0015d Binary files /dev/null and b/admin/images/icons/bell.png differ diff --git a/admin/images/icons/bell_add.png b/admin/images/icons/bell_add.png new file mode 100644 index 0000000..7db01d6 Binary files /dev/null and b/admin/images/icons/bell_add.png differ diff --git a/admin/images/icons/bell_delete.png b/admin/images/icons/bell_delete.png new file mode 100644 index 0000000..23907bb Binary files /dev/null and b/admin/images/icons/bell_delete.png differ diff --git a/admin/images/icons/bell_error.png b/admin/images/icons/bell_error.png new file mode 100644 index 0000000..a0ddc00 Binary files /dev/null and b/admin/images/icons/bell_error.png differ diff --git a/admin/images/icons/bell_go.png b/admin/images/icons/bell_go.png new file mode 100644 index 0000000..b89bb34 Binary files /dev/null and b/admin/images/icons/bell_go.png differ diff --git a/admin/images/icons/bell_link.png b/admin/images/icons/bell_link.png new file mode 100644 index 0000000..b8c64af Binary files /dev/null and b/admin/images/icons/bell_link.png differ diff --git a/admin/images/icons/bin.png b/admin/images/icons/bin.png new file mode 100644 index 0000000..ebad933 Binary files /dev/null and b/admin/images/icons/bin.png differ diff --git a/admin/images/icons/bin_closed.png b/admin/images/icons/bin_closed.png new file mode 100644 index 0000000..afe22ba Binary files /dev/null and b/admin/images/icons/bin_closed.png differ diff --git a/admin/images/icons/bin_empty.png b/admin/images/icons/bin_empty.png new file mode 100644 index 0000000..375b8bf Binary files /dev/null and b/admin/images/icons/bin_empty.png differ diff --git a/admin/images/icons/bomb.png b/admin/images/icons/bomb.png new file mode 100644 index 0000000..1be3797 Binary files /dev/null and b/admin/images/icons/bomb.png differ diff --git a/admin/images/icons/book.png b/admin/images/icons/book.png new file mode 100644 index 0000000..b0f4dd7 Binary files /dev/null and b/admin/images/icons/book.png differ diff --git a/admin/images/icons/book_add.png b/admin/images/icons/book_add.png new file mode 100644 index 0000000..e2f0847 Binary files /dev/null and b/admin/images/icons/book_add.png differ diff --git a/admin/images/icons/book_addresses.png b/admin/images/icons/book_addresses.png new file mode 100644 index 0000000..b73419b Binary files /dev/null and b/admin/images/icons/book_addresses.png differ diff --git a/admin/images/icons/book_delete.png b/admin/images/icons/book_delete.png new file mode 100644 index 0000000..d9a6340 Binary files /dev/null and b/admin/images/icons/book_delete.png differ diff --git a/admin/images/icons/book_edit.png b/admin/images/icons/book_edit.png new file mode 100644 index 0000000..6e756cc Binary files /dev/null and b/admin/images/icons/book_edit.png differ diff --git a/admin/images/icons/book_error.png b/admin/images/icons/book_error.png new file mode 100644 index 0000000..f3fbed0 Binary files /dev/null and b/admin/images/icons/book_error.png differ diff --git a/admin/images/icons/book_go.png b/admin/images/icons/book_go.png new file mode 100644 index 0000000..cd4e196 Binary files /dev/null and b/admin/images/icons/book_go.png differ diff --git a/admin/images/icons/book_key.png b/admin/images/icons/book_key.png new file mode 100644 index 0000000..d8e23ec Binary files /dev/null and b/admin/images/icons/book_key.png differ diff --git a/admin/images/icons/book_link.png b/admin/images/icons/book_link.png new file mode 100644 index 0000000..dd0820e Binary files /dev/null and b/admin/images/icons/book_link.png differ diff --git a/admin/images/icons/book_next.png b/admin/images/icons/book_next.png new file mode 100644 index 0000000..ff2ea1a Binary files /dev/null and b/admin/images/icons/book_next.png differ diff --git a/admin/images/icons/book_open.png b/admin/images/icons/book_open.png new file mode 100644 index 0000000..7d863f9 Binary files /dev/null and b/admin/images/icons/book_open.png differ diff --git a/admin/images/icons/book_previous.png b/admin/images/icons/book_previous.png new file mode 100644 index 0000000..2e53c69 Binary files /dev/null and b/admin/images/icons/book_previous.png differ diff --git a/admin/images/icons/box.png b/admin/images/icons/box.png new file mode 100644 index 0000000..8443c23 Binary files /dev/null and b/admin/images/icons/box.png differ diff --git a/admin/images/icons/brick.png b/admin/images/icons/brick.png new file mode 100644 index 0000000..7851cf3 Binary files /dev/null and b/admin/images/icons/brick.png differ diff --git a/admin/images/icons/brick_add.png b/admin/images/icons/brick_add.png new file mode 100644 index 0000000..fac186b Binary files /dev/null and b/admin/images/icons/brick_add.png differ diff --git a/admin/images/icons/brick_delete.png b/admin/images/icons/brick_delete.png new file mode 100644 index 0000000..3a8c373 Binary files /dev/null and b/admin/images/icons/brick_delete.png differ diff --git a/admin/images/icons/brick_edit.png b/admin/images/icons/brick_edit.png new file mode 100644 index 0000000..eb06df3 Binary files /dev/null and b/admin/images/icons/brick_edit.png differ diff --git a/admin/images/icons/brick_error.png b/admin/images/icons/brick_error.png new file mode 100644 index 0000000..18ab01e Binary files /dev/null and b/admin/images/icons/brick_error.png differ diff --git a/admin/images/icons/brick_go.png b/admin/images/icons/brick_go.png new file mode 100644 index 0000000..fe0d335 Binary files /dev/null and b/admin/images/icons/brick_go.png differ diff --git a/admin/images/icons/brick_link.png b/admin/images/icons/brick_link.png new file mode 100644 index 0000000..9ebf013 Binary files /dev/null and b/admin/images/icons/brick_link.png differ diff --git a/admin/images/icons/bricks.png b/admin/images/icons/bricks.png new file mode 100644 index 0000000..0905f93 Binary files /dev/null and b/admin/images/icons/bricks.png differ diff --git a/admin/images/icons/briefcase.png b/admin/images/icons/briefcase.png new file mode 100644 index 0000000..05c5649 Binary files /dev/null and b/admin/images/icons/briefcase.png differ diff --git a/admin/images/icons/bug.png b/admin/images/icons/bug.png new file mode 100644 index 0000000..2d5fb90 Binary files /dev/null and b/admin/images/icons/bug.png differ diff --git a/admin/images/icons/bug_add.png b/admin/images/icons/bug_add.png new file mode 100644 index 0000000..ced7817 Binary files /dev/null and b/admin/images/icons/bug_add.png differ diff --git a/admin/images/icons/bug_delete.png b/admin/images/icons/bug_delete.png new file mode 100644 index 0000000..e81d757 Binary files /dev/null and b/admin/images/icons/bug_delete.png differ diff --git a/admin/images/icons/bug_edit.png b/admin/images/icons/bug_edit.png new file mode 100644 index 0000000..e5c7dc0 Binary files /dev/null and b/admin/images/icons/bug_edit.png differ diff --git a/admin/images/icons/bug_error.png b/admin/images/icons/bug_error.png new file mode 100644 index 0000000..c4e8c28 Binary files /dev/null and b/admin/images/icons/bug_error.png differ diff --git a/admin/images/icons/bug_go.png b/admin/images/icons/bug_go.png new file mode 100644 index 0000000..4e4ae99 Binary files /dev/null and b/admin/images/icons/bug_go.png differ diff --git a/admin/images/icons/bug_link.png b/admin/images/icons/bug_link.png new file mode 100644 index 0000000..30e25ab Binary files /dev/null and b/admin/images/icons/bug_link.png differ diff --git a/admin/images/icons/building.png b/admin/images/icons/building.png new file mode 100644 index 0000000..11a017c Binary files /dev/null and b/admin/images/icons/building.png differ diff --git a/admin/images/icons/building_add.png b/admin/images/icons/building_add.png new file mode 100644 index 0000000..d88e2b9 Binary files /dev/null and b/admin/images/icons/building_add.png differ diff --git a/admin/images/icons/building_delete.png b/admin/images/icons/building_delete.png new file mode 100644 index 0000000..db6455d Binary files /dev/null and b/admin/images/icons/building_delete.png differ diff --git a/admin/images/icons/building_edit.png b/admin/images/icons/building_edit.png new file mode 100644 index 0000000..646db36 Binary files /dev/null and b/admin/images/icons/building_edit.png differ diff --git a/admin/images/icons/building_error.png b/admin/images/icons/building_error.png new file mode 100644 index 0000000..a342eef Binary files /dev/null and b/admin/images/icons/building_error.png differ diff --git a/admin/images/icons/building_go.png b/admin/images/icons/building_go.png new file mode 100644 index 0000000..cdcbcb3 Binary files /dev/null and b/admin/images/icons/building_go.png differ diff --git a/admin/images/icons/building_key.png b/admin/images/icons/building_key.png new file mode 100644 index 0000000..8b79e30 Binary files /dev/null and b/admin/images/icons/building_key.png differ diff --git a/admin/images/icons/building_link.png b/admin/images/icons/building_link.png new file mode 100644 index 0000000..a340629 Binary files /dev/null and b/admin/images/icons/building_link.png differ diff --git a/admin/images/icons/bullet_add.png b/admin/images/icons/bullet_add.png new file mode 100644 index 0000000..41ff833 Binary files /dev/null and b/admin/images/icons/bullet_add.png differ diff --git a/admin/images/icons/bullet_arrow_bottom.png b/admin/images/icons/bullet_arrow_bottom.png new file mode 100644 index 0000000..1a28d82 Binary files /dev/null and b/admin/images/icons/bullet_arrow_bottom.png differ diff --git a/admin/images/icons/bullet_arrow_down.png b/admin/images/icons/bullet_arrow_down.png new file mode 100644 index 0000000..9b23c06 Binary files /dev/null and b/admin/images/icons/bullet_arrow_down.png differ diff --git a/admin/images/icons/bullet_arrow_top.png b/admin/images/icons/bullet_arrow_top.png new file mode 100644 index 0000000..0ce86d2 Binary files /dev/null and b/admin/images/icons/bullet_arrow_top.png differ diff --git a/admin/images/icons/bullet_arrow_up.png b/admin/images/icons/bullet_arrow_up.png new file mode 100644 index 0000000..24df0f4 Binary files /dev/null and b/admin/images/icons/bullet_arrow_up.png differ diff --git a/admin/images/icons/bullet_black.png b/admin/images/icons/bullet_black.png new file mode 100644 index 0000000..5761970 Binary files /dev/null and b/admin/images/icons/bullet_black.png differ diff --git a/admin/images/icons/bullet_blue.png b/admin/images/icons/bullet_blue.png new file mode 100644 index 0000000..a7651ec Binary files /dev/null and b/admin/images/icons/bullet_blue.png differ diff --git a/admin/images/icons/bullet_delete.png b/admin/images/icons/bullet_delete.png new file mode 100644 index 0000000..bd6271b Binary files /dev/null and b/admin/images/icons/bullet_delete.png differ diff --git a/admin/images/icons/bullet_disk.png b/admin/images/icons/bullet_disk.png new file mode 100644 index 0000000..209c6a7 Binary files /dev/null and b/admin/images/icons/bullet_disk.png differ diff --git a/admin/images/icons/bullet_error.png b/admin/images/icons/bullet_error.png new file mode 100644 index 0000000..bca2b49 Binary files /dev/null and b/admin/images/icons/bullet_error.png differ diff --git a/admin/images/icons/bullet_feed.png b/admin/images/icons/bullet_feed.png new file mode 100644 index 0000000..1a0e0f1 Binary files /dev/null and b/admin/images/icons/bullet_feed.png differ diff --git a/admin/images/icons/bullet_go.png b/admin/images/icons/bullet_go.png new file mode 100644 index 0000000..bc4faa7 Binary files /dev/null and b/admin/images/icons/bullet_go.png differ diff --git a/admin/images/icons/bullet_green.png b/admin/images/icons/bullet_green.png new file mode 100644 index 0000000..058ad26 Binary files /dev/null and b/admin/images/icons/bullet_green.png differ diff --git a/admin/images/icons/bullet_key.png b/admin/images/icons/bullet_key.png new file mode 100644 index 0000000..3d37f2e Binary files /dev/null and b/admin/images/icons/bullet_key.png differ diff --git a/admin/images/icons/bullet_orange.png b/admin/images/icons/bullet_orange.png new file mode 100644 index 0000000..fa63024 Binary files /dev/null and b/admin/images/icons/bullet_orange.png differ diff --git a/admin/images/icons/bullet_picture.png b/admin/images/icons/bullet_picture.png new file mode 100644 index 0000000..386cb30 Binary files /dev/null and b/admin/images/icons/bullet_picture.png differ diff --git a/admin/images/icons/bullet_pink.png b/admin/images/icons/bullet_pink.png new file mode 100644 index 0000000..0c9f73e Binary files /dev/null and b/admin/images/icons/bullet_pink.png differ diff --git a/admin/images/icons/bullet_purple.png b/admin/images/icons/bullet_purple.png new file mode 100644 index 0000000..52ba503 Binary files /dev/null and b/admin/images/icons/bullet_purple.png differ diff --git a/admin/images/icons/bullet_red.png b/admin/images/icons/bullet_red.png new file mode 100644 index 0000000..0cd8031 Binary files /dev/null and b/admin/images/icons/bullet_red.png differ diff --git a/admin/images/icons/bullet_star.png b/admin/images/icons/bullet_star.png new file mode 100644 index 0000000..fab774a Binary files /dev/null and b/admin/images/icons/bullet_star.png differ diff --git a/admin/images/icons/bullet_toggle_minus.png b/admin/images/icons/bullet_toggle_minus.png new file mode 100644 index 0000000..b47ce55 Binary files /dev/null and b/admin/images/icons/bullet_toggle_minus.png differ diff --git a/admin/images/icons/bullet_toggle_plus.png b/admin/images/icons/bullet_toggle_plus.png new file mode 100644 index 0000000..9ab4a89 Binary files /dev/null and b/admin/images/icons/bullet_toggle_plus.png differ diff --git a/admin/images/icons/bullet_white.png b/admin/images/icons/bullet_white.png new file mode 100644 index 0000000..a9af8d4 Binary files /dev/null and b/admin/images/icons/bullet_white.png differ diff --git a/admin/images/icons/bullet_wrench.png b/admin/images/icons/bullet_wrench.png new file mode 100644 index 0000000..67817e6 Binary files /dev/null and b/admin/images/icons/bullet_wrench.png differ diff --git a/admin/images/icons/bullet_yellow.png b/admin/images/icons/bullet_yellow.png new file mode 100644 index 0000000..6469cea Binary files /dev/null and b/admin/images/icons/bullet_yellow.png differ diff --git a/admin/images/icons/cake.png b/admin/images/icons/cake.png new file mode 100644 index 0000000..4ef151a Binary files /dev/null and b/admin/images/icons/cake.png differ diff --git a/admin/images/icons/calculator.png b/admin/images/icons/calculator.png new file mode 100644 index 0000000..701a60a Binary files /dev/null and b/admin/images/icons/calculator.png differ diff --git a/admin/images/icons/calculator_add.png b/admin/images/icons/calculator_add.png new file mode 100644 index 0000000..fd377bd Binary files /dev/null and b/admin/images/icons/calculator_add.png differ diff --git a/admin/images/icons/calculator_delete.png b/admin/images/icons/calculator_delete.png new file mode 100644 index 0000000..ac96170 Binary files /dev/null and b/admin/images/icons/calculator_delete.png differ diff --git a/admin/images/icons/calculator_edit.png b/admin/images/icons/calculator_edit.png new file mode 100644 index 0000000..63b06b9 Binary files /dev/null and b/admin/images/icons/calculator_edit.png differ diff --git a/admin/images/icons/calculator_error.png b/admin/images/icons/calculator_error.png new file mode 100644 index 0000000..0bc4288 Binary files /dev/null and b/admin/images/icons/calculator_error.png differ diff --git a/admin/images/icons/calculator_link.png b/admin/images/icons/calculator_link.png new file mode 100644 index 0000000..a2a8fe6 Binary files /dev/null and b/admin/images/icons/calculator_link.png differ diff --git a/admin/images/icons/calendar.png b/admin/images/icons/calendar.png new file mode 100644 index 0000000..6589138 Binary files /dev/null and b/admin/images/icons/calendar.png differ diff --git a/admin/images/icons/calendar_add.png b/admin/images/icons/calendar_add.png new file mode 100644 index 0000000..17679db Binary files /dev/null and b/admin/images/icons/calendar_add.png differ diff --git a/admin/images/icons/calendar_delete.png b/admin/images/icons/calendar_delete.png new file mode 100644 index 0000000..69a3b10 Binary files /dev/null and b/admin/images/icons/calendar_delete.png differ diff --git a/admin/images/icons/calendar_edit.png b/admin/images/icons/calendar_edit.png new file mode 100644 index 0000000..d1d2d6e Binary files /dev/null and b/admin/images/icons/calendar_edit.png differ diff --git a/admin/images/icons/calendar_link.png b/admin/images/icons/calendar_link.png new file mode 100644 index 0000000..6b106b9 Binary files /dev/null and b/admin/images/icons/calendar_link.png differ diff --git a/admin/images/icons/calendar_view_day.png b/admin/images/icons/calendar_view_day.png new file mode 100644 index 0000000..9740f76 Binary files /dev/null and b/admin/images/icons/calendar_view_day.png differ diff --git a/admin/images/icons/calendar_view_month.png b/admin/images/icons/calendar_view_month.png new file mode 100644 index 0000000..6cff76c Binary files /dev/null and b/admin/images/icons/calendar_view_month.png differ diff --git a/admin/images/icons/calendar_view_week.png b/admin/images/icons/calendar_view_week.png new file mode 100644 index 0000000..8fe695f Binary files /dev/null and b/admin/images/icons/calendar_view_week.png differ diff --git a/admin/images/icons/camera.png b/admin/images/icons/camera.png new file mode 100644 index 0000000..8536d1a Binary files /dev/null and b/admin/images/icons/camera.png differ diff --git a/admin/images/icons/camera_add.png b/admin/images/icons/camera_add.png new file mode 100644 index 0000000..08b5da9 Binary files /dev/null and b/admin/images/icons/camera_add.png differ diff --git a/admin/images/icons/camera_delete.png b/admin/images/icons/camera_delete.png new file mode 100644 index 0000000..3846d74 Binary files /dev/null and b/admin/images/icons/camera_delete.png differ diff --git a/admin/images/icons/camera_edit.png b/admin/images/icons/camera_edit.png new file mode 100644 index 0000000..b5015b1 Binary files /dev/null and b/admin/images/icons/camera_edit.png differ diff --git a/admin/images/icons/camera_error.png b/admin/images/icons/camera_error.png new file mode 100644 index 0000000..3c1bc95 Binary files /dev/null and b/admin/images/icons/camera_error.png differ diff --git a/admin/images/icons/camera_go.png b/admin/images/icons/camera_go.png new file mode 100644 index 0000000..94ce2b2 Binary files /dev/null and b/admin/images/icons/camera_go.png differ diff --git a/admin/images/icons/camera_link.png b/admin/images/icons/camera_link.png new file mode 100644 index 0000000..d2ac9f9 Binary files /dev/null and b/admin/images/icons/camera_link.png differ diff --git a/admin/images/icons/camera_small.png b/admin/images/icons/camera_small.png new file mode 100644 index 0000000..454b0b0 Binary files /dev/null and b/admin/images/icons/camera_small.png differ diff --git a/admin/images/icons/cancel.png b/admin/images/icons/cancel.png new file mode 100644 index 0000000..c149c2b Binary files /dev/null and b/admin/images/icons/cancel.png differ diff --git a/admin/images/icons/car.png b/admin/images/icons/car.png new file mode 100644 index 0000000..4f3a770 Binary files /dev/null and b/admin/images/icons/car.png differ diff --git a/admin/images/icons/car_add.png b/admin/images/icons/car_add.png new file mode 100644 index 0000000..1215a51 Binary files /dev/null and b/admin/images/icons/car_add.png differ diff --git a/admin/images/icons/car_delete.png b/admin/images/icons/car_delete.png new file mode 100644 index 0000000..2803b56 Binary files /dev/null and b/admin/images/icons/car_delete.png differ diff --git a/admin/images/icons/cart.png b/admin/images/icons/cart.png new file mode 100644 index 0000000..1baf7b9 Binary files /dev/null and b/admin/images/icons/cart.png differ diff --git a/admin/images/icons/cart_add.png b/admin/images/icons/cart_add.png new file mode 100644 index 0000000..45c2900 Binary files /dev/null and b/admin/images/icons/cart_add.png differ diff --git a/admin/images/icons/cart_delete.png b/admin/images/icons/cart_delete.png new file mode 100644 index 0000000..ac5bce5 Binary files /dev/null and b/admin/images/icons/cart_delete.png differ diff --git a/admin/images/icons/cart_edit.png b/admin/images/icons/cart_edit.png new file mode 100644 index 0000000..b94ff88 Binary files /dev/null and b/admin/images/icons/cart_edit.png differ diff --git a/admin/images/icons/cart_error.png b/admin/images/icons/cart_error.png new file mode 100644 index 0000000..144c835 Binary files /dev/null and b/admin/images/icons/cart_error.png differ diff --git a/admin/images/icons/cart_go.png b/admin/images/icons/cart_go.png new file mode 100644 index 0000000..20ee058 Binary files /dev/null and b/admin/images/icons/cart_go.png differ diff --git a/admin/images/icons/cart_put.png b/admin/images/icons/cart_put.png new file mode 100644 index 0000000..3aec353 Binary files /dev/null and b/admin/images/icons/cart_put.png differ diff --git a/admin/images/icons/cart_remove.png b/admin/images/icons/cart_remove.png new file mode 100644 index 0000000..360217b Binary files /dev/null and b/admin/images/icons/cart_remove.png differ diff --git a/admin/images/icons/cd.png b/admin/images/icons/cd.png new file mode 100644 index 0000000..ef43223 Binary files /dev/null and b/admin/images/icons/cd.png differ diff --git a/admin/images/icons/cd_add.png b/admin/images/icons/cd_add.png new file mode 100644 index 0000000..b0254ef Binary files /dev/null and b/admin/images/icons/cd_add.png differ diff --git a/admin/images/icons/cd_burn.png b/admin/images/icons/cd_burn.png new file mode 100644 index 0000000..157cb0b Binary files /dev/null and b/admin/images/icons/cd_burn.png differ diff --git a/admin/images/icons/cd_delete.png b/admin/images/icons/cd_delete.png new file mode 100644 index 0000000..7d7b3d5 Binary files /dev/null and b/admin/images/icons/cd_delete.png differ diff --git a/admin/images/icons/cd_edit.png b/admin/images/icons/cd_edit.png new file mode 100644 index 0000000..b0dc194 Binary files /dev/null and b/admin/images/icons/cd_edit.png differ diff --git a/admin/images/icons/cd_eject.png b/admin/images/icons/cd_eject.png new file mode 100644 index 0000000..762932f Binary files /dev/null and b/admin/images/icons/cd_eject.png differ diff --git a/admin/images/icons/cd_go.png b/admin/images/icons/cd_go.png new file mode 100644 index 0000000..13e0499 Binary files /dev/null and b/admin/images/icons/cd_go.png differ diff --git a/admin/images/icons/chart_bar.png b/admin/images/icons/chart_bar.png new file mode 100644 index 0000000..9051fbc Binary files /dev/null and b/admin/images/icons/chart_bar.png differ diff --git a/admin/images/icons/chart_bar_add.png b/admin/images/icons/chart_bar_add.png new file mode 100644 index 0000000..d283e84 Binary files /dev/null and b/admin/images/icons/chart_bar_add.png differ diff --git a/admin/images/icons/chart_bar_delete.png b/admin/images/icons/chart_bar_delete.png new file mode 100644 index 0000000..259f686 Binary files /dev/null and b/admin/images/icons/chart_bar_delete.png differ diff --git a/admin/images/icons/chart_bar_edit.png b/admin/images/icons/chart_bar_edit.png new file mode 100644 index 0000000..df64d97 Binary files /dev/null and b/admin/images/icons/chart_bar_edit.png differ diff --git a/admin/images/icons/chart_bar_error.png b/admin/images/icons/chart_bar_error.png new file mode 100644 index 0000000..bdacea5 Binary files /dev/null and b/admin/images/icons/chart_bar_error.png differ diff --git a/admin/images/icons/chart_bar_link.png b/admin/images/icons/chart_bar_link.png new file mode 100644 index 0000000..bf18aed Binary files /dev/null and b/admin/images/icons/chart_bar_link.png differ diff --git a/admin/images/icons/chart_curve.png b/admin/images/icons/chart_curve.png new file mode 100644 index 0000000..01e933a Binary files /dev/null and b/admin/images/icons/chart_curve.png differ diff --git a/admin/images/icons/chart_curve_add.png b/admin/images/icons/chart_curve_add.png new file mode 100644 index 0000000..f9e2050 Binary files /dev/null and b/admin/images/icons/chart_curve_add.png differ diff --git a/admin/images/icons/chart_curve_delete.png b/admin/images/icons/chart_curve_delete.png new file mode 100644 index 0000000..b411391 Binary files /dev/null and b/admin/images/icons/chart_curve_delete.png differ diff --git a/admin/images/icons/chart_curve_edit.png b/admin/images/icons/chart_curve_edit.png new file mode 100644 index 0000000..bd07673 Binary files /dev/null and b/admin/images/icons/chart_curve_edit.png differ diff --git a/admin/images/icons/chart_curve_error.png b/admin/images/icons/chart_curve_error.png new file mode 100644 index 0000000..906dd03 Binary files /dev/null and b/admin/images/icons/chart_curve_error.png differ diff --git a/admin/images/icons/chart_curve_go.png b/admin/images/icons/chart_curve_go.png new file mode 100644 index 0000000..ac9eda5 Binary files /dev/null and b/admin/images/icons/chart_curve_go.png differ diff --git a/admin/images/icons/chart_curve_link.png b/admin/images/icons/chart_curve_link.png new file mode 100644 index 0000000..144eafe Binary files /dev/null and b/admin/images/icons/chart_curve_link.png differ diff --git a/admin/images/icons/chart_line.png b/admin/images/icons/chart_line.png new file mode 100644 index 0000000..85020f3 Binary files /dev/null and b/admin/images/icons/chart_line.png differ diff --git a/admin/images/icons/chart_line_add.png b/admin/images/icons/chart_line_add.png new file mode 100644 index 0000000..5571a5e Binary files /dev/null and b/admin/images/icons/chart_line_add.png differ diff --git a/admin/images/icons/chart_line_delete.png b/admin/images/icons/chart_line_delete.png new file mode 100644 index 0000000..5b0aa90 Binary files /dev/null and b/admin/images/icons/chart_line_delete.png differ diff --git a/admin/images/icons/chart_line_edit.png b/admin/images/icons/chart_line_edit.png new file mode 100644 index 0000000..9cf6607 Binary files /dev/null and b/admin/images/icons/chart_line_edit.png differ diff --git a/admin/images/icons/chart_line_error.png b/admin/images/icons/chart_line_error.png new file mode 100644 index 0000000..ff23c03 Binary files /dev/null and b/admin/images/icons/chart_line_error.png differ diff --git a/admin/images/icons/chart_line_link.png b/admin/images/icons/chart_line_link.png new file mode 100644 index 0000000..f3727d2 Binary files /dev/null and b/admin/images/icons/chart_line_link.png differ diff --git a/admin/images/icons/chart_organisation.png b/admin/images/icons/chart_organisation.png new file mode 100644 index 0000000..c32d25c Binary files /dev/null and b/admin/images/icons/chart_organisation.png differ diff --git a/admin/images/icons/chart_organisation_add.png b/admin/images/icons/chart_organisation_add.png new file mode 100644 index 0000000..f0dba4a Binary files /dev/null and b/admin/images/icons/chart_organisation_add.png differ diff --git a/admin/images/icons/chart_organisation_delete.png b/admin/images/icons/chart_organisation_delete.png new file mode 100644 index 0000000..7dc8dca Binary files /dev/null and b/admin/images/icons/chart_organisation_delete.png differ diff --git a/admin/images/icons/chart_pie.png b/admin/images/icons/chart_pie.png new file mode 100644 index 0000000..fe00fa0 Binary files /dev/null and b/admin/images/icons/chart_pie.png differ diff --git a/admin/images/icons/chart_pie_add.png b/admin/images/icons/chart_pie_add.png new file mode 100644 index 0000000..bf0822e Binary files /dev/null and b/admin/images/icons/chart_pie_add.png differ diff --git a/admin/images/icons/chart_pie_delete.png b/admin/images/icons/chart_pie_delete.png new file mode 100644 index 0000000..5ab9efd Binary files /dev/null and b/admin/images/icons/chart_pie_delete.png differ diff --git a/admin/images/icons/chart_pie_edit.png b/admin/images/icons/chart_pie_edit.png new file mode 100644 index 0000000..3debc12 Binary files /dev/null and b/admin/images/icons/chart_pie_edit.png differ diff --git a/admin/images/icons/chart_pie_error.png b/admin/images/icons/chart_pie_error.png new file mode 100644 index 0000000..7344174 Binary files /dev/null and b/admin/images/icons/chart_pie_error.png differ diff --git a/admin/images/icons/chart_pie_link.png b/admin/images/icons/chart_pie_link.png new file mode 100644 index 0000000..c072f8e Binary files /dev/null and b/admin/images/icons/chart_pie_link.png differ diff --git a/admin/images/icons/clock.png b/admin/images/icons/clock.png new file mode 100644 index 0000000..e2672c2 Binary files /dev/null and b/admin/images/icons/clock.png differ diff --git a/admin/images/icons/clock_add.png b/admin/images/icons/clock_add.png new file mode 100644 index 0000000..598b839 Binary files /dev/null and b/admin/images/icons/clock_add.png differ diff --git a/admin/images/icons/clock_delete.png b/admin/images/icons/clock_delete.png new file mode 100644 index 0000000..8bf9efe Binary files /dev/null and b/admin/images/icons/clock_delete.png differ diff --git a/admin/images/icons/clock_edit.png b/admin/images/icons/clock_edit.png new file mode 100644 index 0000000..7d35718 Binary files /dev/null and b/admin/images/icons/clock_edit.png differ diff --git a/admin/images/icons/clock_error.png b/admin/images/icons/clock_error.png new file mode 100644 index 0000000..a7c461b Binary files /dev/null and b/admin/images/icons/clock_error.png differ diff --git a/admin/images/icons/clock_go.png b/admin/images/icons/clock_go.png new file mode 100644 index 0000000..a1a24d3 Binary files /dev/null and b/admin/images/icons/clock_go.png differ diff --git a/admin/images/icons/clock_link.png b/admin/images/icons/clock_link.png new file mode 100644 index 0000000..481cf04 Binary files /dev/null and b/admin/images/icons/clock_link.png differ diff --git a/admin/images/icons/clock_pause.png b/admin/images/icons/clock_pause.png new file mode 100644 index 0000000..ba74725 Binary files /dev/null and b/admin/images/icons/clock_pause.png differ diff --git a/admin/images/icons/clock_play.png b/admin/images/icons/clock_play.png new file mode 100644 index 0000000..fb4ebc8 Binary files /dev/null and b/admin/images/icons/clock_play.png differ diff --git a/admin/images/icons/clock_red.png b/admin/images/icons/clock_red.png new file mode 100644 index 0000000..2842cc3 Binary files /dev/null and b/admin/images/icons/clock_red.png differ diff --git a/admin/images/icons/clock_stop.png b/admin/images/icons/clock_stop.png new file mode 100644 index 0000000..6fe8a6f Binary files /dev/null and b/admin/images/icons/clock_stop.png differ diff --git a/admin/images/icons/cog.png b/admin/images/icons/cog.png new file mode 100644 index 0000000..67de2c6 Binary files /dev/null and b/admin/images/icons/cog.png differ diff --git a/admin/images/icons/cog_add.png b/admin/images/icons/cog_add.png new file mode 100644 index 0000000..04f22ba Binary files /dev/null and b/admin/images/icons/cog_add.png differ diff --git a/admin/images/icons/cog_delete.png b/admin/images/icons/cog_delete.png new file mode 100644 index 0000000..8ce71c4 Binary files /dev/null and b/admin/images/icons/cog_delete.png differ diff --git a/admin/images/icons/cog_edit.png b/admin/images/icons/cog_edit.png new file mode 100644 index 0000000..47b75a4 Binary files /dev/null and b/admin/images/icons/cog_edit.png differ diff --git a/admin/images/icons/cog_error.png b/admin/images/icons/cog_error.png new file mode 100644 index 0000000..4766743 Binary files /dev/null and b/admin/images/icons/cog_error.png differ diff --git a/admin/images/icons/cog_go.png b/admin/images/icons/cog_go.png new file mode 100644 index 0000000..3262767 Binary files /dev/null and b/admin/images/icons/cog_go.png differ diff --git a/admin/images/icons/coins.png b/admin/images/icons/coins.png new file mode 100644 index 0000000..0ca9074 Binary files /dev/null and b/admin/images/icons/coins.png differ diff --git a/admin/images/icons/coins_add.png b/admin/images/icons/coins_add.png new file mode 100644 index 0000000..cdff5d3 Binary files /dev/null and b/admin/images/icons/coins_add.png differ diff --git a/admin/images/icons/coins_delete.png b/admin/images/icons/coins_delete.png new file mode 100644 index 0000000..18e0c0f Binary files /dev/null and b/admin/images/icons/coins_delete.png differ diff --git a/admin/images/icons/color_swatch.png b/admin/images/icons/color_swatch.png new file mode 100644 index 0000000..6e6e852 Binary files /dev/null and b/admin/images/icons/color_swatch.png differ diff --git a/admin/images/icons/color_wheel.png b/admin/images/icons/color_wheel.png new file mode 100644 index 0000000..809fb00 Binary files /dev/null and b/admin/images/icons/color_wheel.png differ diff --git a/admin/images/icons/comment.png b/admin/images/icons/comment.png new file mode 100644 index 0000000..7bc9233 Binary files /dev/null and b/admin/images/icons/comment.png differ diff --git a/admin/images/icons/comment_add.png b/admin/images/icons/comment_add.png new file mode 100644 index 0000000..75e78de Binary files /dev/null and b/admin/images/icons/comment_add.png differ diff --git a/admin/images/icons/comment_delete.png b/admin/images/icons/comment_delete.png new file mode 100644 index 0000000..643fdbe Binary files /dev/null and b/admin/images/icons/comment_delete.png differ diff --git a/admin/images/icons/comment_edit.png b/admin/images/icons/comment_edit.png new file mode 100644 index 0000000..73db110 Binary files /dev/null and b/admin/images/icons/comment_edit.png differ diff --git a/admin/images/icons/comments.png b/admin/images/icons/comments.png new file mode 100644 index 0000000..39433cf Binary files /dev/null and b/admin/images/icons/comments.png differ diff --git a/admin/images/icons/comments_add.png b/admin/images/icons/comments_add.png new file mode 100644 index 0000000..b325634 Binary files /dev/null and b/admin/images/icons/comments_add.png differ diff --git a/admin/images/icons/comments_delete.png b/admin/images/icons/comments_delete.png new file mode 100644 index 0000000..6df7376 Binary files /dev/null and b/admin/images/icons/comments_delete.png differ diff --git a/admin/images/icons/compress.png b/admin/images/icons/compress.png new file mode 100644 index 0000000..8606ff0 Binary files /dev/null and b/admin/images/icons/compress.png differ diff --git a/admin/images/icons/computer.png b/admin/images/icons/computer.png new file mode 100644 index 0000000..9bc37dc Binary files /dev/null and b/admin/images/icons/computer.png differ diff --git a/admin/images/icons/computer_add.png b/admin/images/icons/computer_add.png new file mode 100644 index 0000000..db604ee Binary files /dev/null and b/admin/images/icons/computer_add.png differ diff --git a/admin/images/icons/computer_delete.png b/admin/images/icons/computer_delete.png new file mode 100644 index 0000000..5e9b268 Binary files /dev/null and b/admin/images/icons/computer_delete.png differ diff --git a/admin/images/icons/computer_edit.png b/admin/images/icons/computer_edit.png new file mode 100644 index 0000000..34c72fe Binary files /dev/null and b/admin/images/icons/computer_edit.png differ diff --git a/admin/images/icons/computer_error.png b/admin/images/icons/computer_error.png new file mode 100644 index 0000000..b2c3ed5 Binary files /dev/null and b/admin/images/icons/computer_error.png differ diff --git a/admin/images/icons/computer_go.png b/admin/images/icons/computer_go.png new file mode 100644 index 0000000..0b26144 Binary files /dev/null and b/admin/images/icons/computer_go.png differ diff --git a/admin/images/icons/computer_key.png b/admin/images/icons/computer_key.png new file mode 100644 index 0000000..eca5430 Binary files /dev/null and b/admin/images/icons/computer_key.png differ diff --git a/admin/images/icons/computer_link.png b/admin/images/icons/computer_link.png new file mode 100644 index 0000000..3859db2 Binary files /dev/null and b/admin/images/icons/computer_link.png differ diff --git a/admin/images/icons/connect.png b/admin/images/icons/connect.png new file mode 100644 index 0000000..024138e Binary files /dev/null and b/admin/images/icons/connect.png differ diff --git a/admin/images/icons/contrast.png b/admin/images/icons/contrast.png new file mode 100644 index 0000000..adcc004 Binary files /dev/null and b/admin/images/icons/contrast.png differ diff --git a/admin/images/icons/contrast_decrease.png b/admin/images/icons/contrast_decrease.png new file mode 100644 index 0000000..0155bf5 Binary files /dev/null and b/admin/images/icons/contrast_decrease.png differ diff --git a/admin/images/icons/contrast_high.png b/admin/images/icons/contrast_high.png new file mode 100644 index 0000000..d87c8cb Binary files /dev/null and b/admin/images/icons/contrast_high.png differ diff --git a/admin/images/icons/contrast_increase.png b/admin/images/icons/contrast_increase.png new file mode 100644 index 0000000..a3e7f52 Binary files /dev/null and b/admin/images/icons/contrast_increase.png differ diff --git a/admin/images/icons/contrast_low.png b/admin/images/icons/contrast_low.png new file mode 100644 index 0000000..dc9f4b1 Binary files /dev/null and b/admin/images/icons/contrast_low.png differ diff --git a/admin/images/icons/control_eject.png b/admin/images/icons/control_eject.png new file mode 100644 index 0000000..924d817 Binary files /dev/null and b/admin/images/icons/control_eject.png differ diff --git a/admin/images/icons/control_eject_blue.png b/admin/images/icons/control_eject_blue.png new file mode 100644 index 0000000..2bd4963 Binary files /dev/null and b/admin/images/icons/control_eject_blue.png differ diff --git a/admin/images/icons/control_end.png b/admin/images/icons/control_end.png new file mode 100644 index 0000000..036e04d Binary files /dev/null and b/admin/images/icons/control_end.png differ diff --git a/admin/images/icons/control_end_blue.png b/admin/images/icons/control_end_blue.png new file mode 100644 index 0000000..7207935 Binary files /dev/null and b/admin/images/icons/control_end_blue.png differ diff --git a/admin/images/icons/control_equalizer.png b/admin/images/icons/control_equalizer.png new file mode 100644 index 0000000..4606087 Binary files /dev/null and b/admin/images/icons/control_equalizer.png differ diff --git a/admin/images/icons/control_equalizer_blue.png b/admin/images/icons/control_equalizer_blue.png new file mode 100644 index 0000000..1b2e6a3 Binary files /dev/null and b/admin/images/icons/control_equalizer_blue.png differ diff --git a/admin/images/icons/control_fastforward.png b/admin/images/icons/control_fastforward.png new file mode 100644 index 0000000..31f7fd3 Binary files /dev/null and b/admin/images/icons/control_fastforward.png differ diff --git a/admin/images/icons/control_fastforward_blue.png b/admin/images/icons/control_fastforward_blue.png new file mode 100644 index 0000000..4a2f9d4 Binary files /dev/null and b/admin/images/icons/control_fastforward_blue.png differ diff --git a/admin/images/icons/control_pause.png b/admin/images/icons/control_pause.png new file mode 100644 index 0000000..2d9ce9c Binary files /dev/null and b/admin/images/icons/control_pause.png differ diff --git a/admin/images/icons/control_pause_blue.png b/admin/images/icons/control_pause_blue.png new file mode 100644 index 0000000..ec61099 Binary files /dev/null and b/admin/images/icons/control_pause_blue.png differ diff --git a/admin/images/icons/control_play.png b/admin/images/icons/control_play.png new file mode 100644 index 0000000..0846555 Binary files /dev/null and b/admin/images/icons/control_play.png differ diff --git a/admin/images/icons/control_play_blue.png b/admin/images/icons/control_play_blue.png new file mode 100644 index 0000000..f8c8ec6 Binary files /dev/null and b/admin/images/icons/control_play_blue.png differ diff --git a/admin/images/icons/control_repeat.png b/admin/images/icons/control_repeat.png new file mode 100644 index 0000000..1c4f57a Binary files /dev/null and b/admin/images/icons/control_repeat.png differ diff --git a/admin/images/icons/control_repeat_blue.png b/admin/images/icons/control_repeat_blue.png new file mode 100644 index 0000000..406ec33 Binary files /dev/null and b/admin/images/icons/control_repeat_blue.png differ diff --git a/admin/images/icons/control_rewind.png b/admin/images/icons/control_rewind.png new file mode 100644 index 0000000..c029447 Binary files /dev/null and b/admin/images/icons/control_rewind.png differ diff --git a/admin/images/icons/control_rewind_blue.png b/admin/images/icons/control_rewind_blue.png new file mode 100644 index 0000000..15d1584 Binary files /dev/null and b/admin/images/icons/control_rewind_blue.png differ diff --git a/admin/images/icons/control_start.png b/admin/images/icons/control_start.png new file mode 100644 index 0000000..7dd1c07 Binary files /dev/null and b/admin/images/icons/control_start.png differ diff --git a/admin/images/icons/control_start_blue.png b/admin/images/icons/control_start_blue.png new file mode 100644 index 0000000..6f11fcb Binary files /dev/null and b/admin/images/icons/control_start_blue.png differ diff --git a/admin/images/icons/control_stop.png b/admin/images/icons/control_stop.png new file mode 100644 index 0000000..893bb60 Binary files /dev/null and b/admin/images/icons/control_stop.png differ diff --git a/admin/images/icons/control_stop_blue.png b/admin/images/icons/control_stop_blue.png new file mode 100644 index 0000000..e6f75d2 Binary files /dev/null and b/admin/images/icons/control_stop_blue.png differ diff --git a/admin/images/icons/controller.png b/admin/images/icons/controller.png new file mode 100644 index 0000000..5cf76ed Binary files /dev/null and b/admin/images/icons/controller.png differ diff --git a/admin/images/icons/controller_add.png b/admin/images/icons/controller_add.png new file mode 100644 index 0000000..efecb38 Binary files /dev/null and b/admin/images/icons/controller_add.png differ diff --git a/admin/images/icons/controller_delete.png b/admin/images/icons/controller_delete.png new file mode 100644 index 0000000..3d83bc7 Binary files /dev/null and b/admin/images/icons/controller_delete.png differ diff --git a/admin/images/icons/controller_error.png b/admin/images/icons/controller_error.png new file mode 100644 index 0000000..7f17c0c Binary files /dev/null and b/admin/images/icons/controller_error.png differ diff --git a/admin/images/icons/creditcards.png b/admin/images/icons/creditcards.png new file mode 100644 index 0000000..4eae583 Binary files /dev/null and b/admin/images/icons/creditcards.png differ diff --git a/admin/images/icons/cross.png b/admin/images/icons/cross.png new file mode 100644 index 0000000..1514d51 Binary files /dev/null and b/admin/images/icons/cross.png differ diff --git a/admin/images/icons/css.png b/admin/images/icons/css.png new file mode 100644 index 0000000..23f3101 Binary files /dev/null and b/admin/images/icons/css.png differ diff --git a/admin/images/icons/css_add.png b/admin/images/icons/css_add.png new file mode 100644 index 0000000..e8ea10f Binary files /dev/null and b/admin/images/icons/css_add.png differ diff --git a/admin/images/icons/css_delete.png b/admin/images/icons/css_delete.png new file mode 100644 index 0000000..326aba4 Binary files /dev/null and b/admin/images/icons/css_delete.png differ diff --git a/admin/images/icons/css_go.png b/admin/images/icons/css_go.png new file mode 100644 index 0000000..6cdf38c Binary files /dev/null and b/admin/images/icons/css_go.png differ diff --git a/admin/images/icons/css_valid.png b/admin/images/icons/css_valid.png new file mode 100644 index 0000000..4c72ca5 Binary files /dev/null and b/admin/images/icons/css_valid.png differ diff --git a/admin/images/icons/cup.png b/admin/images/icons/cup.png new file mode 100644 index 0000000..b7bfcd1 Binary files /dev/null and b/admin/images/icons/cup.png differ diff --git a/admin/images/icons/cup_add.png b/admin/images/icons/cup_add.png new file mode 100644 index 0000000..4ecaece Binary files /dev/null and b/admin/images/icons/cup_add.png differ diff --git a/admin/images/icons/cup_delete.png b/admin/images/icons/cup_delete.png new file mode 100644 index 0000000..59a6d9c Binary files /dev/null and b/admin/images/icons/cup_delete.png differ diff --git a/admin/images/icons/cup_edit.png b/admin/images/icons/cup_edit.png new file mode 100644 index 0000000..0b8f1e1 Binary files /dev/null and b/admin/images/icons/cup_edit.png differ diff --git a/admin/images/icons/cup_error.png b/admin/images/icons/cup_error.png new file mode 100644 index 0000000..6879874 Binary files /dev/null and b/admin/images/icons/cup_error.png differ diff --git a/admin/images/icons/cup_go.png b/admin/images/icons/cup_go.png new file mode 100644 index 0000000..9527efb Binary files /dev/null and b/admin/images/icons/cup_go.png differ diff --git a/admin/images/icons/cup_key.png b/admin/images/icons/cup_key.png new file mode 100644 index 0000000..7ae160c Binary files /dev/null and b/admin/images/icons/cup_key.png differ diff --git a/admin/images/icons/cup_link.png b/admin/images/icons/cup_link.png new file mode 100644 index 0000000..41d1ace Binary files /dev/null and b/admin/images/icons/cup_link.png differ diff --git a/admin/images/icons/cursor.png b/admin/images/icons/cursor.png new file mode 100644 index 0000000..532f532 Binary files /dev/null and b/admin/images/icons/cursor.png differ diff --git a/admin/images/icons/cut.png b/admin/images/icons/cut.png new file mode 100644 index 0000000..f215d6f Binary files /dev/null and b/admin/images/icons/cut.png differ diff --git a/admin/images/icons/cut_red.png b/admin/images/icons/cut_red.png new file mode 100644 index 0000000..85bb2f0 Binary files /dev/null and b/admin/images/icons/cut_red.png differ diff --git a/admin/images/icons/database.png b/admin/images/icons/database.png new file mode 100644 index 0000000..3d09261 Binary files /dev/null and b/admin/images/icons/database.png differ diff --git a/admin/images/icons/database_add.png b/admin/images/icons/database_add.png new file mode 100644 index 0000000..802bd6c Binary files /dev/null and b/admin/images/icons/database_add.png differ diff --git a/admin/images/icons/database_connect.png b/admin/images/icons/database_connect.png new file mode 100644 index 0000000..3a11197 Binary files /dev/null and b/admin/images/icons/database_connect.png differ diff --git a/admin/images/icons/database_delete.png b/admin/images/icons/database_delete.png new file mode 100644 index 0000000..cce652e Binary files /dev/null and b/admin/images/icons/database_delete.png differ diff --git a/admin/images/icons/database_edit.png b/admin/images/icons/database_edit.png new file mode 100644 index 0000000..e501b66 Binary files /dev/null and b/admin/images/icons/database_edit.png differ diff --git a/admin/images/icons/database_error.png b/admin/images/icons/database_error.png new file mode 100644 index 0000000..578221a Binary files /dev/null and b/admin/images/icons/database_error.png differ diff --git a/admin/images/icons/database_gear.png b/admin/images/icons/database_gear.png new file mode 100644 index 0000000..7c0ab2b Binary files /dev/null and b/admin/images/icons/database_gear.png differ diff --git a/admin/images/icons/database_go.png b/admin/images/icons/database_go.png new file mode 100644 index 0000000..61a8556 Binary files /dev/null and b/admin/images/icons/database_go.png differ diff --git a/admin/images/icons/database_key.png b/admin/images/icons/database_key.png new file mode 100644 index 0000000..3334147 Binary files /dev/null and b/admin/images/icons/database_key.png differ diff --git a/admin/images/icons/database_lightning.png b/admin/images/icons/database_lightning.png new file mode 100644 index 0000000..d9eefc2 Binary files /dev/null and b/admin/images/icons/database_lightning.png differ diff --git a/admin/images/icons/database_link.png b/admin/images/icons/database_link.png new file mode 100644 index 0000000..4c8204a Binary files /dev/null and b/admin/images/icons/database_link.png differ diff --git a/admin/images/icons/database_refresh.png b/admin/images/icons/database_refresh.png new file mode 100644 index 0000000..ff803be Binary files /dev/null and b/admin/images/icons/database_refresh.png differ diff --git a/admin/images/icons/database_save.png b/admin/images/icons/database_save.png new file mode 100644 index 0000000..44c06dd Binary files /dev/null and b/admin/images/icons/database_save.png differ diff --git a/admin/images/icons/database_table.png b/admin/images/icons/database_table.png new file mode 100644 index 0000000..693709c Binary files /dev/null and b/admin/images/icons/database_table.png differ diff --git a/admin/images/icons/date.png b/admin/images/icons/date.png new file mode 100644 index 0000000..783c833 Binary files /dev/null and b/admin/images/icons/date.png differ diff --git a/admin/images/icons/date_add.png b/admin/images/icons/date_add.png new file mode 100644 index 0000000..6a7ae02 Binary files /dev/null and b/admin/images/icons/date_add.png differ diff --git a/admin/images/icons/date_delete.png b/admin/images/icons/date_delete.png new file mode 100644 index 0000000..969a6b7 Binary files /dev/null and b/admin/images/icons/date_delete.png differ diff --git a/admin/images/icons/date_edit.png b/admin/images/icons/date_edit.png new file mode 100644 index 0000000..e681065 Binary files /dev/null and b/admin/images/icons/date_edit.png differ diff --git a/admin/images/icons/date_error.png b/admin/images/icons/date_error.png new file mode 100644 index 0000000..442cd97 Binary files /dev/null and b/admin/images/icons/date_error.png differ diff --git a/admin/images/icons/date_go.png b/admin/images/icons/date_go.png new file mode 100644 index 0000000..52dd9f3 Binary files /dev/null and b/admin/images/icons/date_go.png differ diff --git a/admin/images/icons/date_link.png b/admin/images/icons/date_link.png new file mode 100644 index 0000000..9f0aada Binary files /dev/null and b/admin/images/icons/date_link.png differ diff --git a/admin/images/icons/date_magnify.png b/admin/images/icons/date_magnify.png new file mode 100644 index 0000000..cd05f19 Binary files /dev/null and b/admin/images/icons/date_magnify.png differ diff --git a/admin/images/icons/date_next.png b/admin/images/icons/date_next.png new file mode 100644 index 0000000..48d740a Binary files /dev/null and b/admin/images/icons/date_next.png differ diff --git a/admin/images/icons/date_previous.png b/admin/images/icons/date_previous.png new file mode 100644 index 0000000..e117a83 Binary files /dev/null and b/admin/images/icons/date_previous.png differ diff --git a/admin/images/icons/delete.png b/admin/images/icons/delete.png new file mode 100644 index 0000000..08f2493 Binary files /dev/null and b/admin/images/icons/delete.png differ diff --git a/admin/images/icons/disconnect.png b/admin/images/icons/disconnect.png new file mode 100644 index 0000000..b335cb1 Binary files /dev/null and b/admin/images/icons/disconnect.png differ diff --git a/admin/images/icons/disk.png b/admin/images/icons/disk.png new file mode 100644 index 0000000..99d532e Binary files /dev/null and b/admin/images/icons/disk.png differ diff --git a/admin/images/icons/disk_multiple.png b/admin/images/icons/disk_multiple.png new file mode 100644 index 0000000..fc5a52f Binary files /dev/null and b/admin/images/icons/disk_multiple.png differ diff --git a/admin/images/icons/door.png b/admin/images/icons/door.png new file mode 100644 index 0000000..369fc46 Binary files /dev/null and b/admin/images/icons/door.png differ diff --git a/admin/images/icons/door_in.png b/admin/images/icons/door_in.png new file mode 100644 index 0000000..41676a0 Binary files /dev/null and b/admin/images/icons/door_in.png differ diff --git a/admin/images/icons/door_open.png b/admin/images/icons/door_open.png new file mode 100644 index 0000000..64bab57 Binary files /dev/null and b/admin/images/icons/door_open.png differ diff --git a/admin/images/icons/door_out.png b/admin/images/icons/door_out.png new file mode 100644 index 0000000..2541d2b Binary files /dev/null and b/admin/images/icons/door_out.png differ diff --git a/admin/images/icons/drink.png b/admin/images/icons/drink.png new file mode 100644 index 0000000..d98359c Binary files /dev/null and b/admin/images/icons/drink.png differ diff --git a/admin/images/icons/drink_empty.png b/admin/images/icons/drink_empty.png new file mode 100644 index 0000000..a40211e Binary files /dev/null and b/admin/images/icons/drink_empty.png differ diff --git a/admin/images/icons/drive.png b/admin/images/icons/drive.png new file mode 100644 index 0000000..37b7c9b Binary files /dev/null and b/admin/images/icons/drive.png differ diff --git a/admin/images/icons/drive_add.png b/admin/images/icons/drive_add.png new file mode 100644 index 0000000..29a35d5 Binary files /dev/null and b/admin/images/icons/drive_add.png differ diff --git a/admin/images/icons/drive_burn.png b/admin/images/icons/drive_burn.png new file mode 100644 index 0000000..80fd79f Binary files /dev/null and b/admin/images/icons/drive_burn.png differ diff --git a/admin/images/icons/drive_cd.png b/admin/images/icons/drive_cd.png new file mode 100644 index 0000000..1850b70 Binary files /dev/null and b/admin/images/icons/drive_cd.png differ diff --git a/admin/images/icons/drive_cd_empty.png b/admin/images/icons/drive_cd_empty.png new file mode 100644 index 0000000..8df38d9 Binary files /dev/null and b/admin/images/icons/drive_cd_empty.png differ diff --git a/admin/images/icons/drive_delete.png b/admin/images/icons/drive_delete.png new file mode 100644 index 0000000..e6eb186 Binary files /dev/null and b/admin/images/icons/drive_delete.png differ diff --git a/admin/images/icons/drive_disk.png b/admin/images/icons/drive_disk.png new file mode 100644 index 0000000..5a51e81 Binary files /dev/null and b/admin/images/icons/drive_disk.png differ diff --git a/admin/images/icons/drive_edit.png b/admin/images/icons/drive_edit.png new file mode 100644 index 0000000..7923fad Binary files /dev/null and b/admin/images/icons/drive_edit.png differ diff --git a/admin/images/icons/drive_error.png b/admin/images/icons/drive_error.png new file mode 100644 index 0000000..309f639 Binary files /dev/null and b/admin/images/icons/drive_error.png differ diff --git a/admin/images/icons/drive_go.png b/admin/images/icons/drive_go.png new file mode 100644 index 0000000..fc53379 Binary files /dev/null and b/admin/images/icons/drive_go.png differ diff --git a/admin/images/icons/drive_key.png b/admin/images/icons/drive_key.png new file mode 100644 index 0000000..d0b3c67 Binary files /dev/null and b/admin/images/icons/drive_key.png differ diff --git a/admin/images/icons/drive_link.png b/admin/images/icons/drive_link.png new file mode 100644 index 0000000..8679c4b Binary files /dev/null and b/admin/images/icons/drive_link.png differ diff --git a/admin/images/icons/drive_magnify.png b/admin/images/icons/drive_magnify.png new file mode 100644 index 0000000..0f0f444 Binary files /dev/null and b/admin/images/icons/drive_magnify.png differ diff --git a/admin/images/icons/drive_network.png b/admin/images/icons/drive_network.png new file mode 100644 index 0000000..63d2d5d Binary files /dev/null and b/admin/images/icons/drive_network.png differ diff --git a/admin/images/icons/drive_rename.png b/admin/images/icons/drive_rename.png new file mode 100644 index 0000000..2a9f38b Binary files /dev/null and b/admin/images/icons/drive_rename.png differ diff --git a/admin/images/icons/drive_user.png b/admin/images/icons/drive_user.png new file mode 100644 index 0000000..0b4751c Binary files /dev/null and b/admin/images/icons/drive_user.png differ diff --git a/admin/images/icons/drive_web.png b/admin/images/icons/drive_web.png new file mode 100644 index 0000000..8850a83 Binary files /dev/null and b/admin/images/icons/drive_web.png differ diff --git a/admin/images/icons/dvd.png b/admin/images/icons/dvd.png new file mode 100644 index 0000000..9d94de5 Binary files /dev/null and b/admin/images/icons/dvd.png differ diff --git a/admin/images/icons/dvd_add.png b/admin/images/icons/dvd_add.png new file mode 100644 index 0000000..517d112 Binary files /dev/null and b/admin/images/icons/dvd_add.png differ diff --git a/admin/images/icons/dvd_delete.png b/admin/images/icons/dvd_delete.png new file mode 100644 index 0000000..87bed22 Binary files /dev/null and b/admin/images/icons/dvd_delete.png differ diff --git a/admin/images/icons/dvd_edit.png b/admin/images/icons/dvd_edit.png new file mode 100644 index 0000000..d6330aa Binary files /dev/null and b/admin/images/icons/dvd_edit.png differ diff --git a/admin/images/icons/dvd_error.png b/admin/images/icons/dvd_error.png new file mode 100644 index 0000000..8f6d4be Binary files /dev/null and b/admin/images/icons/dvd_error.png differ diff --git a/admin/images/icons/dvd_go.png b/admin/images/icons/dvd_go.png new file mode 100644 index 0000000..ef6959f Binary files /dev/null and b/admin/images/icons/dvd_go.png differ diff --git a/admin/images/icons/dvd_key.png b/admin/images/icons/dvd_key.png new file mode 100644 index 0000000..da9307f Binary files /dev/null and b/admin/images/icons/dvd_key.png differ diff --git a/admin/images/icons/dvd_link.png b/admin/images/icons/dvd_link.png new file mode 100644 index 0000000..caad726 Binary files /dev/null and b/admin/images/icons/dvd_link.png differ diff --git a/admin/images/icons/email.png b/admin/images/icons/email.png new file mode 100644 index 0000000..7348aed Binary files /dev/null and b/admin/images/icons/email.png differ diff --git a/admin/images/icons/email_add.png b/admin/images/icons/email_add.png new file mode 100644 index 0000000..6c93368 Binary files /dev/null and b/admin/images/icons/email_add.png differ diff --git a/admin/images/icons/email_attach.png b/admin/images/icons/email_attach.png new file mode 100644 index 0000000..1f99485 Binary files /dev/null and b/admin/images/icons/email_attach.png differ diff --git a/admin/images/icons/email_delete.png b/admin/images/icons/email_delete.png new file mode 100644 index 0000000..a9932b1 Binary files /dev/null and b/admin/images/icons/email_delete.png differ diff --git a/admin/images/icons/email_edit.png b/admin/images/icons/email_edit.png new file mode 100644 index 0000000..244f04a Binary files /dev/null and b/admin/images/icons/email_edit.png differ diff --git a/admin/images/icons/email_error.png b/admin/images/icons/email_error.png new file mode 100644 index 0000000..8bdd330 Binary files /dev/null and b/admin/images/icons/email_error.png differ diff --git a/admin/images/icons/email_go.png b/admin/images/icons/email_go.png new file mode 100644 index 0000000..4a6c5d3 Binary files /dev/null and b/admin/images/icons/email_go.png differ diff --git a/admin/images/icons/email_link.png b/admin/images/icons/email_link.png new file mode 100644 index 0000000..2c49f78 Binary files /dev/null and b/admin/images/icons/email_link.png differ diff --git a/admin/images/icons/email_open.png b/admin/images/icons/email_open.png new file mode 100644 index 0000000..7b6f981 Binary files /dev/null and b/admin/images/icons/email_open.png differ diff --git a/admin/images/icons/email_open_image.png b/admin/images/icons/email_open_image.png new file mode 100644 index 0000000..e588e2f Binary files /dev/null and b/admin/images/icons/email_open_image.png differ diff --git a/admin/images/icons/emoticon_evilgrin.png b/admin/images/icons/emoticon_evilgrin.png new file mode 100644 index 0000000..817bd50 Binary files /dev/null and b/admin/images/icons/emoticon_evilgrin.png differ diff --git a/admin/images/icons/emoticon_grin.png b/admin/images/icons/emoticon_grin.png new file mode 100644 index 0000000..fc60c5e Binary files /dev/null and b/admin/images/icons/emoticon_grin.png differ diff --git a/admin/images/icons/emoticon_happy.png b/admin/images/icons/emoticon_happy.png new file mode 100644 index 0000000..6b7336e Binary files /dev/null and b/admin/images/icons/emoticon_happy.png differ diff --git a/admin/images/icons/emoticon_smile.png b/admin/images/icons/emoticon_smile.png new file mode 100644 index 0000000..ade4318 Binary files /dev/null and b/admin/images/icons/emoticon_smile.png differ diff --git a/admin/images/icons/emoticon_surprised.png b/admin/images/icons/emoticon_surprised.png new file mode 100644 index 0000000..4520cfc Binary files /dev/null and b/admin/images/icons/emoticon_surprised.png differ diff --git a/admin/images/icons/emoticon_tongue.png b/admin/images/icons/emoticon_tongue.png new file mode 100644 index 0000000..ecafd2f Binary files /dev/null and b/admin/images/icons/emoticon_tongue.png differ diff --git a/admin/images/icons/emoticon_unhappy.png b/admin/images/icons/emoticon_unhappy.png new file mode 100644 index 0000000..fd5d030 Binary files /dev/null and b/admin/images/icons/emoticon_unhappy.png differ diff --git a/admin/images/icons/emoticon_waii.png b/admin/images/icons/emoticon_waii.png new file mode 100644 index 0000000..458f936 Binary files /dev/null and b/admin/images/icons/emoticon_waii.png differ diff --git a/admin/images/icons/emoticon_wink.png b/admin/images/icons/emoticon_wink.png new file mode 100644 index 0000000..a631949 Binary files /dev/null and b/admin/images/icons/emoticon_wink.png differ diff --git a/admin/images/icons/error.png b/admin/images/icons/error.png new file mode 100644 index 0000000..628cf2d Binary files /dev/null and b/admin/images/icons/error.png differ diff --git a/admin/images/icons/error_add.png b/admin/images/icons/error_add.png new file mode 100644 index 0000000..4c97484 Binary files /dev/null and b/admin/images/icons/error_add.png differ diff --git a/admin/images/icons/error_delete.png b/admin/images/icons/error_delete.png new file mode 100644 index 0000000..7f78bcc Binary files /dev/null and b/admin/images/icons/error_delete.png differ diff --git a/admin/images/icons/error_go.png b/admin/images/icons/error_go.png new file mode 100644 index 0000000..caa1838 Binary files /dev/null and b/admin/images/icons/error_go.png differ diff --git a/admin/images/icons/exclamation.png b/admin/images/icons/exclamation.png new file mode 100644 index 0000000..c37bd06 Binary files /dev/null and b/admin/images/icons/exclamation.png differ diff --git a/admin/images/icons/eye.png b/admin/images/icons/eye.png new file mode 100644 index 0000000..564a1a9 Binary files /dev/null and b/admin/images/icons/eye.png differ diff --git a/admin/images/icons/feed.png b/admin/images/icons/feed.png new file mode 100644 index 0000000..315c4f4 Binary files /dev/null and b/admin/images/icons/feed.png differ diff --git a/admin/images/icons/feed_add.png b/admin/images/icons/feed_add.png new file mode 100644 index 0000000..e77d46e Binary files /dev/null and b/admin/images/icons/feed_add.png differ diff --git a/admin/images/icons/feed_delete.png b/admin/images/icons/feed_delete.png new file mode 100644 index 0000000..5e332b4 Binary files /dev/null and b/admin/images/icons/feed_delete.png differ diff --git a/admin/images/icons/feed_disk.png b/admin/images/icons/feed_disk.png new file mode 100644 index 0000000..a158c99 Binary files /dev/null and b/admin/images/icons/feed_disk.png differ diff --git a/admin/images/icons/feed_edit.png b/admin/images/icons/feed_edit.png new file mode 100644 index 0000000..f1fde7a Binary files /dev/null and b/admin/images/icons/feed_edit.png differ diff --git a/admin/images/icons/feed_error.png b/admin/images/icons/feed_error.png new file mode 100644 index 0000000..c0a801c Binary files /dev/null and b/admin/images/icons/feed_error.png differ diff --git a/admin/images/icons/feed_go.png b/admin/images/icons/feed_go.png new file mode 100644 index 0000000..f2eed1e Binary files /dev/null and b/admin/images/icons/feed_go.png differ diff --git a/admin/images/icons/feed_key.png b/admin/images/icons/feed_key.png new file mode 100644 index 0000000..156bfa9 Binary files /dev/null and b/admin/images/icons/feed_key.png differ diff --git a/admin/images/icons/feed_link.png b/admin/images/icons/feed_link.png new file mode 100644 index 0000000..c45a534 Binary files /dev/null and b/admin/images/icons/feed_link.png differ diff --git a/admin/images/icons/feed_magnify.png b/admin/images/icons/feed_magnify.png new file mode 100644 index 0000000..3023695 Binary files /dev/null and b/admin/images/icons/feed_magnify.png differ diff --git a/admin/images/icons/female.png b/admin/images/icons/female.png new file mode 100644 index 0000000..f92958e Binary files /dev/null and b/admin/images/icons/female.png differ diff --git a/admin/images/icons/film.png b/admin/images/icons/film.png new file mode 100644 index 0000000..b0ce7bb Binary files /dev/null and b/admin/images/icons/film.png differ diff --git a/admin/images/icons/film_add.png b/admin/images/icons/film_add.png new file mode 100644 index 0000000..40d681f Binary files /dev/null and b/admin/images/icons/film_add.png differ diff --git a/admin/images/icons/film_delete.png b/admin/images/icons/film_delete.png new file mode 100644 index 0000000..23a2508 Binary files /dev/null and b/admin/images/icons/film_delete.png differ diff --git a/admin/images/icons/film_edit.png b/admin/images/icons/film_edit.png new file mode 100644 index 0000000..af66b73 Binary files /dev/null and b/admin/images/icons/film_edit.png differ diff --git a/admin/images/icons/film_error.png b/admin/images/icons/film_error.png new file mode 100644 index 0000000..88f3d69 Binary files /dev/null and b/admin/images/icons/film_error.png differ diff --git a/admin/images/icons/film_go.png b/admin/images/icons/film_go.png new file mode 100644 index 0000000..dd0168e Binary files /dev/null and b/admin/images/icons/film_go.png differ diff --git a/admin/images/icons/film_key.png b/admin/images/icons/film_key.png new file mode 100644 index 0000000..5892162 Binary files /dev/null and b/admin/images/icons/film_key.png differ diff --git a/admin/images/icons/film_link.png b/admin/images/icons/film_link.png new file mode 100644 index 0000000..0f24e86 Binary files /dev/null and b/admin/images/icons/film_link.png differ diff --git a/admin/images/icons/film_save.png b/admin/images/icons/film_save.png new file mode 100644 index 0000000..bc8c0d3 Binary files /dev/null and b/admin/images/icons/film_save.png differ diff --git a/admin/images/icons/find.png b/admin/images/icons/find.png new file mode 100644 index 0000000..1547479 Binary files /dev/null and b/admin/images/icons/find.png differ diff --git a/admin/images/icons/flag_blue.png b/admin/images/icons/flag_blue.png new file mode 100644 index 0000000..003924f Binary files /dev/null and b/admin/images/icons/flag_blue.png differ diff --git a/admin/images/icons/flag_green.png b/admin/images/icons/flag_green.png new file mode 100644 index 0000000..e4bc611 Binary files /dev/null and b/admin/images/icons/flag_green.png differ diff --git a/admin/images/icons/flag_orange.png b/admin/images/icons/flag_orange.png new file mode 100644 index 0000000..e632024 Binary files /dev/null and b/admin/images/icons/flag_orange.png differ diff --git a/admin/images/icons/flag_pink.png b/admin/images/icons/flag_pink.png new file mode 100644 index 0000000..5f15e52 Binary files /dev/null and b/admin/images/icons/flag_pink.png differ diff --git a/admin/images/icons/flag_purple.png b/admin/images/icons/flag_purple.png new file mode 100644 index 0000000..d069866 Binary files /dev/null and b/admin/images/icons/flag_purple.png differ diff --git a/admin/images/icons/flag_red.png b/admin/images/icons/flag_red.png new file mode 100644 index 0000000..e8a602d Binary files /dev/null and b/admin/images/icons/flag_red.png differ diff --git a/admin/images/icons/flag_yellow.png b/admin/images/icons/flag_yellow.png new file mode 100644 index 0000000..14c89a5 Binary files /dev/null and b/admin/images/icons/flag_yellow.png differ diff --git a/admin/images/icons/folder.png b/admin/images/icons/folder.png new file mode 100644 index 0000000..784e8fa Binary files /dev/null and b/admin/images/icons/folder.png differ diff --git a/admin/images/icons/folder_add.png b/admin/images/icons/folder_add.png new file mode 100644 index 0000000..529fe8f Binary files /dev/null and b/admin/images/icons/folder_add.png differ diff --git a/admin/images/icons/folder_bell.png b/admin/images/icons/folder_bell.png new file mode 100644 index 0000000..d04dd7f Binary files /dev/null and b/admin/images/icons/folder_bell.png differ diff --git a/admin/images/icons/folder_brick.png b/admin/images/icons/folder_brick.png new file mode 100644 index 0000000..5dea976 Binary files /dev/null and b/admin/images/icons/folder_brick.png differ diff --git a/admin/images/icons/folder_bug.png b/admin/images/icons/folder_bug.png new file mode 100644 index 0000000..4f791b6 Binary files /dev/null and b/admin/images/icons/folder_bug.png differ diff --git a/admin/images/icons/folder_camera.png b/admin/images/icons/folder_camera.png new file mode 100644 index 0000000..c951941 Binary files /dev/null and b/admin/images/icons/folder_camera.png differ diff --git a/admin/images/icons/folder_database.png b/admin/images/icons/folder_database.png new file mode 100644 index 0000000..5193e2e Binary files /dev/null and b/admin/images/icons/folder_database.png differ diff --git a/admin/images/icons/folder_delete.png b/admin/images/icons/folder_delete.png new file mode 100644 index 0000000..112b016 Binary files /dev/null and b/admin/images/icons/folder_delete.png differ diff --git a/admin/images/icons/folder_edit.png b/admin/images/icons/folder_edit.png new file mode 100644 index 0000000..ad669cc Binary files /dev/null and b/admin/images/icons/folder_edit.png differ diff --git a/admin/images/icons/folder_error.png b/admin/images/icons/folder_error.png new file mode 100644 index 0000000..1af8809 Binary files /dev/null and b/admin/images/icons/folder_error.png differ diff --git a/admin/images/icons/folder_explore.png b/admin/images/icons/folder_explore.png new file mode 100644 index 0000000..0ba9391 Binary files /dev/null and b/admin/images/icons/folder_explore.png differ diff --git a/admin/images/icons/folder_feed.png b/admin/images/icons/folder_feed.png new file mode 100644 index 0000000..d06ee51 Binary files /dev/null and b/admin/images/icons/folder_feed.png differ diff --git a/admin/images/icons/folder_find.png b/admin/images/icons/folder_find.png new file mode 100644 index 0000000..c64e2ee Binary files /dev/null and b/admin/images/icons/folder_find.png differ diff --git a/admin/images/icons/folder_go.png b/admin/images/icons/folder_go.png new file mode 100644 index 0000000..34a736f Binary files /dev/null and b/admin/images/icons/folder_go.png differ diff --git a/admin/images/icons/folder_heart.png b/admin/images/icons/folder_heart.png new file mode 100644 index 0000000..56d7da1 Binary files /dev/null and b/admin/images/icons/folder_heart.png differ diff --git a/admin/images/icons/folder_image.png b/admin/images/icons/folder_image.png new file mode 100644 index 0000000..d5df75b Binary files /dev/null and b/admin/images/icons/folder_image.png differ diff --git a/admin/images/icons/folder_key.png b/admin/images/icons/folder_key.png new file mode 100644 index 0000000..fb9b4c2 Binary files /dev/null and b/admin/images/icons/folder_key.png differ diff --git a/admin/images/icons/folder_lightbulb.png b/admin/images/icons/folder_lightbulb.png new file mode 100644 index 0000000..f367a51 Binary files /dev/null and b/admin/images/icons/folder_lightbulb.png differ diff --git a/admin/images/icons/folder_link.png b/admin/images/icons/folder_link.png new file mode 100644 index 0000000..b9b75f6 Binary files /dev/null and b/admin/images/icons/folder_link.png differ diff --git a/admin/images/icons/folder_magnify.png b/admin/images/icons/folder_magnify.png new file mode 100644 index 0000000..0a3e798 Binary files /dev/null and b/admin/images/icons/folder_magnify.png differ diff --git a/admin/images/icons/folder_page.png b/admin/images/icons/folder_page.png new file mode 100644 index 0000000..1ef6e11 Binary files /dev/null and b/admin/images/icons/folder_page.png differ diff --git a/admin/images/icons/folder_page_white.png b/admin/images/icons/folder_page_white.png new file mode 100644 index 0000000..14d6b61 Binary files /dev/null and b/admin/images/icons/folder_page_white.png differ diff --git a/admin/images/icons/folder_palette.png b/admin/images/icons/folder_palette.png new file mode 100644 index 0000000..ba12fe8 Binary files /dev/null and b/admin/images/icons/folder_palette.png differ diff --git a/admin/images/icons/folder_picture.png b/admin/images/icons/folder_picture.png new file mode 100644 index 0000000..052b336 Binary files /dev/null and b/admin/images/icons/folder_picture.png differ diff --git a/admin/images/icons/folder_star.png b/admin/images/icons/folder_star.png new file mode 100644 index 0000000..448e46f Binary files /dev/null and b/admin/images/icons/folder_star.png differ diff --git a/admin/images/icons/folder_table.png b/admin/images/icons/folder_table.png new file mode 100644 index 0000000..473cee3 Binary files /dev/null and b/admin/images/icons/folder_table.png differ diff --git a/admin/images/icons/folder_user.png b/admin/images/icons/folder_user.png new file mode 100644 index 0000000..f021c3e Binary files /dev/null and b/admin/images/icons/folder_user.png differ diff --git a/admin/images/icons/folder_wrench.png b/admin/images/icons/folder_wrench.png new file mode 100644 index 0000000..ea3404e Binary files /dev/null and b/admin/images/icons/folder_wrench.png differ diff --git a/admin/images/icons/font.png b/admin/images/icons/font.png new file mode 100644 index 0000000..b7960db Binary files /dev/null and b/admin/images/icons/font.png differ diff --git a/admin/images/icons/font_add.png b/admin/images/icons/font_add.png new file mode 100644 index 0000000..b709eba Binary files /dev/null and b/admin/images/icons/font_add.png differ diff --git a/admin/images/icons/font_delete.png b/admin/images/icons/font_delete.png new file mode 100644 index 0000000..1d6124d Binary files /dev/null and b/admin/images/icons/font_delete.png differ diff --git a/admin/images/icons/font_go.png b/admin/images/icons/font_go.png new file mode 100644 index 0000000..75eba80 Binary files /dev/null and b/admin/images/icons/font_go.png differ diff --git a/admin/images/icons/group.png b/admin/images/icons/group.png new file mode 100644 index 0000000..7fb4e1f Binary files /dev/null and b/admin/images/icons/group.png differ diff --git a/admin/images/icons/group_add.png b/admin/images/icons/group_add.png new file mode 100644 index 0000000..06c5350 Binary files /dev/null and b/admin/images/icons/group_add.png differ diff --git a/admin/images/icons/group_delete.png b/admin/images/icons/group_delete.png new file mode 100644 index 0000000..4489ca2 Binary files /dev/null and b/admin/images/icons/group_delete.png differ diff --git a/admin/images/icons/group_edit.png b/admin/images/icons/group_edit.png new file mode 100644 index 0000000..c88b945 Binary files /dev/null and b/admin/images/icons/group_edit.png differ diff --git a/admin/images/icons/group_error.png b/admin/images/icons/group_error.png new file mode 100644 index 0000000..7364a13 Binary files /dev/null and b/admin/images/icons/group_error.png differ diff --git a/admin/images/icons/group_gear.png b/admin/images/icons/group_gear.png new file mode 100644 index 0000000..2544f2e Binary files /dev/null and b/admin/images/icons/group_gear.png differ diff --git a/admin/images/icons/group_go.png b/admin/images/icons/group_go.png new file mode 100644 index 0000000..1f52333 Binary files /dev/null and b/admin/images/icons/group_go.png differ diff --git a/admin/images/icons/group_key.png b/admin/images/icons/group_key.png new file mode 100644 index 0000000..257f111 Binary files /dev/null and b/admin/images/icons/group_key.png differ diff --git a/admin/images/icons/group_link.png b/admin/images/icons/group_link.png new file mode 100644 index 0000000..c77ed88 Binary files /dev/null and b/admin/images/icons/group_link.png differ diff --git a/admin/images/icons/heart.png b/admin/images/icons/heart.png new file mode 100644 index 0000000..d9ee53e Binary files /dev/null and b/admin/images/icons/heart.png differ diff --git a/admin/images/icons/heart_add.png b/admin/images/icons/heart_add.png new file mode 100644 index 0000000..d4195ff Binary files /dev/null and b/admin/images/icons/heart_add.png differ diff --git a/admin/images/icons/heart_delete.png b/admin/images/icons/heart_delete.png new file mode 100644 index 0000000..ce523e3 Binary files /dev/null and b/admin/images/icons/heart_delete.png differ diff --git a/admin/images/icons/help.png b/admin/images/icons/help.png new file mode 100644 index 0000000..5c87017 Binary files /dev/null and b/admin/images/icons/help.png differ diff --git a/admin/images/icons/hourglass.png b/admin/images/icons/hourglass.png new file mode 100644 index 0000000..57b03ce Binary files /dev/null and b/admin/images/icons/hourglass.png differ diff --git a/admin/images/icons/hourglass_add.png b/admin/images/icons/hourglass_add.png new file mode 100644 index 0000000..170dfff Binary files /dev/null and b/admin/images/icons/hourglass_add.png differ diff --git a/admin/images/icons/hourglass_delete.png b/admin/images/icons/hourglass_delete.png new file mode 100644 index 0000000..4b1337b Binary files /dev/null and b/admin/images/icons/hourglass_delete.png differ diff --git a/admin/images/icons/hourglass_go.png b/admin/images/icons/hourglass_go.png new file mode 100644 index 0000000..b2d3a98 Binary files /dev/null and b/admin/images/icons/hourglass_go.png differ diff --git a/admin/images/icons/hourglass_link.png b/admin/images/icons/hourglass_link.png new file mode 100644 index 0000000..ecc59b0 Binary files /dev/null and b/admin/images/icons/hourglass_link.png differ diff --git a/admin/images/icons/house.png b/admin/images/icons/house.png new file mode 100644 index 0000000..fed6221 Binary files /dev/null and b/admin/images/icons/house.png differ diff --git a/admin/images/icons/house_go.png b/admin/images/icons/house_go.png new file mode 100644 index 0000000..5457dbd Binary files /dev/null and b/admin/images/icons/house_go.png differ diff --git a/admin/images/icons/house_link.png b/admin/images/icons/house_link.png new file mode 100644 index 0000000..be2c271 Binary files /dev/null and b/admin/images/icons/house_link.png differ diff --git a/admin/images/icons/html.png b/admin/images/icons/html.png new file mode 100644 index 0000000..55d1072 Binary files /dev/null and b/admin/images/icons/html.png differ diff --git a/admin/images/icons/html_add.png b/admin/images/icons/html_add.png new file mode 100644 index 0000000..f1c08b7 Binary files /dev/null and b/admin/images/icons/html_add.png differ diff --git a/admin/images/icons/html_delete.png b/admin/images/icons/html_delete.png new file mode 100644 index 0000000..1bd2848 Binary files /dev/null and b/admin/images/icons/html_delete.png differ diff --git a/admin/images/icons/html_go.png b/admin/images/icons/html_go.png new file mode 100644 index 0000000..a95cede Binary files /dev/null and b/admin/images/icons/html_go.png differ diff --git a/admin/images/icons/html_valid.png b/admin/images/icons/html_valid.png new file mode 100644 index 0000000..71cec92 Binary files /dev/null and b/admin/images/icons/html_valid.png differ diff --git a/admin/images/icons/image.png b/admin/images/icons/image.png new file mode 100644 index 0000000..fc3c393 Binary files /dev/null and b/admin/images/icons/image.png differ diff --git a/admin/images/icons/image_add.png b/admin/images/icons/image_add.png new file mode 100644 index 0000000..fc5d613 Binary files /dev/null and b/admin/images/icons/image_add.png differ diff --git a/admin/images/icons/image_delete.png b/admin/images/icons/image_delete.png new file mode 100644 index 0000000..c260e1d Binary files /dev/null and b/admin/images/icons/image_delete.png differ diff --git a/admin/images/icons/image_edit.png b/admin/images/icons/image_edit.png new file mode 100644 index 0000000..0aa4cc6 Binary files /dev/null and b/admin/images/icons/image_edit.png differ diff --git a/admin/images/icons/image_link.png b/admin/images/icons/image_link.png new file mode 100644 index 0000000..4bdb354 Binary files /dev/null and b/admin/images/icons/image_link.png differ diff --git a/admin/images/icons/images.png b/admin/images/icons/images.png new file mode 100644 index 0000000..184860d Binary files /dev/null and b/admin/images/icons/images.png differ diff --git a/admin/images/icons/information.png b/admin/images/icons/information.png new file mode 100644 index 0000000..12cd1ae Binary files /dev/null and b/admin/images/icons/information.png differ diff --git a/admin/images/icons/ipod.png b/admin/images/icons/ipod.png new file mode 100644 index 0000000..3f768da Binary files /dev/null and b/admin/images/icons/ipod.png differ diff --git a/admin/images/icons/ipod_cast.png b/admin/images/icons/ipod_cast.png new file mode 100644 index 0000000..6f6d340 Binary files /dev/null and b/admin/images/icons/ipod_cast.png differ diff --git a/admin/images/icons/ipod_cast_add.png b/admin/images/icons/ipod_cast_add.png new file mode 100644 index 0000000..c3257f5 Binary files /dev/null and b/admin/images/icons/ipod_cast_add.png differ diff --git a/admin/images/icons/ipod_cast_delete.png b/admin/images/icons/ipod_cast_delete.png new file mode 100644 index 0000000..377ab69 Binary files /dev/null and b/admin/images/icons/ipod_cast_delete.png differ diff --git a/admin/images/icons/ipod_sound.png b/admin/images/icons/ipod_sound.png new file mode 100644 index 0000000..fef6e8b Binary files /dev/null and b/admin/images/icons/ipod_sound.png differ diff --git a/admin/images/icons/joystick.png b/admin/images/icons/joystick.png new file mode 100644 index 0000000..62168f5 Binary files /dev/null and b/admin/images/icons/joystick.png differ diff --git a/admin/images/icons/joystick_add.png b/admin/images/icons/joystick_add.png new file mode 100644 index 0000000..77e7107 Binary files /dev/null and b/admin/images/icons/joystick_add.png differ diff --git a/admin/images/icons/joystick_delete.png b/admin/images/icons/joystick_delete.png new file mode 100644 index 0000000..5d44b59 Binary files /dev/null and b/admin/images/icons/joystick_delete.png differ diff --git a/admin/images/icons/joystick_error.png b/admin/images/icons/joystick_error.png new file mode 100644 index 0000000..b32149e Binary files /dev/null and b/admin/images/icons/joystick_error.png differ diff --git a/admin/images/icons/key.png b/admin/images/icons/key.png new file mode 100644 index 0000000..4ec1a92 Binary files /dev/null and b/admin/images/icons/key.png differ diff --git a/admin/images/icons/key_add.png b/admin/images/icons/key_add.png new file mode 100644 index 0000000..d407403 Binary files /dev/null and b/admin/images/icons/key_add.png differ diff --git a/admin/images/icons/key_delete.png b/admin/images/icons/key_delete.png new file mode 100644 index 0000000..00dec80 Binary files /dev/null and b/admin/images/icons/key_delete.png differ diff --git a/admin/images/icons/key_go.png b/admin/images/icons/key_go.png new file mode 100644 index 0000000..30b0dc3 Binary files /dev/null and b/admin/images/icons/key_go.png differ diff --git a/admin/images/icons/keyboard.png b/admin/images/icons/keyboard.png new file mode 100644 index 0000000..898d402 Binary files /dev/null and b/admin/images/icons/keyboard.png differ diff --git a/admin/images/icons/keyboard_add.png b/admin/images/icons/keyboard_add.png new file mode 100644 index 0000000..26938dd Binary files /dev/null and b/admin/images/icons/keyboard_add.png differ diff --git a/admin/images/icons/keyboard_delete.png b/admin/images/icons/keyboard_delete.png new file mode 100644 index 0000000..1786ed5 Binary files /dev/null and b/admin/images/icons/keyboard_delete.png differ diff --git a/admin/images/icons/keyboard_magnify.png b/admin/images/icons/keyboard_magnify.png new file mode 100644 index 0000000..928fc17 Binary files /dev/null and b/admin/images/icons/keyboard_magnify.png differ diff --git a/admin/images/icons/layers.png b/admin/images/icons/layers.png new file mode 100644 index 0000000..00818f6 Binary files /dev/null and b/admin/images/icons/layers.png differ diff --git a/admin/images/icons/layout.png b/admin/images/icons/layout.png new file mode 100644 index 0000000..ea086b0 Binary files /dev/null and b/admin/images/icons/layout.png differ diff --git a/admin/images/icons/layout_add.png b/admin/images/icons/layout_add.png new file mode 100644 index 0000000..6203722 Binary files /dev/null and b/admin/images/icons/layout_add.png differ diff --git a/admin/images/icons/layout_content.png b/admin/images/icons/layout_content.png new file mode 100644 index 0000000..b4aaad9 Binary files /dev/null and b/admin/images/icons/layout_content.png differ diff --git a/admin/images/icons/layout_delete.png b/admin/images/icons/layout_delete.png new file mode 100644 index 0000000..4bd45f1 Binary files /dev/null and b/admin/images/icons/layout_delete.png differ diff --git a/admin/images/icons/layout_edit.png b/admin/images/icons/layout_edit.png new file mode 100644 index 0000000..ab3100b Binary files /dev/null and b/admin/images/icons/layout_edit.png differ diff --git a/admin/images/icons/layout_error.png b/admin/images/icons/layout_error.png new file mode 100644 index 0000000..5b5acea Binary files /dev/null and b/admin/images/icons/layout_error.png differ diff --git a/admin/images/icons/layout_header.png b/admin/images/icons/layout_header.png new file mode 100644 index 0000000..c6ea7f2 Binary files /dev/null and b/admin/images/icons/layout_header.png differ diff --git a/admin/images/icons/layout_link.png b/admin/images/icons/layout_link.png new file mode 100644 index 0000000..3445d42 Binary files /dev/null and b/admin/images/icons/layout_link.png differ diff --git a/admin/images/icons/layout_sidebar.png b/admin/images/icons/layout_sidebar.png new file mode 100644 index 0000000..3be27bb Binary files /dev/null and b/admin/images/icons/layout_sidebar.png differ diff --git a/admin/images/icons/lightbulb.png b/admin/images/icons/lightbulb.png new file mode 100644 index 0000000..d22fde8 Binary files /dev/null and b/admin/images/icons/lightbulb.png differ diff --git a/admin/images/icons/lightbulb_add.png b/admin/images/icons/lightbulb_add.png new file mode 100644 index 0000000..0dd848b Binary files /dev/null and b/admin/images/icons/lightbulb_add.png differ diff --git a/admin/images/icons/lightbulb_delete.png b/admin/images/icons/lightbulb_delete.png new file mode 100644 index 0000000..f4781da Binary files /dev/null and b/admin/images/icons/lightbulb_delete.png differ diff --git a/admin/images/icons/lightbulb_off.png b/admin/images/icons/lightbulb_off.png new file mode 100644 index 0000000..e95b8c5 Binary files /dev/null and b/admin/images/icons/lightbulb_off.png differ diff --git a/admin/images/icons/lightning.png b/admin/images/icons/lightning.png new file mode 100644 index 0000000..9680afd Binary files /dev/null and b/admin/images/icons/lightning.png differ diff --git a/admin/images/icons/lightning_add.png b/admin/images/icons/lightning_add.png new file mode 100644 index 0000000..dac3c90 Binary files /dev/null and b/admin/images/icons/lightning_add.png differ diff --git a/admin/images/icons/lightning_delete.png b/admin/images/icons/lightning_delete.png new file mode 100644 index 0000000..dfe2770 Binary files /dev/null and b/admin/images/icons/lightning_delete.png differ diff --git a/admin/images/icons/lightning_go.png b/admin/images/icons/lightning_go.png new file mode 100644 index 0000000..29039e6 Binary files /dev/null and b/admin/images/icons/lightning_go.png differ diff --git a/admin/images/icons/link.png b/admin/images/icons/link.png new file mode 100644 index 0000000..25eacb7 Binary files /dev/null and b/admin/images/icons/link.png differ diff --git a/admin/images/icons/link_add.png b/admin/images/icons/link_add.png new file mode 100644 index 0000000..00be352 Binary files /dev/null and b/admin/images/icons/link_add.png differ diff --git a/admin/images/icons/link_break.png b/admin/images/icons/link_break.png new file mode 100644 index 0000000..5235753 Binary files /dev/null and b/admin/images/icons/link_break.png differ diff --git a/admin/images/icons/link_delete.png b/admin/images/icons/link_delete.png new file mode 100644 index 0000000..f66e297 Binary files /dev/null and b/admin/images/icons/link_delete.png differ diff --git a/admin/images/icons/link_edit.png b/admin/images/icons/link_edit.png new file mode 100644 index 0000000..5b3aed0 Binary files /dev/null and b/admin/images/icons/link_edit.png differ diff --git a/admin/images/icons/link_error.png b/admin/images/icons/link_error.png new file mode 100644 index 0000000..ab694b1 Binary files /dev/null and b/admin/images/icons/link_error.png differ diff --git a/admin/images/icons/link_go.png b/admin/images/icons/link_go.png new file mode 100644 index 0000000..ae8cae8 Binary files /dev/null and b/admin/images/icons/link_go.png differ diff --git a/admin/images/icons/lock.png b/admin/images/icons/lock.png new file mode 100644 index 0000000..2ebc4f6 Binary files /dev/null and b/admin/images/icons/lock.png differ diff --git a/admin/images/icons/lock_add.png b/admin/images/icons/lock_add.png new file mode 100644 index 0000000..a7b566b Binary files /dev/null and b/admin/images/icons/lock_add.png differ diff --git a/admin/images/icons/lock_break.png b/admin/images/icons/lock_break.png new file mode 100644 index 0000000..13578ab Binary files /dev/null and b/admin/images/icons/lock_break.png differ diff --git a/admin/images/icons/lock_delete.png b/admin/images/icons/lock_delete.png new file mode 100644 index 0000000..ecb50a9 Binary files /dev/null and b/admin/images/icons/lock_delete.png differ diff --git a/admin/images/icons/lock_edit.png b/admin/images/icons/lock_edit.png new file mode 100644 index 0000000..116aa5b Binary files /dev/null and b/admin/images/icons/lock_edit.png differ diff --git a/admin/images/icons/lock_go.png b/admin/images/icons/lock_go.png new file mode 100644 index 0000000..8c7c89b Binary files /dev/null and b/admin/images/icons/lock_go.png differ diff --git a/admin/images/icons/lock_open.png b/admin/images/icons/lock_open.png new file mode 100644 index 0000000..a471765 Binary files /dev/null and b/admin/images/icons/lock_open.png differ diff --git a/admin/images/icons/lorry.png b/admin/images/icons/lorry.png new file mode 100644 index 0000000..8f95f5a Binary files /dev/null and b/admin/images/icons/lorry.png differ diff --git a/admin/images/icons/lorry_add.png b/admin/images/icons/lorry_add.png new file mode 100644 index 0000000..a2c5124 Binary files /dev/null and b/admin/images/icons/lorry_add.png differ diff --git a/admin/images/icons/lorry_delete.png b/admin/images/icons/lorry_delete.png new file mode 100644 index 0000000..66217f5 Binary files /dev/null and b/admin/images/icons/lorry_delete.png differ diff --git a/admin/images/icons/lorry_error.png b/admin/images/icons/lorry_error.png new file mode 100644 index 0000000..3619ead Binary files /dev/null and b/admin/images/icons/lorry_error.png differ diff --git a/admin/images/icons/lorry_flatbed.png b/admin/images/icons/lorry_flatbed.png new file mode 100644 index 0000000..8b20f55 Binary files /dev/null and b/admin/images/icons/lorry_flatbed.png differ diff --git a/admin/images/icons/lorry_go.png b/admin/images/icons/lorry_go.png new file mode 100644 index 0000000..1c296a6 Binary files /dev/null and b/admin/images/icons/lorry_go.png differ diff --git a/admin/images/icons/lorry_link.png b/admin/images/icons/lorry_link.png new file mode 100644 index 0000000..5e6663e Binary files /dev/null and b/admin/images/icons/lorry_link.png differ diff --git a/admin/images/icons/magifier_zoom_out.png b/admin/images/icons/magifier_zoom_out.png new file mode 100644 index 0000000..81f2819 Binary files /dev/null and b/admin/images/icons/magifier_zoom_out.png differ diff --git a/admin/images/icons/magnifier.png b/admin/images/icons/magnifier.png new file mode 100644 index 0000000..cf3d97f Binary files /dev/null and b/admin/images/icons/magnifier.png differ diff --git a/admin/images/icons/magnifier_zoom_in.png b/admin/images/icons/magnifier_zoom_in.png new file mode 100644 index 0000000..af4fe07 Binary files /dev/null and b/admin/images/icons/magnifier_zoom_in.png differ diff --git a/admin/images/icons/male.png b/admin/images/icons/male.png new file mode 100644 index 0000000..25d6ea9 Binary files /dev/null and b/admin/images/icons/male.png differ diff --git a/admin/images/icons/map.png b/admin/images/icons/map.png new file mode 100644 index 0000000..f90ef25 Binary files /dev/null and b/admin/images/icons/map.png differ diff --git a/admin/images/icons/map_add.png b/admin/images/icons/map_add.png new file mode 100644 index 0000000..2b72da0 Binary files /dev/null and b/admin/images/icons/map_add.png differ diff --git a/admin/images/icons/map_delete.png b/admin/images/icons/map_delete.png new file mode 100644 index 0000000..e74402f Binary files /dev/null and b/admin/images/icons/map_delete.png differ diff --git a/admin/images/icons/map_edit.png b/admin/images/icons/map_edit.png new file mode 100644 index 0000000..93d4d7e Binary files /dev/null and b/admin/images/icons/map_edit.png differ diff --git a/admin/images/icons/map_go.png b/admin/images/icons/map_go.png new file mode 100644 index 0000000..11eab26 Binary files /dev/null and b/admin/images/icons/map_go.png differ diff --git a/admin/images/icons/map_magnify.png b/admin/images/icons/map_magnify.png new file mode 100644 index 0000000..7184c9d Binary files /dev/null and b/admin/images/icons/map_magnify.png differ diff --git a/admin/images/icons/medal_bronze_1.png b/admin/images/icons/medal_bronze_1.png new file mode 100644 index 0000000..5f8a6d6 Binary files /dev/null and b/admin/images/icons/medal_bronze_1.png differ diff --git a/admin/images/icons/medal_bronze_2.png b/admin/images/icons/medal_bronze_2.png new file mode 100644 index 0000000..623d68c Binary files /dev/null and b/admin/images/icons/medal_bronze_2.png differ diff --git a/admin/images/icons/medal_bronze_3.png b/admin/images/icons/medal_bronze_3.png new file mode 100644 index 0000000..ed3f43e Binary files /dev/null and b/admin/images/icons/medal_bronze_3.png differ diff --git a/admin/images/icons/medal_bronze_add.png b/admin/images/icons/medal_bronze_add.png new file mode 100644 index 0000000..8487b2c Binary files /dev/null and b/admin/images/icons/medal_bronze_add.png differ diff --git a/admin/images/icons/medal_bronze_delete.png b/admin/images/icons/medal_bronze_delete.png new file mode 100644 index 0000000..d32aed7 Binary files /dev/null and b/admin/images/icons/medal_bronze_delete.png differ diff --git a/admin/images/icons/medal_gold_1.png b/admin/images/icons/medal_gold_1.png new file mode 100644 index 0000000..87584dc Binary files /dev/null and b/admin/images/icons/medal_gold_1.png differ diff --git a/admin/images/icons/medal_gold_2.png b/admin/images/icons/medal_gold_2.png new file mode 100644 index 0000000..fa3a15d Binary files /dev/null and b/admin/images/icons/medal_gold_2.png differ diff --git a/admin/images/icons/medal_gold_3.png b/admin/images/icons/medal_gold_3.png new file mode 100644 index 0000000..ef1b08b Binary files /dev/null and b/admin/images/icons/medal_gold_3.png differ diff --git a/admin/images/icons/medal_gold_add.png b/admin/images/icons/medal_gold_add.png new file mode 100644 index 0000000..dcade0d Binary files /dev/null and b/admin/images/icons/medal_gold_add.png differ diff --git a/admin/images/icons/medal_gold_delete.png b/admin/images/icons/medal_gold_delete.png new file mode 100644 index 0000000..84b06d5 Binary files /dev/null and b/admin/images/icons/medal_gold_delete.png differ diff --git a/admin/images/icons/medal_silver_1.png b/admin/images/icons/medal_silver_1.png new file mode 100644 index 0000000..75a64da Binary files /dev/null and b/admin/images/icons/medal_silver_1.png differ diff --git a/admin/images/icons/medal_silver_2.png b/admin/images/icons/medal_silver_2.png new file mode 100644 index 0000000..2e0fe75 Binary files /dev/null and b/admin/images/icons/medal_silver_2.png differ diff --git a/admin/images/icons/medal_silver_3.png b/admin/images/icons/medal_silver_3.png new file mode 100644 index 0000000..e385b54 Binary files /dev/null and b/admin/images/icons/medal_silver_3.png differ diff --git a/admin/images/icons/medal_silver_add.png b/admin/images/icons/medal_silver_add.png new file mode 100644 index 0000000..b0633fa Binary files /dev/null and b/admin/images/icons/medal_silver_add.png differ diff --git a/admin/images/icons/medal_silver_delete.png b/admin/images/icons/medal_silver_delete.png new file mode 100644 index 0000000..06cab46 Binary files /dev/null and b/admin/images/icons/medal_silver_delete.png differ diff --git a/admin/images/icons/money.png b/admin/images/icons/money.png new file mode 100644 index 0000000..42c52d0 Binary files /dev/null and b/admin/images/icons/money.png differ diff --git a/admin/images/icons/money_add.png b/admin/images/icons/money_add.png new file mode 100644 index 0000000..588fa9d Binary files /dev/null and b/admin/images/icons/money_add.png differ diff --git a/admin/images/icons/money_delete.png b/admin/images/icons/money_delete.png new file mode 100644 index 0000000..eae2c52 Binary files /dev/null and b/admin/images/icons/money_delete.png differ diff --git a/admin/images/icons/money_dollar.png b/admin/images/icons/money_dollar.png new file mode 100644 index 0000000..59af163 Binary files /dev/null and b/admin/images/icons/money_dollar.png differ diff --git a/admin/images/icons/money_euro.png b/admin/images/icons/money_euro.png new file mode 100644 index 0000000..b322ba9 Binary files /dev/null and b/admin/images/icons/money_euro.png differ diff --git a/admin/images/icons/money_pound.png b/admin/images/icons/money_pound.png new file mode 100644 index 0000000..b711364 Binary files /dev/null and b/admin/images/icons/money_pound.png differ diff --git a/admin/images/icons/money_yen.png b/admin/images/icons/money_yen.png new file mode 100644 index 0000000..228a677 Binary files /dev/null and b/admin/images/icons/money_yen.png differ diff --git a/admin/images/icons/monitor.png b/admin/images/icons/monitor.png new file mode 100644 index 0000000..d040bd0 Binary files /dev/null and b/admin/images/icons/monitor.png differ diff --git a/admin/images/icons/monitor_add.png b/admin/images/icons/monitor_add.png new file mode 100644 index 0000000..a818066 Binary files /dev/null and b/admin/images/icons/monitor_add.png differ diff --git a/admin/images/icons/monitor_delete.png b/admin/images/icons/monitor_delete.png new file mode 100644 index 0000000..3733256 Binary files /dev/null and b/admin/images/icons/monitor_delete.png differ diff --git a/admin/images/icons/monitor_edit.png b/admin/images/icons/monitor_edit.png new file mode 100644 index 0000000..f772c56 Binary files /dev/null and b/admin/images/icons/monitor_edit.png differ diff --git a/admin/images/icons/monitor_error.png b/admin/images/icons/monitor_error.png new file mode 100644 index 0000000..270c501 Binary files /dev/null and b/admin/images/icons/monitor_error.png differ diff --git a/admin/images/icons/monitor_go.png b/admin/images/icons/monitor_go.png new file mode 100644 index 0000000..8af3eda Binary files /dev/null and b/admin/images/icons/monitor_go.png differ diff --git a/admin/images/icons/monitor_lightning.png b/admin/images/icons/monitor_lightning.png new file mode 100644 index 0000000..06e53a9 Binary files /dev/null and b/admin/images/icons/monitor_lightning.png differ diff --git a/admin/images/icons/monitor_link.png b/admin/images/icons/monitor_link.png new file mode 100644 index 0000000..a014b02 Binary files /dev/null and b/admin/images/icons/monitor_link.png differ diff --git a/admin/images/icons/mouse.png b/admin/images/icons/mouse.png new file mode 100644 index 0000000..63a92fa Binary files /dev/null and b/admin/images/icons/mouse.png differ diff --git a/admin/images/icons/mouse_add.png b/admin/images/icons/mouse_add.png new file mode 100644 index 0000000..65bcab5 Binary files /dev/null and b/admin/images/icons/mouse_add.png differ diff --git a/admin/images/icons/mouse_delete.png b/admin/images/icons/mouse_delete.png new file mode 100644 index 0000000..7286566 Binary files /dev/null and b/admin/images/icons/mouse_delete.png differ diff --git a/admin/images/icons/mouse_error.png b/admin/images/icons/mouse_error.png new file mode 100644 index 0000000..bcc1562 Binary files /dev/null and b/admin/images/icons/mouse_error.png differ diff --git a/admin/images/icons/music.png b/admin/images/icons/music.png new file mode 100644 index 0000000..a8b3ede Binary files /dev/null and b/admin/images/icons/music.png differ diff --git a/admin/images/icons/new.png b/admin/images/icons/new.png new file mode 100644 index 0000000..6a9bf03 Binary files /dev/null and b/admin/images/icons/new.png differ diff --git a/admin/images/icons/newspaper.png b/admin/images/icons/newspaper.png new file mode 100644 index 0000000..6a2ecce Binary files /dev/null and b/admin/images/icons/newspaper.png differ diff --git a/admin/images/icons/newspaper_add.png b/admin/images/icons/newspaper_add.png new file mode 100644 index 0000000..8140e8c Binary files /dev/null and b/admin/images/icons/newspaper_add.png differ diff --git a/admin/images/icons/newspaper_delete.png b/admin/images/icons/newspaper_delete.png new file mode 100644 index 0000000..bde96ce Binary files /dev/null and b/admin/images/icons/newspaper_delete.png differ diff --git a/admin/images/icons/newspaper_go.png b/admin/images/icons/newspaper_go.png new file mode 100644 index 0000000..fd61428 Binary files /dev/null and b/admin/images/icons/newspaper_go.png differ diff --git a/admin/images/icons/newspaper_link.png b/admin/images/icons/newspaper_link.png new file mode 100644 index 0000000..99e57cb Binary files /dev/null and b/admin/images/icons/newspaper_link.png differ diff --git a/admin/images/icons/note.png b/admin/images/icons/note.png new file mode 100644 index 0000000..244e6ca Binary files /dev/null and b/admin/images/icons/note.png differ diff --git a/admin/images/icons/note_add.png b/admin/images/icons/note_add.png new file mode 100644 index 0000000..abdad91 Binary files /dev/null and b/admin/images/icons/note_add.png differ diff --git a/admin/images/icons/note_delete.png b/admin/images/icons/note_delete.png new file mode 100644 index 0000000..8a1f0ff Binary files /dev/null and b/admin/images/icons/note_delete.png differ diff --git a/admin/images/icons/note_edit.png b/admin/images/icons/note_edit.png new file mode 100644 index 0000000..291bfc7 Binary files /dev/null and b/admin/images/icons/note_edit.png differ diff --git a/admin/images/icons/note_error.png b/admin/images/icons/note_error.png new file mode 100644 index 0000000..896dadf Binary files /dev/null and b/admin/images/icons/note_error.png differ diff --git a/admin/images/icons/note_go.png b/admin/images/icons/note_go.png new file mode 100644 index 0000000..49e54fd Binary files /dev/null and b/admin/images/icons/note_go.png differ diff --git a/admin/images/icons/overlays.png b/admin/images/icons/overlays.png new file mode 100644 index 0000000..ab3100b Binary files /dev/null and b/admin/images/icons/overlays.png differ diff --git a/admin/images/icons/package.png b/admin/images/icons/package.png new file mode 100644 index 0000000..da3c2a2 Binary files /dev/null and b/admin/images/icons/package.png differ diff --git a/admin/images/icons/package_add.png b/admin/images/icons/package_add.png new file mode 100644 index 0000000..9c8a9da Binary files /dev/null and b/admin/images/icons/package_add.png differ diff --git a/admin/images/icons/package_delete.png b/admin/images/icons/package_delete.png new file mode 100644 index 0000000..86f7fbc Binary files /dev/null and b/admin/images/icons/package_delete.png differ diff --git a/admin/images/icons/package_go.png b/admin/images/icons/package_go.png new file mode 100644 index 0000000..aace63a Binary files /dev/null and b/admin/images/icons/package_go.png differ diff --git a/admin/images/icons/package_green.png b/admin/images/icons/package_green.png new file mode 100644 index 0000000..25b28bb Binary files /dev/null and b/admin/images/icons/package_green.png differ diff --git a/admin/images/icons/package_link.png b/admin/images/icons/package_link.png new file mode 100644 index 0000000..48e7ab5 Binary files /dev/null and b/admin/images/icons/package_link.png differ diff --git a/admin/images/icons/page.png b/admin/images/icons/page.png new file mode 100644 index 0000000..03ddd79 Binary files /dev/null and b/admin/images/icons/page.png differ diff --git a/admin/images/icons/page_add.png b/admin/images/icons/page_add.png new file mode 100644 index 0000000..d5bfa07 Binary files /dev/null and b/admin/images/icons/page_add.png differ diff --git a/admin/images/icons/page_attach.png b/admin/images/icons/page_attach.png new file mode 100644 index 0000000..89ee2da Binary files /dev/null and b/admin/images/icons/page_attach.png differ diff --git a/admin/images/icons/page_code.png b/admin/images/icons/page_code.png new file mode 100644 index 0000000..f7ea904 Binary files /dev/null and b/admin/images/icons/page_code.png differ diff --git a/admin/images/icons/page_copy.png b/admin/images/icons/page_copy.png new file mode 100644 index 0000000..195dc6d Binary files /dev/null and b/admin/images/icons/page_copy.png differ diff --git a/admin/images/icons/page_delete.png b/admin/images/icons/page_delete.png new file mode 100644 index 0000000..3141467 Binary files /dev/null and b/admin/images/icons/page_delete.png differ diff --git a/admin/images/icons/page_edit.png b/admin/images/icons/page_edit.png new file mode 100644 index 0000000..046811e Binary files /dev/null and b/admin/images/icons/page_edit.png differ diff --git a/admin/images/icons/page_error.png b/admin/images/icons/page_error.png new file mode 100644 index 0000000..f07f449 Binary files /dev/null and b/admin/images/icons/page_error.png differ diff --git a/admin/images/icons/page_excel.png b/admin/images/icons/page_excel.png new file mode 100644 index 0000000..eb6158e Binary files /dev/null and b/admin/images/icons/page_excel.png differ diff --git a/admin/images/icons/page_find.png b/admin/images/icons/page_find.png new file mode 100644 index 0000000..2f19388 Binary files /dev/null and b/admin/images/icons/page_find.png differ diff --git a/admin/images/icons/page_gear.png b/admin/images/icons/page_gear.png new file mode 100644 index 0000000..8e83281 Binary files /dev/null and b/admin/images/icons/page_gear.png differ diff --git a/admin/images/icons/page_go.png b/admin/images/icons/page_go.png new file mode 100644 index 0000000..80fe1ed Binary files /dev/null and b/admin/images/icons/page_go.png differ diff --git a/admin/images/icons/page_green.png b/admin/images/icons/page_green.png new file mode 100644 index 0000000..de8e003 Binary files /dev/null and b/admin/images/icons/page_green.png differ diff --git a/admin/images/icons/page_key.png b/admin/images/icons/page_key.png new file mode 100644 index 0000000..d6626cb Binary files /dev/null and b/admin/images/icons/page_key.png differ diff --git a/admin/images/icons/page_lightning.png b/admin/images/icons/page_lightning.png new file mode 100644 index 0000000..7e56870 Binary files /dev/null and b/admin/images/icons/page_lightning.png differ diff --git a/admin/images/icons/page_link.png b/admin/images/icons/page_link.png new file mode 100644 index 0000000..312eab0 Binary files /dev/null and b/admin/images/icons/page_link.png differ diff --git a/admin/images/icons/page_paintbrush.png b/admin/images/icons/page_paintbrush.png new file mode 100644 index 0000000..246a2f0 Binary files /dev/null and b/admin/images/icons/page_paintbrush.png differ diff --git a/admin/images/icons/page_paste.png b/admin/images/icons/page_paste.png new file mode 100644 index 0000000..968f073 Binary files /dev/null and b/admin/images/icons/page_paste.png differ diff --git a/admin/images/icons/page_red.png b/admin/images/icons/page_red.png new file mode 100644 index 0000000..0b18247 Binary files /dev/null and b/admin/images/icons/page_red.png differ diff --git a/admin/images/icons/page_refresh.png b/admin/images/icons/page_refresh.png new file mode 100644 index 0000000..cf347c7 Binary files /dev/null and b/admin/images/icons/page_refresh.png differ diff --git a/admin/images/icons/page_save.png b/admin/images/icons/page_save.png new file mode 100644 index 0000000..caea546 Binary files /dev/null and b/admin/images/icons/page_save.png differ diff --git a/admin/images/icons/page_white.png b/admin/images/icons/page_white.png new file mode 100644 index 0000000..8b8b1ca Binary files /dev/null and b/admin/images/icons/page_white.png differ diff --git a/admin/images/icons/page_white_acrobat.png b/admin/images/icons/page_white_acrobat.png new file mode 100644 index 0000000..8f8095e Binary files /dev/null and b/admin/images/icons/page_white_acrobat.png differ diff --git a/admin/images/icons/page_white_actionscript.png b/admin/images/icons/page_white_actionscript.png new file mode 100644 index 0000000..159b240 Binary files /dev/null and b/admin/images/icons/page_white_actionscript.png differ diff --git a/admin/images/icons/page_white_add.png b/admin/images/icons/page_white_add.png new file mode 100644 index 0000000..aa23dde Binary files /dev/null and b/admin/images/icons/page_white_add.png differ diff --git a/admin/images/icons/page_white_c.png b/admin/images/icons/page_white_c.png new file mode 100644 index 0000000..34a05cc Binary files /dev/null and b/admin/images/icons/page_white_c.png differ diff --git a/admin/images/icons/page_white_camera.png b/admin/images/icons/page_white_camera.png new file mode 100644 index 0000000..f501a59 Binary files /dev/null and b/admin/images/icons/page_white_camera.png differ diff --git a/admin/images/icons/page_white_cd.png b/admin/images/icons/page_white_cd.png new file mode 100644 index 0000000..848bdaf Binary files /dev/null and b/admin/images/icons/page_white_cd.png differ diff --git a/admin/images/icons/page_white_code.png b/admin/images/icons/page_white_code.png new file mode 100644 index 0000000..0c76bd1 Binary files /dev/null and b/admin/images/icons/page_white_code.png differ diff --git a/admin/images/icons/page_white_code_red.png b/admin/images/icons/page_white_code_red.png new file mode 100644 index 0000000..87a6914 Binary files /dev/null and b/admin/images/icons/page_white_code_red.png differ diff --git a/admin/images/icons/page_white_coldfusion.png b/admin/images/icons/page_white_coldfusion.png new file mode 100644 index 0000000..c66011f Binary files /dev/null and b/admin/images/icons/page_white_coldfusion.png differ diff --git a/admin/images/icons/page_white_compressed.png b/admin/images/icons/page_white_compressed.png new file mode 100644 index 0000000..2b6b100 Binary files /dev/null and b/admin/images/icons/page_white_compressed.png differ diff --git a/admin/images/icons/page_white_copy.png b/admin/images/icons/page_white_copy.png new file mode 100644 index 0000000..a9f31a2 Binary files /dev/null and b/admin/images/icons/page_white_copy.png differ diff --git a/admin/images/icons/page_white_cplusplus.png b/admin/images/icons/page_white_cplusplus.png new file mode 100644 index 0000000..a87cf84 Binary files /dev/null and b/admin/images/icons/page_white_cplusplus.png differ diff --git a/admin/images/icons/page_white_csharp.png b/admin/images/icons/page_white_csharp.png new file mode 100644 index 0000000..ffb8fc9 Binary files /dev/null and b/admin/images/icons/page_white_csharp.png differ diff --git a/admin/images/icons/page_white_cup.png b/admin/images/icons/page_white_cup.png new file mode 100644 index 0000000..0a7d6f4 Binary files /dev/null and b/admin/images/icons/page_white_cup.png differ diff --git a/admin/images/icons/page_white_database.png b/admin/images/icons/page_white_database.png new file mode 100644 index 0000000..bddba1f Binary files /dev/null and b/admin/images/icons/page_white_database.png differ diff --git a/admin/images/icons/page_white_delete.png b/admin/images/icons/page_white_delete.png new file mode 100644 index 0000000..af1ecaf Binary files /dev/null and b/admin/images/icons/page_white_delete.png differ diff --git a/admin/images/icons/page_white_dvd.png b/admin/images/icons/page_white_dvd.png new file mode 100644 index 0000000..4cc537a Binary files /dev/null and b/admin/images/icons/page_white_dvd.png differ diff --git a/admin/images/icons/page_white_edit.png b/admin/images/icons/page_white_edit.png new file mode 100644 index 0000000..b93e776 Binary files /dev/null and b/admin/images/icons/page_white_edit.png differ diff --git a/admin/images/icons/page_white_error.png b/admin/images/icons/page_white_error.png new file mode 100644 index 0000000..9fc5a0a Binary files /dev/null and b/admin/images/icons/page_white_error.png differ diff --git a/admin/images/icons/page_white_excel.png b/admin/images/icons/page_white_excel.png new file mode 100644 index 0000000..b977d7e Binary files /dev/null and b/admin/images/icons/page_white_excel.png differ diff --git a/admin/images/icons/page_white_find.png b/admin/images/icons/page_white_find.png new file mode 100644 index 0000000..5818436 Binary files /dev/null and b/admin/images/icons/page_white_find.png differ diff --git a/admin/images/icons/page_white_flash.png b/admin/images/icons/page_white_flash.png new file mode 100644 index 0000000..5769120 Binary files /dev/null and b/admin/images/icons/page_white_flash.png differ diff --git a/admin/images/icons/page_white_freehand.png b/admin/images/icons/page_white_freehand.png new file mode 100644 index 0000000..8d719df Binary files /dev/null and b/admin/images/icons/page_white_freehand.png differ diff --git a/admin/images/icons/page_white_gear.png b/admin/images/icons/page_white_gear.png new file mode 100644 index 0000000..106f5aa Binary files /dev/null and b/admin/images/icons/page_white_gear.png differ diff --git a/admin/images/icons/page_white_get.png b/admin/images/icons/page_white_get.png new file mode 100644 index 0000000..e4a1ecb Binary files /dev/null and b/admin/images/icons/page_white_get.png differ diff --git a/admin/images/icons/page_white_go.png b/admin/images/icons/page_white_go.png new file mode 100644 index 0000000..7e62a92 Binary files /dev/null and b/admin/images/icons/page_white_go.png differ diff --git a/admin/images/icons/page_white_h.png b/admin/images/icons/page_white_h.png new file mode 100644 index 0000000..e902abb Binary files /dev/null and b/admin/images/icons/page_white_h.png differ diff --git a/admin/images/icons/page_white_horizontal.png b/admin/images/icons/page_white_horizontal.png new file mode 100644 index 0000000..1d2d0a4 Binary files /dev/null and b/admin/images/icons/page_white_horizontal.png differ diff --git a/admin/images/icons/page_white_key.png b/admin/images/icons/page_white_key.png new file mode 100644 index 0000000..d616484 Binary files /dev/null and b/admin/images/icons/page_white_key.png differ diff --git a/admin/images/icons/page_white_lightning.png b/admin/images/icons/page_white_lightning.png new file mode 100644 index 0000000..7215d1e Binary files /dev/null and b/admin/images/icons/page_white_lightning.png differ diff --git a/admin/images/icons/page_white_link.png b/admin/images/icons/page_white_link.png new file mode 100644 index 0000000..bf7bd1c Binary files /dev/null and b/admin/images/icons/page_white_link.png differ diff --git a/admin/images/icons/page_white_magnify.png b/admin/images/icons/page_white_magnify.png new file mode 100644 index 0000000..f6b74cc Binary files /dev/null and b/admin/images/icons/page_white_magnify.png differ diff --git a/admin/images/icons/page_white_medal.png b/admin/images/icons/page_white_medal.png new file mode 100644 index 0000000..d3fffb6 Binary files /dev/null and b/admin/images/icons/page_white_medal.png differ diff --git a/admin/images/icons/page_white_office.png b/admin/images/icons/page_white_office.png new file mode 100644 index 0000000..a65bcb3 Binary files /dev/null and b/admin/images/icons/page_white_office.png differ diff --git a/admin/images/icons/page_white_paint.png b/admin/images/icons/page_white_paint.png new file mode 100644 index 0000000..23a37b8 Binary files /dev/null and b/admin/images/icons/page_white_paint.png differ diff --git a/admin/images/icons/page_white_paintbrush.png b/admin/images/icons/page_white_paintbrush.png new file mode 100644 index 0000000..f907e44 Binary files /dev/null and b/admin/images/icons/page_white_paintbrush.png differ diff --git a/admin/images/icons/page_white_paste.png b/admin/images/icons/page_white_paste.png new file mode 100644 index 0000000..5b2cbb3 Binary files /dev/null and b/admin/images/icons/page_white_paste.png differ diff --git a/admin/images/icons/page_white_php.png b/admin/images/icons/page_white_php.png new file mode 100644 index 0000000..7868a25 Binary files /dev/null and b/admin/images/icons/page_white_php.png differ diff --git a/admin/images/icons/page_white_picture.png b/admin/images/icons/page_white_picture.png new file mode 100644 index 0000000..134b669 Binary files /dev/null and b/admin/images/icons/page_white_picture.png differ diff --git a/admin/images/icons/page_white_powerpoint.png b/admin/images/icons/page_white_powerpoint.png new file mode 100644 index 0000000..c4eff03 Binary files /dev/null and b/admin/images/icons/page_white_powerpoint.png differ diff --git a/admin/images/icons/page_white_put.png b/admin/images/icons/page_white_put.png new file mode 100644 index 0000000..884ffd6 Binary files /dev/null and b/admin/images/icons/page_white_put.png differ diff --git a/admin/images/icons/page_white_ruby.png b/admin/images/icons/page_white_ruby.png new file mode 100644 index 0000000..f59b7c4 Binary files /dev/null and b/admin/images/icons/page_white_ruby.png differ diff --git a/admin/images/icons/page_white_stack.png b/admin/images/icons/page_white_stack.png new file mode 100644 index 0000000..44084ad Binary files /dev/null and b/admin/images/icons/page_white_stack.png differ diff --git a/admin/images/icons/page_white_star.png b/admin/images/icons/page_white_star.png new file mode 100644 index 0000000..3a1441c Binary files /dev/null and b/admin/images/icons/page_white_star.png differ diff --git a/admin/images/icons/page_white_swoosh.png b/admin/images/icons/page_white_swoosh.png new file mode 100644 index 0000000..e770829 Binary files /dev/null and b/admin/images/icons/page_white_swoosh.png differ diff --git a/admin/images/icons/page_white_text.png b/admin/images/icons/page_white_text.png new file mode 100644 index 0000000..813f712 Binary files /dev/null and b/admin/images/icons/page_white_text.png differ diff --git a/admin/images/icons/page_white_text_width.png b/admin/images/icons/page_white_text_width.png new file mode 100644 index 0000000..d9cf132 Binary files /dev/null and b/admin/images/icons/page_white_text_width.png differ diff --git a/admin/images/icons/page_white_tux.png b/admin/images/icons/page_white_tux.png new file mode 100644 index 0000000..52699bf Binary files /dev/null and b/admin/images/icons/page_white_tux.png differ diff --git a/admin/images/icons/page_white_vector.png b/admin/images/icons/page_white_vector.png new file mode 100644 index 0000000..4a05955 Binary files /dev/null and b/admin/images/icons/page_white_vector.png differ diff --git a/admin/images/icons/page_white_visualstudio.png b/admin/images/icons/page_white_visualstudio.png new file mode 100644 index 0000000..a0a433d Binary files /dev/null and b/admin/images/icons/page_white_visualstudio.png differ diff --git a/admin/images/icons/page_white_width.png b/admin/images/icons/page_white_width.png new file mode 100644 index 0000000..1eb8809 Binary files /dev/null and b/admin/images/icons/page_white_width.png differ diff --git a/admin/images/icons/page_white_word.png b/admin/images/icons/page_white_word.png new file mode 100644 index 0000000..ae8ecbf Binary files /dev/null and b/admin/images/icons/page_white_word.png differ diff --git a/admin/images/icons/page_white_world.png b/admin/images/icons/page_white_world.png new file mode 100644 index 0000000..6ed2490 Binary files /dev/null and b/admin/images/icons/page_white_world.png differ diff --git a/admin/images/icons/page_white_wrench.png b/admin/images/icons/page_white_wrench.png new file mode 100644 index 0000000..fecadd0 Binary files /dev/null and b/admin/images/icons/page_white_wrench.png differ diff --git a/admin/images/icons/page_white_zip.png b/admin/images/icons/page_white_zip.png new file mode 100644 index 0000000..fd4bbcc Binary files /dev/null and b/admin/images/icons/page_white_zip.png differ diff --git a/admin/images/icons/page_word.png b/admin/images/icons/page_word.png new file mode 100644 index 0000000..834cdfa Binary files /dev/null and b/admin/images/icons/page_word.png differ diff --git a/admin/images/icons/page_world.png b/admin/images/icons/page_world.png new file mode 100644 index 0000000..b8895dd Binary files /dev/null and b/admin/images/icons/page_world.png differ diff --git a/admin/images/icons/paintbrush.png b/admin/images/icons/paintbrush.png new file mode 100644 index 0000000..a3ecf87 Binary files /dev/null and b/admin/images/icons/paintbrush.png differ diff --git a/admin/images/icons/paintcan.png b/admin/images/icons/paintcan.png new file mode 100644 index 0000000..f82a886 Binary files /dev/null and b/admin/images/icons/paintcan.png differ diff --git a/admin/images/icons/palette.png b/admin/images/icons/palette.png new file mode 100644 index 0000000..73c5b3f Binary files /dev/null and b/admin/images/icons/palette.png differ diff --git a/admin/images/icons/paste_plain.png b/admin/images/icons/paste_plain.png new file mode 100644 index 0000000..c0490eb Binary files /dev/null and b/admin/images/icons/paste_plain.png differ diff --git a/admin/images/icons/paste_word.png b/admin/images/icons/paste_word.png new file mode 100644 index 0000000..f6b87f8 Binary files /dev/null and b/admin/images/icons/paste_word.png differ diff --git a/admin/images/icons/pencil.png b/admin/images/icons/pencil.png new file mode 100644 index 0000000..0bfecd5 Binary files /dev/null and b/admin/images/icons/pencil.png differ diff --git a/admin/images/icons/pencil_add.png b/admin/images/icons/pencil_add.png new file mode 100644 index 0000000..902bbe6 Binary files /dev/null and b/admin/images/icons/pencil_add.png differ diff --git a/admin/images/icons/pencil_delete.png b/admin/images/icons/pencil_delete.png new file mode 100644 index 0000000..d8944e6 Binary files /dev/null and b/admin/images/icons/pencil_delete.png differ diff --git a/admin/images/icons/pencil_go.png b/admin/images/icons/pencil_go.png new file mode 100644 index 0000000..937bded Binary files /dev/null and b/admin/images/icons/pencil_go.png differ diff --git a/admin/images/icons/phone.png b/admin/images/icons/phone.png new file mode 100644 index 0000000..c39f162 Binary files /dev/null and b/admin/images/icons/phone.png differ diff --git a/admin/images/icons/phone_add.png b/admin/images/icons/phone_add.png new file mode 100644 index 0000000..d3555e0 Binary files /dev/null and b/admin/images/icons/phone_add.png differ diff --git a/admin/images/icons/phone_delete.png b/admin/images/icons/phone_delete.png new file mode 100644 index 0000000..bbe4f8a Binary files /dev/null and b/admin/images/icons/phone_delete.png differ diff --git a/admin/images/icons/phone_sound.png b/admin/images/icons/phone_sound.png new file mode 100644 index 0000000..7fdf1c5 Binary files /dev/null and b/admin/images/icons/phone_sound.png differ diff --git a/admin/images/icons/photo.png b/admin/images/icons/photo.png new file mode 100644 index 0000000..6c2aaaa Binary files /dev/null and b/admin/images/icons/photo.png differ diff --git a/admin/images/icons/photo_add.png b/admin/images/icons/photo_add.png new file mode 100644 index 0000000..63cc355 Binary files /dev/null and b/admin/images/icons/photo_add.png differ diff --git a/admin/images/icons/photo_delete.png b/admin/images/icons/photo_delete.png new file mode 100644 index 0000000..18b67df Binary files /dev/null and b/admin/images/icons/photo_delete.png differ diff --git a/admin/images/icons/photo_link.png b/admin/images/icons/photo_link.png new file mode 100644 index 0000000..e6bb35f Binary files /dev/null and b/admin/images/icons/photo_link.png differ diff --git a/admin/images/icons/photos.png b/admin/images/icons/photos.png new file mode 100644 index 0000000..8836fe6 Binary files /dev/null and b/admin/images/icons/photos.png differ diff --git a/admin/images/icons/picture.png b/admin/images/icons/picture.png new file mode 100644 index 0000000..4a158fe Binary files /dev/null and b/admin/images/icons/picture.png differ diff --git a/admin/images/icons/picture_add.png b/admin/images/icons/picture_add.png new file mode 100644 index 0000000..d6d3f85 Binary files /dev/null and b/admin/images/icons/picture_add.png differ diff --git a/admin/images/icons/picture_delete.png b/admin/images/icons/picture_delete.png new file mode 100644 index 0000000..cca9f53 Binary files /dev/null and b/admin/images/icons/picture_delete.png differ diff --git a/admin/images/icons/picture_edit.png b/admin/images/icons/picture_edit.png new file mode 100644 index 0000000..9a70c34 Binary files /dev/null and b/admin/images/icons/picture_edit.png differ diff --git a/admin/images/icons/picture_empty.png b/admin/images/icons/picture_empty.png new file mode 100644 index 0000000..abd2b9b Binary files /dev/null and b/admin/images/icons/picture_empty.png differ diff --git a/admin/images/icons/picture_error.png b/admin/images/icons/picture_error.png new file mode 100644 index 0000000..d41d90d Binary files /dev/null and b/admin/images/icons/picture_error.png differ diff --git a/admin/images/icons/picture_go.png b/admin/images/icons/picture_go.png new file mode 100644 index 0000000..27c63c5 Binary files /dev/null and b/admin/images/icons/picture_go.png differ diff --git a/admin/images/icons/picture_key.png b/admin/images/icons/picture_key.png new file mode 100644 index 0000000..667086c Binary files /dev/null and b/admin/images/icons/picture_key.png differ diff --git a/admin/images/icons/picture_link.png b/admin/images/icons/picture_link.png new file mode 100644 index 0000000..42dca74 Binary files /dev/null and b/admin/images/icons/picture_link.png differ diff --git a/admin/images/icons/picture_save.png b/admin/images/icons/picture_save.png new file mode 100644 index 0000000..777fb5d Binary files /dev/null and b/admin/images/icons/picture_save.png differ diff --git a/admin/images/icons/pictures.png b/admin/images/icons/pictures.png new file mode 100644 index 0000000..d9591c1 Binary files /dev/null and b/admin/images/icons/pictures.png differ diff --git a/admin/images/icons/pilcrow.png b/admin/images/icons/pilcrow.png new file mode 100644 index 0000000..95704fb Binary files /dev/null and b/admin/images/icons/pilcrow.png differ diff --git a/admin/images/icons/pill.png b/admin/images/icons/pill.png new file mode 100644 index 0000000..f2bdef6 Binary files /dev/null and b/admin/images/icons/pill.png differ diff --git a/admin/images/icons/pill_add.png b/admin/images/icons/pill_add.png new file mode 100644 index 0000000..ac9c2df Binary files /dev/null and b/admin/images/icons/pill_add.png differ diff --git a/admin/images/icons/pill_delete.png b/admin/images/icons/pill_delete.png new file mode 100644 index 0000000..c61592e Binary files /dev/null and b/admin/images/icons/pill_delete.png differ diff --git a/admin/images/icons/pill_go.png b/admin/images/icons/pill_go.png new file mode 100644 index 0000000..e5c07d4 Binary files /dev/null and b/admin/images/icons/pill_go.png differ diff --git a/admin/images/icons/plugin.png b/admin/images/icons/plugin.png new file mode 100644 index 0000000..6187b15 Binary files /dev/null and b/admin/images/icons/plugin.png differ diff --git a/admin/images/icons/plugin_add.png b/admin/images/icons/plugin_add.png new file mode 100644 index 0000000..ae43690 Binary files /dev/null and b/admin/images/icons/plugin_add.png differ diff --git a/admin/images/icons/plugin_delete.png b/admin/images/icons/plugin_delete.png new file mode 100644 index 0000000..d9c3376 Binary files /dev/null and b/admin/images/icons/plugin_delete.png differ diff --git a/admin/images/icons/plugin_disabled.png b/admin/images/icons/plugin_disabled.png new file mode 100644 index 0000000..f4f6be5 Binary files /dev/null and b/admin/images/icons/plugin_disabled.png differ diff --git a/admin/images/icons/plugin_edit.png b/admin/images/icons/plugin_edit.png new file mode 100644 index 0000000..b6cb0ec Binary files /dev/null and b/admin/images/icons/plugin_edit.png differ diff --git a/admin/images/icons/plugin_error.png b/admin/images/icons/plugin_error.png new file mode 100644 index 0000000..cff65d7 Binary files /dev/null and b/admin/images/icons/plugin_error.png differ diff --git a/admin/images/icons/plugin_go.png b/admin/images/icons/plugin_go.png new file mode 100644 index 0000000..41da991 Binary files /dev/null and b/admin/images/icons/plugin_go.png differ diff --git a/admin/images/icons/plugin_link.png b/admin/images/icons/plugin_link.png new file mode 100644 index 0000000..445c188 Binary files /dev/null and b/admin/images/icons/plugin_link.png differ diff --git a/admin/images/icons/printer.png b/admin/images/icons/printer.png new file mode 100644 index 0000000..a350d18 Binary files /dev/null and b/admin/images/icons/printer.png differ diff --git a/admin/images/icons/printer_add.png b/admin/images/icons/printer_add.png new file mode 100644 index 0000000..d228d05 Binary files /dev/null and b/admin/images/icons/printer_add.png differ diff --git a/admin/images/icons/printer_delete.png b/admin/images/icons/printer_delete.png new file mode 100644 index 0000000..1d8605f Binary files /dev/null and b/admin/images/icons/printer_delete.png differ diff --git a/admin/images/icons/printer_empty.png b/admin/images/icons/printer_empty.png new file mode 100644 index 0000000..94e8c16 Binary files /dev/null and b/admin/images/icons/printer_empty.png differ diff --git a/admin/images/icons/printer_error.png b/admin/images/icons/printer_error.png new file mode 100644 index 0000000..279ebb0 Binary files /dev/null and b/admin/images/icons/printer_error.png differ diff --git a/admin/images/icons/rainbow.png b/admin/images/icons/rainbow.png new file mode 100644 index 0000000..5ede989 Binary files /dev/null and b/admin/images/icons/rainbow.png differ diff --git a/admin/images/icons/report.png b/admin/images/icons/report.png new file mode 100644 index 0000000..779ad58 Binary files /dev/null and b/admin/images/icons/report.png differ diff --git a/admin/images/icons/report_add.png b/admin/images/icons/report_add.png new file mode 100644 index 0000000..d5eac9b Binary files /dev/null and b/admin/images/icons/report_add.png differ diff --git a/admin/images/icons/report_delete.png b/admin/images/icons/report_delete.png new file mode 100644 index 0000000..dcce0b6 Binary files /dev/null and b/admin/images/icons/report_delete.png differ diff --git a/admin/images/icons/report_disk.png b/admin/images/icons/report_disk.png new file mode 100644 index 0000000..1c856cd Binary files /dev/null and b/admin/images/icons/report_disk.png differ diff --git a/admin/images/icons/report_edit.png b/admin/images/icons/report_edit.png new file mode 100644 index 0000000..c61a6d8 Binary files /dev/null and b/admin/images/icons/report_edit.png differ diff --git a/admin/images/icons/report_go.png b/admin/images/icons/report_go.png new file mode 100644 index 0000000..f35a979 Binary files /dev/null and b/admin/images/icons/report_go.png differ diff --git a/admin/images/icons/report_key.png b/admin/images/icons/report_key.png new file mode 100644 index 0000000..90b758e Binary files /dev/null and b/admin/images/icons/report_key.png differ diff --git a/admin/images/icons/report_link.png b/admin/images/icons/report_link.png new file mode 100644 index 0000000..23f2611 Binary files /dev/null and b/admin/images/icons/report_link.png differ diff --git a/admin/images/icons/report_magnify.png b/admin/images/icons/report_magnify.png new file mode 100644 index 0000000..aeaa889 Binary files /dev/null and b/admin/images/icons/report_magnify.png differ diff --git a/admin/images/icons/report_picture.png b/admin/images/icons/report_picture.png new file mode 100644 index 0000000..3a9a7e5 Binary files /dev/null and b/admin/images/icons/report_picture.png differ diff --git a/admin/images/icons/report_user.png b/admin/images/icons/report_user.png new file mode 100644 index 0000000..7766edd Binary files /dev/null and b/admin/images/icons/report_user.png differ diff --git a/admin/images/icons/report_word.png b/admin/images/icons/report_word.png new file mode 100644 index 0000000..9951342 Binary files /dev/null and b/admin/images/icons/report_word.png differ diff --git a/admin/images/icons/resultset_first.png b/admin/images/icons/resultset_first.png new file mode 100644 index 0000000..b03eaf8 Binary files /dev/null and b/admin/images/icons/resultset_first.png differ diff --git a/admin/images/icons/resultset_last.png b/admin/images/icons/resultset_last.png new file mode 100644 index 0000000..8ec8947 Binary files /dev/null and b/admin/images/icons/resultset_last.png differ diff --git a/admin/images/icons/resultset_next.png b/admin/images/icons/resultset_next.png new file mode 100644 index 0000000..e252606 Binary files /dev/null and b/admin/images/icons/resultset_next.png differ diff --git a/admin/images/icons/resultset_previous.png b/admin/images/icons/resultset_previous.png new file mode 100644 index 0000000..18f9cc1 Binary files /dev/null and b/admin/images/icons/resultset_previous.png differ diff --git a/admin/images/icons/rosette.png b/admin/images/icons/rosette.png new file mode 100644 index 0000000..f233bc7 Binary files /dev/null and b/admin/images/icons/rosette.png differ diff --git a/admin/images/icons/rss.png b/admin/images/icons/rss.png new file mode 100644 index 0000000..1dc6ff3 Binary files /dev/null and b/admin/images/icons/rss.png differ diff --git a/admin/images/icons/rss_add.png b/admin/images/icons/rss_add.png new file mode 100644 index 0000000..b590beb Binary files /dev/null and b/admin/images/icons/rss_add.png differ diff --git a/admin/images/icons/rss_delete.png b/admin/images/icons/rss_delete.png new file mode 100644 index 0000000..9deb738 Binary files /dev/null and b/admin/images/icons/rss_delete.png differ diff --git a/admin/images/icons/rss_go.png b/admin/images/icons/rss_go.png new file mode 100644 index 0000000..43a86bf Binary files /dev/null and b/admin/images/icons/rss_go.png differ diff --git a/admin/images/icons/rss_valid.png b/admin/images/icons/rss_valid.png new file mode 100644 index 0000000..a6d0b0e Binary files /dev/null and b/admin/images/icons/rss_valid.png differ diff --git a/admin/images/icons/ruby.png b/admin/images/icons/ruby.png new file mode 100644 index 0000000..f763a16 Binary files /dev/null and b/admin/images/icons/ruby.png differ diff --git a/admin/images/icons/ruby_add.png b/admin/images/icons/ruby_add.png new file mode 100644 index 0000000..a2cd648 Binary files /dev/null and b/admin/images/icons/ruby_add.png differ diff --git a/admin/images/icons/ruby_delete.png b/admin/images/icons/ruby_delete.png new file mode 100644 index 0000000..3002263 Binary files /dev/null and b/admin/images/icons/ruby_delete.png differ diff --git a/admin/images/icons/ruby_gear.png b/admin/images/icons/ruby_gear.png new file mode 100644 index 0000000..4a10590 Binary files /dev/null and b/admin/images/icons/ruby_gear.png differ diff --git a/admin/images/icons/ruby_get.png b/admin/images/icons/ruby_get.png new file mode 100644 index 0000000..f5203c7 Binary files /dev/null and b/admin/images/icons/ruby_get.png differ diff --git a/admin/images/icons/ruby_go.png b/admin/images/icons/ruby_go.png new file mode 100644 index 0000000..d8d276e Binary files /dev/null and b/admin/images/icons/ruby_go.png differ diff --git a/admin/images/icons/ruby_key.png b/admin/images/icons/ruby_key.png new file mode 100644 index 0000000..451cfeb Binary files /dev/null and b/admin/images/icons/ruby_key.png differ diff --git a/admin/images/icons/ruby_link.png b/admin/images/icons/ruby_link.png new file mode 100644 index 0000000..bf4be52 Binary files /dev/null and b/admin/images/icons/ruby_link.png differ diff --git a/admin/images/icons/ruby_put.png b/admin/images/icons/ruby_put.png new file mode 100644 index 0000000..e026323 Binary files /dev/null and b/admin/images/icons/ruby_put.png differ diff --git a/admin/images/icons/script.png b/admin/images/icons/script.png new file mode 100644 index 0000000..0f9ed4d Binary files /dev/null and b/admin/images/icons/script.png differ diff --git a/admin/images/icons/script_add.png b/admin/images/icons/script_add.png new file mode 100644 index 0000000..d650552 Binary files /dev/null and b/admin/images/icons/script_add.png differ diff --git a/admin/images/icons/script_code.png b/admin/images/icons/script_code.png new file mode 100644 index 0000000..63fe6ce Binary files /dev/null and b/admin/images/icons/script_code.png differ diff --git a/admin/images/icons/script_code_red.png b/admin/images/icons/script_code_red.png new file mode 100644 index 0000000..8fcf0f0 Binary files /dev/null and b/admin/images/icons/script_code_red.png differ diff --git a/admin/images/icons/script_delete.png b/admin/images/icons/script_delete.png new file mode 100644 index 0000000..e6500ce Binary files /dev/null and b/admin/images/icons/script_delete.png differ diff --git a/admin/images/icons/script_edit.png b/admin/images/icons/script_edit.png new file mode 100644 index 0000000..b4d31ce Binary files /dev/null and b/admin/images/icons/script_edit.png differ diff --git a/admin/images/icons/script_error.png b/admin/images/icons/script_error.png new file mode 100644 index 0000000..0491954 Binary files /dev/null and b/admin/images/icons/script_error.png differ diff --git a/admin/images/icons/script_gear.png b/admin/images/icons/script_gear.png new file mode 100644 index 0000000..56fcf84 Binary files /dev/null and b/admin/images/icons/script_gear.png differ diff --git a/admin/images/icons/script_go.png b/admin/images/icons/script_go.png new file mode 100644 index 0000000..8e154e2 Binary files /dev/null and b/admin/images/icons/script_go.png differ diff --git a/admin/images/icons/script_key.png b/admin/images/icons/script_key.png new file mode 100644 index 0000000..49bb24d Binary files /dev/null and b/admin/images/icons/script_key.png differ diff --git a/admin/images/icons/script_lightning.png b/admin/images/icons/script_lightning.png new file mode 100644 index 0000000..b3fa18c Binary files /dev/null and b/admin/images/icons/script_lightning.png differ diff --git a/admin/images/icons/script_link.png b/admin/images/icons/script_link.png new file mode 100644 index 0000000..bdeb985 Binary files /dev/null and b/admin/images/icons/script_link.png differ diff --git a/admin/images/icons/script_palette.png b/admin/images/icons/script_palette.png new file mode 100644 index 0000000..6d46962 Binary files /dev/null and b/admin/images/icons/script_palette.png differ diff --git a/admin/images/icons/script_save.png b/admin/images/icons/script_save.png new file mode 100644 index 0000000..36216d8 Binary files /dev/null and b/admin/images/icons/script_save.png differ diff --git a/admin/images/icons/server.png b/admin/images/icons/server.png new file mode 100644 index 0000000..720a237 Binary files /dev/null and b/admin/images/icons/server.png differ diff --git a/admin/images/icons/server_add.png b/admin/images/icons/server_add.png new file mode 100644 index 0000000..3f10a3a Binary files /dev/null and b/admin/images/icons/server_add.png differ diff --git a/admin/images/icons/server_chart.png b/admin/images/icons/server_chart.png new file mode 100644 index 0000000..1128d3f Binary files /dev/null and b/admin/images/icons/server_chart.png differ diff --git a/admin/images/icons/server_compressed.png b/admin/images/icons/server_compressed.png new file mode 100644 index 0000000..bf49fad Binary files /dev/null and b/admin/images/icons/server_compressed.png differ diff --git a/admin/images/icons/server_connect.png b/admin/images/icons/server_connect.png new file mode 100644 index 0000000..49b2691 Binary files /dev/null and b/admin/images/icons/server_connect.png differ diff --git a/admin/images/icons/server_database.png b/admin/images/icons/server_database.png new file mode 100644 index 0000000..b24e826 Binary files /dev/null and b/admin/images/icons/server_database.png differ diff --git a/admin/images/icons/server_delete.png b/admin/images/icons/server_delete.png new file mode 100644 index 0000000..61e740f Binary files /dev/null and b/admin/images/icons/server_delete.png differ diff --git a/admin/images/icons/server_edit.png b/admin/images/icons/server_edit.png new file mode 100644 index 0000000..dc76253 Binary files /dev/null and b/admin/images/icons/server_edit.png differ diff --git a/admin/images/icons/server_error.png b/admin/images/icons/server_error.png new file mode 100644 index 0000000..f640256 Binary files /dev/null and b/admin/images/icons/server_error.png differ diff --git a/admin/images/icons/server_go.png b/admin/images/icons/server_go.png new file mode 100644 index 0000000..540c8e2 Binary files /dev/null and b/admin/images/icons/server_go.png differ diff --git a/admin/images/icons/server_key.png b/admin/images/icons/server_key.png new file mode 100644 index 0000000..ecd5174 Binary files /dev/null and b/admin/images/icons/server_key.png differ diff --git a/admin/images/icons/server_lightning.png b/admin/images/icons/server_lightning.png new file mode 100644 index 0000000..b0f4e46 Binary files /dev/null and b/admin/images/icons/server_lightning.png differ diff --git a/admin/images/icons/server_link.png b/admin/images/icons/server_link.png new file mode 100644 index 0000000..e8821df Binary files /dev/null and b/admin/images/icons/server_link.png differ diff --git a/admin/images/icons/server_uncompressed.png b/admin/images/icons/server_uncompressed.png new file mode 100644 index 0000000..86e8325 Binary files /dev/null and b/admin/images/icons/server_uncompressed.png differ diff --git a/admin/images/icons/shading.png b/admin/images/icons/shading.png new file mode 100644 index 0000000..09275f9 Binary files /dev/null and b/admin/images/icons/shading.png differ diff --git a/admin/images/icons/shape_align_bottom.png b/admin/images/icons/shape_align_bottom.png new file mode 100644 index 0000000..55d2694 Binary files /dev/null and b/admin/images/icons/shape_align_bottom.png differ diff --git a/admin/images/icons/shape_align_center.png b/admin/images/icons/shape_align_center.png new file mode 100644 index 0000000..efe9a98 Binary files /dev/null and b/admin/images/icons/shape_align_center.png differ diff --git a/admin/images/icons/shape_align_left.png b/admin/images/icons/shape_align_left.png new file mode 100644 index 0000000..aaedc41 Binary files /dev/null and b/admin/images/icons/shape_align_left.png differ diff --git a/admin/images/icons/shape_align_middle.png b/admin/images/icons/shape_align_middle.png new file mode 100644 index 0000000..d350dd8 Binary files /dev/null and b/admin/images/icons/shape_align_middle.png differ diff --git a/admin/images/icons/shape_align_right.png b/admin/images/icons/shape_align_right.png new file mode 100644 index 0000000..ff556b6 Binary files /dev/null and b/admin/images/icons/shape_align_right.png differ diff --git a/admin/images/icons/shape_align_top.png b/admin/images/icons/shape_align_top.png new file mode 100644 index 0000000..1181b43 Binary files /dev/null and b/admin/images/icons/shape_align_top.png differ diff --git a/admin/images/icons/shape_flip_horizontal.png b/admin/images/icons/shape_flip_horizontal.png new file mode 100644 index 0000000..8667c81 Binary files /dev/null and b/admin/images/icons/shape_flip_horizontal.png differ diff --git a/admin/images/icons/shape_flip_vertical.png b/admin/images/icons/shape_flip_vertical.png new file mode 100644 index 0000000..0bd66d1 Binary files /dev/null and b/admin/images/icons/shape_flip_vertical.png differ diff --git a/admin/images/icons/shape_group.png b/admin/images/icons/shape_group.png new file mode 100644 index 0000000..bb2ff51 Binary files /dev/null and b/admin/images/icons/shape_group.png differ diff --git a/admin/images/icons/shape_handles.png b/admin/images/icons/shape_handles.png new file mode 100644 index 0000000..ce27fe3 Binary files /dev/null and b/admin/images/icons/shape_handles.png differ diff --git a/admin/images/icons/shape_move_back.png b/admin/images/icons/shape_move_back.png new file mode 100644 index 0000000..a216ffd Binary files /dev/null and b/admin/images/icons/shape_move_back.png differ diff --git a/admin/images/icons/shape_move_backwards.png b/admin/images/icons/shape_move_backwards.png new file mode 100644 index 0000000..ee3f9b2 Binary files /dev/null and b/admin/images/icons/shape_move_backwards.png differ diff --git a/admin/images/icons/shape_move_forwards.png b/admin/images/icons/shape_move_forwards.png new file mode 100644 index 0000000..cfe4493 Binary files /dev/null and b/admin/images/icons/shape_move_forwards.png differ diff --git a/admin/images/icons/shape_move_front.png b/admin/images/icons/shape_move_front.png new file mode 100644 index 0000000..b4a4e3b Binary files /dev/null and b/admin/images/icons/shape_move_front.png differ diff --git a/admin/images/icons/shape_rotate_anticlockwise.png b/admin/images/icons/shape_rotate_anticlockwise.png new file mode 100644 index 0000000..07a3020 Binary files /dev/null and b/admin/images/icons/shape_rotate_anticlockwise.png differ diff --git a/admin/images/icons/shape_rotate_clockwise.png b/admin/images/icons/shape_rotate_clockwise.png new file mode 100644 index 0000000..b99db7d Binary files /dev/null and b/admin/images/icons/shape_rotate_clockwise.png differ diff --git a/admin/images/icons/shape_square.png b/admin/images/icons/shape_square.png new file mode 100644 index 0000000..33af046 Binary files /dev/null and b/admin/images/icons/shape_square.png differ diff --git a/admin/images/icons/shape_square_add.png b/admin/images/icons/shape_square_add.png new file mode 100644 index 0000000..31edfce Binary files /dev/null and b/admin/images/icons/shape_square_add.png differ diff --git a/admin/images/icons/shape_square_delete.png b/admin/images/icons/shape_square_delete.png new file mode 100644 index 0000000..ede912d Binary files /dev/null and b/admin/images/icons/shape_square_delete.png differ diff --git a/admin/images/icons/shape_square_edit.png b/admin/images/icons/shape_square_edit.png new file mode 100644 index 0000000..d28dc6b Binary files /dev/null and b/admin/images/icons/shape_square_edit.png differ diff --git a/admin/images/icons/shape_square_error.png b/admin/images/icons/shape_square_error.png new file mode 100644 index 0000000..0d0dcfa Binary files /dev/null and b/admin/images/icons/shape_square_error.png differ diff --git a/admin/images/icons/shape_square_go.png b/admin/images/icons/shape_square_go.png new file mode 100644 index 0000000..5a2ad90 Binary files /dev/null and b/admin/images/icons/shape_square_go.png differ diff --git a/admin/images/icons/shape_square_key.png b/admin/images/icons/shape_square_key.png new file mode 100644 index 0000000..c34b982 Binary files /dev/null and b/admin/images/icons/shape_square_key.png differ diff --git a/admin/images/icons/shape_square_link.png b/admin/images/icons/shape_square_link.png new file mode 100644 index 0000000..b885fcc Binary files /dev/null and b/admin/images/icons/shape_square_link.png differ diff --git a/admin/images/icons/shape_ungroup.png b/admin/images/icons/shape_ungroup.png new file mode 100644 index 0000000..3a6f369 Binary files /dev/null and b/admin/images/icons/shape_ungroup.png differ diff --git a/admin/images/icons/shield.png b/admin/images/icons/shield.png new file mode 100644 index 0000000..3cb4e25 Binary files /dev/null and b/admin/images/icons/shield.png differ diff --git a/admin/images/icons/shield_add.png b/admin/images/icons/shield_add.png new file mode 100644 index 0000000..e20a1b4 Binary files /dev/null and b/admin/images/icons/shield_add.png differ diff --git a/admin/images/icons/shield_delete.png b/admin/images/icons/shield_delete.png new file mode 100644 index 0000000..22823a7 Binary files /dev/null and b/admin/images/icons/shield_delete.png differ diff --git a/admin/images/icons/shield_go.png b/admin/images/icons/shield_go.png new file mode 100644 index 0000000..e9bd852 Binary files /dev/null and b/admin/images/icons/shield_go.png differ diff --git a/admin/images/icons/sitemap.png b/admin/images/icons/sitemap.png new file mode 100644 index 0000000..ca779f3 Binary files /dev/null and b/admin/images/icons/sitemap.png differ diff --git a/admin/images/icons/sitemap_color.png b/admin/images/icons/sitemap_color.png new file mode 100644 index 0000000..c64582b Binary files /dev/null and b/admin/images/icons/sitemap_color.png differ diff --git a/admin/images/icons/sound.png b/admin/images/icons/sound.png new file mode 100644 index 0000000..6056d23 Binary files /dev/null and b/admin/images/icons/sound.png differ diff --git a/admin/images/icons/sound_add.png b/admin/images/icons/sound_add.png new file mode 100644 index 0000000..965c503 Binary files /dev/null and b/admin/images/icons/sound_add.png differ diff --git a/admin/images/icons/sound_delete.png b/admin/images/icons/sound_delete.png new file mode 100644 index 0000000..ab9577a Binary files /dev/null and b/admin/images/icons/sound_delete.png differ diff --git a/admin/images/icons/sound_low.png b/admin/images/icons/sound_low.png new file mode 100644 index 0000000..4d91863 Binary files /dev/null and b/admin/images/icons/sound_low.png differ diff --git a/admin/images/icons/sound_mute.png b/admin/images/icons/sound_mute.png new file mode 100644 index 0000000..b652d2a Binary files /dev/null and b/admin/images/icons/sound_mute.png differ diff --git a/admin/images/icons/sound_none.png b/admin/images/icons/sound_none.png new file mode 100644 index 0000000..b497ebd Binary files /dev/null and b/admin/images/icons/sound_none.png differ diff --git a/admin/images/icons/spellcheck.png b/admin/images/icons/spellcheck.png new file mode 100644 index 0000000..ebc632d Binary files /dev/null and b/admin/images/icons/spellcheck.png differ diff --git a/admin/images/icons/sport_8ball.png b/admin/images/icons/sport_8ball.png new file mode 100644 index 0000000..4f627b7 Binary files /dev/null and b/admin/images/icons/sport_8ball.png differ diff --git a/admin/images/icons/sport_basketball.png b/admin/images/icons/sport_basketball.png new file mode 100644 index 0000000..f7a000b Binary files /dev/null and b/admin/images/icons/sport_basketball.png differ diff --git a/admin/images/icons/sport_football.png b/admin/images/icons/sport_football.png new file mode 100644 index 0000000..199f0f7 Binary files /dev/null and b/admin/images/icons/sport_football.png differ diff --git a/admin/images/icons/sport_golf.png b/admin/images/icons/sport_golf.png new file mode 100644 index 0000000..e21fa44 Binary files /dev/null and b/admin/images/icons/sport_golf.png differ diff --git a/admin/images/icons/sport_raquet.png b/admin/images/icons/sport_raquet.png new file mode 100644 index 0000000..f5e0f0c Binary files /dev/null and b/admin/images/icons/sport_raquet.png differ diff --git a/admin/images/icons/sport_shuttlecock.png b/admin/images/icons/sport_shuttlecock.png new file mode 100644 index 0000000..917287f Binary files /dev/null and b/admin/images/icons/sport_shuttlecock.png differ diff --git a/admin/images/icons/sport_soccer.png b/admin/images/icons/sport_soccer.png new file mode 100644 index 0000000..3eb1828 Binary files /dev/null and b/admin/images/icons/sport_soccer.png differ diff --git a/admin/images/icons/sport_tennis.png b/admin/images/icons/sport_tennis.png new file mode 100644 index 0000000..e88a6ef Binary files /dev/null and b/admin/images/icons/sport_tennis.png differ diff --git a/admin/images/icons/star.png b/admin/images/icons/star.png new file mode 100644 index 0000000..b88c857 Binary files /dev/null and b/admin/images/icons/star.png differ diff --git a/admin/images/icons/status_away.png b/admin/images/icons/status_away.png new file mode 100644 index 0000000..70bcbcc Binary files /dev/null and b/admin/images/icons/status_away.png differ diff --git a/admin/images/icons/status_busy.png b/admin/images/icons/status_busy.png new file mode 100644 index 0000000..987c806 Binary files /dev/null and b/admin/images/icons/status_busy.png differ diff --git a/admin/images/icons/status_offline.png b/admin/images/icons/status_offline.png new file mode 100644 index 0000000..a88261a Binary files /dev/null and b/admin/images/icons/status_offline.png differ diff --git a/admin/images/icons/status_online.png b/admin/images/icons/status_online.png new file mode 100644 index 0000000..947bd4b Binary files /dev/null and b/admin/images/icons/status_online.png differ diff --git a/admin/images/icons/stop.png b/admin/images/icons/stop.png new file mode 100644 index 0000000..0cfd585 Binary files /dev/null and b/admin/images/icons/stop.png differ diff --git a/admin/images/icons/style.png b/admin/images/icons/style.png new file mode 100644 index 0000000..81e41de Binary files /dev/null and b/admin/images/icons/style.png differ diff --git a/admin/images/icons/style_add.png b/admin/images/icons/style_add.png new file mode 100644 index 0000000..e0369c6 Binary files /dev/null and b/admin/images/icons/style_add.png differ diff --git a/admin/images/icons/style_delete.png b/admin/images/icons/style_delete.png new file mode 100644 index 0000000..640f187 Binary files /dev/null and b/admin/images/icons/style_delete.png differ diff --git a/admin/images/icons/style_edit.png b/admin/images/icons/style_edit.png new file mode 100644 index 0000000..25bb5b6 Binary files /dev/null and b/admin/images/icons/style_edit.png differ diff --git a/admin/images/icons/style_go.png b/admin/images/icons/style_go.png new file mode 100644 index 0000000..25d6181 Binary files /dev/null and b/admin/images/icons/style_go.png differ diff --git a/admin/images/icons/sum.png b/admin/images/icons/sum.png new file mode 100644 index 0000000..fd7b32e Binary files /dev/null and b/admin/images/icons/sum.png differ diff --git a/admin/images/icons/tab.png b/admin/images/icons/tab.png new file mode 100644 index 0000000..3d8207f Binary files /dev/null and b/admin/images/icons/tab.png differ diff --git a/admin/images/icons/tab_add.png b/admin/images/icons/tab_add.png new file mode 100644 index 0000000..d3b9936 Binary files /dev/null and b/admin/images/icons/tab_add.png differ diff --git a/admin/images/icons/tab_delete.png b/admin/images/icons/tab_delete.png new file mode 100644 index 0000000..100da2f Binary files /dev/null and b/admin/images/icons/tab_delete.png differ diff --git a/admin/images/icons/tab_edit.png b/admin/images/icons/tab_edit.png new file mode 100644 index 0000000..4c09c0f Binary files /dev/null and b/admin/images/icons/tab_edit.png differ diff --git a/admin/images/icons/tab_go.png b/admin/images/icons/tab_go.png new file mode 100644 index 0000000..844ce04 Binary files /dev/null and b/admin/images/icons/tab_go.png differ diff --git a/admin/images/icons/table.png b/admin/images/icons/table.png new file mode 100644 index 0000000..abcd936 Binary files /dev/null and b/admin/images/icons/table.png differ diff --git a/admin/images/icons/table_add.png b/admin/images/icons/table_add.png new file mode 100644 index 0000000..2a3e5c4 Binary files /dev/null and b/admin/images/icons/table_add.png differ diff --git a/admin/images/icons/table_delete.png b/admin/images/icons/table_delete.png new file mode 100644 index 0000000..b85916d Binary files /dev/null and b/admin/images/icons/table_delete.png differ diff --git a/admin/images/icons/table_edit.png b/admin/images/icons/table_edit.png new file mode 100644 index 0000000..bfcb024 Binary files /dev/null and b/admin/images/icons/table_edit.png differ diff --git a/admin/images/icons/table_error.png b/admin/images/icons/table_error.png new file mode 100644 index 0000000..589e92b Binary files /dev/null and b/admin/images/icons/table_error.png differ diff --git a/admin/images/icons/table_gear.png b/admin/images/icons/table_gear.png new file mode 100644 index 0000000..cfc2702 Binary files /dev/null and b/admin/images/icons/table_gear.png differ diff --git a/admin/images/icons/table_go.png b/admin/images/icons/table_go.png new file mode 100644 index 0000000..0528dfa Binary files /dev/null and b/admin/images/icons/table_go.png differ diff --git a/admin/images/icons/table_key.png b/admin/images/icons/table_key.png new file mode 100644 index 0000000..34e23e2 Binary files /dev/null and b/admin/images/icons/table_key.png differ diff --git a/admin/images/icons/table_lightning.png b/admin/images/icons/table_lightning.png new file mode 100644 index 0000000..612612b Binary files /dev/null and b/admin/images/icons/table_lightning.png differ diff --git a/admin/images/icons/table_link.png b/admin/images/icons/table_link.png new file mode 100644 index 0000000..decac8a Binary files /dev/null and b/admin/images/icons/table_link.png differ diff --git a/admin/images/icons/table_multiple.png b/admin/images/icons/table_multiple.png new file mode 100644 index 0000000..d76448e Binary files /dev/null and b/admin/images/icons/table_multiple.png differ diff --git a/admin/images/icons/table_refresh.png b/admin/images/icons/table_refresh.png new file mode 100644 index 0000000..ab92010 Binary files /dev/null and b/admin/images/icons/table_refresh.png differ diff --git a/admin/images/icons/table_relationship.png b/admin/images/icons/table_relationship.png new file mode 100644 index 0000000..28b8505 Binary files /dev/null and b/admin/images/icons/table_relationship.png differ diff --git a/admin/images/icons/table_row_delete.png b/admin/images/icons/table_row_delete.png new file mode 100644 index 0000000..54c6969 Binary files /dev/null and b/admin/images/icons/table_row_delete.png differ diff --git a/admin/images/icons/table_row_insert.png b/admin/images/icons/table_row_insert.png new file mode 100644 index 0000000..ff5925e Binary files /dev/null and b/admin/images/icons/table_row_insert.png differ diff --git a/admin/images/icons/table_save.png b/admin/images/icons/table_save.png new file mode 100644 index 0000000..25b74d1 Binary files /dev/null and b/admin/images/icons/table_save.png differ diff --git a/admin/images/icons/table_sort.png b/admin/images/icons/table_sort.png new file mode 100644 index 0000000..ed6785a Binary files /dev/null and b/admin/images/icons/table_sort.png differ diff --git a/admin/images/icons/tag.png b/admin/images/icons/tag.png new file mode 100644 index 0000000..e093032 Binary files /dev/null and b/admin/images/icons/tag.png differ diff --git a/admin/images/icons/tag_blue.png b/admin/images/icons/tag_blue.png new file mode 100644 index 0000000..9757fc6 Binary files /dev/null and b/admin/images/icons/tag_blue.png differ diff --git a/admin/images/icons/tag_blue_add.png b/admin/images/icons/tag_blue_add.png new file mode 100644 index 0000000..f135248 Binary files /dev/null and b/admin/images/icons/tag_blue_add.png differ diff --git a/admin/images/icons/tag_blue_delete.png b/admin/images/icons/tag_blue_delete.png new file mode 100644 index 0000000..9fbae67 Binary files /dev/null and b/admin/images/icons/tag_blue_delete.png differ diff --git a/admin/images/icons/tag_blue_edit.png b/admin/images/icons/tag_blue_edit.png new file mode 100644 index 0000000..2a9f626 Binary files /dev/null and b/admin/images/icons/tag_blue_edit.png differ diff --git a/admin/images/icons/tag_green.png b/admin/images/icons/tag_green.png new file mode 100644 index 0000000..83ec984 Binary files /dev/null and b/admin/images/icons/tag_green.png differ diff --git a/admin/images/icons/tag_orange.png b/admin/images/icons/tag_orange.png new file mode 100644 index 0000000..454a59f Binary files /dev/null and b/admin/images/icons/tag_orange.png differ diff --git a/admin/images/icons/tag_pink.png b/admin/images/icons/tag_pink.png new file mode 100644 index 0000000..76e2296 Binary files /dev/null and b/admin/images/icons/tag_pink.png differ diff --git a/admin/images/icons/tag_purple.png b/admin/images/icons/tag_purple.png new file mode 100644 index 0000000..ebaf0e8 Binary files /dev/null and b/admin/images/icons/tag_purple.png differ diff --git a/admin/images/icons/tag_red.png b/admin/images/icons/tag_red.png new file mode 100644 index 0000000..6ebb37d Binary files /dev/null and b/admin/images/icons/tag_red.png differ diff --git a/admin/images/icons/tag_yellow.png b/admin/images/icons/tag_yellow.png new file mode 100644 index 0000000..83d1292 Binary files /dev/null and b/admin/images/icons/tag_yellow.png differ diff --git a/admin/images/icons/telephone.png b/admin/images/icons/telephone.png new file mode 100644 index 0000000..cecc436 Binary files /dev/null and b/admin/images/icons/telephone.png differ diff --git a/admin/images/icons/telephone_add.png b/admin/images/icons/telephone_add.png new file mode 100644 index 0000000..5591cfc Binary files /dev/null and b/admin/images/icons/telephone_add.png differ diff --git a/admin/images/icons/telephone_delete.png b/admin/images/icons/telephone_delete.png new file mode 100644 index 0000000..0013268 Binary files /dev/null and b/admin/images/icons/telephone_delete.png differ diff --git a/admin/images/icons/telephone_edit.png b/admin/images/icons/telephone_edit.png new file mode 100644 index 0000000..bcf6d7e Binary files /dev/null and b/admin/images/icons/telephone_edit.png differ diff --git a/admin/images/icons/telephone_error.png b/admin/images/icons/telephone_error.png new file mode 100644 index 0000000..d3ec3a1 Binary files /dev/null and b/admin/images/icons/telephone_error.png differ diff --git a/admin/images/icons/telephone_go.png b/admin/images/icons/telephone_go.png new file mode 100644 index 0000000..395c8fb Binary files /dev/null and b/admin/images/icons/telephone_go.png differ diff --git a/admin/images/icons/telephone_key.png b/admin/images/icons/telephone_key.png new file mode 100644 index 0000000..cef5dec Binary files /dev/null and b/admin/images/icons/telephone_key.png differ diff --git a/admin/images/icons/telephone_link.png b/admin/images/icons/telephone_link.png new file mode 100644 index 0000000..ef1ee5d Binary files /dev/null and b/admin/images/icons/telephone_link.png differ diff --git a/admin/images/icons/television.png b/admin/images/icons/television.png new file mode 100644 index 0000000..1738a4f Binary files /dev/null and b/admin/images/icons/television.png differ diff --git a/admin/images/icons/television_add.png b/admin/images/icons/television_add.png new file mode 100644 index 0000000..2baaad9 Binary files /dev/null and b/admin/images/icons/television_add.png differ diff --git a/admin/images/icons/television_delete.png b/admin/images/icons/television_delete.png new file mode 100644 index 0000000..b9a5860 Binary files /dev/null and b/admin/images/icons/television_delete.png differ diff --git a/admin/images/icons/text_align_center.png b/admin/images/icons/text_align_center.png new file mode 100644 index 0000000..57beb38 Binary files /dev/null and b/admin/images/icons/text_align_center.png differ diff --git a/admin/images/icons/text_align_justify.png b/admin/images/icons/text_align_justify.png new file mode 100644 index 0000000..2fbdd69 Binary files /dev/null and b/admin/images/icons/text_align_justify.png differ diff --git a/admin/images/icons/text_align_left.png b/admin/images/icons/text_align_left.png new file mode 100644 index 0000000..6c8fcc1 Binary files /dev/null and b/admin/images/icons/text_align_left.png differ diff --git a/admin/images/icons/text_align_right.png b/admin/images/icons/text_align_right.png new file mode 100644 index 0000000..a150257 Binary files /dev/null and b/admin/images/icons/text_align_right.png differ diff --git a/admin/images/icons/text_allcaps.png b/admin/images/icons/text_allcaps.png new file mode 100644 index 0000000..280fd44 Binary files /dev/null and b/admin/images/icons/text_allcaps.png differ diff --git a/admin/images/icons/text_bold.png b/admin/images/icons/text_bold.png new file mode 100644 index 0000000..889ae80 Binary files /dev/null and b/admin/images/icons/text_bold.png differ diff --git a/admin/images/icons/text_columns.png b/admin/images/icons/text_columns.png new file mode 100644 index 0000000..97b2e03 Binary files /dev/null and b/admin/images/icons/text_columns.png differ diff --git a/admin/images/icons/text_dropcaps.png b/admin/images/icons/text_dropcaps.png new file mode 100644 index 0000000..dd65786 Binary files /dev/null and b/admin/images/icons/text_dropcaps.png differ diff --git a/admin/images/icons/text_heading_1.png b/admin/images/icons/text_heading_1.png new file mode 100644 index 0000000..9c122e9 Binary files /dev/null and b/admin/images/icons/text_heading_1.png differ diff --git a/admin/images/icons/text_heading_2.png b/admin/images/icons/text_heading_2.png new file mode 100644 index 0000000..fbd8765 Binary files /dev/null and b/admin/images/icons/text_heading_2.png differ diff --git a/admin/images/icons/text_heading_3.png b/admin/images/icons/text_heading_3.png new file mode 100644 index 0000000..c7836cf Binary files /dev/null and b/admin/images/icons/text_heading_3.png differ diff --git a/admin/images/icons/text_heading_4.png b/admin/images/icons/text_heading_4.png new file mode 100644 index 0000000..4e929ea Binary files /dev/null and b/admin/images/icons/text_heading_4.png differ diff --git a/admin/images/icons/text_heading_5.png b/admin/images/icons/text_heading_5.png new file mode 100644 index 0000000..30cabeb Binary files /dev/null and b/admin/images/icons/text_heading_5.png differ diff --git a/admin/images/icons/text_heading_6.png b/admin/images/icons/text_heading_6.png new file mode 100644 index 0000000..058170a Binary files /dev/null and b/admin/images/icons/text_heading_6.png differ diff --git a/admin/images/icons/text_horizontalrule.png b/admin/images/icons/text_horizontalrule.png new file mode 100644 index 0000000..8dd1da1 Binary files /dev/null and b/admin/images/icons/text_horizontalrule.png differ diff --git a/admin/images/icons/text_indent.png b/admin/images/icons/text_indent.png new file mode 100644 index 0000000..9364532 Binary files /dev/null and b/admin/images/icons/text_indent.png differ diff --git a/admin/images/icons/text_indent_remove.png b/admin/images/icons/text_indent_remove.png new file mode 100644 index 0000000..1651b07 Binary files /dev/null and b/admin/images/icons/text_indent_remove.png differ diff --git a/admin/images/icons/text_italic.png b/admin/images/icons/text_italic.png new file mode 100644 index 0000000..8482ac8 Binary files /dev/null and b/admin/images/icons/text_italic.png differ diff --git a/admin/images/icons/text_kerning.png b/admin/images/icons/text_kerning.png new file mode 100644 index 0000000..377def6 Binary files /dev/null and b/admin/images/icons/text_kerning.png differ diff --git a/admin/images/icons/text_letter_omega.png b/admin/images/icons/text_letter_omega.png new file mode 100644 index 0000000..5075ec6 Binary files /dev/null and b/admin/images/icons/text_letter_omega.png differ diff --git a/admin/images/icons/text_letterspacing.png b/admin/images/icons/text_letterspacing.png new file mode 100644 index 0000000..41390f5 Binary files /dev/null and b/admin/images/icons/text_letterspacing.png differ diff --git a/admin/images/icons/text_linespacing.png b/admin/images/icons/text_linespacing.png new file mode 100644 index 0000000..1a91cbd Binary files /dev/null and b/admin/images/icons/text_linespacing.png differ diff --git a/admin/images/icons/text_list_bullets.png b/admin/images/icons/text_list_bullets.png new file mode 100644 index 0000000..4a8672b Binary files /dev/null and b/admin/images/icons/text_list_bullets.png differ diff --git a/admin/images/icons/text_list_numbers.png b/admin/images/icons/text_list_numbers.png new file mode 100644 index 0000000..33b0b8d Binary files /dev/null and b/admin/images/icons/text_list_numbers.png differ diff --git a/admin/images/icons/text_lowercase.png b/admin/images/icons/text_lowercase.png new file mode 100644 index 0000000..382a102 Binary files /dev/null and b/admin/images/icons/text_lowercase.png differ diff --git a/admin/images/icons/text_padding_bottom.png b/admin/images/icons/text_padding_bottom.png new file mode 100644 index 0000000..4880c43 Binary files /dev/null and b/admin/images/icons/text_padding_bottom.png differ diff --git a/admin/images/icons/text_padding_left.png b/admin/images/icons/text_padding_left.png new file mode 100644 index 0000000..b55482e Binary files /dev/null and b/admin/images/icons/text_padding_left.png differ diff --git a/admin/images/icons/text_padding_right.png b/admin/images/icons/text_padding_right.png new file mode 100644 index 0000000..106edae Binary files /dev/null and b/admin/images/icons/text_padding_right.png differ diff --git a/admin/images/icons/text_padding_top.png b/admin/images/icons/text_padding_top.png new file mode 100644 index 0000000..c5c45b2 Binary files /dev/null and b/admin/images/icons/text_padding_top.png differ diff --git a/admin/images/icons/text_replace.png b/admin/images/icons/text_replace.png new file mode 100644 index 0000000..877f82f Binary files /dev/null and b/admin/images/icons/text_replace.png differ diff --git a/admin/images/icons/text_signature.png b/admin/images/icons/text_signature.png new file mode 100644 index 0000000..c72fd80 Binary files /dev/null and b/admin/images/icons/text_signature.png differ diff --git a/admin/images/icons/text_smallcaps.png b/admin/images/icons/text_smallcaps.png new file mode 100644 index 0000000..5b98a6e Binary files /dev/null and b/admin/images/icons/text_smallcaps.png differ diff --git a/admin/images/icons/text_strikethrough.png b/admin/images/icons/text_strikethrough.png new file mode 100644 index 0000000..612058a Binary files /dev/null and b/admin/images/icons/text_strikethrough.png differ diff --git a/admin/images/icons/text_subscript.png b/admin/images/icons/text_subscript.png new file mode 100644 index 0000000..1a2b010 Binary files /dev/null and b/admin/images/icons/text_subscript.png differ diff --git a/admin/images/icons/text_superscript.png b/admin/images/icons/text_superscript.png new file mode 100644 index 0000000..2fb2a7c Binary files /dev/null and b/admin/images/icons/text_superscript.png differ diff --git a/admin/images/icons/text_underline.png b/admin/images/icons/text_underline.png new file mode 100644 index 0000000..90d0df2 Binary files /dev/null and b/admin/images/icons/text_underline.png differ diff --git a/admin/images/icons/text_uppercase.png b/admin/images/icons/text_uppercase.png new file mode 100644 index 0000000..8dcc2db Binary files /dev/null and b/admin/images/icons/text_uppercase.png differ diff --git a/admin/images/icons/textfield.png b/admin/images/icons/textfield.png new file mode 100644 index 0000000..d37e730 Binary files /dev/null and b/admin/images/icons/textfield.png differ diff --git a/admin/images/icons/textfield_add.png b/admin/images/icons/textfield_add.png new file mode 100644 index 0000000..204de72 Binary files /dev/null and b/admin/images/icons/textfield_add.png differ diff --git a/admin/images/icons/textfield_delete.png b/admin/images/icons/textfield_delete.png new file mode 100644 index 0000000..c7bd58b Binary files /dev/null and b/admin/images/icons/textfield_delete.png differ diff --git a/admin/images/icons/textfield_key.png b/admin/images/icons/textfield_key.png new file mode 100644 index 0000000..a9d5e4f Binary files /dev/null and b/admin/images/icons/textfield_key.png differ diff --git a/admin/images/icons/textfield_rename.png b/admin/images/icons/textfield_rename.png new file mode 100644 index 0000000..4e3688e Binary files /dev/null and b/admin/images/icons/textfield_rename.png differ diff --git a/admin/images/icons/thumb_down.png b/admin/images/icons/thumb_down.png new file mode 100644 index 0000000..3c832d4 Binary files /dev/null and b/admin/images/icons/thumb_down.png differ diff --git a/admin/images/icons/thumb_up.png b/admin/images/icons/thumb_up.png new file mode 100644 index 0000000..2bd16cc Binary files /dev/null and b/admin/images/icons/thumb_up.png differ diff --git a/admin/images/icons/tick.png b/admin/images/icons/tick.png new file mode 100644 index 0000000..a9925a0 Binary files /dev/null and b/admin/images/icons/tick.png differ diff --git a/admin/images/icons/time.png b/admin/images/icons/time.png new file mode 100644 index 0000000..911da3f Binary files /dev/null and b/admin/images/icons/time.png differ diff --git a/admin/images/icons/time_add.png b/admin/images/icons/time_add.png new file mode 100644 index 0000000..dcc45cb Binary files /dev/null and b/admin/images/icons/time_add.png differ diff --git a/admin/images/icons/time_delete.png b/admin/images/icons/time_delete.png new file mode 100644 index 0000000..5bf8313 Binary files /dev/null and b/admin/images/icons/time_delete.png differ diff --git a/admin/images/icons/time_go.png b/admin/images/icons/time_go.png new file mode 100644 index 0000000..d451ee0 Binary files /dev/null and b/admin/images/icons/time_go.png differ diff --git a/admin/images/icons/timeline_marker.png b/admin/images/icons/timeline_marker.png new file mode 100644 index 0000000..a3fbddf Binary files /dev/null and b/admin/images/icons/timeline_marker.png differ diff --git a/admin/images/icons/transmit.png b/admin/images/icons/transmit.png new file mode 100644 index 0000000..f54bf73 Binary files /dev/null and b/admin/images/icons/transmit.png differ diff --git a/admin/images/icons/transmit_add.png b/admin/images/icons/transmit_add.png new file mode 100644 index 0000000..b7fd4e6 Binary files /dev/null and b/admin/images/icons/transmit_add.png differ diff --git a/admin/images/icons/transmit_blue.png b/admin/images/icons/transmit_blue.png new file mode 100644 index 0000000..7b1142f Binary files /dev/null and b/admin/images/icons/transmit_blue.png differ diff --git a/admin/images/icons/transmit_delete.png b/admin/images/icons/transmit_delete.png new file mode 100644 index 0000000..3d72be2 Binary files /dev/null and b/admin/images/icons/transmit_delete.png differ diff --git a/admin/images/icons/transmit_edit.png b/admin/images/icons/transmit_edit.png new file mode 100644 index 0000000..eb9a3dd Binary files /dev/null and b/admin/images/icons/transmit_edit.png differ diff --git a/admin/images/icons/transmit_error.png b/admin/images/icons/transmit_error.png new file mode 100644 index 0000000..fd1d449 Binary files /dev/null and b/admin/images/icons/transmit_error.png differ diff --git a/admin/images/icons/transmit_go.png b/admin/images/icons/transmit_go.png new file mode 100644 index 0000000..10137e5 Binary files /dev/null and b/admin/images/icons/transmit_go.png differ diff --git a/admin/images/icons/tux.png b/admin/images/icons/tux.png new file mode 100644 index 0000000..bbefe2e Binary files /dev/null and b/admin/images/icons/tux.png differ diff --git a/admin/images/icons/user.png b/admin/images/icons/user.png new file mode 100644 index 0000000..79f35cc Binary files /dev/null and b/admin/images/icons/user.png differ diff --git a/admin/images/icons/user_add.png b/admin/images/icons/user_add.png new file mode 100644 index 0000000..deae99b Binary files /dev/null and b/admin/images/icons/user_add.png differ diff --git a/admin/images/icons/user_comment.png b/admin/images/icons/user_comment.png new file mode 100644 index 0000000..e54ebeb Binary files /dev/null and b/admin/images/icons/user_comment.png differ diff --git a/admin/images/icons/user_delete.png b/admin/images/icons/user_delete.png new file mode 100644 index 0000000..acbb563 Binary files /dev/null and b/admin/images/icons/user_delete.png differ diff --git a/admin/images/icons/user_edit.png b/admin/images/icons/user_edit.png new file mode 100644 index 0000000..c1974cd Binary files /dev/null and b/admin/images/icons/user_edit.png differ diff --git a/admin/images/icons/user_female.png b/admin/images/icons/user_female.png new file mode 100644 index 0000000..7c71de0 Binary files /dev/null and b/admin/images/icons/user_female.png differ diff --git a/admin/images/icons/user_go.png b/admin/images/icons/user_go.png new file mode 100644 index 0000000..0468cf0 Binary files /dev/null and b/admin/images/icons/user_go.png differ diff --git a/admin/images/icons/user_gray.png b/admin/images/icons/user_gray.png new file mode 100644 index 0000000..8fd539e Binary files /dev/null and b/admin/images/icons/user_gray.png differ diff --git a/admin/images/icons/user_green.png b/admin/images/icons/user_green.png new file mode 100644 index 0000000..30383c2 Binary files /dev/null and b/admin/images/icons/user_green.png differ diff --git a/admin/images/icons/user_orange.png b/admin/images/icons/user_orange.png new file mode 100644 index 0000000..b818127 Binary files /dev/null and b/admin/images/icons/user_orange.png differ diff --git a/admin/images/icons/user_red.png b/admin/images/icons/user_red.png new file mode 100644 index 0000000..c6f66e8 Binary files /dev/null and b/admin/images/icons/user_red.png differ diff --git a/admin/images/icons/user_suit.png b/admin/images/icons/user_suit.png new file mode 100644 index 0000000..b3454e1 Binary files /dev/null and b/admin/images/icons/user_suit.png differ diff --git a/admin/images/icons/vcard.png b/admin/images/icons/vcard.png new file mode 100644 index 0000000..c02f315 Binary files /dev/null and b/admin/images/icons/vcard.png differ diff --git a/admin/images/icons/vcard_add.png b/admin/images/icons/vcard_add.png new file mode 100644 index 0000000..2a68453 Binary files /dev/null and b/admin/images/icons/vcard_add.png differ diff --git a/admin/images/icons/vcard_delete.png b/admin/images/icons/vcard_delete.png new file mode 100644 index 0000000..b194b97 Binary files /dev/null and b/admin/images/icons/vcard_delete.png differ diff --git a/admin/images/icons/vcard_edit.png b/admin/images/icons/vcard_edit.png new file mode 100644 index 0000000..ab0f6e7 Binary files /dev/null and b/admin/images/icons/vcard_edit.png differ diff --git a/admin/images/icons/vector.png b/admin/images/icons/vector.png new file mode 100644 index 0000000..a1291c2 Binary files /dev/null and b/admin/images/icons/vector.png differ diff --git a/admin/images/icons/vector_add.png b/admin/images/icons/vector_add.png new file mode 100644 index 0000000..988770f Binary files /dev/null and b/admin/images/icons/vector_add.png differ diff --git a/admin/images/icons/vector_delete.png b/admin/images/icons/vector_delete.png new file mode 100644 index 0000000..ca139e0 Binary files /dev/null and b/admin/images/icons/vector_delete.png differ diff --git a/admin/images/icons/wand.png b/admin/images/icons/wand.png new file mode 100644 index 0000000..44ccbf8 Binary files /dev/null and b/admin/images/icons/wand.png differ diff --git a/admin/images/icons/weather_clouds.png b/admin/images/icons/weather_clouds.png new file mode 100644 index 0000000..3f73eaa Binary files /dev/null and b/admin/images/icons/weather_clouds.png differ diff --git a/admin/images/icons/weather_cloudy.png b/admin/images/icons/weather_cloudy.png new file mode 100644 index 0000000..5856e1d Binary files /dev/null and b/admin/images/icons/weather_cloudy.png differ diff --git a/admin/images/icons/weather_lightning.png b/admin/images/icons/weather_lightning.png new file mode 100644 index 0000000..1d42b36 Binary files /dev/null and b/admin/images/icons/weather_lightning.png differ diff --git a/admin/images/icons/weather_rain.png b/admin/images/icons/weather_rain.png new file mode 100644 index 0000000..cb3d54d Binary files /dev/null and b/admin/images/icons/weather_rain.png differ diff --git a/admin/images/icons/weather_snow.png b/admin/images/icons/weather_snow.png new file mode 100644 index 0000000..45bbdf1 Binary files /dev/null and b/admin/images/icons/weather_snow.png differ diff --git a/admin/images/icons/weather_sun.png b/admin/images/icons/weather_sun.png new file mode 100644 index 0000000..0156c26 Binary files /dev/null and b/admin/images/icons/weather_sun.png differ diff --git a/admin/images/icons/webcam.png b/admin/images/icons/webcam.png new file mode 100644 index 0000000..af71c30 Binary files /dev/null and b/admin/images/icons/webcam.png differ diff --git a/admin/images/icons/webcam_add.png b/admin/images/icons/webcam_add.png new file mode 100644 index 0000000..f02fcfa Binary files /dev/null and b/admin/images/icons/webcam_add.png differ diff --git a/admin/images/icons/webcam_delete.png b/admin/images/icons/webcam_delete.png new file mode 100644 index 0000000..bd6277f Binary files /dev/null and b/admin/images/icons/webcam_delete.png differ diff --git a/admin/images/icons/webcam_error.png b/admin/images/icons/webcam_error.png new file mode 100644 index 0000000..2faa706 Binary files /dev/null and b/admin/images/icons/webcam_error.png differ diff --git a/admin/images/icons/world.png b/admin/images/icons/world.png new file mode 100644 index 0000000..68f21d3 Binary files /dev/null and b/admin/images/icons/world.png differ diff --git a/admin/images/icons/world_add.png b/admin/images/icons/world_add.png new file mode 100644 index 0000000..6d0d7f7 Binary files /dev/null and b/admin/images/icons/world_add.png differ diff --git a/admin/images/icons/world_delete.png b/admin/images/icons/world_delete.png new file mode 100644 index 0000000..ffcd115 Binary files /dev/null and b/admin/images/icons/world_delete.png differ diff --git a/admin/images/icons/world_edit.png b/admin/images/icons/world_edit.png new file mode 100644 index 0000000..00794d4 Binary files /dev/null and b/admin/images/icons/world_edit.png differ diff --git a/admin/images/icons/world_go.png b/admin/images/icons/world_go.png new file mode 100644 index 0000000..aee9c97 Binary files /dev/null and b/admin/images/icons/world_go.png differ diff --git a/admin/images/icons/world_link.png b/admin/images/icons/world_link.png new file mode 100644 index 0000000..b8edc12 Binary files /dev/null and b/admin/images/icons/world_link.png differ diff --git a/admin/images/icons/wrench.png b/admin/images/icons/wrench.png new file mode 100644 index 0000000..5c8213f Binary files /dev/null and b/admin/images/icons/wrench.png differ diff --git a/admin/images/icons/wrench_orange.png b/admin/images/icons/wrench_orange.png new file mode 100644 index 0000000..565a933 Binary files /dev/null and b/admin/images/icons/wrench_orange.png differ diff --git a/admin/images/icons/xhtml.png b/admin/images/icons/xhtml.png new file mode 100644 index 0000000..da5dbf2 Binary files /dev/null and b/admin/images/icons/xhtml.png differ diff --git a/admin/images/icons/xhtml_add.png b/admin/images/icons/xhtml_add.png new file mode 100644 index 0000000..bbaf784 Binary files /dev/null and b/admin/images/icons/xhtml_add.png differ diff --git a/admin/images/icons/xhtml_delete.png b/admin/images/icons/xhtml_delete.png new file mode 100644 index 0000000..157b520 Binary files /dev/null and b/admin/images/icons/xhtml_delete.png differ diff --git a/admin/images/icons/xhtml_go.png b/admin/images/icons/xhtml_go.png new file mode 100644 index 0000000..43cf814 Binary files /dev/null and b/admin/images/icons/xhtml_go.png differ diff --git a/admin/images/icons/xhtml_valid.png b/admin/images/icons/xhtml_valid.png new file mode 100644 index 0000000..d2e1cfb Binary files /dev/null and b/admin/images/icons/xhtml_valid.png differ diff --git a/admin/images/icons/zoom.png b/admin/images/icons/zoom.png new file mode 100644 index 0000000..908612e Binary files /dev/null and b/admin/images/icons/zoom.png differ diff --git a/admin/images/icons/zoom_in.png b/admin/images/icons/zoom_in.png new file mode 100644 index 0000000..cdf0a52 Binary files /dev/null and b/admin/images/icons/zoom_in.png differ diff --git a/admin/images/icons/zoom_out.png b/admin/images/icons/zoom_out.png new file mode 100644 index 0000000..07bf98a Binary files /dev/null and b/admin/images/icons/zoom_out.png differ diff --git a/admin/images/spinner.gif b/admin/images/spinner.gif new file mode 100644 index 0000000..86dbe65 Binary files /dev/null and b/admin/images/spinner.gif differ diff --git a/admin/images/up.gif b/admin/images/up.gif new file mode 100644 index 0000000..c5ef548 Binary files /dev/null and b/admin/images/up.gif differ diff --git a/admin/index.php b/admin/index.php new file mode 100644 index 0000000..a1dc852 --- /dev/null +++ b/admin/index.php @@ -0,0 +1,108 @@ + + * @package BeCast Webengine core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id: index.php 100 2010-02-20 14:42:30Z genuineparts $ +*/ +ERROR_REPORTING(E_ALL ^E_NOTICE); +$basepath=""; +$nav_include="../"; +require_once dirname(dirname(__FILE__)).'/core/init_core.inc.php'; +$session->page_begin("Admincenter", True); +define("in_BL_ADMIN",TRUE); + +function size_format($num, $prec = 2) +{ + if ($num >= 1024000){ + return number_format($num / 1048576, $prec) . ' MB'; + }elseif ($num >= 1000){ + return sprintf("%.{$prec}f KB", $num / 1024); + }else{ + return $num . ' bytes'; + } +} + +if(isset($session->userdata['uid']) && $session->userdata['uid']!=0 && ($session->userdata["admin_cp"] && $session->userdata["is_admin"])){ + require_once dirname(dirname(__FILE__)).'/inc/admin.class.php'; + require_once dirname(dirname(__FILE__)).'/inc/panel.class.php'; + $admin=new admin(); + $panel=new panel(); + $panel->menu_item("page_home",$lang->_('BACKTOPAGE'),"house"); + $panel->menu_item("admin_home",$lang->_('ADMININDEX'),"layout"); + $admin->create_admin_nav(); + $panel->menu_item("group_only",$lang->_('NAVIGATION')); + $panel->menu_item("navigation",$lang->_('NAVIGATIONADMIN'),"table_multiple"); + $panel->menu_item("group_only",$lang->_('USERADMIN')); + $panel->menu_item("adduser",$lang->_('ADDUSER'),"user_add"); + $panel->menu_item("editusers",$lang->_('EDITUSER'),"user_edit"); + $panel->menu_item("banips",$lang->_('IPBAN'),"disconnect"); + $panel->menu_item("group_only",$lang->_('GROUPADMIN')); + $panel->menu_item("addgroup",$lang->_('ADDGROUP'),"group_add"); + $panel->menu_item("editgroup",$lang->_('EDITGROUP'),"group_edit"); + $panel->menu_item("group_only",$lang->_('CONFIG')); + $panel->menu_item("config",$lang->_('CONFIG'),"wrench"); + $panel->menu_item("module",$lang->_('MODULES'),"bricks"); + $panel->menu_item("versions",$lang->_('VERSION'),"shield_go"); + if(isset($_GET["panel"])){ + $admin->get_panel($_GET["panel"]); + }else{ + $panel->content=$lang->_('STARTTEXT'); + $panel->title=$lang->_('ADMINMENU'); + $panel->content.=' + + '; + + + $total_rows = 0; + $total_data = 0; + $total_index = 0; + + // Table sizes + $result = $db->query("SHOW TABLE STATUS"); + while ($row = $db->fetch_array($result)) + { + $total_rows += $row['Rows']; + $total_data += $row['Data_length']; + $total_index += $row['Index_length']; + $rows = number_format($row['Rows']); + $data = size_format($row['Data_length']); + $index = size_format($row['Index_length']); + $total = size_format($row['Data_length'] + $row['Index_length']); + $panel->content.=''; + } + + + // Total + $rows = number_format($total_rows); + $data = size_format($total_data); + $index = size_format($total_index); + $total = size_format($total_data + $total_index); + $panel->content.='
'.$lang->_('DATABASE').'
'.$lang->_('TABLE').''.$lang->_('ROWCOUNT').''.$lang->_('INDEXSIZE').''.$lang->_('DATASIZE').''.$lang->_('SUMSIZE').'
'.$row["Name"].''.$rows.''.$index.''.$data.''.$total.'
Gesamt'.$rows.''.$index.''.$data.''.$total.'
'; + $panel->parse_page(); + } + +}else{ + return $error->http_error("404"); +} +?> + diff --git a/admin/module.apnl.php b/admin/module.apnl.php new file mode 100644 index 0000000..95b13b4 --- /dev/null +++ b/admin/module.apnl.php @@ -0,0 +1,307 @@ + + * @package astat core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id: module.apnl.php 64 2009-07-24 22:07:55Z genuineparts $ +*/ + +If (!defined("in_BL_ADMIN")) { + die("Dieses Script kann nicht ausserhalb des Frameworks laufen!"); +} + +/** +* fetch Userdata +* +*/ +$session->page_begin("Module", True); + + +class module_panel extends admin_module{ + + /** + * Main Output of the panel + * + */ + function output(){ + global $module,$config,$db,$panel,$userinfo,$root,$core; + + /** + * If action and module are set either Install or Deinstall the module + * + */ + if((isset($_GET["action"]) && $_GET["action"]!="") && (isset($_GET["module"]) && $_GET["module"]!="")){ + + if($_GET["action"]=="install"){ + $this->install($_GET["module"]); + }elseif($_GET["action"]=="uninstall"){ + $this->uninstall($_GET["module"]); + } + + /** + * Else create the Module-Panel + * + */ + }else{ + + $panel->title="Modulverwaltung"; + $panel->content.="

Installierte Module


+ + + + + + + + "; + if(!empty($core->mod_)){ + foreach($core->mod_ as $mod){ + If($mod["depends"]!=""){ + + $depends=""; + $dependands=unserialize($mod["depends"]); + foreach($dependands as $dep){ + if(!$deps){ + $deps=''.$dep.''; + }else{ + $deps.=', '.$dep.''; + } + } + $depends.='
hängt ab von: '.$deps; + } + $panel->content.=" + + + + + + "; + unset($deps); + unset($depends); + unset($mod); + } + }else{ + $panel->content.=" + + "; + } + $panel->content.="
ModulVersionAutorHomepageAktion
".$mod["name"].$depends."".$mod["version"]."".$mod["author"]."".$mod["url"]."Deinstallieren
Keine Module verfügbar.

"; + + $panel->content.="

Nicht Installierte Module


"; + $panel->content.=" + + + + + + + "; + + $modules=$this->avaiable_modules(); + if(is_array($modules)){ + foreach($modules as $mod){ + If($mod["depends"]!=""){ + + $depends=""; + $dependands=explode(",",$mod["depends"]); + foreach($dependands as $dep){ + if(!$deps){ + $deps=''.$dep.''; + }else{ + $deps.=', '.$dep.''; + } + } + $depends.='
hängt ab von: '.$deps; + } + $panel->content.=" + + + + + + "; + unset($deps); + unset($depends); + unset($mod); + } + }else{ + $panel->content.=" + + "; + } + $panel->content.="
ModulVersionAutorHomepageAktion
".$mod["name"].$depends."".$mod["version"]."".$mod["author"]."".$mod["url"]."Installieren
Keine Module verfügbar.
"; + } + } + + /** + * Lists all installable Modules + * + * @return string|array + */ + function avaiable_modules() { + global $module,$config,$db,$panel,$userinfo,$root,$core; + $install_mods = array(); + $root = $_SERVER['DOCUMENT_ROOT'] . $config["path"]; + + if ($dir = @opendir($root."/modules")){ + while ($file = readdir($dir)){ + if (is_dir($root."/modules/".$file) && is_file($root."/modules/".$file."/".$file.".module.php")){ + if (empty($core->mod_[$file])) + { + include_once($root."/modules/".$file."/".$file.".module.php"); + $class="module_".$file; + $imod=new $class(); + $install_mods[$file]=$imod->get_info(); + $install_mods[$file]["file"]=$file; + } + } + } + return $install_mods; + } + } + + /** + * Installs a Module + * + * @param Modul + */ + function install($module) { + global $config,$core,$db,$panel,$userinfo,$root; + $root = $_SERVER['DOCUMENT_ROOT'] . $config["path"]; + if(file_exists($root."/modules/".$module."/".$module.".module.php")){ + include_once($root."/modules/".$module."/".$module.".module.php"); + $class="module_".$module; + $install=new $class(); + $info=$install->get_info(); + If($info["depends"]!=""){ + $dependands=explode(",",$info["depends"]); + foreach($dependands as $dep){ + If(empty($core->mod_[$dep])){ + $inst_result="Die Abhängigkeit zu dem Modul ".$dep." ist nicht erfüllt"; + } + } + } + if(!$inst_result){ + $inst_result=$install->install(); + } + + if($inst_result===True){ + if($info["depends"]!=""){ + $dependands=serialize(explode(",",$info["depends"])); + } + $db->query("INSERT INTO `" . $config["prefix"] . "role_values` (`name`,`text`, `type`) VALUES ('".$info['file']."_admin','".$info['name']." - Administration','yesno')"); + $db->query("INSERT INTO `" . $config["prefix"] . "module` (`file`,`name`,`version`,`author`,`depends`, `url`) VALUES ('".$info['file']."','".$info['name']."','".$info['version']."','".$info['author']."','".$dependands."','".$info['url']."')"); + $panel->admin_message("Modul installiert!","Das Modul wurde erfolgreich installiert.",True,"module",3); + }else{ + $install->uninstall(); + $panel->admin_message("Fehler!","Das Modul konnte nicht installiert werden. Der Fehler war: ".$inst_result,True,"module",3); + } + + } + } + + /** + * Uninstalls a Module + * + * @param Modul + */ + function uninstall($module) { + global $config,$db,$panel,$userinfo,$root; + $root = $_SERVER['DOCUMENT_ROOT'] . $config["path"]; + if(file_exists($root."/modules/".$module."/".$module.".module.php")){ + include_once($root."/modules/".$module."/".$module.".module.php"); + $class="module_".$module; + $uninstall=new $class(); + $info=$uninstall->get_info(); + $deps=$this->depencys($info["file"]); + if(is_array($deps)){ + $dmod=implode(",",$deps); + $uninst_result='
Die folgenden Module sind von dem Modul '.$info["name"].' abhängig: '.$dmod; + }else{ + $uninst_result=$uninstall->uninstall(); + } + if($uninst_result===True){ + $result=$db->query("SELECT `id` FROM `" . $config["prefix"] . "role_values` WHERE `name`='".$info["file"]."_admin'"); + $id=$db->fetch_array($result); + $db->query("DELETE FROM `" . $config["prefix"] . "roleset` WHERE `role_value_id`='".$id['id']."'"); + $db->query("DELETE FROM `" . $config["prefix"] . "role_values` WHERE `id`='".$id['id']."'"); + $db->query("DELETE FROM `" . $config["prefix"] . "module` WHERE `file`='".$info["file"]."'"); + $panel->admin_message("Modul deinstalliert!","Das Modul wurde erfolgreich deinstalliert.",True,"module",3); + }else{ + $panel->admin_message("Fehler!","Das Modul konnte nicht deinstalliert werden. Der Fehler war: ".$uninst_result,True,"module",5); + } + } + } + + /** + * Gets the dependance of a Module + * + * @param Modul + * @return array|false + */ + function depencys($module) { + global $config,$db,$core, $panel,$userinfo,$root; + $deps=FALSE; + foreach($core->mod_ as $mod){ + $depend=unserialize($mod["depends"]); + if(is_array($depend)){ + if(in_array($module,$depend)){ + $deps[]=$mod['name']; + } + } + } + return $deps; + } + + /** + * Metaheader output + * + */ + function meta() { + global $module,$config,$panel,$userinfo,$root; + $meta=""; + return $meta; + + } + +} +?> diff --git a/admin/navigation.apnl.php b/admin/navigation.apnl.php new file mode 100644 index 0000000..4bd0d2b --- /dev/null +++ b/admin/navigation.apnl.php @@ -0,0 +1,359 @@ + + * @package BeCast WebEngine core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id$ +*/ +If (!defined("in_BL_ADMIN")) { + die("Dieses Script kann nicht ausserhalb des Frameworks laufen!"); +} +$addnav["right"]=FALSE; +$session->page_begin("Sort", True); + + +class navigation_panel extends admin_module{ + + function output(){ + global $module,$config,$db,$panel,$cache,$log,$plugin,$mainmodule,$asmodule; + if(isset($_POST['left']) && !empty($_POST['left'])){ + $order_array = explode('&', $_POST['left']); + foreach($order_array as $position=>$id) { + $id=str_replace('left[]=','',$id); + if($id=='nugget'){ + $db->query("INSERT INTO `" . $config["prefix"] . "navigation` (name,side,sort) VALUES ('HTML-Block','l','".$position."')"); + }elseif(!intval($id)){ + $db->query("INSERT INTO `" . $config["prefix"] . "navigation` (name,side,sort,file) VALUES ('".$db->escape($id)."','l','".$position."','".$db->escape($id)."')"); + }else{ + $db->query("UPDATE `" . $config["prefix"] . "navigation` set side='l',sort='".$position."' WHERE id='".$id."'"); + } + } + $cache->update_sidebars(); + } + if(isset($_POST['right']) && !empty($_POST['right'])){ + var_dump($_POST); + $order_array = explode('&', $_POST['right']); + foreach($order_array as $position=>$id) { + $id=str_replace('right[]=','',$id); + if($id=='nugget'){ + $db->query("INSERT INTO `" . $config["prefix"] . "navigation` (name,side,sort) VALUES ('HTML-Block','r','".$position."')"); + }elseif(!intval($id)){ + $db->query("INSERT INTO `" . $config["prefix"] . "navigation` (name,side,sort,file) VALUES ('".$db->escape($id)."','r','".$position."','".$db->escape($id)."')"); + }else{ + $db->query("UPDATE `" . $config["prefix"] . "navigation` set side='r',sort='".$position."' WHERE id='".$id."'"); + } + } + $cache->update_sidebars(); + } + if(isset($_POST['main']) && !empty($_POST['main'])){ + $order_array = explode('&', $_POST['main']); + foreach($order_array as $position=>$id) { + $id=str_replace('main[]=','',$id); + if($id=='nugget'){ + $db->query("INSERT INTO `" . $config["prefix"] . "navigation` (name,side,sort) VALUES ('HTML-Block','m','".$position."')"); + }elseif(!intval($id)){ + $db->query("INSERT INTO `" . $config["prefix"] . "navigation` (name,side,sort,file) VALUES ('".$db->escape($id)."','m','".$position."','frontpage_".$db->escape($id)."')"); + }else{ + $db->query("UPDATE `" . $config["prefix"] . "navigation` set side='m',sort='".$position."' WHERE id='".$id."'"); + } + } + $cache->update_sidebars(); + } + if(isset($_POST['delete'])){ + $id=str_replace('id_','',$_POST['delete']); + $db->query("DELETE FROM `" . $config["prefix"] . "navigation` WHERE id='".$id."'"); + $cache->update_sidebars(); + } + if(isset($_GET['editprop']) && $_GET['editprop']!=''){ + if(isset($_POST['send']) && !empty($_POST['name']) && !empty($_POST['id'])){ + $db->query("UPDATE `" . $config["prefix"] . "navigation` set name='".$db->escape($_POST["name"])."',content='".$db->escape(str_replace("&","&",$_POST["content"]))."' WHERE id='".intval($_POST["id"])."'"); + $cache->update_sidebars(); + $panel->admin_message('Daten übernommen!','Die Daten wurden erfolgreich übernommen.',True,'navigation',3); + }else{ + $panel->title='Navigationsverwaltung'; + $panel->form(array('action'=>$config['path'].'/admin/index.php?panel=navigation&editprop='.$_GET['editprop'])); + $result=$db->query('SELECT * FROM `' . $config['prefix'] . 'navigation` WHERE id=\''.intval($_GET['editprop']).'\''); + $data = $db->fetch_array($result); + $panel->content.='

Titel:

'; + $panel->field(array('name'=>'name','typ'=>'text','value'=>$data['name'])); + if($data['file']==''){ + $panel->content.='

Inhalt:

'; + $panel->textarea(array('name'=>'content','value'=>$data['content'],'rows'=>20,'cols'=>60)); + }else{ + $panel->content.='
Dieses Modul wird von einer Navigationsdatei bereitgestellt.'; + } + $panel->content.='
'; + $panel->field(array('name'=>'send','typ'=>'hidden','value'=>'1')); + $panel->field(array('name'=>'id','typ'=>'hidden','value'=>$_GET['editprop'])); + $panel->submit(); + $panel->formClose(); + $panel->parse_page(); + } + }elseif(isset($_GET['editmain']) && $_GET['editmain']!=''){ + if(isset($_POST['send']) && !empty($_POST['name']) && !empty($_POST['id'])){ + $db->query("UPDATE `" . $config["prefix"] . "navigation` SET `name`='".$db->escape($_POST["name"])."',`valid`='".$db->escape($_POST["valid"])."',`content`='".$db->escape(str_replace("&","&",$_POST["content"]))."' WHERE `id`='".intval($_POST["id"])."'") or die($db->error()); + $cache->update_sidebars(); + $panel->admin_message('Daten übernommen!','Die Daten wurden erfolgreich übernommen.',True,'navigation',3); + }else{ + $panel->title='Navigationsverwaltung'; + $panel->form(array('action'=>$config['path'].'/admin/index.php?panel=navigation&editmain='.$_GET['editmain'])); + $result=$db->query('SELECT * FROM `' . $config['prefix'] . 'navigation` WHERE id=\''.intval($_GET['editmain']).'\''); + $data = $db->fetch_array($result); + $panel->content.='

Titel:

'; + $panel->field(array('name'=>'name','typ'=>'text','value'=>$data['name'])); + $panel->content.='

Gütigkeitsbereich:

'; + $panel->select(array('Überall'=>'E','Startseite'=>'F'),$data['valid'],'valid'); + if($data['file']==''){ + $panel->content.='

Inhalt:

'; + $panel->textarea(array('name'=>'content','value'=>$data['content'],'rows'=>20,'cols'=>60)); + }else{ + $panel->content.='
Dieses Modul wird von einer Datei bereitgestellt.'; + } + $panel->content.='
'; + $panel->field(array('name'=>'send','typ'=>'hidden','value'=>'1')); + $panel->field(array('name'=>'id','typ'=>'hidden','value'=>$_GET['editmain'])); + $panel->submit(); + $panel->formClose(); + $panel->parse_page(); + } + + }else{ + $left=''; + $right=''; + $main=''; + $asmodule=''; + $mainmodule=''; + $lresult=$db->query("SELECT * FROM `" . $config['prefix'] . "navigation` WHERE side='l' ORDER by sort"); + while ($row = $db->fetch_array($lresult)){ + $left.='
'.$row["name"].'
'; + } + $rresult=$db->query("SELECT * FROM `" . $config['prefix'] . "navigation` WHERE side='r' ORDER by sort"); + while ($row = $db->fetch_array($rresult)){ + $right.='
'.$row["name"].'
'; + } + $mresult=$db->query("SELECT * FROM `" . $config['prefix'] . "navigation` WHERE side='m' ORDER by sort"); + while ($row = $db->fetch_array($mresult)){ + if($row['name']=='maincontent'){ + $main.='
Seitencontent
'; + }else{ + $main.='
'.$row["name"].'
'; + } + } + $av_module=$this->avaiable_modules(); + if(is_array($av_module)){ + foreach($av_module as $module){ + $asmodule.='
'.$module.'
'; + } + } + $plugin->run_hook('navigation_mainmodule',array($mainmodule)); + $plugin->run_hook('navigation_leftmodule',array($left)); + $plugin->run_hook('navigation_rightmodule',array($right)); + $panel->title='Navigationsverwaltung'; + $panel->content='Hier kann man die Sortierung von Modulen verändern oder sie anders auf der Seite anordnen.

+ + +
+
+

Links

+ '.$left.' +
+ +
+

Hauptseite

+ '.$main.' +
+ + +
+
+

Verfügbare Module

+
HTML-Block
+ '.$asmodule.' +
+
+

Verfügbare Hauptseitenmodule

+
HTML-Block
+ '.$mainmodule.' +
+
+ +
+ '; + $panel->foot=''; + + } + } + + function avaiable_modules() { + global $config,$db,$panel,$userinfo,$admin,$root,$firephp; + $install_mods=array(); + $nav=array(); + $result=$db->query("SELECT * FROM `" . $config['prefix'] . "navigation`"); + while ($row = $db->fetch_array($result)){ + if($row['file']!=''){ + $filename='nav_'.$row['file'].'.php'; + $nav[$filename]=TRUE; + } + } + $root = $_SERVER['DOCUMENT_ROOT'] . $config['path']; + if ($dir = @opendir($root.'/nav_modules')){ + while ($file = readdir($dir)){ + if (is_file($root.'/nav_modules/'.$file) && strstr($file, 'nav_') && strstr($file, '.php')){ + if (empty($nav[$file])) + { + $install_mods[] = str_replace('.php', '', $file); + } + } + } + return $install_mods; + } + } + + function meta() { + global $module,$config,$db,$panel,$userinfo,$admin,$root; + $meta=' + + + + + '; + return $meta; + + } + + +} +?> diff --git a/admin/versions.apnl.php b/admin/versions.apnl.php new file mode 100644 index 0000000..7fcb8f1 --- /dev/null +++ b/admin/versions.apnl.php @@ -0,0 +1,494 @@ + + * @package BeFramed core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id$ +*/ +If (!defined("in_BL_ADMIN")) { + die("Dieses Script kann nicht ausserhalb des Frameworks laufen!"); +} +$addnav["right"]=FALSE; +$session->page_begin("Version", True); + +$subnav_item="Verwaltung » Systemstatus"; + +class versions_panel extends admin_module{ + + function output(){ + global $module,$config,$db,$panel,$admin,$module,$root,$core; + $files=$this->listdir($root.'/modules'); + foreach($files as $file){ + $file_object = array( + 'name' => substr($file,strlen($root.'/modules/')), + 'size' => $this->byteConvert(filesize($file)), + 'time' => date("d.m.Y, H:i:s", filemtime($file))); + $dir_objects[] = $file_object; + } + + $url="http://www.astat.org/versions.php"; + $file = @fopen($url,"r"); + if($file != false){ + $data = @fread($file,"4048"); + $xml=new xml(); + $out = $xml->parse($data, NULL); + $i=0; + $max=count($out["mod"]); + while($i<=$max){ + $versions[$i]["name"]=$out["mod"][$i]; + $versions[$i]["ver"]=$out["ver"][$i]; + $i++; + } + $vers=$core->ver_major.".".$core->ver_minor.".".$core->ver_rev; + $panel->title="Moduleversionen"; + $panel->content.=" + + + + + "; + if($out["relase"]["version"]>$vers){ + $panel->content.=""; + }else{ + + foreach($module as $mod){ + $panel->content.=" + + "; + foreach($versions as $v){ + if($v["name"]==$mod["name"]){ + if($mod["ver"]<$v["ver"]){ + $panel->content.=""; + }elseif($mod["ver"]==$v["ver"]){ + $panel->content.=""; + }else{ + $panel->content.=""; + } + } + } + $panel->content.=""; + + } + foreach($core->mod_ as $mod){ + $panel->content.=" + + "; + foreach($versions as $v){ + if($v["name"]==$mod["name"]){ + if($mod["version"]<$v["ver"]){ + $panel->content.=""; + }elseif($mod["version"]==$v["ver"]){ + $panel->content.=""; + }else{ + $panel->content.=""; + } + } + } + $panel->content.=""; + } + } + $panel->content.="
ModulVersionUpdate
Diese Version ist nicht mehr aktuell.
Besuche die Projektseite für ein Update
".$mod["name"]."".$mod["ver"]."Neue Version verfügbar!AktuellModified file?
".$mod["name"]."".$mod["version"]."Neue Version verfügbar!AktuellModified file?

"; + $panel->parse_page(); + }else{ + $panel->title="Moduleversionen"; + $panel->content.="Die Versionprüfung ist fehlgeschlagen."; + $panel->content.=" + + + + "; + + + foreach($module as $mod){ + $panel->content.=" + + "; + $panel->content.=""; + } + $panel->content.="
ModulVersion
".$mod["name"]."".$mod["ver"]."

"; + $panel->parse_page(); + } + $panel->title="Datei Infos"; + $panel->content.=" + + + + + "; + foreach($dir_objects as $files){ + $panel->content.=" + + + + "; + } + + $panel->content.="
DateiGrößezuletzt Geändert
".$files["name"]."".$files["size"]."".$files["time"]."
"; + } + + function byteConvert( $bytes ) { + + if ($bytes<=0) + return '0 Byte'; + + $convention=1000; //[1000->10^x|1024->2^x] + $s=array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB'); + $e=floor(log($bytes,$convention)); + return round($bytes/pow($convention,$e),2).' '.$s[$e]; + } + + function listdir($start_dir='.') { + + $files = array(); + if (is_dir($start_dir)) { + $fh = opendir($start_dir); + while (($file = readdir($fh)) !== false) { + # loop through the files, skipping . and .., and recursing if necessary + if (strcmp($file, '.')==0 || strcmp($file, '..')==0) continue; + $filepath = $start_dir . '/' . $file; + if ( is_dir($filepath) ) + $files = array_merge($files, $this->listdir($filepath)); + else + array_push($files, $filepath); + } + closedir($fh); + } else { + # false if the function was called with an invalid non-directory argument + $files = false; + } + return $files; + } + +} + +class Xml { + + /** + * Xml parser container. + * + * @var resource parser + */ + var $parser; + + /** + * Parse result. + * + * @var array pOut + */ + var $pOut = array(); + + /** + * Contain the overlap tag temporarily . + * + * @var array track + */ + var $track = array(); + + /** + * Current tag level. + * + * @var string tmpLevel + */ + var $tmpLevel = ''; + + /** + * Attribut of current tag. + * + * @var array tmpAttrLevel + */ + var $tmpAttrLevel = array(); + + /** + * Write result. + * + * @var string wOut + */ + var $wOut = ''; + + + + + /** + * parse + * Set the parser Xml and theses options. + * Xml file could be a string, a file, or curl. + * When the source is loaded, we run the parse. + * After, we clean all the memory and variables, + * and return the result in an array. + * + * @access public + * @param src string Source + * @param typeof string Source type : NULL, FILE, CURL. + * @param encoding string Encoding type. + * @return array + */ + function parse ( $src, $typeof = 'FILE', $encoding = 'UTF-8' ) { + + // ini; + // (re)set array; + $this->pOut = array(); + $this->parser = xml_parser_create(); + + xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); + xml_parser_set_option($this->parser, XML_OPTION_TARGET_ENCODING, $encoding); + + xml_set_object($this->parser, $this); + xml_set_element_handler($this->parser, 'startHandler', 'endHandler'); + xml_set_character_data_handler($this->parser, 'contentHandler'); + + if(empty($src)) + trigger_error('Source could not be empty.', E_USER_ERROR); + + // format source; + if($typeof == NULL) + $data = $src; + elseif($typeof == 'FILE') { + $fop = fopen($src, 'r'); + $data = null; + while(!feof($fop)) + $data .= fread($fop, 1024); + fclose($fop); + } + elseif($typeof == 'CURL') { + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, $src); + curl_setopt($curl, CURLOPT_HEADER, 0); + $data = curl_exec($curl); + curl_close($curl); + } + else + return trigger_error('Xml parser need data.', E_USER_ERROR); + + // parse $data; + $parse = xml_parse($this->parser, $data); + if(!$parse) + return trigger_error('XML Error : %s at line %d.', E_USER_ERROR, + array(xml_error_string(xml_get_error_code($this->parser)), + xml_get_current_line_number($this->parser))); + + // destroy parser; + xml_parser_free($this->parser); + + // unset extra vars; + unset($data, + $this->track, + $this->tmpLevel); + + // remove global tag and return the result; + return $this->pOut[0][key($this->pOut[0])]; + } + + + + /** + * startHandler + * Manage the open tag, and these attributs by callback. + * The purpose is to create a pointer : {{int ptr}}. + * If the pointer exists, we have a multi-tag situation. + * Tag name is stocked like : '' + * Attributs is stocked like : '-ATTR' + * Return true but built $this->pOut. + * + * @access private + * @param parser resource Parser resource. + * @param tag string Tag name. + * @param attr array Attribut. + * @return bool + */ + function startHandler ( $parser, $tag, $attr ) { + + // built $this->track; + $this->track[] = $tag; + // place pointer to the end; + end($this->track); + // temp level; + $this->tmpLevel = key($this->track); + + // built attrLevel into $this->tmpAttrLevel + if(isset($this->tmpAttrLevel[$this->tmpLevel]['attrLevel'])) + $this->tmpAttrLevel[$this->tmpLevel]['attrLevel']++; + + // built $this->pOut; + if(!isset($this->pOut[key($this->track)][$tag])) { + $this->pOut[key($this->track)][$tag] = '{{'.key($this->track).'}}'; + + if(!isset($this->tmpAttrLevel[$this->tmpLevel]['attrLevel'])) + $this->tmpAttrLevel[$this->tmpLevel]['attrLevel'] = 0; + } + + // built attributs; + if(!empty($attr)) { + + $this->tmpAttrLevel[$this->tmpLevel][] = $this->tmpAttrLevel[$this->tmpLevel]['attrLevel']; + end($this->tmpAttrLevel[$this->tmpLevel]); + + // it's the first attribut; + if(!isset($this->pOut[key($this->track)][$tag.'-ATTR'])) + $this->pOut[key($this->track)][$tag.'-ATTR'] = $attr; + + // or it's not the first; + else { + // so it's the second; + if(!prev($this->tmpAttrLevel[$this->tmpLevel])) { + $this->pOut[key($this->track)][$tag.'-ATTR'] = array( + current($this->tmpAttrLevel[$this->tmpLevel]) => $this->pOut[key($this->track)][$tag.'-ATTR'], + next($this->tmpAttrLevel[$this->tmpLevel]) => $attr + ); + } + // or one other; + else + $this->pOut[key($this->track)][$tag.'-ATTR'][$this->tmpAttrLevel[$this->tmpLevel]['attrLevel']] = $attr; + } + } + + return true; + } + + + + /** + * contentHandler + * Detect the pointer, or the multi-tag by callback. + * If we have a pointer, the method replaces this pointer by the content. + * Else we have a multi-tag, the method add a element to this array. + * Return true but built $this->pOut. + * + * @access private + * @param parser resource Parser resource. + * @param contentHandler string Tag content. + * @return bool + */ + function contentHandler ( $parser, $contentHandler ) { + + // remove all spaces; + if(!preg_match('#^\\\\s*$#', $contentHandler)) { + + // $contentHandler is a string; + if(is_string($this->pOut[key($this->track)][current($this->track)])) { + + // then $contentHandler is a pointer : {{int ptr}} case 1; + if(preg_match('#{{([0-9]+)}}#', $this->pOut[key($this->track)][current($this->track)])) + $this->pOut[key($this->track)][current($this->track)] = $contentHandler; + + // or then $contentHandler is a multi-tag content case 2; + else { + $this->pOut[key($this->track)][current($this->track)] = array( + 0 => $this->pOut[key($this->track)][current($this->track)], + 1 => $contentHandler + ); + } + } + // or $contentHandler is an array; + else { + + // then $contentHandler is the multi-tag array case 1; + if(isset($this->pOut[key($this->track)][current($this->track)][0])) + $this->pOut[key($this->track)][current($this->track)][] = $contentHandler; + + // or then $contentHandler is a node-tag case 2; + else + $this->pOut[key($this->track)][current($this->track)] = array( + 0 => $this->pOut[key($this->track)][current($this->track)], + 1 => $contentHandler + ); + } + + } + + return true; + } + + + + /** + * endHandler + * Detect the last pointer by callback. + * Move the last tags block up. + * And reset some temp variables. + * Return true but built $this->pOut. + * + * @access private + * @param parser resource Parser resource. + * @param tag string Tag name. + * @return bool + */ + function endHandler ( $parser, $tag ) { + + // if level--; + if(key($this->track) == $this->tmpLevel-1) { + // search up tag; + // use array_keys if an empty tag exists (taking the last tag); + + // if it's a normal framaset; + $keyBack = array_keys($this->pOut[key($this->track)], '{{'.key($this->track).'}}'); + $count = count($keyBack); + + if($count != 0) { + $keyBack = $keyBack[$count-1]; + // move this level up; + $this->pOut[key($this->track)][$keyBack] = $this->pOut[key($this->track)+1]; + } + + // if we have a multi-tag framaset ($count == 0); + else { + // if place is set; + if(isset($this->pOut[key($this->track)][current($this->track)][0])) { + + // if it's a string, we built an array; + if(is_string($this->pOut[key($this->track)][current($this->track)])) + $this->pOut[key($this->track)][current($this->track)] = array( + 0 => $this->pOut[key($this->track)][current($this->track)], + 1 => $this->pOut[key($this->track)+1] + ); + + // else add an index into the array; + else + $this->pOut[key($this->track)][current($this->track)][] = $this->pOut[key($this->track)+1]; + } + // else set the place; + else + $this->pOut[key($this->track)][current($this->track)] = array( + 0 => $this->pOut[key($this->track)][current($this->track)], + 1 => $this->pOut[key($this->track)+1] + ); + } + + // kick $this->pOut level out; + array_pop($this->pOut); + end($this->pOut); + } + + // re-temp level; + $this->tmpLevel = key($this->track); + + while(isset($this->tmpAttrLevel[$this->tmpLevel+1])) + array_pop($this->tmpAttrLevel); + + // kick $this->track level out; + array_pop($this->track); + end($this->track); + + return true; + } +} + +?> diff --git a/ajax.php b/ajax.php new file mode 100644 index 0000000..60df1b2 --- /dev/null +++ b/ajax.php @@ -0,0 +1,25 @@ +get_ajax_module($_POST["task"],$_POST["sub"]); +}else{ + $ajax->get_ajax_module($_GET["task"],$_GET["sub"]); +} +?> diff --git a/android-icon-192x192.png b/android-icon-192x192.png new file mode 100644 index 0000000..600cc2e Binary files /dev/null and b/android-icon-192x192.png differ diff --git a/class_templates/admin_module.template.php b/class_templates/admin_module.template.php new file mode 100644 index 0000000..501f539 --- /dev/null +++ b/class_templates/admin_module.template.php @@ -0,0 +1,40 @@ + diff --git a/class_templates/ajax_module.template.php b/class_templates/ajax_module.template.php new file mode 100644 index 0000000..d777a84 --- /dev/null +++ b/class_templates/ajax_module.template.php @@ -0,0 +1,48 @@ +tpl= new Smarty(); + $root = $_SERVER['DOCUMENT_ROOT'] . $config["path"]; + $this->tpl->compile_dir = $root . '/core/template/templates_c'; + $this->tpl->cache_dir = $root . '/core/template/cache'; + $this->tpl->config_dir = $root . '/core/template/config'; + $this->tpl->caching = $config["caching"]; + $this->tpl->assign("path",$config["path"]."/"); + } + + function __destruct() { + } + + function meta() { + } + +} +?> diff --git a/class_templates/page_module.template.php b/class_templates/page_module.template.php new file mode 100644 index 0000000..ba5c9c7 --- /dev/null +++ b/class_templates/page_module.template.php @@ -0,0 +1,59 @@ +tpl= new Smarty(); + $root = $_SERVER['DOCUMENT_ROOT'] . $config["path"]; + $this->tpl->compile_dir = $root . '/core/template/templates_c'; + $this->tpl->cache_dir = $root . '/core/template/cache'; + $this->tpl->config_dir = $root . '/core/template/config'; + $this->tpl->caching = $config["caching"]; + $this->tpl->assign("path",$config["path"]."/"); + } + + function __destruct() { + } + + function meta() { + } + function footer() { + } + +} +?> diff --git a/core/database/mysql.class.php b/core/database/mysql.class.php new file mode 100644 index 0000000..6c4299d --- /dev/null +++ b/core/database/mysql.class.php @@ -0,0 +1,190 @@ + + * @package astat core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id: mysql.class.php 104 2010-02-20 19:16:12Z genuineparts $ +*/ + +$module["db"]["name"]="Database Class (mysql)"; +$module["db"]["ver"]="1.0.1"; +class db { + var $host=""; + var $user="root"; + var $password=""; + var $db="becast"; + var $encoding; + var $logging; + var $abfragen=0; + var $exception; + private $conid=FALSE; + public const ASSOC = 1; + public const NUM = 2; + public const BOTH = 3; + + function __construct($host,$user,$password,$db,$encoding="utf8",$logging=false,$exception=false) { + global $log,$config; + $this->host=$host; + $this->user=$user; + $this->password=$password; + $this->db=$db; + $this->logging=$logging; + $this->exception=$exception; + + if($this->logging==FALSE && DEBUG!=FALSE){ + $this->logger=new logger("file",dirname(dirname(dirname(__FILE__))).'/logs/mysql_debug.log',5); + }elseif($this->logging){ + $this->logger=new logger("file",dirname(dirname(dirname(__FILE__))).'/logs/mysql.log'); + } + + $this->encoding=$encoding; + $this->conid; + + if($this->logging) + $this->logger->write("mySQL Klasse instanziert", 5); + if(!$this->conid){ + if($this->logging) + $this->logger->write("Connection zu mySQL Server besteht nicht.", 5,__LINE__,__FILE__); + $this->conid=$this->connect($this->host,$this->user,$this->password,$this->db,$this->encoding); + }else{ + if($this->logging) + $this->logger->write("Connection zu mySQL Server besteht. ID ".$this->conid, 5,__LINE__,__FILE__); + } + if($this->encoding) + $this->query("SET NAMES '".$this->encoding."'"); + } + + function __destruct() { + $this->disconnect(); + } + + function connect($host, $user, $password, $db, $encoding){ + $conn = @mysql_connect($host, $user, $password); + if($this->logging) + $this->logger->write("Connect to Mysql Server", 5,__LINE__,__FILE__); + + if(!$conn){ + if($this->exception){ + throw new Exception('mySQLi Connect failed'); + }else{ + trigger_error("mySQL Connect failed",E_USER_ERROR); + + if($this->logging) + $this->logger->write("Connect Failed ". $this->error(), 5,__LINE__,__FILE__); + die(); + } + }else{ + if($this->logging) + $this->logger->write("Selecting Database ".$db, 5,__LINE__,__FILE__); + } + + $conn2 = @mysql_select_db($db,$conn); + if($this->logging) + $this->logger->write("Connect to Mysql Server", 5,__LINE__,__FILE__); + + if(!$conn2){ + include('templates/general_error.tpl'); + + if($this->logging) + $this->logger->write("Select failed ". $this->error(), 5,__LINE__,__FILE__); + die(); + }else{ + if($this->logging) + $this->logger->write("Database ".$db." selected", 5,__LINE__,__FILE__); + } + + return $conn; + } + + + function disconnect(){ + if($this->logging) + $this->logger->write("Closing Mysql Connection.", 5,__LINE__,__FILE__); + + @mysql_close($this->conid); + } + + function query($query){ + global $abfragen; + + if($this->logging) + $this->logger->write($query." ". $this->conid, 5,__LINE__,__FILE__); + + $this->abfragen++; + $res = mysql_query($query, $this->conid); + return $res; + } + + function querys(){ + return $this->abfragen; + } + + function num_rows($result){ + $rows = mysql_num_rows($result); + return $rows; + } + + function fetch_row($result){ + $row = mysql_fetch_row($result); + return $row; + } + + function fetch_array($result){ + $row = array(); + $row = mysql_fetch_array($result, MYSQL_ASSOC); + return $row; + } + + function escape($string){ + $return = mysql_real_escape_string($string); + return $return; + } + + function escape_binary($string){ + return "X'".$this->escape(bin2hex($string))."'"; + } + + function fetch_object($result){ + $row = mysql_fetch_object($result); + return $row; + } + + function error(){ + $error = mysql_error($this->conid); + return $error; + } + + function errno(){ + $errno = mysql_errno($this->conid); + return $errno ; + } + + function free_result($result){ + mysql_free_result($result); + } + + function last_id(){ + $id = mysql_insert_id($this->conid); + return $id; + } +} +?> diff --git a/core/database/mysqli.class.php b/core/database/mysqli.class.php new file mode 100644 index 0000000..c72d787 --- /dev/null +++ b/core/database/mysqli.class.php @@ -0,0 +1,181 @@ + + * @package astat core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id: mysqli.class.php 126 2010-02-21 21:07:52Z genuineparts $ +*/ + +$module["db"]["name"]="Database Class (mysqli)"; +$module["db"]["ver"]="1.0.1"; +class db { + var $mysqli; + var $host=""; + var $user="root"; + var $password=""; + var $db="astat"; + var $encoding; + var $logger; + var $logging; + var $abfragen=0; + var $exception; + public const ASSOC = 1; + public const NUM = 2; + public const BOTH = 3; + + function __construct($host,$user,$password,$db,$encoding="utf8",$logging=false,$exception=false) { + global $log,$config,$root,$logger; + $this->mysqli; + $this->host=$host; + $this->user=$user; + $this->password=$password; + $this->db=$db; + $this->logging=$logging; + $this->exception=$exception; + if($this->logging!=FALSE || DEBUG!=FALSE){ + $this->logger=new logger("file",dirname(dirname(dirname(__FILE__))).'/logs/mysql_debug.log',5); + } + $this->encoding=$encoding; + + if($this->logging) + $this->logger->write("mySQLi Klasse instanziert", 5,__LINE__,__FILE__); + + if(!is_object($this->mysqli)){ + if($this->logging) + $this->logger->write("Connection zu mySQL Server besteht nicht.", 5,__LINE__,__FILE__); + + $this->connect($this->host,$this->user,$this->password,$this->db); + }else{ + if($this->logging) + $this->logger->write("Connection zu mySQL Server besteht.", 5,__LINE__,__FILE__); + } + if($this->encoding) + $this->mysqli->set_charset($this->encoding); + } + + function __destruct() { + $this->disconnect(); + } + + function connect($host, $user, $password, $db){ + $this->mysqli=@new mysqli($host, $user, $password,$db); + if($this->logging) + $this->logger->write("Connect to Mysql Server", 5,__LINE__,__FILE__); + + if (mysqli_connect_errno()) { + if($this->exception){ + throw new Exception('mySQLi Connect failed'); + }else{ + if($this->logging) + $this->logger->write("Connect Failed ". mysqli_connect_error(), 2,__LINE__,__FILE__); + + trigger_error("mySQLi Connect failed",E_USER_ERROR); + die(); + } + } + } + + + function disconnect(){ + if($this->logging) + $this->logger->write("Closing Mysqli Connection.", 5,__LINE__,__FILE__); + + $this->mysqli->close(); + } + + function query($query){ + global $abfragen; + + if($this->logging) + $this->logger->write($query, 5); + + $this->abfragen++; + + $res = $this->mysqli->query($query); + if($this->mysqli->error && $this->logging){ + $this->logger->write("SQL ERROR: ".$this->mysqli->error,2); + } + return $res; + } + + function querys(){ + return $this->abfragen; + } + + function num_rows($result){ + $rows = $result->num_rows; + return $rows; + } + + function fetch_row($result){ + $row = $result->fetch_row(); + return $row; + } + + function fetch_array($result){ + + $row = array(); + $row = $result->fetch_array(MYSQLI_ASSOC); + return $row; + } + + function fetch_array_num($result){ + + $row = array(); + $row = $result->fetch_array(MYSQLI_NUM ); + return $row; + } + + function escape($string){ + $return = $this->mysqli->real_escape_string($string); + return $return; + } + + function escape_binary($string){ + return "X'".$this->escape(bin2hex($string))."'"; + } + + function fetch_object($result){ + $row = $result->fetch_object(); + return $row; + } + + function error(){ + $error = $this->mysqli->error; + return $error; + } + + function errno(){ + $errno = $this->mysqli->errno; + return $errno ; + } + + function free_result($result){ + $result->free_result(); + } + + function last_id(){ + $id = $this->mysqli->insert_id; + return $id; + } +} +?> diff --git a/core/index.html b/core/index.html new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/core/index.html @@ -0,0 +1 @@ + diff --git a/core/init_core.inc.php b/core/init_core.inc.php new file mode 100644 index 0000000..5f297b1 --- /dev/null +++ b/core/init_core.inc.php @@ -0,0 +1,243 @@ + + * @package BeCast Webengine core + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id: init_core.inc.php 148 2012-03-27 19:48:30Z genuineparts $ +*/ + +define('in_astat', true); + +function getTime() { + $timer = explode( ' ', microtime() ); + $timer = $timer[1] + $timer[0]; + return $timer; +} + +$start = getTime(); +/** +* Configuration +*/ +require dirname(dirname(__FILE__)).'/inc/config.inc.php'; + +/** +* Smarty +*/ +require $basepath.'template/Smarty.class.php'; + +/** +* Database +*/ +require $basepath.'database/'.$config['db_class'].'.class.php'; + +/** +* Functions +*/ +include dirname(dirname(__FILE__)).'/inc/functions.class.php'; + +/** +* Logger +*/ +require dirname(dirname(__FILE__)).'/inc/logger.class.php'; + +/** +* Logger +*/ +require dirname(dirname(__FILE__)).'/inc/datacache.class.php'; + +/** +* Cache +*/ +require dirname(dirname(__FILE__)).'/inc/cache.class.php'; + +/** +* Errors +*/ +include dirname(dirname(__FILE__)).'/inc/error.class.php'; + +/** +* Plugins +*/ +include dirname(dirname(__FILE__)).'/inc/plugin.class.php'; + +/** +* Mail +*/ +include dirname(dirname(__FILE__)).'/inc/mail.class.php'; + +$plugin=new plugins(); + +$db= new db($config['host'], $config['user'], $config['pass'], $config['db'],'utf8', true); + +/** +* Select $config vars form Database +* +*/ +$result = $db->query("SELECT `name`, `value` FROM " . $config['prefix'] . "config"); +while ($row = $db->fetch_array($result)){ + $config[$row['name']] = $row['value']; +} + +/** +* Set LC Lang for Dates +*/ +if($config['LCLANG']){ + setlocale(LC_ALL,$config['LCLANG']); +} + +/** +* Start Datacache +* +*/ +$cache=new datacache(); + +/** +* Start Datacache +* +*/ +$ccache=new cache(); + +/** +* Look if we have a path Variable and try to autoset if not. +* +*/ +if(!isset($config['path'])){ + $path = explode('/', $_SERVER['SCRIPT_NAME']); + $last = array_pop($path); + $path = str_replace('/' . $last, '', $_SERVER['SCRIPT_NAME']); + $config['path'] = $path; + $db->query("INSERT INTO " . $config['prefix'] . "config (`name`, `value`, `title`, `description`, `option`, `category`) VALUES +( 'path', '".$path."', 'Pfad', 'Der Pfad auf ihrem Webserver z.b. /cms', 'text', 1)"); +}else{ + $path=$config['path']; +} + +/** +* Start Logger +* +*/ +$log=new logger($config['logtype'],dirname(dirname(__FILE__)).'/logs/'.$config['logfile'],$config['loglevel']); + +$tpl = new Smarty(); +$error = new errorhandler(); +$functions = new functions(); +$root = $_SERVER['DOCUMENT_ROOT'] . $config['path']; + +/** +* Start Language +* +*/ +require dirname(dirname(__FILE__)).'/inc/lang.class.php'; +$lang=new lang(); + + +/** +* Check if we have a Theme variable and the Theme exists +* @TODO Theme Management +* +*/ +if(isset($config['theme']) && $config['theme']!='' && is_dir($root . '/themes/'.$config['theme'])){ + $tpl -> template_dir = $root . '/themes/'.$config['theme']; +}else{ + + /** + * Fallback + */ + $tpl -> template_dir = $root . '/themes/default'; +} +$tpl -> compile_dir = $root . '/core/template/templates_c'; +$tpl -> cache_dir = $root . '/core/template/cache'; +$tpl -> config_dir = $root . '/core/template/config'; +$tpl -> loadFilter('output','lang'); +//var_dump($tpl -> getAutoloadFilters()); +/** +* Well... This should vanish with Thememanagement +* +*/ +$addnav['right'] = TRUE; +$addnav['left'] = TRUE; + + +/** +* Start Sessions +* +*/ +require dirname(dirname(__FILE__)).'/inc/sessions.class.php'; +$session=new session(); + + +/** +* Initiate Core Class +* +*/ +require dirname(dirname(__FILE__)).'/inc/core.class.php'; +$core=new core($db, $log, $tpl); + +if(defined('INSTALLED')){ + if(is_dir(dirname(dirname(__FILE__)).'/install')){ + return $core->message($lang->_('DELINSTALLDIR'), $lang->_('DELINSTALLDIRTEXT'),FALSE); + } +}else{ + header("Location: install/install.php"); +} + +/** +* OpenID +*/ +if($config['use_openid']==1){ + include dirname(dirname(__FILE__)).'/inc/SimpleOpenID.class.php'; +} +/** +* Get all *.plugin.php files from the Modules and register the Pluginhooks +* +*/ +$core->load_modules(); +foreach($core->mod_ as $key=>$val){ + if(file_exists($root.'/modules/'.$val['file'].'/' . $val['file'] . '.plugins.php')){ + include_once $root.'/modules/'.$val['file'].'/' . $val['file']. '.plugins.php'; + $class='plugins_'.$val['file']; + if(class_exists($class)){ + $imod=new $class(); + if(is_callable(array($imod,'register_plugins'))){ + $imod->register_plugins($plugin); + } + } + } +} + +$plugin->run_hook('init_core'); + +/** +* This loads *.class.php files from the /core/modules dir. +* Its useful but "undocumented". +* +*/ +$moduledir = dirname(dirname(__FILE__)).'/core/modules'; +$modules = opendir($moduledir); +while ($mods = readdir($modules)) { + if (preg_match('/^.*?\.class.php$/', $mods)) { + require_once($moduledir.'/'.$mods); + } + } +@closedir($modules); + +?> diff --git a/core/modules/headerchanger.class.php b/core/modules/headerchanger.class.php new file mode 100644 index 0000000..6f598fb --- /dev/null +++ b/core/modules/headerchanger.class.php @@ -0,0 +1,23 @@ +use_hook('frontpage_start','getid'); + + + +function getid() { + global $tpl,$cache,$db,$config; + $mybb=$cache->read('mybbconfig'); + $sql="SELECT * FROM `".$mybb['prefix']."forums` WHERE `type`='f' AND `active` != 0 AND `pid` != 13 ORDER BY `pid`,`disporder`"; + $result=$db->query($sql) or die($db->error()); + $i=0; + while($row=$db->fetch_array($result)){ + $forum[$i]['name']=$row['name']; + $forum[$i]['link']='/forum/forum-'.$row['fid'].'.html'; + $i++; + } + $tpl->assign('forum',$forum); +} +?> diff --git a/core/modules/textparser.class.php b/core/modules/textparser.class.php new file mode 100644 index 0000000..1600107 --- /dev/null +++ b/core/modules/textparser.class.php @@ -0,0 +1,229 @@ +BBCodesDefault) OR !isset($this->BBCodesExtra)) + { + trigger_error("Es fehlen wichtige Variablen! Bitte kontrollieren Sie die Klasse."); + } + $this->addDefaultBBCodes(); + } + + private function addDefaultBBCodes() + { + $this->BBCodesDefault = array("b" => array("/\[b\](.*)\[\/b\]/isU" => "$1"), + "i" => array("/\[i\](.*)\[\/i\]/isU" => "$1"), + "u" => array("/\[u\](.*)\[\/u\]/isU" => "$1"), + "hr" => array("/\[hr\]/isU" => "
"), + "br" => array("/\[br\]/isU" => "
"), + "url" => array("/\[url\=(.*)\](.*)\[\/url\]/isU" => "$2"), + "youtube" => array("/\[youtube\](.*)\[\/youtube\]/isU" => ""), + "img" => array("/\[img\](.*)\[\/img\]/isU" => "\"\"")); + } + + public function addExtraBBCode($name, $bbCodePattern, $htmlCodePattern) + { + if(!isset($this->BBCodesExtra[$name])) + { + $this->BBCodesExtra[$name] = array($bbCodePattern => $htmlCodePattern); + } + else + { + trigger_error("BBCodename existiert bereits"); + } + } + + private function parseExtraCode() + { + if(!is_array($this->BBCodesExtra)) return $this->rawText; + + foreach($this->BBCodesExtra as $BBCode => $array) + { + foreach($array as $BBCodePattern => $htmlPattern) + { + $this->rawText = preg_replace($BBCodePattern, $htmlPattern, $this->rawText); + } + } + return $this->rawText; + } + + private function iniParse($rawText) + { + $this->rawText = $rawText; + foreach($this->BBCodesDefault as $BBCode => $array) + { + if(stripos($this->rawText, "[".$BBCode."]") !== FALSE && stripos($this->rawText, "[/".$BBCode."]") !== FALSE) + { + return true; + } + continue; + } + if(is_array($this->BBCodesExtra)) + { + foreach($this->BBCodesExtra as $BBCode => $array) + { + if(stripos($this->rawText, "[".$BBCode."]") !== FALSE && stripos($this->rawText, "[/".$BBCode."]") !== FALSE) + { + return true; + } + continue; + } + } + + return false; + } + + private function parseCode() + { + if($this->rawText == "") + { + trigger_error("Diese Funktion muss erst durch iniParse() initialisert werden!"); + } + + foreach($this->BBCodesDefault as $BBCode => $array) + { + foreach($array as $search => $html) + { + $this->rawText = preg_replace($search, $html, $this->rawText); + } + } + + return $this->rawText; + } + + public function parse($rawText) + { + //$this->rawText = htmlentities($rawText); + if(!$this->iniParse($rawText)) return $this->rawText; + $this->parseCode(); + $this->parseExtraCode(); + return $this->rawText; + } +}*/ + +class textparser { + + function __construct($parse_smilies=true) { + global $config, $db; + if($config['smilies_table']!=NULL && $config['smilies_table'] != ""){ + $this->parse_smilies=$parse_smilies; + if($this->parse_smilies){ + $result=$db->query('SELECT * FROM `' . $config['smilies_table']. '`'); + while($row=$db->fetch_array($result)){ + $find=preg_quote($row['find']); + $this->smilies[$find]=''.$row['name'].''; + } + } + } + } + + function parseParameters ($stringParameter) { + $arrayParameter = array (); + + if (is_string ($stringParameter) === TRUE && empty ($stringParameter) === FALSE){ + if (preg_match_all ('°(^|\w+)\=(\"?)([^\"]*?)\2(?: |$)°', $stringParameter, $arrayMatches, PREG_SET_ORDER) > 0){ + foreach ($arrayMatches AS $integerMatchCount => $arrayMatch){ + if (empty ($arrayMatch[1]) === TRUE){ + $stringKey = '__INIT__'; + }else{ + $stringKey = strtolower ($arrayMatch[1]); + } + $arrayParameter[$stringKey] = $arrayMatch[3]; + $arrayParameter[$integerMatchCount] = &$arrayParameter[$stringKey]; + } + unset ($arrayMatch); + } + } + + return $arrayParameter; + } + + function parse($mixedInfo) { + $stringCode = ''; + $arrayParameter = array (); + $booleanMixedInfoIsArray = FALSE; + + if (is_array ($mixedInfo) === TRUE && count ($mixedInfo) == 4){ + $stringText = $mixedInfo[3]; + $stringCode = strtolower ($mixedInfo[1]); + $arrayParameter = $this->parseParameters ($mixedInfo[2]); + $booleanMixedInfoIsArray = TRUE; + }elseif (is_string ($mixedInfo) === TRUE){ + $stringText = $mixedInfo; + $stringText = preg_replace ('°\[(br|hr)]°is','[\1][/\1]',$stringText); + }else{ + return ''; + } + + if ($stringCode != 'noparse'){ + $stringText = preg_replace_callback ('°\[(\w+)((?:\s|=)[^]]*)?]((?:[^[]|\[(?!/?\1((?:\s|=)[^]]*)?])|(?R))*)\[/\1]°',array($this,'parse'),$stringText); + } + + if ($booleanMixedInfoIsArray === TRUE){ + switch ($stringCode){ + case 'b': + case 'i': + case 'u': + { + $stringText = '<'.$mixedInfo[1].'>'.$stringText.''; + break; + } + + case 'br': + case 'hr': + { + $stringText = '<'.$mixedInfo[1].' />'; + break; + } + + case 'url': + { + if (count ($arrayParameter) == 0 || array_key_exists ('__INIT__',$arrayParameter) === FALSE){ + $stringText = ''.$stringText.''; + }else{ + $stringTitle = ''; + + if (array_key_exists ('title',$arrayParameter) === TRUE){ + $stringTitle = ' title="'.$arrayParameter['title'].'"'; + } + $stringText = ''.$stringText.''; + + unset ($stringTitle); + } + + break; + } + + case 'color': + { + $stringText = ''.$stringText.''; + break; + } + + default: + { + $stringText = $mixedInfo[0]; + + break; + } + + } + } + if($this->parse_smilies){ + foreach($this->smilies as $find=>$replace){ + $stringText = @preg_replace('#'.$find.'#s', $replace, $stringText); + } + } + return $stringText; + } + +} +?> diff --git a/core/template/Autoloader.php b/core/template/Autoloader.php new file mode 100644 index 0000000..3a0da8f --- /dev/null +++ b/core/template/Autoloader.php @@ -0,0 +1,110 @@ + 'Smarty.class.php', 'smartybc' => 'SmartyBC.class.php',); + + /** + * Registers Smarty_Autoloader backward compatible to older installations. + * + * @param bool $prepend Whether to prepend the autoloader or not. + */ + public static function registerBC($prepend = false) + { + /** + * register the class autoloader + */ + if (!defined('SMARTY_SPL_AUTOLOAD')) { + define('SMARTY_SPL_AUTOLOAD', 0); + } + if (SMARTY_SPL_AUTOLOAD && + set_include_path(get_include_path() . PATH_SEPARATOR . SMARTY_SYSPLUGINS_DIR) !== false + ) { + $registeredAutoLoadFunctions = spl_autoload_functions(); + if (!isset($registeredAutoLoadFunctions[ 'spl_autoload' ])) { + spl_autoload_register(); + } + } else { + self::register($prepend); + } + } + + /** + * Registers Smarty_Autoloader as an SPL autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not. + */ + public static function register($prepend = false) + { + self::$SMARTY_DIR = defined('SMARTY_DIR') ? SMARTY_DIR : dirname(__FILE__) . DIRECTORY_SEPARATOR; + self::$SMARTY_SYSPLUGINS_DIR = defined('SMARTY_SYSPLUGINS_DIR') ? SMARTY_SYSPLUGINS_DIR : + self::$SMARTY_DIR . 'sysplugins' . DIRECTORY_SEPARATOR; + if (version_compare(PHP_VERSION, '5.3.0', '>=')) { + spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend); + } else { + spl_autoload_register(array(__CLASS__, 'autoload')); + } + } + + /** + * Handles auto loading of classes. + * + * @param string $class A class name. + */ + public static function autoload($class) + { + if ($class[ 0 ] !== 'S' && strpos($class, 'Smarty') !== 0) { + return; + } + $_class = strtolower($class); + if (isset(self::$rootClasses[ $_class ])) { + $file = self::$SMARTY_DIR . self::$rootClasses[ $_class ]; + if (is_file($file)) { + include $file; + } + } else { + $file = self::$SMARTY_SYSPLUGINS_DIR . $_class . '.php'; + if (is_file($file)) { + include $file; + } + } + return; + } +} diff --git a/core/template/Smarty.class.php b/core/template/Smarty.class.php new file mode 100644 index 0000000..821284e --- /dev/null +++ b/core/template/Smarty.class.php @@ -0,0 +1,1377 @@ + + * @author Uwe Tews + * @author Rodney Rehm + * @package Smarty + * @version 3.1.32 + */ +/** + * set SMARTY_DIR to absolute path to Smarty library files. + * Sets SMARTY_DIR only if user application has not already defined it. + */ + +$module["template"]["name"]="Smarty Template Engine"; +$module["template"]["ver"]="3.1.32"; + + +if (!defined('SMARTY_DIR')) { + /** + * + */ + define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR); +} +/** + * set SMARTY_SYSPLUGINS_DIR to absolute path to Smarty internal plugins. + * Sets SMARTY_SYSPLUGINS_DIR only if user application has not already defined it. + */ +if (!defined('SMARTY_SYSPLUGINS_DIR')) { + /** + * + */ + define('SMARTY_SYSPLUGINS_DIR', SMARTY_DIR . 'sysplugins' . DIRECTORY_SEPARATOR); +} +if (!defined('SMARTY_PLUGINS_DIR')) { + /** + * + */ + define('SMARTY_PLUGINS_DIR', SMARTY_DIR . 'plugins' . DIRECTORY_SEPARATOR); +} +if (!defined('SMARTY_MBSTRING')) { + /** + * + */ + define('SMARTY_MBSTRING', function_exists('mb_get_info')); +} +if (!defined('SMARTY_RESOURCE_CHAR_SET')) { + // UTF-8 can only be done properly when mbstring is available! + /** + * @deprecated in favor of Smarty::$_CHARSET + */ + define('SMARTY_RESOURCE_CHAR_SET', SMARTY_MBSTRING ? 'UTF-8' : 'ISO-8859-1'); +} +if (!defined('SMARTY_RESOURCE_DATE_FORMAT')) { + /** + * @deprecated in favor of Smarty::$_DATE_FORMAT + */ + define('SMARTY_RESOURCE_DATE_FORMAT', '%b %e, %Y'); +} +/** + * Load Smarty_Autoloader + */ +if (!class_exists('Smarty_Autoloader')) { + include dirname(__FILE__) . '/bootstrap.php'; +} +/** + * Load always needed external class files + */ +require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_data.php'; +require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_extension_handler.php'; +require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_templatebase.php'; +require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_template.php'; +require_once SMARTY_SYSPLUGINS_DIR . 'smarty_resource.php'; +require_once SMARTY_SYSPLUGINS_DIR . 'smarty_variable.php'; +require_once SMARTY_SYSPLUGINS_DIR . 'smarty_template_source.php'; +require_once SMARTY_SYSPLUGINS_DIR . 'smarty_template_resource_base.php'; +require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_resource_file.php'; + +/** + * This is the main Smarty class + * + * @package Smarty + * + * The following methods will be dynamically loaded by the extension handler when they are called. + * They are located in a corresponding Smarty_Internal_Method_xxxx class + * + * @method int clearAllCache(int $exp_time = null, string $type = null) + * @method int clearCache(string $template_name, string $cache_id = null, string $compile_id = null, int $exp_time = null, string $type = null) + * @method int compileAllTemplates(string $extension = '.tpl', bool $force_compile = false, int $time_limit = 0, $max_errors = null) + * @method int compileAllConfig(string $extension = '.conf', bool $force_compile = false, int $time_limit = 0, $max_errors = null) + * @method int clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null) + */ +class Smarty extends Smarty_Internal_TemplateBase +{ + /** + * smarty version + */ + const SMARTY_VERSION = '3.1.32'; + /** + * define variable scopes + */ + const SCOPE_LOCAL = 1; + const SCOPE_PARENT = 2; + const SCOPE_TPL_ROOT = 4; + const SCOPE_ROOT = 8; + const SCOPE_SMARTY = 16; + const SCOPE_GLOBAL = 32; + /** + * define caching modes + */ + const CACHING_OFF = 0; + const CACHING_LIFETIME_CURRENT = 1; + const CACHING_LIFETIME_SAVED = 2; + /** + * define constant for clearing cache files be saved expiration dates + */ + const CLEAR_EXPIRED = -1; + /** + * define compile check modes + */ + const COMPILECHECK_OFF = 0; + const COMPILECHECK_ON = 1; + const COMPILECHECK_CACHEMISS = 2; + /** + * define debug modes + */ + const DEBUG_OFF = 0; + const DEBUG_ON = 1; + const DEBUG_INDIVIDUAL = 2; + /** + * modes for handling of "" tags in templates. + */ + const PHP_PASSTHRU = 0; //-> print tags as plain text + const PHP_QUOTE = 1; //-> escape tags as entities + const PHP_REMOVE = 2; //-> escape tags as entities + const PHP_ALLOW = 3; //-> escape tags as entities + /** + * filter types + */ + const FILTER_POST = 'post'; + const FILTER_PRE = 'pre'; + const FILTER_OUTPUT = 'output'; + const FILTER_VARIABLE = 'variable'; + /** + * plugin types + */ + const PLUGIN_FUNCTION = 'function'; + const PLUGIN_BLOCK = 'block'; + const PLUGIN_COMPILER = 'compiler'; + const PLUGIN_MODIFIER = 'modifier'; + const PLUGIN_MODIFIERCOMPILER = 'modifiercompiler'; + /** + * assigned global tpl vars + */ + public static $global_tpl_vars = array(); + /** + * Flag denoting if Multibyte String functions are available + */ + public static $_MBSTRING = SMARTY_MBSTRING; + /** + * The character set to adhere to (e.g. "UTF-8") + */ + public static $_CHARSET = SMARTY_RESOURCE_CHAR_SET; + /** + * The date format to be used internally + * (accepts date() and strftime()) + */ + public static $_DATE_FORMAT = SMARTY_RESOURCE_DATE_FORMAT; + /** + * Flag denoting if PCRE should run in UTF-8 mode + */ + public static $_UTF8_MODIFIER = 'u'; + /** + * Flag denoting if operating system is windows + */ + public static $_IS_WINDOWS = false; + /** + * auto literal on delimiters with whitespace + * + * @var boolean + */ + public $auto_literal = true; + /** + * display error on not assigned variables + * + * @var boolean + */ + public $error_unassigned = false; + /** + * look up relative file path in include_path + * + * @var boolean + */ + public $use_include_path = false; + /** + * flag if template_dir is normalized + * + * @var bool + */ + public $_templateDirNormalized = false; + /** + * joined template directory string used in cache keys + * + * @var string + */ + public $_joined_template_dir = null; + /** + * flag if config_dir is normalized + * + * @var bool + */ + public $_configDirNormalized = false; + /** + * joined config directory string used in cache keys + * + * @var string + */ + public $_joined_config_dir = null; + /** + * default template handler + * + * @var callable + */ + public $default_template_handler_func = null; + /** + * default config handler + * + * @var callable + */ + public $default_config_handler_func = null; + /** + * default plugin handler + * + * @var callable + */ + public $default_plugin_handler_func = null; + /** + * flag if template_dir is normalized + * + * @var bool + */ + public $_compileDirNormalized = false; + /** + * flag if plugins_dir is normalized + * + * @var bool + */ + public $_pluginsDirNormalized = false; + /** + * flag if template_dir is normalized + * + * @var bool + */ + public $_cacheDirNormalized = false; + /** + * force template compiling? + * + * @var boolean + */ + public $force_compile = false; + /** + * use sub dirs for compiled/cached files? + * + * @var boolean + */ + public $use_sub_dirs = false; + /** + * allow ambiguous resources (that are made unique by the resource handler) + * + * @var boolean + */ + public $allow_ambiguous_resources = false; + /** + * merge compiled includes + * + * @var boolean + */ + public $merge_compiled_includes = false; + /* + * flag for behaviour when extends: resource and {extends} tag are used simultaneous + * if false disable execution of {extends} in templates called by extends resource. + * (behaviour as versions < 3.1.28) + * + * @var boolean + */ + public $extends_recursion = true; + /** + * force cache file creation + * + * @var boolean + */ + public $force_cache = false; + /** + * template left-delimiter + * + * @var string + */ + public $left_delimiter = "{"; + /** + * template right-delimiter + * + * @var string + */ + public $right_delimiter = "}"; + /** + * array of strings which shall be treated as literal by compiler + * + * @var array string + */ + public $literals = array(); + /** + * class name + * This should be instance of Smarty_Security. + * + * @var string + * @see Smarty_Security + */ + public $security_class = 'Smarty_Security'; + /** + * implementation of security class + * + * @var Smarty_Security + */ + public $security_policy = null; + /** + * controls handling of PHP-blocks + * + * @var integer + */ + public $php_handling = self::PHP_PASSTHRU; + /** + * controls if the php template file resource is allowed + * + * @var bool + */ + public $allow_php_templates = false; + /** + * debug mode + * Setting this to true enables the debug-console. + * + * @var boolean + */ + public $debugging = false; + /** + * This determines if debugging is enable-able from the browser. + *
    + *
  • NONE => no debugging control allowed
  • + *
  • URL => enable debugging when SMARTY_DEBUG is found in the URL.
  • + *
+ * + * @var string + */ + public $debugging_ctrl = 'NONE'; + /** + * Name of debugging URL-param. + * Only used when $debugging_ctrl is set to 'URL'. + * The name of the URL-parameter that activates debugging. + * + * @var string + */ + public $smarty_debug_id = 'SMARTY_DEBUG'; + /** + * Path of debug template. + * + * @var string + */ + public $debug_tpl = null; + /** + * When set, smarty uses this value as error_reporting-level. + * + * @var int + */ + public $error_reporting = null; + /** + * Controls whether variables with the same name overwrite each other. + * + * @var boolean + */ + public $config_overwrite = true; + /** + * Controls whether config values of on/true/yes and off/false/no get converted to boolean. + * + * @var boolean + */ + public $config_booleanize = true; + /** + * Controls whether hidden config sections/vars are read from the file. + * + * @var boolean + */ + public $config_read_hidden = false; + /** + * locking concurrent compiles + * + * @var boolean + */ + public $compile_locking = true; + /** + * Controls whether cache resources should use locking mechanism + * + * @var boolean + */ + public $cache_locking = false; + /** + * seconds to wait for acquiring a lock before ignoring the write lock + * + * @var float + */ + public $locking_timeout = 10; + /** + * resource type used if none given + * Must be an valid key of $registered_resources. + * + * @var string + */ + public $default_resource_type = 'file'; + /** + * caching type + * Must be an element of $cache_resource_types. + * + * @var string + */ + public $caching_type = 'file'; + /** + * config type + * + * @var string + */ + public $default_config_type = 'file'; + /** + * check If-Modified-Since headers + * + * @var boolean + */ + public $cache_modified_check = false; + /** + * registered plugins + * + * @var array + */ + public $registered_plugins = array(); + /** + * registered objects + * + * @var array + */ + public $registered_objects = array(); + /** + * registered classes + * + * @var array + */ + public $registered_classes = array(); + /** + * registered filters + * + * @var array + */ + public $registered_filters = array(); + /** + * registered resources + * + * @var array + */ + public $registered_resources = array(); + /** + * registered cache resources + * + * @var array + */ + public $registered_cache_resources = array(); + /** + * autoload filter + * + * @var array + */ + public $autoload_filters = array(); + /** + * default modifier + * + * @var array + */ + public $default_modifiers = array(); + /** + * autoescape variable output + * + * @var boolean + */ + public $escape_html = false; + /** + * start time for execution time calculation + * + * @var int + */ + public $start_time = 0; + /** + * required by the compiler for BC + * + * @var string + */ + public $_current_file = null; + /** + * internal flag to enable parser debugging + * + * @var bool + */ + public $_parserdebug = false; + /** + * This object type (Smarty = 1, template = 2, data = 4) + * + * @var int + */ + public $_objType = 1; + /** + * Debug object + * + * @var Smarty_Internal_Debug + */ + public $_debug = null; + /** + * template directory + * + * @var array + */ + protected $template_dir = array('./templates/'); + /** + * flags for normalized template directory entries + * + * @var array + */ + protected $_processedTemplateDir = array(); + /** + * config directory + * + * @var array + */ + protected $config_dir = array('./configs/'); + /** + * flags for normalized template directory entries + * + * @var array + */ + protected $_processedConfigDir = array(); + /** + * compile directory + * + * @var string + */ + protected $compile_dir = './templates_c/'; + /** + * plugins directory + * + * @var array + */ + protected $plugins_dir = array(); + /** + * cache directory + * + * @var string + */ + protected $cache_dir = './cache/'; + /** + * removed properties + * + * @var string[] + */ + protected $obsoleteProperties = array('resource_caching', 'template_resource_caching', 'direct_access_security', + '_dir_perms', '_file_perms', 'plugin_search_order', + 'inheritance_merge_compiled_includes', 'resource_cache_mode',); + /** + * List of private properties which will call getter/setter on a direct access + * + * @var string[] + */ + protected $accessMap = array('template_dir' => 'TemplateDir', 'config_dir' => 'ConfigDir', + 'plugins_dir' => 'PluginsDir', 'compile_dir' => 'CompileDir', + 'cache_dir' => 'CacheDir',); + + /** + * Initialize new Smarty object + */ + public function __construct() + { + $this->_clearTemplateCache(); + parent::__construct(); + if (is_callable('mb_internal_encoding')) { + mb_internal_encoding(Smarty::$_CHARSET); + } + $this->start_time = microtime(true); + if (isset($_SERVER[ 'SCRIPT_NAME' ])) { + Smarty::$global_tpl_vars[ 'SCRIPT_NAME' ] = new Smarty_Variable($_SERVER[ 'SCRIPT_NAME' ]); + } + // Check if we're running on windows + Smarty::$_IS_WINDOWS = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'; + // let PCRE (preg_*) treat strings as ISO-8859-1 if we're not dealing with UTF-8 + if (Smarty::$_CHARSET !== 'UTF-8') { + Smarty::$_UTF8_MODIFIER = ''; + } + } + + /** + * Enable error handler to mute expected messages + * + * @return boolean + * @deprecated + */ + public static function muteExpectedErrors() + { + return Smarty_Internal_ErrorHandler::muteExpectedErrors(); + } + + /** + * Disable error handler muting expected messages + * + * @deprecated + */ + public static function unmuteExpectedErrors() + { + restore_error_handler(); + } + + /** + * Check if a template resource exists + * + * @param string $resource_name template name + * + * @return bool status + * @throws \SmartyException + */ + public function templateExists($resource_name) + { + // create source object + $source = Smarty_Template_Source::load(null, $this, $resource_name); + return $source->exists; + } + + /** + * Loads security class and enables security + * + * @param string|Smarty_Security $security_class if a string is used, it must be class-name + * + * @return Smarty current Smarty instance for chaining + * @throws SmartyException when an invalid class name is provided + */ + public function enableSecurity($security_class = null) + { + Smarty_Security::enableSecurity($this, $security_class); + return $this; + } + + /** + * Disable security + * + * @return Smarty current Smarty instance for chaining + */ + public function disableSecurity() + { + $this->security_policy = null; + return $this; + } + + /** + * Add template directory(s) + * + * @param string|array $template_dir directory(s) of template sources + * @param string $key of the array element to assign the template dir to + * @param bool $isConfig true for config_dir + * + * @return Smarty current Smarty instance for chaining + */ + public function addTemplateDir($template_dir, $key = null, $isConfig = false) + { + if ($isConfig) { + $processed = &$this->_processedConfigDir; + $dir = &$this->config_dir; + $this->_configDirNormalized = false; + } else { + $processed = &$this->_processedTemplateDir; + $dir = &$this->template_dir; + $this->_templateDirNormalized = false; + } + if (is_array($template_dir)) { + foreach ($template_dir as $k => $v) { + if (is_int($k)) { + // indexes are not merged but appended + $dir[] = $v; + } else { + // string indexes are overridden + $dir[ $k ] = $v; + unset($processed[ $key ]); + } + } + } else { + if ($key !== null) { + // override directory at specified index + $dir[ $key ] = $template_dir; + unset($processed[ $key ]); + } else { + // append new directory + $dir[] = $template_dir; + } + } + return $this; + } + + /** + * Get template directories + * + * @param mixed $index index of directory to get, null to get all + * @param bool $isConfig true for config_dir + * + * @return array list of template directories, or directory of $index + */ + public function getTemplateDir($index = null, $isConfig = false) + { + if ($isConfig) { + $dir = &$this->config_dir; + } else { + $dir = &$this->template_dir; + } + if ($isConfig ? !$this->_configDirNormalized : !$this->_templateDirNormalized) { + $this->_normalizeTemplateConfig($isConfig); + } + if ($index !== null) { + return isset($dir[ $index ]) ? $dir[ $index ] : null; + } + return $dir; + } + + /** + * Set template directory + * + * @param string|array $template_dir directory(s) of template sources + * @param bool $isConfig true for config_dir + * + * @return \Smarty current Smarty instance for chaining + */ + public function setTemplateDir($template_dir, $isConfig = false) + { + if ($isConfig) { + $this->config_dir = array(); + $this->_processedConfigDir = array(); + } else { + $this->template_dir = array(); + $this->_processedTemplateDir = array(); + } + $this->addTemplateDir($template_dir, null, $isConfig); + return $this; + } + + /** + * Add config directory(s) + * + * @param string|array $config_dir directory(s) of config sources + * @param mixed $key key of the array element to assign the config dir to + * + * @return Smarty current Smarty instance for chaining + */ + public function addConfigDir($config_dir, $key = null) + { + return $this->addTemplateDir($config_dir, $key, true); + } + + /** + * Get config directory + * + * @param mixed $index index of directory to get, null to get all + * + * @return array configuration directory + */ + public function getConfigDir($index = null) + { + return $this->getTemplateDir($index, true); + } + + /** + * Set config directory + * + * @param $config_dir + * + * @return Smarty current Smarty instance for chaining + */ + public function setConfigDir($config_dir) + { + return $this->setTemplateDir($config_dir, true); + } + + /** + * Adds directory of plugin files + * + * @param null|array|string $plugins_dir + * + * @return Smarty current Smarty instance for chaining + */ + public function addPluginsDir($plugins_dir) + { + if (empty($this->plugins_dir)) { + $this->plugins_dir[] = SMARTY_PLUGINS_DIR; + } + $this->plugins_dir = array_merge($this->plugins_dir, (array)$plugins_dir); + $this->_pluginsDirNormalized = false; + return $this; + } + + /** + * Get plugin directories + * + * @return array list of plugin directories + */ + public function getPluginsDir() + { + if (empty($this->plugins_dir)) { + $this->plugins_dir[] = SMARTY_PLUGINS_DIR; + $this->_pluginsDirNormalized = false; + } + if (!$this->_pluginsDirNormalized) { + if (!is_array($this->plugins_dir)) { + $this->plugins_dir = (array)$this->plugins_dir; + } + foreach ($this->plugins_dir as $k => $v) { + $this->plugins_dir[ $k ] = $this->_realpath(rtrim($v, "/\\") . DIRECTORY_SEPARATOR, true); + } + $this->_cache[ 'plugin_files' ] = array(); + $this->_pluginsDirNormalized = true; + } + return $this->plugins_dir; + } + + /** + * Set plugins directory + * + * @param string|array $plugins_dir directory(s) of plugins + * + * @return Smarty current Smarty instance for chaining + */ + public function setPluginsDir($plugins_dir) + { + $this->plugins_dir = (array)$plugins_dir; + $this->_pluginsDirNormalized = false; + return $this; + } + + /** + * Get compiled directory + * + * @return string path to compiled templates + */ + public function getCompileDir() + { + if (!$this->_compileDirNormalized) { + $this->_normalizeDir('compile_dir', $this->compile_dir); + $this->_compileDirNormalized = true; + } + return $this->compile_dir; + } + + /** + * + * @param string $compile_dir directory to store compiled templates in + * + * @return Smarty current Smarty instance for chaining + */ + public function setCompileDir($compile_dir) + { + $this->_normalizeDir('compile_dir', $compile_dir); + $this->_compileDirNormalized = true; + return $this; + } + + /** + * Get cache directory + * + * @return string path of cache directory + */ + public function getCacheDir() + { + if (!$this->_cacheDirNormalized) { + $this->_normalizeDir('cache_dir', $this->cache_dir); + $this->_cacheDirNormalized = true; + } + return $this->cache_dir; + } + + /** + * Set cache directory + * + * @param string $cache_dir directory to store cached templates in + * + * @return Smarty current Smarty instance for chaining + */ + public function setCacheDir($cache_dir) + { + $this->_normalizeDir('cache_dir', $cache_dir); + $this->_cacheDirNormalized = true; + return $this; + } + + /** + * creates a template object + * + * @param string $template the resource handle of the template file + * @param mixed $cache_id cache id to be used with this template + * @param mixed $compile_id compile id to be used with this template + * @param object $parent next higher level of Smarty variables + * @param boolean $do_clone flag is Smarty object shall be cloned + * + * @return \Smarty_Internal_Template template object + * @throws \SmartyException + */ + public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null, $do_clone = true) + { + if ($cache_id !== null && (is_object($cache_id) || is_array($cache_id))) { + $parent = $cache_id; + $cache_id = null; + } + if ($parent !== null && is_array($parent)) { + $data = $parent; + $parent = null; + } else { + $data = null; + } + if (!$this->_templateDirNormalized) { + $this->_normalizeTemplateConfig(false); + } + $_templateId = $this->_getTemplateId($template, $cache_id, $compile_id); + $tpl = null; + if ($this->caching && isset(Smarty_Internal_Template::$isCacheTplObj[ $_templateId ])) { + $tpl = $do_clone ? clone Smarty_Internal_Template::$isCacheTplObj[ $_templateId ] : + Smarty_Internal_Template::$isCacheTplObj[ $_templateId ]; + $tpl->inheritance = null; + $tpl->tpl_vars = $tpl->config_vars = array(); + } else if (!$do_clone && isset(Smarty_Internal_Template::$tplObjCache[ $_templateId ])) { + $tpl = clone Smarty_Internal_Template::$tplObjCache[ $_templateId ]; + $tpl->inheritance = null; + $tpl->tpl_vars = $tpl->config_vars = array(); + } else { + /* @var Smarty_Internal_Template $tpl */ + $tpl = new $this->template_class($template, $this, null, $cache_id, $compile_id, null, null); + $tpl->templateId = $_templateId; + } + if ($do_clone) { + $tpl->smarty = clone $tpl->smarty; + } + $tpl->parent = $parent ? $parent : $this; + // fill data if present + if (!empty($data) && is_array($data)) { + // set up variable values + foreach ($data as $_key => $_val) { + $tpl->tpl_vars[ $_key ] = new Smarty_Variable($_val); + } + } + if ($this->debugging || $this->debugging_ctrl === 'URL') { + $tpl->smarty->_debug = new Smarty_Internal_Debug(); + // check URL debugging control + if (!$this->debugging && $this->debugging_ctrl === 'URL') { + $tpl->smarty->_debug->debugUrl($tpl->smarty); + } + } + return $tpl; + } + + /** + * Takes unknown classes and loads plugin files for them + * class name format: Smarty_PluginType_PluginName + * plugin filename format: plugintype.pluginname.php + * + * @param string $plugin_name class plugin name to load + * @param bool $check check if already loaded + * + * @throws SmartyException + * @return string |boolean filepath of loaded file or false + */ + public function loadPlugin($plugin_name, $check = true) + { + return $this->ext->loadPlugin->loadPlugin($this, $plugin_name, $check); + } + + /** + * Get unique template id + * + * @param string $template_name + * @param null|mixed $cache_id + * @param null|mixed $compile_id + * @param null $caching + * @param \Smarty_Internal_Template $template + * + * @return string + * @throws \SmartyException + */ + public function _getTemplateId($template_name, + $cache_id = null, + $compile_id = null, + $caching = null, + Smarty_Internal_Template $template = null) + { + $template_name = (strpos($template_name, ':') === false) ? "{$this->default_resource_type}:{$template_name}" : + $template_name; + $cache_id = $cache_id === null ? $this->cache_id : $cache_id; + $compile_id = $compile_id === null ? $this->compile_id : $compile_id; + $caching = (int)($caching === null ? $this->caching : $caching); + if ((isset($template) && strpos($template_name, ':.') !== false) || $this->allow_ambiguous_resources) { + $_templateId = + Smarty_Resource::getUniqueTemplateName((isset($template) ? $template : $this), $template_name) . + "#{$cache_id}#{$compile_id}#{$caching}"; + } else { + $_templateId = $this->_joined_template_dir . "#{$template_name}#{$cache_id}#{$compile_id}#{$caching}"; + } + if (isset($_templateId[ 150 ])) { + $_templateId = sha1($_templateId); + } + return $_templateId; + } + + /** + * Normalize path + * - remove /./ and /../ + * - make it absolute if required + * + * @param string $path file path + * @param bool $realpath if true - convert to absolute + * false - convert to relative + * null - keep as it is but remove /./ /../ + * + * @return string + */ + public function _realpath($path, $realpath = null) + { + static $nds = null; + static $sepDotsep = null; + static $sepDot = null; + static $sepSep =null; + if (!isset($nds)) { + $nds = array('/' => '\\', '\\' => '/'); + $sepDotsep = DIRECTORY_SEPARATOR . '.' . DIRECTORY_SEPARATOR; + $sepDot = DIRECTORY_SEPARATOR . '.'; + $sepSep = DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR; + } + // normalize DIRECTORY_SEPARATOR + $path = str_replace(array($nds[DIRECTORY_SEPARATOR], $sepDotsep), DIRECTORY_SEPARATOR, $path); + if (strpos($path,$sepDot) === false && (($realpath === false && $path[0] === '.') || $realpath === null) && $path[0] !== '\\') { + return $path; + } + preg_match('%^(?(?:[[:alpha:]]:[\\\\]|/|[\\\\]{2}[[:alpha:]]+|[[:print:]]{2,}:[/]{2}|[\\\\])?)(?(.*))$%u', + $path, + $parts); + $path = $parts[ 'path' ]; + if ($parts[ 'root' ] === '\\') { + $parts[ 'root' ] = substr(getcwd(), 0, 2) . $parts[ 'root' ]; + } else { + if ($realpath !== null && !$parts[ 'root' ]) { + $path = getcwd() . DIRECTORY_SEPARATOR . $path; + } + } + // remove noop 'DIRECTORY_SEPARATOR DIRECTORY_SEPARATOR' and 'DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR' patterns + $path = str_replace(array($sepDotsep,$sepSep), DIRECTORY_SEPARATOR, $path); + // resolve '..DIRECTORY_SEPARATOR' pattern, smallest first + if (strpos($path, '..' . DIRECTORY_SEPARATOR) !== false && + preg_match_all('#[\\\\/]([.][.][\\\\/])+#u', $path, $match) + ) { + $counts = array(); + foreach ($match[ 0 ] as $m) { + $counts[] = (int)((strlen($m) - 1) / 3); + } + sort($counts); + foreach ($counts as $count) { + $path = preg_replace('#([\\\\/]+[^\\\\/]+){' . $count . + '}[\\\\/]+([.][.][\\\\/]+){' . $count . '}#u', + DIRECTORY_SEPARATOR, + $path); + } + } + return $realpath !== false ? $parts[ 'root' ] . $path : str_ireplace(getcwd(), '.', $parts[ 'root' ] . $path); + } + + /** + * Empty template objects cache + */ + public function _clearTemplateCache() + { + Smarty_Internal_Template::$isCacheTplObj = array(); + Smarty_Internal_Template::$tplObjCache = array(); + } + + /** + * @param boolean $use_sub_dirs + */ + public function setUseSubDirs($use_sub_dirs) + { + $this->use_sub_dirs = $use_sub_dirs; + } + + /** + * @param int $error_reporting + */ + public function setErrorReporting($error_reporting) + { + $this->error_reporting = $error_reporting; + } + + /** + * @param boolean $escape_html + */ + public function setEscapeHtml($escape_html) + { + $this->escape_html = $escape_html; + } + + /** + * Return auto_literal flag + * + * @return boolean + */ + public function getAutoLiteral() + { + return $this->auto_literal; + } + + /** + * Set auto_literal flag + * + * @param boolean $auto_literal + */ + public function setAutoLiteral($auto_literal = true) + { + $this->auto_literal = $auto_literal; + } + + /** + * @param boolean $force_compile + */ + public function setForceCompile($force_compile) + { + $this->force_compile = $force_compile; + } + + /** + * @param boolean $merge_compiled_includes + */ + public function setMergeCompiledIncludes($merge_compiled_includes) + { + $this->merge_compiled_includes = $merge_compiled_includes; + } + + /** + * Get left delimiter + * + * @return string + */ + public function getLeftDelimiter() + { + return $this->left_delimiter; + } + + /** + * Set left delimiter + * + * @param string $left_delimiter + */ + public function setLeftDelimiter($left_delimiter) + { + $this->left_delimiter = $left_delimiter; + } + + /** + * Get right delimiter + * + * @return string $right_delimiter + */ + public function getRightDelimiter() + { + return $this->right_delimiter; + } + + /** + * Set right delimiter + * + * @param string + */ + public function setRightDelimiter($right_delimiter) + { + $this->right_delimiter = $right_delimiter; + } + + /** + * @param boolean $debugging + */ + public function setDebugging($debugging) + { + $this->debugging = $debugging; + } + + /** + * @param boolean $config_overwrite + */ + public function setConfigOverwrite($config_overwrite) + { + $this->config_overwrite = $config_overwrite; + } + + /** + * @param boolean $config_booleanize + */ + public function setConfigBooleanize($config_booleanize) + { + $this->config_booleanize = $config_booleanize; + } + + /** + * @param boolean $config_read_hidden + */ + public function setConfigReadHidden($config_read_hidden) + { + $this->config_read_hidden = $config_read_hidden; + } + + /** + * @param boolean $compile_locking + */ + public function setCompileLocking($compile_locking) + { + $this->compile_locking = $compile_locking; + } + + /** + * @param string $default_resource_type + */ + public function setDefaultResourceType($default_resource_type) + { + $this->default_resource_type = $default_resource_type; + } + + /** + * @param string $caching_type + */ + public function setCachingType($caching_type) + { + $this->caching_type = $caching_type; + } + + /** + * Test install + * + * @param null $errors + */ + public function testInstall(&$errors = null) + { + Smarty_Internal_TestInstall::testInstall($this, $errors); + } + + /** + * Get Smarty object + * + * @return Smarty + */ + public function _getSmartyObj() + { + return $this; + } + + /** + * <> Generic getter. + * Calls the appropriate getter function. + * Issues an E_USER_NOTICE if no valid getter is found. + * + * @param string $name property name + * + * @return mixed + * @throws \SmartyException + */ + public function __get($name) + { + if (isset($this->accessMap[ $name ])) { + $method = 'get' . $this->accessMap[ $name ]; + return $this->{$method}(); + } else if (isset($this->_cache[ $name ])) { + return $this->_cache[ $name ]; + } else if (in_array($name, $this->obsoleteProperties)) { + return null; + } else { + trigger_error('Undefined property: ' . get_class($this) . '::$' . $name, E_USER_NOTICE); + } + return null; + } + + /** + * <> Generic setter. + * Calls the appropriate setter function. + * Issues an E_USER_NOTICE if no valid setter is found. + * + * @param string $name property name + * @param mixed $value parameter passed to setter + * + * @throws \SmartyException + */ + public function __set($name, $value) + { + if (isset($this->accessMap[ $name ])) { + $method = 'set' . $this->accessMap[ $name ]; + $this->{$method}($value); + } else if (in_array($name, $this->obsoleteProperties)) { + return; + } else { + if (is_object($value) && method_exists($value, $name)) { + $this->$name = $value; + } else { + trigger_error('Undefined property: ' . get_class($this) . '::$' . $name, E_USER_NOTICE); + } + } + } + + /** + * Normalize and set directory string + * + * @param string $dirName cache_dir or compile_dir + * @param string $dir filepath of folder + */ + private function _normalizeDir($dirName, $dir) + { + $this->{$dirName} = $this->_realpath(rtrim($dir, "/\\") . DIRECTORY_SEPARATOR, true); + if (class_exists('Smarty_Internal_ErrorHandler', false)) { + if (!isset(Smarty_Internal_ErrorHandler::$mutedDirectories[ $this->{$dirName} ])) { + Smarty_Internal_ErrorHandler::$mutedDirectories[ $this->{$dirName} ] = null; + } + } + } + + /** + * Normalize template_dir or config_dir + * + * @param bool $isConfig true for config_dir + * + */ + private function _normalizeTemplateConfig($isConfig) + { + if ($isConfig) { + $processed = &$this->_processedConfigDir; + $dir = &$this->config_dir; + } else { + $processed = &$this->_processedTemplateDir; + $dir = &$this->template_dir; + } + if (!is_array($dir)) { + $dir = (array)$dir; + } + foreach ($dir as $k => $v) { + if (!isset($processed[ $k ])) { + $dir[ $k ] = $v = $this->_realpath(rtrim($v, "/\\") . DIRECTORY_SEPARATOR, true); + $processed[ $k ] = true; + } + } + $isConfig ? $this->_configDirNormalized = true : $this->_templateDirNormalized = true; + $isConfig ? $this->_joined_config_dir = join('#', $this->config_dir) : + $this->_joined_template_dir = join('#', $this->template_dir); + } +} diff --git a/core/template/SmartyBC.class.php b/core/template/SmartyBC.class.php new file mode 100644 index 0000000..f2230fc --- /dev/null +++ b/core/template/SmartyBC.class.php @@ -0,0 +1,474 @@ + + * @author Uwe Tews + * @author Rodney Rehm + * @package Smarty + */ +/** + * @ignore + */ +require_once(dirname(__FILE__) . '/Smarty.class.php'); + +/** + * Smarty Backward Compatibility Wrapper Class + * + * @package Smarty + */ +class SmartyBC extends Smarty +{ + /** + * Smarty 2 BC + * + * @var string + */ + public $_version = self::SMARTY_VERSION; + + /** + * This is an array of directories where trusted php scripts reside. + * + * @var array + */ + public $trusted_dir = array(); + + /** + * Initialize new SmartyBC object + * + */ + public function __construct() + { + parent::__construct(); + } + + /** + * wrapper for assign_by_ref + * + * @param string $tpl_var the template variable name + * @param mixed &$value the referenced value to assign + */ + public function assign_by_ref($tpl_var, &$value) + { + $this->assignByRef($tpl_var, $value); + } + + /** + * wrapper for append_by_ref + * + * @param string $tpl_var the template variable name + * @param mixed &$value the referenced value to append + * @param boolean $merge flag if array elements shall be merged + */ + public function append_by_ref($tpl_var, &$value, $merge = false) + { + $this->appendByRef($tpl_var, $value, $merge); + } + + /** + * clear the given assigned template variable. + * + * @param string $tpl_var the template variable to clear + */ + public function clear_assign($tpl_var) + { + $this->clearAssign($tpl_var); + } + + /** + * Registers custom function to be used in templates + * + * @param string $function the name of the template function + * @param string $function_impl the name of the PHP function to register + * @param bool $cacheable + * @param mixed $cache_attrs + * + * @throws \SmartyException + */ + public function register_function($function, $function_impl, $cacheable = true, $cache_attrs = null) + { + $this->registerPlugin('function', $function, $function_impl, $cacheable, $cache_attrs); + } + + /** + * Unregister custom function + * + * @param string $function name of template function + */ + public function unregister_function($function) + { + $this->unregisterPlugin('function', $function); + } + + /** + * Registers object to be used in templates + * + * @param string $object name of template object + * @param object $object_impl the referenced PHP object to register + * @param array $allowed list of allowed methods (empty = all) + * @param boolean $smarty_args smarty argument format, else traditional + * @param array $block_methods list of methods that are block format + * + * @throws SmartyException + * @internal param array $block_functs list of methods that are block format + */ + public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true, + $block_methods = array()) + { + settype($allowed, 'array'); + settype($smarty_args, 'boolean'); + $this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods); + } + + /** + * Unregister object + * + * @param string $object name of template object + */ + public function unregister_object($object) + { + $this->unregisterObject($object); + } + + /** + * Registers block function to be used in templates + * + * @param string $block name of template block + * @param string $block_impl PHP function to register + * @param bool $cacheable + * @param mixed $cache_attrs + * + * @throws \SmartyException + */ + public function register_block($block, $block_impl, $cacheable = true, $cache_attrs = null) + { + $this->registerPlugin('block', $block, $block_impl, $cacheable, $cache_attrs); + } + + /** + * Unregister block function + * + * @param string $block name of template function + */ + public function unregister_block($block) + { + $this->unregisterPlugin('block', $block); + } + + /** + * Registers compiler function + * + * @param string $function name of template function + * @param string $function_impl name of PHP function to register + * @param bool $cacheable + * + * @throws \SmartyException + */ + public function register_compiler_function($function, $function_impl, $cacheable = true) + { + $this->registerPlugin('compiler', $function, $function_impl, $cacheable); + } + + /** + * Unregister compiler function + * + * @param string $function name of template function + */ + public function unregister_compiler_function($function) + { + $this->unregisterPlugin('compiler', $function); + } + + /** + * Registers modifier to be used in templates + * + * @param string $modifier name of template modifier + * @param string $modifier_impl name of PHP function to register + * + * @throws \SmartyException + */ + public function register_modifier($modifier, $modifier_impl) + { + $this->registerPlugin('modifier', $modifier, $modifier_impl); + } + + /** + * Unregister modifier + * + * @param string $modifier name of template modifier + */ + public function unregister_modifier($modifier) + { + $this->unregisterPlugin('modifier', $modifier); + } + + /** + * Registers a resource to fetch a template + * + * @param string $type name of resource + * @param array $functions array of functions to handle resource + */ + public function register_resource($type, $functions) + { + $this->registerResource($type, $functions); + } + + /** + * Unregister a resource + * + * @param string $type name of resource + */ + public function unregister_resource($type) + { + $this->unregisterResource($type); + } + + /** + * Registers a prefilter function to apply + * to a template before compiling + * + * @param callable $function + * + * @throws \SmartyException + */ + public function register_prefilter($function) + { + $this->registerFilter('pre', $function); + } + + /** + * Unregister a prefilter function + * + * @param callable $function + */ + public function unregister_prefilter($function) + { + $this->unregisterFilter('pre', $function); + } + + /** + * Registers a postfilter function to apply + * to a compiled template after compilation + * + * @param callable $function + * + * @throws \SmartyException + */ + public function register_postfilter($function) + { + $this->registerFilter('post', $function); + } + + /** + * Unregister a postfilter function + * + * @param callable $function + */ + public function unregister_postfilter($function) + { + $this->unregisterFilter('post', $function); + } + + /** + * Registers an output filter function to apply + * to a template output + * + * @param callable $function + * + * @throws \SmartyException + */ + public function register_outputfilter($function) + { + $this->registerFilter('output', $function); + } + + /** + * Unregister an outputfilter function + * + * @param callable $function + */ + public function unregister_outputfilter($function) + { + $this->unregisterFilter('output', $function); + } + + /** + * load a filter of specified type and name + * + * @param string $type filter type + * @param string $name filter name + * + * @throws \SmartyException + */ + public function load_filter($type, $name) + { + $this->loadFilter($type, $name); + } + + /** + * clear cached content for the given template and cache id + * + * @param string $tpl_file name of template file + * @param string $cache_id name of cache_id + * @param string $compile_id name of compile_id + * @param string $exp_time expiration time + * + * @return boolean + */ + public function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null) + { + return $this->clearCache($tpl_file, $cache_id, $compile_id, $exp_time); + } + + /** + * clear the entire contents of cache (all templates) + * + * @param string $exp_time expire time + * + * @return boolean + */ + public function clear_all_cache($exp_time = null) + { + return $this->clearCache(null, null, null, $exp_time); + } + + /** + * test to see if valid cache exists for this template + * + * @param string $tpl_file name of template file + * @param string $cache_id + * @param string $compile_id + * + * @return bool + * @throws \Exception + * @throws \SmartyException + */ + public function is_cached($tpl_file, $cache_id = null, $compile_id = null) + { + return $this->isCached($tpl_file, $cache_id, $compile_id); + } + + /** + * clear all the assigned template variables. + */ + public function clear_all_assign() + { + $this->clearAllAssign(); + } + + /** + * clears compiled version of specified template resource, + * or all compiled template files if one is not specified. + * This function is for advanced use only, not normally needed. + * + * @param string $tpl_file + * @param string $compile_id + * @param string $exp_time + * + * @return boolean results of {@link smarty_core_rm_auto()} + */ + public function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null) + { + return $this->clearCompiledTemplate($tpl_file, $compile_id, $exp_time); + } + + /** + * Checks whether requested template exists. + * + * @param string $tpl_file + * + * @return bool + * @throws \SmartyException + */ + public function template_exists($tpl_file) + { + return $this->templateExists($tpl_file); + } + + /** + * Returns an array containing template variables + * + * @param string $name + * + * @return array + */ + public function get_template_vars($name = null) + { + return $this->getTemplateVars($name); + } + + /** + * Returns an array containing config variables + * + * @param string $name + * + * @return array + */ + public function get_config_vars($name = null) + { + return $this->getConfigVars($name); + } + + /** + * load configuration values + * + * @param string $file + * @param string $section + * @param string $scope + */ + public function config_load($file, $section = null, $scope = 'global') + { + $this->ConfigLoad($file, $section, $scope); + } + + /** + * return a reference to a registered object + * + * @param string $name + * + * @return object + */ + public function get_registered_object($name) + { + return $this->getRegisteredObject($name); + } + + /** + * clear configuration values + * + * @param string $var + */ + public function clear_config($var = null) + { + $this->clearConfig($var); + } + + /** + * trigger Smarty error + * + * @param string $error_msg + * @param integer $error_type + */ + public function trigger_error($error_msg, $error_type = E_USER_WARNING) + { + trigger_error("Smarty error: $error_msg", $error_type); + } +} diff --git a/core/template/bootstrap.php b/core/template/bootstrap.php new file mode 100644 index 0000000..dad72fc --- /dev/null +++ b/core/template/bootstrap.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/* + * Load and register Smarty Autoloader + */ +if (!class_exists('Smarty_Autoloader')) { + require dirname(__FILE__) . '/Autoloader.php'; +} +Smarty_Autoloader::register(true); diff --git a/core/template/debug.tpl b/core/template/debug.tpl new file mode 100644 index 0000000..5526cbc --- /dev/null +++ b/core/template/debug.tpl @@ -0,0 +1,160 @@ +{capture name='_smarty_debug' assign=debug_output} + + + + Smarty Debug Console + + + + +

Smarty {Smarty::SMARTY_VERSION} Debug Console + - {if isset($template_name)}{$template_name|debug_print_var nofilter} {/if}{if !empty($template_data)}Total Time {$execution_time|string_format:"%.5f"}{/if}

+ + {if !empty($template_data)} +

included templates & config files (load time in seconds)

+
+ {foreach $template_data as $template} + {$template.name} +
   + (compile {$template['compile_time']|string_format:"%.5f"}) (render {$template['render_time']|string_format:"%.5f"}) (cache {$template['cache_time']|string_format:"%.5f"}) + +
+ {/foreach} +
+ {/if} + +

assigned template variables

+ + + {foreach $assigned_vars as $vars} + + + + + {/foreach} +

${$vars@key}

+ {if isset($vars['nocache'])}Nocache
{/if} + {if isset($vars['scope'])}Origin: {$vars['scope']|debug_print_var nofilter}{/if} +

Value

{$vars['value']|debug_print_var:10:80 nofilter}
{if isset($vars['attributes'])}

Attributes

{$vars['attributes']|debug_print_var nofilter} {/if}
+ +

assigned config file variables

+ + + {foreach $config_vars as $vars} + + + + + {/foreach} + +

#{$vars@key}#

+ {if isset($vars['scope'])}Origin: {$vars['scope']|debug_print_var nofilter}{/if} +
{$vars['value']|debug_print_var:10:80 nofilter}
+ + +{/capture} + diff --git a/core/template/plugins/block.textformat.php b/core/template/plugins/block.textformat.php new file mode 100644 index 0000000..310a420 --- /dev/null +++ b/core/template/plugins/block.textformat.php @@ -0,0 +1,117 @@ + + * @throws \SmartyException + */ +function smarty_block_textformat($params, $content, Smarty_Internal_Template $template, &$repeat) +{ + if (is_null($content)) { + return; + } + if (Smarty::$_MBSTRING) { + $template->_checkPlugins(array(array('function' => 'smarty_modifier_mb_wordwrap', + 'file' => SMARTY_PLUGINS_DIR . 'modifier.mb_wordwrap.php'))); + } + + $style = null; + $indent = 0; + $indent_first = 0; + $indent_char = ' '; + $wrap = 80; + $wrap_char = "\n"; + $wrap_cut = false; + $assign = null; + + foreach ($params as $_key => $_val) { + switch ($_key) { + case 'style': + case 'indent_char': + case 'wrap_char': + case 'assign': + $$_key = (string) $_val; + break; + + case 'indent': + case 'indent_first': + case 'wrap': + $$_key = (int) $_val; + break; + + case 'wrap_cut': + $$_key = (bool) $_val; + break; + + default: + trigger_error("textformat: unknown attribute '{$_key}'"); + } + } + + if ($style === 'email') { + $wrap = 72; + } + // split into paragraphs + $_paragraphs = preg_split('![\r\n]{2}!', $content); + + foreach ($_paragraphs as &$_paragraph) { + if (!$_paragraph) { + continue; + } + // convert mult. spaces & special chars to single space + $_paragraph = + preg_replace(array('!\s+!' . Smarty::$_UTF8_MODIFIER, + '!(^\s+)|(\s+$)!' . Smarty::$_UTF8_MODIFIER), + array(' ', + ''), $_paragraph); + // indent first line + if ($indent_first > 0) { + $_paragraph = str_repeat($indent_char, $indent_first) . $_paragraph; + } + // wordwrap sentences + if (Smarty::$_MBSTRING) { + $_paragraph = smarty_modifier_mb_wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut); + } else { + $_paragraph = wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut); + } + // indent lines + if ($indent > 0) { + $_paragraph = preg_replace('!^!m', str_repeat($indent_char, $indent), $_paragraph); + } + } + $_output = implode($wrap_char . $wrap_char, $_paragraphs); + + if ($assign) { + $template->assign($assign, $_output); + } else { + return $_output; + } +} diff --git a/core/template/plugins/function.counter.php b/core/template/plugins/function.counter.php new file mode 100644 index 0000000..9610362d --- /dev/null +++ b/core/template/plugins/function.counter.php @@ -0,0 +1,73 @@ + + * @link http://www.smarty.net/manual/en/language.function.counter.php {counter} + * (Smarty online manual) + * + * @param array $params parameters + * @param Smarty_Internal_Template $template template object + * + * @return string|null + */ +function smarty_function_counter($params, $template) +{ + static $counters = array(); + + $name = (isset($params[ 'name' ])) ? $params[ 'name' ] : 'default'; + if (!isset($counters[ $name ])) { + $counters[ $name ] = array('start' => 1, 'skip' => 1, 'direction' => 'up', 'count' => 1); + } + $counter =& $counters[ $name ]; + + if (isset($params[ 'start' ])) { + $counter[ 'start' ] = $counter[ 'count' ] = (int) $params[ 'start' ]; + } + + if (!empty($params[ 'assign' ])) { + $counter[ 'assign' ] = $params[ 'assign' ]; + } + + if (isset($counter[ 'assign' ])) { + $template->assign($counter[ 'assign' ], $counter[ 'count' ]); + } + + if (isset($params[ 'print' ])) { + $print = (bool) $params[ 'print' ]; + } else { + $print = empty($counter[ 'assign' ]); + } + + if ($print) { + $retval = $counter[ 'count' ]; + } else { + $retval = null; + } + + if (isset($params[ 'skip' ])) { + $counter[ 'skip' ] = $params[ 'skip' ]; + } + + if (isset($params[ 'direction' ])) { + $counter[ 'direction' ] = $params[ 'direction' ]; + } + + if ($counter[ 'direction' ] === 'down') { + $counter[ 'count' ] -= $counter[ 'skip' ]; + } else { + $counter[ 'count' ] += $counter[ 'skip' ]; + } + + return $retval; +} diff --git a/core/template/plugins/function.cycle.php b/core/template/plugins/function.cycle.php new file mode 100644 index 0000000..b871524 --- /dev/null +++ b/core/template/plugins/function.cycle.php @@ -0,0 +1,105 @@ + + * @author credit to Mark Priatel + * @author credit to Gerard + * @author credit to Jason Sweat + * @version 1.3 + * + * @param array $params parameters + * @param Smarty_Internal_Template $template template object + * + * @return string|null + */ + +function smarty_function_cycle($params, $template) +{ + static $cycle_vars; + + $name = (empty($params[ 'name' ])) ? 'default' : $params[ 'name' ]; + $print = (isset($params[ 'print' ])) ? (bool) $params[ 'print' ] : true; + $advance = (isset($params[ 'advance' ])) ? (bool) $params[ 'advance' ] : true; + $reset = (isset($params[ 'reset' ])) ? (bool) $params[ 'reset' ] : false; + + if (!isset($params[ 'values' ])) { + if (!isset($cycle_vars[ $name ][ 'values' ])) { + trigger_error('cycle: missing \'values\' parameter'); + + return; + } + } else { + if (isset($cycle_vars[ $name ][ 'values' ]) && $cycle_vars[ $name ][ 'values' ] !== $params[ 'values' ]) { + $cycle_vars[ $name ][ 'index' ] = 0; + } + $cycle_vars[ $name ][ 'values' ] = $params[ 'values' ]; + } + + if (isset($params[ 'delimiter' ])) { + $cycle_vars[ $name ][ 'delimiter' ] = $params[ 'delimiter' ]; + } elseif (!isset($cycle_vars[ $name ][ 'delimiter' ])) { + $cycle_vars[ $name ][ 'delimiter' ] = ','; + } + + if (is_array($cycle_vars[ $name ][ 'values' ])) { + $cycle_array = $cycle_vars[ $name ][ 'values' ]; + } else { + $cycle_array = explode($cycle_vars[ $name ][ 'delimiter' ], $cycle_vars[ $name ][ 'values' ]); + } + + if (!isset($cycle_vars[ $name ][ 'index' ]) || $reset) { + $cycle_vars[ $name ][ 'index' ] = 0; + } + + if (isset($params[ 'assign' ])) { + $print = false; + $template->assign($params[ 'assign' ], $cycle_array[ $cycle_vars[ $name ][ 'index' ] ]); + } + + if ($print) { + $retval = $cycle_array[ $cycle_vars[ $name ][ 'index' ] ]; + } else { + $retval = null; + } + + if ($advance) { + if ($cycle_vars[ $name ][ 'index' ] >= count($cycle_array) - 1) { + $cycle_vars[ $name ][ 'index' ] = 0; + } else { + $cycle_vars[ $name ][ 'index' ] ++; + } + } + + return $retval; +} diff --git a/core/template/plugins/function.fetch.php b/core/template/plugins/function.fetch.php new file mode 100644 index 0000000..9539e1f --- /dev/null +++ b/core/template/plugins/function.fetch.php @@ -0,0 +1,221 @@ + + * + * @param array $params parameters + * @param Smarty_Internal_Template $template template object + * + * @throws SmartyException + * @return string|null if the assign parameter is passed, Smarty assigns the result to a template variable + */ +function smarty_function_fetch($params, $template) +{ + if (empty($params[ 'file' ])) { + trigger_error('[plugin] fetch parameter \'file\' cannot be empty', E_USER_NOTICE); + + return; + } + + // strip file protocol + if (stripos($params[ 'file' ], 'file://') === 0) { + $params[ 'file' ] = substr($params[ 'file' ], 7); + } + + $protocol = strpos($params[ 'file' ], '://'); + if ($protocol !== false) { + $protocol = strtolower(substr($params[ 'file' ], 0, $protocol)); + } + + if (isset($template->smarty->security_policy)) { + if ($protocol) { + // remote resource (or php stream, …) + if (!$template->smarty->security_policy->isTrustedUri($params[ 'file' ])) { + return; + } + } else { + // local file + if (!$template->smarty->security_policy->isTrustedResourceDir($params[ 'file' ])) { + return; + } + } + } + + $content = ''; + if ($protocol === 'http') { + // http fetch + if ($uri_parts = parse_url($params[ 'file' ])) { + // set defaults + $host = $server_name = $uri_parts[ 'host' ]; + $timeout = 30; + $accept = 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*'; + $agent = 'Smarty Template Engine ' . Smarty::SMARTY_VERSION; + $referer = ''; + $uri = !empty($uri_parts[ 'path' ]) ? $uri_parts[ 'path' ] : '/'; + $uri .= !empty($uri_parts[ 'query' ]) ? '?' . $uri_parts[ 'query' ] : ''; + $_is_proxy = false; + if (empty($uri_parts[ 'port' ])) { + $port = 80; + } else { + $port = $uri_parts[ 'port' ]; + } + if (!empty($uri_parts[ 'user' ])) { + $user = $uri_parts[ 'user' ]; + } + if (!empty($uri_parts[ 'pass' ])) { + $pass = $uri_parts[ 'pass' ]; + } + // loop through parameters, setup headers + foreach ($params as $param_key => $param_value) { + switch ($param_key) { + case 'file': + case 'assign': + case 'assign_headers': + break; + case 'user': + if (!empty($param_value)) { + $user = $param_value; + } + break; + case 'pass': + if (!empty($param_value)) { + $pass = $param_value; + } + break; + case 'accept': + if (!empty($param_value)) { + $accept = $param_value; + } + break; + case 'header': + if (!empty($param_value)) { + if (!preg_match('![\w\d-]+: .+!', $param_value)) { + trigger_error("[plugin] invalid header format '{$param_value}'", E_USER_NOTICE); + + return; + } else { + $extra_headers[] = $param_value; + } + } + break; + case 'proxy_host': + if (!empty($param_value)) { + $proxy_host = $param_value; + } + break; + case 'proxy_port': + if (!preg_match('!\D!', $param_value)) { + $proxy_port = (int) $param_value; + } else { + trigger_error("[plugin] invalid value for attribute '{$param_key }'", E_USER_NOTICE); + + return; + } + break; + case 'agent': + if (!empty($param_value)) { + $agent = $param_value; + } + break; + case 'referer': + if (!empty($param_value)) { + $referer = $param_value; + } + break; + case 'timeout': + if (!preg_match('!\D!', $param_value)) { + $timeout = (int) $param_value; + } else { + trigger_error("[plugin] invalid value for attribute '{$param_key}'", E_USER_NOTICE); + + return; + } + break; + default: + trigger_error("[plugin] unrecognized attribute '{$param_key}'", E_USER_NOTICE); + + return; + } + } + if (!empty($proxy_host) && !empty($proxy_port)) { + $_is_proxy = true; + $fp = fsockopen($proxy_host, $proxy_port, $errno, $errstr, $timeout); + } else { + $fp = fsockopen($server_name, $port, $errno, $errstr, $timeout); + } + + if (!$fp) { + trigger_error("[plugin] unable to fetch: $errstr ($errno)", E_USER_NOTICE); + + return; + } else { + if ($_is_proxy) { + fputs($fp, 'GET ' . $params[ 'file' ] . " HTTP/1.0\r\n"); + } else { + fputs($fp, "GET $uri HTTP/1.0\r\n"); + } + if (!empty($host)) { + fputs($fp, "Host: $host\r\n"); + } + if (!empty($accept)) { + fputs($fp, "Accept: $accept\r\n"); + } + if (!empty($agent)) { + fputs($fp, "User-Agent: $agent\r\n"); + } + if (!empty($referer)) { + fputs($fp, "Referer: $referer\r\n"); + } + if (isset($extra_headers) && is_array($extra_headers)) { + foreach ($extra_headers as $curr_header) { + fputs($fp, $curr_header . "\r\n"); + } + } + if (!empty($user) && !empty($pass)) { + fputs($fp, 'Authorization: BASIC ' . base64_encode("$user:$pass") . "\r\n"); + } + + fputs($fp, "\r\n"); + while (!feof($fp)) { + $content .= fgets($fp, 4096); + } + fclose($fp); + $csplit = preg_split("!\r\n\r\n!", $content, 2); + + $content = $csplit[ 1 ]; + + if (!empty($params[ 'assign_headers' ])) { + $template->assign($params[ 'assign_headers' ], preg_split("!\r\n!", $csplit[ 0 ])); + } + } + } else { + trigger_error("[plugin fetch] unable to parse URL, check syntax", E_USER_NOTICE); + + return; + } + } else { + $content = @file_get_contents($params[ 'file' ]); + if ($content === false) { + throw new SmartyException("{fetch} cannot read resource '" . $params[ 'file' ] . "'"); + } + } + + if (!empty($params[ 'assign' ])) { + $template->assign($params[ 'assign' ], $content); + } else { + return $content; + } +} diff --git a/core/template/plugins/function.html_checkboxes.php b/core/template/plugins/function.html_checkboxes.php new file mode 100644 index 0000000..d654cab --- /dev/null +++ b/core/template/plugins/function.html_checkboxes.php @@ -0,0 +1,262 @@ +' output=$names} + * {html_checkboxes values=$ids checked=$checked separator='
' output=$names} + * + * Params: + * + * - name (optional) - string default "checkbox" + * - values (required) - array + * - options (optional) - associative array + * - checked (optional) - array default not set + * - separator (optional) - ie
or   + * - output (optional) - the output next to each checkbox + * - assign (optional) - assign the output as an array to this variable + * - escape (optional) - escape the content (not value), defaults to true + * + * + * @link http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes} + * (Smarty online manual) + * @author Christopher Kvarme + * @author credits to Monte Ohrt + * @version 1.0 + * + * @param array $params parameters + * @param Smarty_Internal_Template $template template object + * + * @return string + * @uses smarty_function_escape_special_chars() + * @throws \SmartyException + */ +function smarty_function_html_checkboxes($params, Smarty_Internal_Template $template) +{ + $template->_checkPlugins(array(array('function' => 'smarty_function_escape_special_chars', + 'file' => SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php'))); + + $name = 'checkbox'; + $values = null; + $options = null; + $selected = array(); + $separator = ''; + $escape = true; + $labels = true; + $label_ids = false; + $output = null; + + $extra = ''; + + foreach ($params as $_key => $_val) { + switch ($_key) { + case 'name': + case 'separator': + $$_key = (string) $_val; + break; + + case 'escape': + case 'labels': + case 'label_ids': + $$_key = (bool) $_val; + break; + + case 'options': + $$_key = (array) $_val; + break; + + case 'values': + case 'output': + $$_key = array_values((array) $_val); + break; + + case 'checked': + case 'selected': + if (is_array($_val)) { + $selected = array(); + foreach ($_val as $_sel) { + if (is_object($_sel)) { + if (method_exists($_sel, '__toString')) { + $_sel = smarty_function_escape_special_chars((string) $_sel->__toString()); + } else { + trigger_error('html_checkboxes: selected attribute contains an object of class \'' . + get_class($_sel) . '\' without __toString() method', E_USER_NOTICE); + continue; + } + } else { + $_sel = smarty_function_escape_special_chars((string) $_sel); + } + $selected[ $_sel ] = true; + } + } elseif (is_object($_val)) { + if (method_exists($_val, '__toString')) { + $selected = smarty_function_escape_special_chars((string) $_val->__toString()); + } else { + trigger_error('html_checkboxes: selected attribute is an object of class \'' . get_class($_val) . + '\' without __toString() method', E_USER_NOTICE); + } + } else { + $selected = smarty_function_escape_special_chars((string) $_val); + } + break; + + case 'checkboxes': + trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', + E_USER_WARNING); + $options = (array) $_val; + break; + + case 'assign': + break; + + case 'strict': + break; + + case 'disabled': + case 'readonly': + if (!empty($params[ 'strict' ])) { + if (!is_scalar($_val)) { + trigger_error("html_options: {$_key} attribute must be a scalar, only boolean true or string '{$_key}' will actually add the attribute", + E_USER_NOTICE); + } + + if ($_val === true || $_val === $_key) { + $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_key) . '"'; + } + + break; + } + // omit break; to fall through! + + default: + if (!is_array($_val)) { + $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"'; + } else { + trigger_error("html_checkboxes: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE); + } + break; + } + } + + if (!isset($options) && !isset($values)) { + return ''; + } /* raise error here? */ + + $_html_result = array(); + + if (isset($options)) { + foreach ($options as $_key => $_val) { + $_html_result[] = + smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels, + $label_ids, $escape); + } + } else { + foreach ($values as $_i => $_key) { + $_val = isset($output[ $_i ]) ? $output[ $_i ] : ''; + $_html_result[] = + smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels, + $label_ids, $escape); + } + } + + if (!empty($params[ 'assign' ])) { + $template->assign($params[ 'assign' ], $_html_result); + } else { + return implode("\n", $_html_result); + } +} +/** + * @param $name + * @param $value + * @param $output + * @param $selected + * @param $extra + * @param $separator + * @param $labels + * @param $label_ids + * @param bool $escape + * + * @return string + */ +function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels, + $label_ids, $escape = true) +{ + $_output = ''; + + if (is_object($value)) { + if (method_exists($value, '__toString')) { + $value = (string) $value->__toString(); + } else { + trigger_error('html_options: value is an object of class \'' . get_class($value) . + '\' without __toString() method', E_USER_NOTICE); + + return ''; + } + } else { + $value = (string) $value; + } + + if (is_object($output)) { + if (method_exists($output, '__toString')) { + $output = (string) $output->__toString(); + } else { + trigger_error('html_options: output is an object of class \'' . get_class($output) . + '\' without __toString() method', E_USER_NOTICE); + + return ''; + } + } else { + $output = (string) $output; + } + + if ($labels) { + if ($label_ids) { + $_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!' . Smarty::$_UTF8_MODIFIER, '_', + $name . '_' . $value)); + $_output .= '