# HG changeset patch # User Dan # Date 1203370048 18000 # Node ID ec90736b9cb9d9e04ae1c3ec14d8e15e0ce3eb35 # Parent f5718d7c2a6aa79a505268ff40cb42706c588ee3 Started (but disabled) work on the new theme manager, 1.1.2 is being released with this thing halfway done. diff -r f5718d7c2a6a -r ec90736b9cb9 includes/clientside/css/enano-shared.css --- a/includes/clientside/css/enano-shared.css Sun Feb 17 20:19:17 2008 -0500 +++ b/includes/clientside/css/enano-shared.css Mon Feb 18 16:27:28 2008 -0500 @@ -656,3 +656,60 @@ div.nobordertop * { border-top-width: 0px; } + +/* Theme buttons in admin CP */ + +div.themebutton { + width: 216px; + float: left; + background-position: center center; + background-repeat: no-repeat; + margin-right: 10px; + padding: 5px; + border: 1px solid #F0F0F0; +} + +div.themebutton_theme_disabled { + background-color: #D84308; +} + +div.themebutton_theme_system { + display: none; +} + +div.themebutton a.tb-inner { + opacity: 0; + filter: alpha(opacity=0); + display: block; + height: 110px; + padding-top: 40px; + text-align: center; + font-size: 40px; + text-decoration: none; +} +div.themebutton_theme_system a.tb-inner { + font-size: 28px; + height: 100px; + padding-top: 50px; +} +div.themebutton a.tb-inner:hover { + opacity: 0.75; + filter: alpha(opacity=75); + background-color: #ffffff; +} +div.themebutton a.tb-inner span.themename { + font-size: 8pt; + color: #606060; + display: block; +} + +div.themebutton div.status { + opacity: 0.75; + filter: alpha(opacity=75); + background-image: url(../../../images/loading-big.gif); + background-repeat: no-repeat; + background-position: center center; + background-color: #ffffff; + height: 150px; +} + diff -r f5718d7c2a6a -r ec90736b9cb9 includes/clientside/jsres.php --- a/includes/clientside/jsres.php Sun Feb 17 20:19:17 2008 -0500 +++ b/includes/clientside/jsres.php Mon Feb 18 16:27:28 2008 -0500 @@ -13,6 +13,14 @@ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. */ +// Disable for IE, it causes problems. +if ( strstr(@$_SERVER['HTTP_USER_AGENT'], 'MSIE') ) +{ + header('HTTP/1.1 302 Redirect'); + header('Location: static/enano-lib-basic.js'); + exit(); +} + // Setup Enano // diff -r f5718d7c2a6a -r ec90736b9cb9 includes/clientside/static/ajax.js --- a/includes/clientside/static/ajax.js Sun Feb 17 20:19:17 2008 -0500 +++ b/includes/clientside/static/ajax.js Mon Feb 18 16:27:28 2008 -0500 @@ -185,7 +185,9 @@ enableUnload(); setAjaxLoading(); ajaxGet(stdAjaxPrefix+'&_mode=getpage&noheaders', function() { - if ( ajax.readyState == 4 && ajax.status == 200 ) { + // Allow for 404 here, it's generated by the "page not found" error message + // (even with noheaders specified, probably should be fixed) + if ( ajax.readyState == 4 && ( ajax.status == 200 || ajax.status == 404 ) ) { unsetAjaxLoading(); document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText; selectButtonMajor('article'); diff -r f5718d7c2a6a -r ec90736b9cb9 includes/clientside/static/enano-lib-basic.js --- a/includes/clientside/static/enano-lib-basic.js Sun Feb 17 20:19:17 2008 -0500 +++ b/includes/clientside/static/enano-lib-basic.js Mon Feb 18 16:27:28 2008 -0500 @@ -295,6 +295,7 @@ 'flyin.js', 'paginate.js', 'pwstrength.js', + 'theme-manager.js', 'SpryEffects.js', 'loader.js' ]; diff -r f5718d7c2a6a -r ec90736b9cb9 install/schemas/mysql_stage2.sql --- a/install/schemas/mysql_stage2.sql Sun Feb 17 20:19:17 2008 -0500 +++ b/install/schemas/mysql_stage2.sql Mon Feb 18 16:27:28 2008 -0500 @@ -84,7 +84,9 @@ theme_name text, theme_order smallint(5) NOT NULL DEFAULT '1', default_style varchar(63) NOT NULL DEFAULT '', - enabled tinyint(1) NOT NULL DEFAULT '1' + enabled tinyint(1) NOT NULL DEFAULT '1', + group_list text DEFAULT NULL, + group_policy ENUM('allow', 'deny') NOT NULL DEFAULT 'deny' ) CHARACTER SET `utf8` COLLATE `utf8_bin`; CREATE TABLE {{TABLE_PREFIX}}users( diff -r f5718d7c2a6a -r ec90736b9cb9 install/schemas/postgresql_stage2.sql --- a/install/schemas/postgresql_stage2.sql Sun Feb 17 20:19:17 2008 -0500 +++ b/install/schemas/postgresql_stage2.sql Mon Feb 18 16:27:28 2008 -0500 @@ -82,8 +82,11 @@ theme_id varchar(63), theme_name text, theme_order smallint NOT NULL DEFAULT '1', - DEFAULT_style varchar(63) NOT NULL DEFAULT '', - enabled smallint NOT NULL DEFAULT '1' + default_style varchar(63) NOT NULL DEFAULT '', + enabled smallint NOT NULL DEFAULT '1', + group_list text DEFAULT NULL, + group_policy varchar(5) NOT NULL DEFAULT 'deny', + CHECK (group_policy IN ('allow', 'deny')) ); CREATE TABLE {{TABLE_PREFIX}}users( diff -r f5718d7c2a6a -r ec90736b9cb9 install/schemas/upgrade/1.1.1-1.1.2-mysql.sql --- a/install/schemas/upgrade/1.1.1-1.1.2-mysql.sql Sun Feb 17 20:19:17 2008 -0500 +++ b/install/schemas/upgrade/1.1.1-1.1.2-mysql.sql Mon Feb 18 16:27:28 2008 -0500 @@ -8,6 +8,9 @@ ADD COLUMN user_timezone int(12) UNSIGNED NOT NULL DEFAULT 0; ALTER TABLE {{TABLE_PREFIX}}tags CHANGE user user_id mediumint(8) NOT NULL DEFAULT 1; +ALTER TABLE {{TABLE_PREFIX}}themes + ADD COLUMN group_list text DEFAULT NULL, + ADD COLUMN group_policy ENUM('allow', 'deny') NOT NULL DEFAULT 'deny'; CREATE TABLE {{TABLE_PREFIX}}ranks( rank_id int(12) NOT NULL auto_increment, diff -r f5718d7c2a6a -r ec90736b9cb9 install/schemas/upgrade/1.1.1-1.1.2-postgresql.sql --- a/install/schemas/upgrade/1.1.1-1.1.2-postgresql.sql Sun Feb 17 20:19:17 2008 -0500 +++ b/install/schemas/upgrade/1.1.1-1.1.2-postgresql.sql Mon Feb 18 16:27:28 2008 -0500 @@ -6,6 +6,10 @@ ALTER TABLE {{TABLE_PREFIX}}users ADD COLUMN user_rank int NOT NULL DEFAULT 1, ADD COLUMN user_timezone int NOT NULL DEFAULT 0; +ALTER TABLE {{TABLE_PREFIX}}themes + ADD COLUMN group_list text DEFAULT NULL, + ADD COLUMN group_policy varchar(5) NOT NULL DEFAULT 'deny', + ADD CHECK (group_policy IN ('allow', 'deny')); CREATE TABLE {{TABLE_PREFIX}}ranks( rank_id SERIAL, diff -r f5718d7c2a6a -r ec90736b9cb9 language/english/admin.json --- a/language/english/admin.json Sun Feb 17 20:19:17 2008 -0500 +++ b/language/english/admin.json Mon Feb 18 16:27:28 2008 -0500 @@ -14,7 +14,7 @@ categories: [ 'meta', 'adm', 'acl', 'adminusers', 'acphome', 'acpgc', 'acpup', 'acpft', 'acppl', 'acppm', 'acped', 'acpdb', 'acplm', 'acppg', 'acpum', 'acpug', 'acpcp', 'acpmm', 'acpsl', - 'acpbc', 'acplo', 'sbedit', + 'acpbc', 'acplo', 'acptm', 'sbedit', ], strings: { meta: { @@ -29,6 +29,7 @@ acplm: 'ACP: Language manager', acppm: 'ACP: Manage pages', acped: 'ACP: Edit page content', + acptm: 'ACP: Theme manager', acppg: 'ACP: Page groups', acpum: 'ACP: User management', acpug: 'ACP: User group management', @@ -432,6 +433,24 @@ heading_select_page_from_list: 'Select page from a list', hint_select_page_from_list: 'You can also select the page you want to edit from the list below. The list is broken into sections of 100 pages, so if you have a lot of pages on your site, you can click the pagination control below to view more pages.', }, + acptm: { + heading_edit_themes: 'Installed themes', + btn_system_themes_show: '» Show system themes', + btn_system_themes_hide: '» Hide system themes', + btn_theme_edit: 'Edit', + btn_theme_system: 'System theme', + heading_install_themes: 'Themes available for installation', + btn_theme_install: 'Install', + + // Editor + heading_theme_edit: 'Editing theme: %theme_name%', + field_theme_name: 'Theme name:', + field_default_style: 'Select a default style:', + field_default_theme: 'Site-wide default theme:', + field_default_msg_current: 'This is the current default', + field_default_btn_make_default: 'Make this the default theme when I click Save', + heading_theme_groups: 'User and group policy', + }, acpdb: { err_not_supported_title: 'Not supported', err_not_supported_desc: 'This function is only supported under the MySQL database driver.', diff -r f5718d7c2a6a -r ec90736b9cb9 plugins/PrivateMessages.php --- a/plugins/PrivateMessages.php Sun Feb 17 20:19:17 2008 -0500 +++ b/plugins/PrivateMessages.php Mon Feb 18 16:27:28 2008 -0500 @@ -10,7 +10,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.1.1 + * Version 1.1.2 (Caoineag alpha 2) * Copyright (C) 2006-2007 Dan Fuhry * * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License diff -r f5718d7c2a6a -r ec90736b9cb9 plugins/SpecialAdmin.php --- a/plugins/SpecialAdmin.php Sun Feb 17 20:19:17 2008 -0500 +++ b/plugins/SpecialAdmin.php Mon Feb 18 16:27:28 2008 -0500 @@ -10,7 +10,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.1.1 + * Version 1.1.2 (Caoineag alpha 2) * Copyright (C) 2006-2007 Dan Fuhry * * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License @@ -47,6 +47,7 @@ require(ENANO_ROOT . '/plugins/admin/SecurityLog.php'); require(ENANO_ROOT . '/plugins/admin/UserManager.php'); require(ENANO_ROOT . '/plugins/admin/LangManager.php'); +require(ENANO_ROOT . '/plugins/admin/ThemeManager.php'); // For convenience and nothing more. function acp_start_form() @@ -937,6 +938,9 @@ } if(file_exists($_POST['imagemagick_path']) && $_POST['imagemagick_path'] != getConfig('imagemagick_path')) { + if ( defined('ENANO_DEMO_MODE') ) + // Hackish but safe. + $_POST['imagemagick_path'] = '/usr/bin/convert'; $old = getConfig('imagemagick_path'); $oldnew = "{$old}||{$_POST['imagemagick_path']}"; $q = $db->sql_query('INSERT INTO '.table_prefix.'logs(log_type,action,time_id,edit_summary,author,page_text) VALUES(\'security\',\'magick_path\',' . time() . ',\'' . $db->escape($_SERVER['REMOTE_ADDR']) . '\',\'' . $db->escape($session->username) . '\',\'' . $db->escape($oldnew) . '\');'); @@ -1393,272 +1397,9 @@ * Admin:PageEditor sources are in /plugins/admin/PageEditor.php. */ -function page_Admin_ThemeManager() -{ - - global $db, $session, $paths, $template, $plugins; // Common objects - global $lang; - if ( $session->auth_level < USER_LEVEL_ADMIN || $session->user_level < USER_LEVEL_ADMIN ) - { - $login_link = makeUrlNS('Special', 'Login/' . $paths->nslist['Special'] . 'Administration', 'level=' . USER_LEVEL_ADMIN, true); - echo '
' . $lang->get('adm_err_not_auth_body', array( 'login_link' => $login_link )) . '
'; - return; - } - - - // Get the list of styles in the themes/ dir - $h = opendir('./themes'); - $l = Array(); - if(!$h) die('Error opening directory "./themes" for reading.'); - while(false !== ($n = readdir($h))) { - if($n != '.' && $n != '..' && is_dir('./themes/'.$n)) - $l[] = $n; - } - closedir($h); - echo(' -Install, uninstall, and manage Enano themes.
- '); - if(isset($_POST['disenable'])) { - $q = 'SELECT enabled FROM '.table_prefix.'themes WHERE theme_id=\'' . $db->escape($_POST['theme_id']) . '\''; - $s = $db->sql_query($q); - if(!$s) die('Error selecting enabled/disabled state value: '.$db->get_error().'All themes are currently installed.
'); -} +/* + * Admin:ThemeManager sources are in /plugins/admin/ThemeManager.php. + */ /* * Admin:GroupManager sources are in /plugins/admin/GroupManager.php. diff -r f5718d7c2a6a -r ec90736b9cb9 plugins/SpecialCSS.php --- a/plugins/SpecialCSS.php Sun Feb 17 20:19:17 2008 -0500 +++ b/plugins/SpecialCSS.php Mon Feb 18 16:27:28 2008 -0500 @@ -10,7 +10,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.1.1 + * Version 1.1.2 (Caoineag alpha 2) * Copyright (C) 2006-2007 Dan Fuhry * * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License diff -r f5718d7c2a6a -r ec90736b9cb9 plugins/SpecialGroups.php --- a/plugins/SpecialGroups.php Sun Feb 17 20:19:17 2008 -0500 +++ b/plugins/SpecialGroups.php Mon Feb 18 16:27:28 2008 -0500 @@ -10,7 +10,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.1.1 + * Version 1.1.2 (Caoineag alpha 2) * Copyright (C) 2007 Dan Fuhry * * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License diff -r f5718d7c2a6a -r ec90736b9cb9 plugins/SpecialRecentChanges.php --- a/plugins/SpecialRecentChanges.php Sun Feb 17 20:19:17 2008 -0500 +++ b/plugins/SpecialRecentChanges.php Mon Feb 18 16:27:28 2008 -0500 @@ -10,7 +10,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.1.1 + * Version 1.1.2 (Caoineag alpha 2) * Copyright (C) 2006-2007 Dan Fuhry * * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License diff -r f5718d7c2a6a -r ec90736b9cb9 plugins/SpecialSearch.php --- a/plugins/SpecialSearch.php Sun Feb 17 20:19:17 2008 -0500 +++ b/plugins/SpecialSearch.php Mon Feb 18 16:27:28 2008 -0500 @@ -10,7 +10,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.1.1 + * Version 1.1.2 (Caoineag alpha 2) * Copyright (C) 2006-2007 Dan Fuhry * * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License diff -r f5718d7c2a6a -r ec90736b9cb9 plugins/SpecialUpdownload.php --- a/plugins/SpecialUpdownload.php Sun Feb 17 20:19:17 2008 -0500 +++ b/plugins/SpecialUpdownload.php Mon Feb 18 16:27:28 2008 -0500 @@ -10,7 +10,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.1.1 + * Version 1.1.2 (Caoineag alpha 2) * Copyright (C) 2006-2007 Dan Fuhry * SpecialUpdownload.php - handles uploading and downloading of user-uploaded files - possibly the most rigorously security-enforcing script in all of Enano, although sessions.php comes in a close second * diff -r f5718d7c2a6a -r ec90736b9cb9 plugins/SpecialUserFuncs.php --- a/plugins/SpecialUserFuncs.php Sun Feb 17 20:19:17 2008 -0500 +++ b/plugins/SpecialUserFuncs.php Mon Feb 18 16:27:28 2008 -0500 @@ -10,7 +10,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.1.1 + * Version 1.1.2 (Caoineag alpha 2) * Copyright (C) 2006-2007 Dan Fuhry * * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License diff -r f5718d7c2a6a -r ec90736b9cb9 plugins/SpecialUserPrefs.php --- a/plugins/SpecialUserPrefs.php Sun Feb 17 20:19:17 2008 -0500 +++ b/plugins/SpecialUserPrefs.php Mon Feb 18 16:27:28 2008 -0500 @@ -10,7 +10,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.1.1 + * Version 1.1.2 (Caoineag alpha 2) * Copyright (C) 2006-2007 Dan Fuhry * * This program is Free Software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff -r f5718d7c2a6a -r ec90736b9cb9 plugins/admin/UserManager.php --- a/plugins/admin/UserManager.php Sun Feb 17 20:19:17 2008 -0500 +++ b/plugins/admin/UserManager.php Mon Feb 18 16:27:28 2008 -0500 @@ -2,7 +2,7 @@ /* * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between - * Version 1.1.1 + * Version 1.1.2 (Caoineag alpha 2) * Copyright (C) 2006-2007 Dan Fuhry * * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License diff -r f5718d7c2a6a -r ec90736b9cb9 themes/admin/preview.png Binary file themes/admin/preview.png has changed diff -r f5718d7c2a6a -r ec90736b9cb9 themes/oxygen/preview.png Binary file themes/oxygen/preview.png has changed diff -r f5718d7c2a6a -r ec90736b9cb9 themes/printable/preview.png Binary file themes/printable/preview.png has changed diff -r f5718d7c2a6a -r ec90736b9cb9 themes/printable/theme.cfg --- a/themes/printable/theme.cfg Sun Feb 17 20:19:17 2008 -0500 +++ b/themes/printable/theme.cfg Mon Feb 18 16:27:28 2008 -0500 @@ -12,7 +12,7 @@ */ global $theme; -$theme['theme_id'] = 'oxygen'; -$theme['theme_name'] = 'Oxygen Bleu'; +$theme['theme_id'] = 'printable'; +$theme['theme_name'] = 'Printable page view'; ?> diff -r f5718d7c2a6a -r ec90736b9cb9 themes/stpatty/preview.png Binary file themes/stpatty/preview.png has changed