BeCastWebEngine/admin/config.apnl.php
2025-06-20 19:10:23 +02:00

187 lines
6.3 KiB
PHP

<?php
If (!defined("in_BL_ADMIN")) {
die("Dieses Script kann nicht ausserhalb des Frameworks laufen!");
}
$addnav["right"]=FALSE;
$session->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.="<div id=\"vertical_container\">";
foreach($data as $key=>$val){
$panel->content.="<h2 class=\"accordion_toggle\">".$key."</h2>
<div class=\"accordion_content\"><table width=\"700px\">";
foreach($val as $v){
$panel->content.="<tr><td><strong>".$v["title"]."</strong><br /><span style=\"font-size:small;\">".$v["description"]."</span><br />".$this->get_option($v["option"],$v["name"])."</td></tr>";
}
$panel->content.="</table></div>";
}
$panel->content.="</div><br /><br />";
$panel->field(array("typ"=>"hidden","name"=>"send","value"=>1));
$panel->submit();
$panel->formClose();
$panel->foot.='<script type="text/javascript">
var bottomAccordion = new accordion(\'vertical_container\');
//bottomAccordion.activate($$(\'vertical_container .accordion_toggle\')[0]);
</script>';
}
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='<script type="text/javascript" src="/thirdparty/tiny/tiny_mce_gzip.js"></script>
<script type="text/javascript">
tinyMCE_GZ.init({
theme : "advanced",
mode : "textareas",
language : "de",
plugins : "table,advhr,advimage,advlink,insertdatetime,searchreplace",
disk_cache : true,
debug : false
});
</script>
<script type="text/javascript" src="/thirdparty/tiny/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
theme : "advanced",
mode : "textareas",
language : "de",
plugins : "table,advhr,advimage,advlink,insertdatetime,searchreplace",
theme_advanced_disable : "styleselect,formatselect ",
theme_advanced_buttons1_add : "fontselect,fontsizeselect",
theme_advanced_buttons2_add : "seperator,forecolor,removeformat,advhr",
theme_advanced_buttons3 : "tablecontrols,seperator",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
remove_linebreaks : false,
convert_urls : false,
editor_selector : "mceEditor",
editor_deselector : "mceNoEditor"
});
</script>
<script type="text/javascript" src="'.$config["path"].'/js/scriptaculous/prototype.js"></script>
<script type="text/javascript" src="'.$config["path"].'/js/scriptaculous/effects.js"></script>
<script type="text/javascript" src="'.$config["path"].'/js/scriptaculous/accordion.js"></script>';
return $meta;
}
}
?>