Changeset 1182 in ExiteCMS for trunk/administration/panel_editor.php


Ignore:
Timestamp:
12/25/07 17:32:57 (4 years ago)
Author:
hverton
Message:

added support for multiple panels per module
updated English locale file
update dbsetup_include.php
files in the template cache now have a more logical name
after login, check if the user theme exists before selecting it. If not, fall back to the site default. If this theme doesn't exist either, terminate with an error message
new CSS tag for optgroups

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/administration/panel_editor.php

    r1158 r1182  
    5252} 
    5353 
    54 // make a list of all installed module panels 
     54// scan all installed modules and make a list of available panels 
    5555$panel_list = array(); 
    56 $result = dbquery("SELECT mod_folder FROM ".$db_prefix."modules WHERE mod_folder like '%_panel'"); 
     56$current_folder = ""; 
     57$result = dbquery("SELECT mod_folder FROM ".$db_prefix."modules ORDER BY mod_folder"); 
    5758while ($data = dbarray($result)) { 
    58     $panel_list[] = $data['mod_folder']; 
    59 } 
    60 sort($panel_list); array_unshift($panel_list, "none"); 
     59    // get the list of panel php files in the module directory 
     60    foreach(glob(PATH_MODULES.$data['mod_folder']."/*_panel.php") as $panelname) { 
     61        if ($data['mod_folder'] != $current_folder) { 
     62            $data['new_module'] = true; 
     63            $current_folder = $data['mod_folder']; 
     64        } else { 
     65            $data['new_module'] = false; 
     66        } 
     67        $data['selected'] = false; 
     68        $data['panel_name'] = basename($panelname, ".php"); 
     69        $data['panel_filename'] = $data['mod_folder']."/".$data['panel_name'].".php"; 
     70        $panel_list[] = $data; 
     71    } 
     72} 
     73array_unshift($panel_list, array('mod_folder' => "", 'new_module' => true, 'panel_name' => "", 'panel_filename' => "", 'selected' => false)); 
    6174 
    6275if (isset($_POST['save'])) { 
    63  
    6476    $error = ""; 
    6577    $panel_usermod = $_POST['panel_usermod']; 
     
    6779    $panel_name = stripinput($_POST['panel_name']); 
    6880    if ($panel_name == "") $error .= $locale['470']."<br>"; 
    69     if ($_POST['panel_filename'] == "none") { 
     81    if ($_POST['panel_filename'] == "") { 
    7082        $panel_filename = ""; 
    7183        $panel_code = addslash($_POST['panel_code']); 
     
    120132        } 
    121133        if ($panel_type == "dynamic" && $panel_template == "") $error .= $locale['472']."<br>"; 
    122         if ($panel_type == "file" && $panel_filename == "none") $error .= $locale['473']."<br>"; 
     134        if ($panel_type == "file" && $panel_filename == "") $error .= $locale['473']."<br>"; 
    123135        if ($error == "") { 
    124136            $result = dbquery("SELECT * FROM ".$db_prefix."panels WHERE panel_side='$panel_side'".($where!=""?(" AND ".$where):"")." ORDER BY panel_order DESC LIMIT 1"); 
     
    146158    if (isset($_POST['preview'])) { 
    147159        $panel_name = stripinput($_POST['panel_name']); 
    148         $panel_filename = $_POST['panel_filename']; 
     160        $panel_filename = stripinput($_POST['panel_filename']); 
    149161        $panel_code = isset($_POST['panel_code']) ? $_POST['panel_code'] : ""; 
    150162        $panel_template = isset($_POST['panel_template']) ? $_POST['panel_template'] : ""; 
     
    157169        $panel_code = stripslash($panel_code); 
    158170        $panel_template = stripslash($panel_template); 
    159         if ($panel_filename == "none") { 
     171        if ($panel_filename == "") { 
    160172            $panel_type = "dynamic"; 
    161173            eval($panel_code); 
     
    175187        } else { 
    176188            $panel_type = "file"; 
    177             @include PATH_MODULES.$panel_filename."/".$panel_filename.".php"; 
     189            @include PATH_MODULES.$panel_filename; 
    178190            if ($panel_side == 0) { 
    179                 $template_panels[] = array('type' => 'header', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".$panel_filename.".tpl"); 
     191                $template_panels[] = array('type' => 'header', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".basename($panel_filename,".php").".tpl"); 
    180192            } if ($panel_side == 1) { 
    181                 $template_panels[] = array('type' => 'left', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".$panel_filename.".tpl"); 
     193                $template_panels[] = array('type' => 'left', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".basename($panel_filename,".php").".tpl"); 
    182194            } elseif ($panel_side == 2) { 
    183                 $template_panels[] = array('type' => 'upper', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".$panel_filename.".tpl"); 
     195                $template_panels[] = array('type' => 'upper', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".basename($panel_filename,".php").".tpl"); 
    184196            } elseif ($panel_side == 3) { 
    185                 $template_panels[] = array('type' => 'lower', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".$panel_filename.".tpl"); 
     197                $template_panels[] = array('type' => 'lower', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".basename($panel_filename,".php").".tpl"); 
    186198            } elseif ($panel_side == 4) { 
    187                 $template_panels[] = array('type' => 'right', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".$panel_filename.".tpl"); 
     199                $template_panels[] = array('type' => 'right', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".basename($panel_filename,".php").".tpl"); 
    188200            } elseif ($panel_side == 5) { 
    189                 $template_panels[] = array('type' => 'footer', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".$panel_filename.".tpl"); 
     201                $template_panels[] = array('type' => 'footer', 'name' => 'admin.panel_editor.preview', 'title' => $panel_name, 'state' => ($panel_state == 2 ? 0 : $panel_state), 'template' => "modules.".basename($panel_filename,".php").".tpl"); 
    190202            } 
    191203        } 
     
    201213            $data = dbarray($result); 
    202214            $panel_name = $data['panel_name']; 
     215            $panel_type = $data['panel_type']; 
    203216            $panel_filename = $data['panel_filename']; 
     217            if ($panel_type == "file" && @is_dir(PATH_MODULES.$panel_filename)) { 
     218                $panel_filename = $panel_filename."/".$panel_filename; 
     219            } 
    204220            $panel_code = phpentities(stripslashes($data['panel_code'])); 
    205221            $panel_template = phpentities(stripslashes($data['panel_template'])); 
    206             $panel_type = $data['panel_type']; 
    207222            $panel_access = $data['panel_access']; 
    208223            $panel_side = $data['panel_side']; 
     
    218233    $action = FUSION_SELF.$aidlink."&amp;panel_id=$panel_id"; 
    219234    $title = $locale['450']; 
    220     $panelon = ""; 
    221     $panelopts = ""; 
     235//  $panelon = ""; 
     236//  $panelopts = ""; 
    222237} else { 
    223238    $action = FUSION_SELF.$aidlink; 
     
    237252    } 
    238253} 
     254 
     255// 
     256foreach ($panel_list as $key => $value) { 
     257    if ($value['panel_filename'] == $panel_filename) { 
     258        $panel_list[$key]['selected'] = true; 
     259        break; 
     260    } 
     261}  
    239262$variables['action'] = $action; 
    240263$variables['panel_id'] = isset($panel_id) ? $panel_id : 0; 
     
    251274$variables['panelopts'] = $panelopts; 
    252275$variables['panelon'] = $panelon; 
    253  
     276//  
    254277$user_groups = getusergroups(); 
    255278$variables['user_groups'] = array(); 
Note: See TracChangeset for help on using the changeset viewer.