Changeset 1182 in ExiteCMS


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

Location:
trunk
Files:
1 added
1 deleted
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/administration/modules.php

    r1166 r1182  
    8484 
    8585            // determine to which menu panel this link needs to be added 
    86             $link_panel = ($mod_link['panel'] != "" ? ($mod_link['panel']."_") : "").'menu_panel'; 
    87  
    88             // check if this panel is installed 
    89             $result = dbquery("SELECT panel_id FROM ".$db_prefix."panels WHERE panel_filename = '$link_panel'"); 
    90             if (dbrows($result) == 0) { 
    91                 // if the panel doesn't exist, try to find another menu panel (if multiple are installed, pick the first one in the ordered list) 
    92                 $result = dbquery("SELECT panel_filename FROM ".$db_prefix."panels WHERE panel_filename LIKE '%_menu_panel' ORDER BY panel_order LIMIT 1"); 
    93                 if (dbrows($result)) { 
    94                     $data = dbarray($result); 
    95                     $link_panel = $data['panel_filename']; 
    96                 } else { 
    97                     // if still not found, fall back to the CMS default 
    98                     $link_panel = "main_menu_panel"; 
    99                 } 
     86            if (isset($mod_link['panel']) && $mod_link['panel'] != "") { 
     87                if (substr($mod_link['panel'],-4) != ".php") { 
     88                    $link_panel = $mod_link['panel']."/".$mod_link['panel'].".php"; 
     89                } 
     90                // check if this panel is installed 
     91                $result = dbquery("SELECT panel_id FROM ".$db_prefix."panels WHERE panel_filename = '$link_panel'"); 
     92                if (dbrows($result) == 0) { 
     93                    // if the panel doesn't exist, try to find another menu panel (if multiple are installed, pick the first one in the ordered list) 
     94                    $result = dbquery("SELECT panel_filename FROM ".$db_prefix."panels WHERE panel_filename LIKE '%_menu_panel.php' ORDER BY panel_order LIMIT 1"); 
     95                    if (dbrows($result)) { 
     96                        $data = dbarray($result); 
     97                        $link_panel = $data['panel_filename']; 
     98                    } else { 
     99                        // if still not found, fall back to the CMS default 
     100                        $link_panel = "main_menu_panel/main_menu_panel.php"; 
     101                    } 
     102                } 
     103            } else { 
     104                // use the CMS default 
     105                $link_panel = "main_menu_panel/main_menu_panel.php"; 
    100106            } 
    101107 
     
    213219            if ($link_url{0} == "/") $link_url = substr($link_url,1); 
    214220             
    215             // determine to which menu panel this link has been added 
    216             $link_panel = ($mod_link['panel'] != "" ? ($mod_link['panel']."_") : "").'menu_panel'; 
     221            // determine to which menu panel this link needs to be added 
     222            if (isset($mod_link['panel']) && $mod_link['panel'] != "") { 
     223                if (substr($mod_link['panel'],-4) != ".php") { 
     224                    $link_panel = $mod_link['panel']."/".$mod_link['panel'].".php"; 
     225                } 
     226                // check if this panel is installed 
     227                $result = dbquery("SELECT panel_id FROM ".$db_prefix."panels WHERE panel_filename = '$link_panel'"); 
     228                if (dbrows($result) == 0) { 
     229                    // if the panel doesn't exist, try to find another menu panel (if multiple are installed, pick the first one in the ordered list) 
     230                    $result = dbquery("SELECT panel_filename FROM ".$db_prefix."panels WHERE panel_filename LIKE '%_menu_panel.php' ORDER BY panel_order LIMIT 1"); 
     231                    if (dbrows($result)) { 
     232                        $data = dbarray($result); 
     233                        $link_panel = $data['panel_filename']; 
     234                    } else { 
     235                        // if still not found, fall back to the CMS default 
     236                        $link_panel = "main_menu_panel/main_menu_panel.php"; 
     237                    } 
     238                } 
     239            } else { 
     240                // use the CMS default 
     241                $link_panel = "main_menu_panel/main_menu_panel.php"; 
     242            } 
    217243 
    218244            // if this panel doesn't exist (anymore), use the default menu panel 
    219245            $result = dbquery("SELECT panel_id FROM ".$db_prefix."panels WHERE panel_filename = '$link_panel'"); 
    220             if (dbrows($result) == 0) $link_panel = "main_menu_panel"; 
     246            if (dbrows($result) == 0) $link_panel = "main_menu_panel/main_menu_panel.php"; 
    221247 
    222248            // check if we have a menu entry for this link 
     
    334360 
    335361            // determine to which menu panel this link needs to be added 
    336             $link_panel = ($mod_link['panel'] != "" ? ($mod_link['panel']."_") : "").'menu_panel'; 
     362            if (isset($mod_link['panel']) && $mod_link['panel'] != "") { 
     363                if (substr($mod_link['panel'],-4) != ".php") { 
     364                    $link_panel = $mod_link['panel']."/".$mod_link['panel'].".php"; 
     365                } 
     366                // check if this panel is installed 
     367                $result = dbquery("SELECT panel_id FROM ".$db_prefix."panels WHERE panel_filename = '$link_panel'"); 
     368                if (dbrows($result) == 0) { 
     369                    // if the panel doesn't exist, try to find another menu panel (if multiple are installed, pick the first one in the ordered list) 
     370                    $result = dbquery("SELECT panel_filename FROM ".$db_prefix."panels WHERE panel_filename LIKE '%_menu_panel.php' ORDER BY panel_order LIMIT 1"); 
     371                    if (dbrows($result)) { 
     372                        $data = dbarray($result); 
     373                        $link_panel = $data['panel_filename']; 
     374                    } else { 
     375                        // if still not found, fall back to the CMS default 
     376                        $link_panel = "main_menu_panel/main_menu_panel.php"; 
     377                    } 
     378                } 
     379            } else { 
     380                // use the CMS default 
     381                $link_panel = "main_menu_panel/main_menu_panel.php"; 
     382            } 
    337383 
    338384            // if the panel doesn't exist, use the default menu panel 
    339385            $result = dbquery("SELECT panel_id FROM ".$db_prefix."panels WHERE panel_filename = '$link_panel'"); 
    340             if (dbrows($result) == 0) $link_panel = "main_menu_panel"; 
     386            if (dbrows($result) == 0) $link_panel = "main_menu_panel/main_menu_panel.php"; 
    341387 
    342388            // check if the menu link is already defined 
  • 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(); 
  • trunk/administration/tools/language_pack_English.php

    r1173 r1182  
    746746    $localestrings['472'] = "Panel content not defined"; 
    747747    $localestrings['473'] = "Panel filename not defined"; 
     748    $localestrings['474'] = "Module:"; 
    748749    $localestrings['480'] = "Update Panel"; 
    749750    $localestrings['481'] = "Could not update Panel"; 
     
    24142415    $localestrings['039'] = "There are %u unread posts in %u threads."; 
    24152416    $localestrings['039a'] = "There is 1 unread post in 1 thread."; 
     2417    $localestrings['039b'] = "There are %u unread posts in 1 thread."; 
    24162418    $localestrings['040'] = "Posted by "; 
    24172419    $localestrings['041'] = "on "; 
  • trunk/administration/upgrade/rev01172.php

    r1173 r1182  
    2222// register this revision update 
    2323$revisions[] = array('revision' => $_revision,  
    24                     'date' => mktime(16,00,0,12,2,2007),  
     24                    'date' => mktime(18,00,0,12,16,2007),  
    2525                    'title' => "Required updates for ExiteCMS v7.0 rev.".$_revision, 
    2626                    'description' => "Added User Activation admin module."); 
  • trunk/files/locales

    • Property svn:ignore set to
      *.php
  • trunk/files/locales/en.main.global.php

    r1145 r1182  
    33// locale       : English 
    44// locale name  : main.global 
    5 // generated on : Wed Nov 21 2007, 16:35:07 CET 
     5// generated on : Tue Dec 25 2007, 15:30:41 CET 
    66// translators  : ExiteCMS team,WanWizard 
    77// ---------------------------------------------------------- 
     
    4141$locale['039'] = "There are %u unread posts in %u threads."; 
    4242$locale['039a'] = "There is 1 unread post in 1 thread."; 
     43$locale['039b'] = "There are %u unread posts in 1 thread."; 
    4344$locale['040'] = "Posted by "; 
    4445$locale['041'] = "on "; 
  • trunk/files/locales/en.main.setup.php

    r1106 r1182  
    11<?php 
    22// ---------------------------------------------------------- 
    3 // locale       : en 
     3// locale       : English 
    44// locale name  : main.setup 
    5 // generated on : Sat Nov 10 2007, 22:09:36 CET 
     5// generated on : Wed Nov 28 2007, 19:16:14 CET 
    66// translators  : ExiteCMS team,WanWizard 
    77// ---------------------------------------------------------- 
  • trunk/includes/dbsetup_include.php

    r1112 r1182  
    22//---------------------------------------------------------- 
    33// ExiteCMS file : dbsetup_include.php 
    4 // Date generated  : `11/11/2007 12:53` 
     4// Date generated  : `25/12/2007 15:32` 
    55//---------------------------------------------------------- 
    66 
    77define('CMS_VERSION', '7.00'); 
    8 define('CMS_REVISION', '1091'); 
     8define('CMS_REVISION', '1182'); 
    99 
    1010if ($step == 1) { 
     
    1919$result = dbquery("CREATE TABLE IF NOT EXISTS ".$db_prefix."CMSconfig ( 
    2020  `cfg_id` smallint(5) unsigned NOT NULL auto_increment, 
    21   `cfg_name` varchar(25) NOT NULL default '', 
     21  `cfg_name` varchar(50) NOT NULL default '', 
    2222  `cfg_value` text NOT NULL, 
    2323  PRIMARY KEY  (`cfg_id`) 
     
    8383  `article_cat_id` smallint(5) unsigned NOT NULL auto_increment, 
    8484  `article_cat_name` varchar(100) NOT NULL default '', 
     85  `article_cat_locale` varchar(8) NOT NULL default '', 
    8586  `article_cat_description` varchar(200) NOT NULL default '', 
    8687  `article_cat_image` varchar(100) NOT NULL default '', 
     
    106107  `article_breaks` char(1) NOT NULL default '', 
    107108  `article_name` smallint(5) unsigned NOT NULL default '1', 
     109  `article_locale` varchar(8) NOT NULL default '', 
    108110  `article_datestamp` int(10) unsigned NOT NULL default '0', 
    109111  `article_reads` smallint(5) unsigned NOT NULL default '0', 
     
    191193  `page_id` smallint(5) NOT NULL auto_increment, 
    192194  `page_title` varchar(200) NOT NULL default '', 
    193   `page_seo_url` varchar(255) NOT NULL default '', 
    194195  `page_access` tinyint(3) unsigned NOT NULL default '0', 
    195196  `page_content` text NOT NULL, 
     
    210211  `download_cat_id` smallint(5) unsigned NOT NULL auto_increment, 
    211212  `download_cat_name` varchar(100) NOT NULL default '', 
     213  `download_cat_locale` varchar(8) NOT NULL default '', 
    212214  `download_cat_description` text NOT NULL, 
    213215  `download_cat_sorting` varchar(50) NOT NULL default 'download_title ASC', 
     
    552554  `panel_id` smallint(5) unsigned NOT NULL auto_increment, 
    553555  `panel_name` varchar(100) NOT NULL default '', 
     556  `panel_locale` varchar(8) NOT NULL default '', 
    554557  `panel_filename` varchar(100) NOT NULL default '', 
    555558  `panel_code` text NOT NULL, 
     
    742745  `link_id` smallint(5) unsigned NOT NULL auto_increment, 
    743746  `link_name` varchar(100) NOT NULL default '', 
     747  `link_locale` varchar(8) NOT NULL default '', 
    744748  `link_url` varchar(200) NOT NULL default '', 
    745749  `panel_name` varchar(200) NOT NULL default '', 
  • trunk/includes/templates/admin.db_backup.tpl

    r864 r1182  
    4747    <!-- 
    4848    function tableSelectAll(){for(i=0;i<document.restoreform.elements['list_tbl[]'].length;i++){document.restoreform.elements['list_tbl[]'].options[i].selected=true;}} 
     49    function tableSelectCore(){for(i=0;i<document.restoreform.elements['list_tbl[]'].length;i++){document.restoreform.elements['list_tbl[]'].options[i].selected=(document.restoreform.elements['list_tbl[]'].options[i].text).match(/^{/literal}{$db_prefix}{literal}/);}} 
    4950    function tableSelectNone(){for(i=0;i<document.restoreform.elements['list_tbl[]'].length;i++){document.restoreform.elements['list_tbl[]'].options[i].selected=false;}} 
    5051    function populateSelectAll(){for(i=0;i<document.restoreform.elements['list_ins[]'].length;i++){document.restoreform.elements['list_ins[]'].options[i].selected=true;}} 
     52    function populateSelectCore(){for(i=0;i<document.restoreform.elements['list_ins[]'].length;i++){document.restoreform.elements['list_ins[]'].options[i].selected=(document.restoreform.elements['list_ins[]'].options[i].text).match(/^{/literal}{$db_prefix}{literal}/);}} 
    5153    function populateSelectNone(){for(i=0;i<document.restoreform.elements['list_ins[]'].length;i++){document.restoreform.elements['list_ins[]'].options[i].selected=false;}} 
    5254    //--> 
     
    5759            <tr> 
    5860                <td colspan='2' class='tbl2'> 
    59                     {$locale.430} 
     61                    <b>{$locale.430}</b> 
    6062                </td> 
    6163            </tr> 
     
    8284            </tr> 
    8385            <tr> 
    84                 <td valign='top' class='tbl'> 
     86                <td valign='top' align='center' class='tbl'> 
    8587                    {$locale.433} 
    8688                    <br /> 
    87                     <select style='width:180px;' class='textbox' id='list_tbl' name='list_tbl[]' size='{$maxrows}' multiple="multiple"> 
     89                    <select style='width:250px;' class='textbox' id='list_tbl' name='list_tbl[]' size='{$maxrows}' multiple="multiple"> 
    8890                    {foreach from=$info_tables item=table} 
    8991                        <option value='{$table}' selected="selected">{$table}</option> 
    9092                    {/foreach} 
    9193                    </select> 
    92                     <br />{$locale.435}&nbsp; 
    93                     <div style='display:inline;'> 
     94                    <br /><br />{$locale.435}&nbsp; 
     95                    <div style='display:inline;text-align:center;vertical-align:top;'> 
    9496                    <input type='button' class='button' name='{$locale.436}' value='{$locale.436}' onclick="javascript:tableSelectAll()" /> 
     97                    <input type='button' class='button' name='{$locale.458}' value='{$locale.458}' onclick="javascript:tableSelectCore()" /> 
    9598                    <input type='button' class='button' name='{$locale.437}' value='{$locale.437}' onclick="javascript:tableSelectNone()" /> 
    9699                    </div> 
    97100                </td> 
    98                 <td valign='top' class='tbl'> 
     101                <td valign='top' align='center' class='tbl'> 
    99102                    {$locale.434} 
    100103                    <br /> 
    101                     <select style='width:180px;' class='textbox' id='list_ins' name='list_ins[]' size='{$maxrows}' multiple="multiple"> 
     104                    <select style='width:250px;' class='textbox' id='list_ins' name='list_ins[]' size='{$maxrows}' multiple="multiple"> 
    102105                    {section name=id loop=$info_inserts} 
    103106                        <option value='{$info_inserts[id].id}'{if $info_inserts[id].selected} selected="selected"{/if}>{$info_inserts[id].name}</option> 
    104107                    {/section} 
    105108                    </select> 
    106                     <br />{$locale.435}&nbsp; 
    107                     <div style='display:inline;'> 
     109                    <br /><br />{$locale.435}&nbsp; 
     110                    <div style='display:inline;text-align:center;vertical-align:top;'> 
    108111                        <input type='button' class='button' name='{$locale.436}' value='{$locale.436}' onclick="javascript:populateSelectAll()" /> 
     112                        <input type='button' class='button' name='{$locale.458}' value='{$locale.458}' onclick="javascript:populateSelectCore()" /> 
    109113                        <input type='button' class='button' name='{$locale.437}' value='{$locale.437}' onclick="javascript:populateSelectNone()" /> 
    110114                    </div> 
     
    116120            </tr> 
    117121            <tr> 
    118                 <td align='left' colspan='2' class='tbl2'> 
    119                     {$locale.406} 
     122                <td align='center' colspan='2' class='tbl2'> 
     123                    <b>{$locale.406}</b> 
    120124                </td> 
    121125            </tr> 
     
    154158                    <table align='center' cellspacing='0' cellpadding='0'> 
    155159                        <tr> 
    156                             <td colspan='2' class='tbl2' align='left'> 
    157                                 {$locale.451} 
     160                            <td colspan='2' class='tbl2' align='center'> 
     161                                <b>{$locale.451}</b> 
    158162                            </td> 
    159163                        </tr> 
     
    194198                    </tr> 
    195199                    <tr> 
    196                         <td align='left' colspan='2' class='tbl2'> 
    197                             {$locale.454} 
     200                        <td colspan='2' class='tbl2' align='center'> 
     201                            <b>{$locale.454}</b> 
    198202                        </td> 
    199203                    </tr> 
     
    244248                    </tr> 
    245249                    <tr> 
    246                         <td align='left' colspan='2' class='tbl2'> 
    247                             {$locale.406} 
     250                        <td colspan='2' class='tbl2' align='center'> 
     251                            <b>{$locale.406}</b> 
    248252                        </td> 
    249253                    </tr> 
     
    262266                    <tr> 
    263267                        <td class='tbl2'> 
    264                             {$locale.457} 
     268                            <b>{$locale.457}</b> 
    265269                        </td> 
    266270                    </tr> 
     
    273277                            </select> 
    274278                            <br />{$locale.435}&nbsp; 
    275                             <div style='display:inline;text-align:center;vertical-align:middle;'> 
     279                            <div style='display:inline;text-align:center;vertical-align:top;'> 
    276280                                <input type='button' class='button' name='{$locale.458}' value='{$locale.458}' onclick="javascript:backupSelectCore()" /> 
    277281                                <input type='button' class='button' name='{$locale.436}' value='{$locale.436}' onclick="javascript:backupSelectAll()" /> 
  • trunk/includes/templates/admin.panel_editor.tpl

    r1158 r1182  
    2828            </td> 
    2929            <td class='tbl'> 
    30                 <input type='text' name='panel_name' value='{$panel_name}' class='textbox' style='width:200px;' /> 
     30                <input type='text' name='panel_name' value='{$panel_name}' class='textbox' style='width:300px;' /> 
    3131            </td> 
    3232        </tr> 
     
    3737            </td> 
    3838            <td class='tbl'> 
    39                 <select name='panel_filename' class='textbox' style='width:200px;'> 
    40                 {foreach from=$panel_list item=panel_file} 
    41                     <option{if $panel_filename == $panel_file} selected="selected"{/if}>{$panel_file}</option>               
    42                 {/foreach} 
     39                <select name='panel_filename' class='textbox' style='width:250px;'> 
     40                {section name=id loop=$panel_list} 
     41                    {if $panel_list[id].new_module} 
     42                        {if !$smarty.section.id.first}</optgroup>{/if} 
     43                        <optgroup label='{if $panel_list[id].mod_folder != ""}{$locale.474} {$panel_list[id].mod_folder}{/if}'> 
     44                        {assign var='hasvalues' value=false} 
     45                    {/if} 
     46                        <option value='{$panel_list[id].panel_filename}' {if $panel_list[id].selected}selected='selected'{/if}>{$panel_list[id].panel_name}</option> 
     47                        {assign var='hasvalues' value=true} 
     48                    {if $smarty.section.id.last && $hasvalues}</optgroup>{/if} 
     49                {/section} 
    4350                </select> 
    44                 {if $panel_id == 0}&nbsp;&nbsp;<span class='small2'>{$locale.454}</span>{/if} 
     51                {if $panel_id == 0}<br /><span class='small2'>{$locale.454}</span>{/if} 
    4552            </td> 
    4653        </tr> 
     
    5259            </td> 
    5360            <td class='tbl'> 
    54                 <textarea name='panel_code' cols='80' rows='15' class='textbox'>{$panel_code}</textarea> 
     61                <textarea name='panel_code' cols='80' rows='15' class='textbox' style='width:450px;'>{$panel_code}</textarea> 
    5562            </td> 
    5663        </tr> 
     
    6067            </td> 
    6168            <td class='tbl'> 
    62                 <textarea name='panel_template' cols='80' rows='15' class='textbox'>{$panel_template}</textarea> 
     69                <textarea name='panel_template' cols='80' rows='15' class='textbox' style='width:450px;'>{$panel_template}</textarea> 
    6370            </td> 
    6471        </tr> 
     
    8390        <tr> 
    8491            <td class='tbl'> 
     92                {$locale.462} 
     93            </td> 
     94            <td class='tbl'> 
     95                <select name='panel_state' class='textbox' style='width:150px;'> 
     96                    <option value='0'{if $panel_state == "0"} selected="selected"{/if}>{$locale.463}</option> 
     97                    <option value='1'{if $panel_state == "1"} selected="selected"{/if}>{$locale.464}</option> 
     98                </select> 
     99            </td> 
     100        </tr> 
     101        <tr> 
     102            <td class='tbl'> 
    85103                {$locale.461} 
    86104            </td> 
     
    89107                    <option value='0'{if $panel_usermod == "0"} selected="selected"{/if}>{$locale.447}</option> 
    90108                    <option value='1'{if $panel_usermod == "1"} selected="selected"{/if}>{$locale.448}</option> 
    91                 </select> 
    92             </td> 
    93         </tr> 
    94         <tr> 
    95             <td class='tbl'> 
    96                 {$locale.462} 
    97             </td> 
    98             <td class='tbl'> 
    99                 <select name='panel_state' class='textbox' style='width:150px;'> 
    100                     <option value='0'{if $panel_state == "0"} selected="selected"{/if}>{$locale.463}</option> 
    101                     <option value='1'{if $panel_state == "1"} selected="selected"{/if}>{$locale.464}</option> 
    102109                </select> 
    103110            </td> 
     
    156163<script type='text/javascript'> 
    157164    function showopts(panelside) { 
    158         if (panelside == 1 || panelside == 4) { 
     165        if (panelside == 2 || panelside == 3) { 
     166            document.getElementById('panelopts').style.display = 'block'; 
     167        } else { 
    159168            document.getElementById('panelopts').style.display = 'none'; 
    160         } else { 
    161             document.getElementById('panelopts').style.display = 'block'; 
    162169        } 
    163170    } 
  • trunk/includes/templates/forum.renderpost.tpl

    r1159 r1182  
    2121    </tr> 
    2222    <tr> 
    23         <td width='140' class='tbl_top_left'> 
     23        <td width='140' class='tbl_top_left' style='white-space:nowrap'> 
    2424            {$posts[pid].post_datestamp|date_format:"forumdate"} 
    2525        </td> 
  • trunk/includes/theme_functions.php

    r1158 r1182  
    4949        // set the compile ID for this website/theme (themes can have different templates!) 
    5050        if (isset($userdata['user_theme']) && $userdata['user_theme'] != "Default") { 
    51             $this->compile_id = $_SERVER['SERVER_NAME'].".".$userdata['user_theme']; 
     51            $this->compile_id = $_SERVER['SERVER_NAME']."~".$userdata['user_theme']; 
    5252        } else { 
    53             $this->compile_id = $_SERVER['SERVER_NAME'].".".$settings['theme']; 
     53            $this->compile_id = $_SERVER['SERVER_NAME']."~".$settings['theme']; 
    5454        } 
    5555         
     
    8484        $_return = $auto_base . DIRECTORY_SEPARATOR; 
    8585 
    86         if(isset($auto_id)) { 
    87             // make auto_id safe for directory names 
    88             $auto_id = str_replace('%7C',$_compile_dir_sep,(urlencode($auto_id))); 
    89         } 
    90  
    9186        if(isset($auto_source)) { 
    9287            // make source name safe for filename 
     
    9590                $auto_source = md5($auto_source); 
    9691            } 
    97             $_crc32 = sprintf('%08X', crc32($auto_source)); 
    98             // prepend %% to avoid name conflicts with 
    99             // with $params['auto_id'] names 
    100             $_crc32 = substr($_crc32, 0, 2) . $_compile_dir_sep . 
    101                       substr($_crc32, 0, 3) . $_compile_dir_sep . $_crc32; 
     92            $_return .= $auto_source."~"; 
    10293        } 
    103         return $_return.(isset($auto_source)?($auto_source."."):"").(isset($auto_id)?($auto_id."."):"").(isset($_crc32)?$_crc32:""); 
     94 
     95        if(isset($auto_id)) { 
     96            // make auto_id safe for directory names 
     97            $auto_id = str_replace('%7C',$_compile_dir_sep,(urlencode($auto_id))); 
     98            $auto_id = str_replace('%7E','~',$auto_id); 
     99            $_return .= $auto_id; 
     100        } 
     101 
     102        return $_return; 
    104103    } 
    105104 
     
    357356                $_panel['type'] = $column; 
    358357                $_panel['title'] = $p_data['panel_name']; 
    359                 $_panel['name'] = 'modules.'.$p_data['panel_filename']; 
    360358                $_panel['panel_type'] = $p_data['panel_type']; 
    361359                switch($p_data['panel_type']) { 
    362360                    case "file": 
    363                         $_panel['template'] = 'modules.'.$p_data['panel_filename'].".tpl"; 
    364                         $_panel['panel_code'] = PATH_MODULES.$p_data['panel_filename']."/".$p_data['panel_filename'].".php"; 
     361                        // check for module directory for backward compatibility 
     362                        if (@is_dir(PATH_MODULES.$p_data['panel_filename'])) { 
     363                            $_panel['name'] = 'modules.'.$p_data['panel_filename']; 
     364                            $_panel['template'] = 'modules.'.$p_data['panel_filename'].".tpl"; 
     365                            $_panel['panel_code'] = PATH_MODULES.$p_data['panel_filename']."/".$p_data['panel_filename'].".php"; 
     366                        } else { 
     367                            $_panel['template'] = 'modules.'.substr(basename($p_data['panel_filename']),0,-4).".tpl"; 
     368                            $_panel['name'] = 'modules.'.substr(basename($p_data['panel_filename']),0,-4); 
     369                            $_panel['panel_code'] = PATH_MODULES.$p_data['panel_filename']; 
     370                        } 
    365371                        break; 
    366372                    case "dynamic": 
  • trunk/includes/user_functions.php

    r1158 r1182  
    102102                define("PATH_THEME", PATH_THEMES.$settings['theme']."/"); 
    103103                define("THEME", THEMES.$settings['theme']."/"); 
     104                // make sure the default theme exists! 
     105                if (!file_exists(PATH_THEMES.$settings['theme']."/theme.php")) { 
     106                    die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>FATAL ERROR: Unable to load the default theme</b></div>"); 
     107                } 
    104108            } 
    105109            if ($userdata['user_offset'] <> 0) { 
  • trunk/themes/ExiteCMS/templates/templates/_stylesheets.tpl

    r1135 r1182  
    3636                        /* horizontal lines */ 
    3737hr                      { border:none; color:#bbb; background-color:#bbb; height:1px; } 
     38 
     39                        /* dropdowns with options */ 
     40optgroup                { padding-bottom:5px; font-style:normal; } 
    3841 
    3942/* --- HTML form settings ---------------------------------- */ 
     
    7780 
    7881                        /* title bars within a panel */ 
    79 .infobar                { font-weight:normal; font-family:"trebuchet ms", Verdana, Arial, Sans-serif; color:#333; background-color:#eee; padding:3px 4px 3px 4px; } 
     82.infobar                { font-weight:normal; font-family:"trebuchet ms", Verdana, Arial, Sans-serif; color:#333; background-color:#ddd; padding:3px 4px 3px 4px; } 
    8083 
    8184/* --- Browser window centered div ------------------------- */ 
     
    110113 
    111114                        /* labels and separators in side panels */ 
    112 .side-label             { color:#333; background-color:#eee; margin:2px 0px 2px 0px; padding:1px 0px 1px 8px; white-space:nowrap;overflow:hidden; } 
     115.side-label             { color:#333; background-color:#ddd; margin:2px 0px 2px 0px; padding:1px 0px 1px 8px; white-space:nowrap;overflow:hidden; } 
    113116 
    114117                        /* labels and separators in body panels */ 
    115 .main-label             { color:#333; background-color:#eee; padding:4px 4px 4px 4px; margin:0px 0px 5px 0px; white-space:nowrap;overflow:hidden; } 
     118.main-label             { color:#333; background-color:#ddd; padding:4px 4px 4px 4px; margin:0px 0px 5px 0px; white-space:nowrap;overflow:hidden; } 
    116119 
    117120                        /* links in side panels */ 
Note: See TracChangeset for help on using the changeset viewer.