From c0f398554a8c14501a4668eb2e8570f9390e636e Mon Sep 17 00:00:00 2001
From: Chad Kieffer
Date: Thu, 9 Dec 2010 21:59:23 -0700
Subject: Fixed path to loading-small.gif. Thanks serged!
---
themes/admin_wind/css/screen.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'themes')
diff --git a/themes/admin_wind/css/screen.css b/themes/admin_wind/css/screen.css
index 273ac116..7d491cb7 100644
--- a/themes/admin_wind/css/screen.css
+++ b/themes/admin_wind/css/screen.css
@@ -759,7 +759,7 @@ form .g-error {
}
.g-loading-small {
- background: #e8e8e8 url('..lib/images/loading-small.gif') no-repeat center center !important;
+ background: #e8e8e8 url('../images/loading-small.gif') no-repeat center center !important;
}
/** *******************************************************************
--
cgit v1.2.3
From c989981041e66e336f1410b651173305ab184aba Mon Sep 17 00:00:00 2001
From: Bharat Mediratta
Date: Fri, 24 Dec 2010 00:38:25 -0800
Subject: Use the item title wherever possible as the page title and get rid of
the "Browse Album" text which shows up way too much. Fixes #1520.
---
themes/wind/views/page.html.php | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
(limited to 'themes')
diff --git a/themes/wind/views/page.html.php b/themes/wind/views/page.html.php
index b3379416..5d0985e7 100644
--- a/themes/wind/views/page.html.php
+++ b/themes/wind/views/page.html.php
@@ -9,17 +9,11 @@
= $page_title ?>
else: ?>
if ($theme->item()): ?>
- if ($theme->item()->is_album()): ?>
- = t("Browse Album :: %album_title", array("album_title" => $theme->item()->title)) ?>
- elseif ($theme->item()->is_photo()): ?>
- = t("Photo :: %photo_title", array("photo_title" => $theme->item()->title)) ?>
- else: ?>
- = t("Movie :: %movie_title", array("movie_title" => $theme->item()->title)) ?>
- endif ?>
+ = $theme->item()->title ?>
elseif ($theme->tag()): ?>
- = t("Browse Tag :: %tag_title", array("tag_title" => $theme->tag()->name)) ?>
+ = t("Photos tagged with %tag_title", array("tag_title" => $theme->tag()->name)) ?>
else: /* Not an item, not a tag, no page_title specified. Help! */ ?>
- = t("Gallery") ?>
+ = item::root()->title ?>
endif ?>
endif ?>
--
cgit v1.2.3
From dd6da5e2333023895a4a76786910f4bdf7e395c8 Mon Sep 17 00:00:00 2001
From: Bharat Mediratta
Date: Wed, 29 Dec 2010 11:59:44 -0800
Subject: Add a minified version of json2.js from
https://github.com/douglascrockford/JSON-js/blob/master/json2.js by Douglas
Crockford at 8d11dc6950eafc7d01f141ce91d4f585caa29f3b. Fixes #1351.
---
lib/json2-min.js | 39 +++++++++++++++++++++++++++++++++++++++
themes/wind/views/page.html.php | 1 +
2 files changed, 40 insertions(+)
create mode 100644 lib/json2-min.js
(limited to 'themes')
diff --git a/lib/json2-min.js b/lib/json2-min.js
new file mode 100644
index 00000000..988ab6f2
--- /dev/null
+++ b/lib/json2-min.js
@@ -0,0 +1,39 @@
+/*
+ http://www.JSON.org/json2.js
+ 2010-11-17
+
+ Public Domain.
+
+ NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
+
+ See http://www.JSON.org/js.html
+*/
+
+if(!this.JSON){this.JSON={};}
+(function(){"use strict";function f(n){return n<10?'0'+n:n;}
+if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+'-'+
+f(this.getUTCMonth()+1)+'-'+
+f(this.getUTCDate())+'T'+
+f(this.getUTCHours())+':'+
+f(this.getUTCMinutes())+':'+
+f(this.getUTCSeconds())+'Z':null;};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}
+var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}
+function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}
+if(typeof rep==='function'){value=rep.call(holder,key,value);}
+switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}
+gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i
endif ?>
endif ?>
+ = $theme->script("json2-min.js") ?>
= $theme->script("jquery.js") ?>
= $theme->script("jquery.form.js") ?>
= $theme->script("jquery-ui.js") ?>
--
cgit v1.2.3
From e760200eeec2f003f95072118a6cc52971c76dad Mon Sep 17 00:00:00 2001
From: Bharat Mediratta
Date: Fri, 31 Dec 2010 22:49:57 -0800
Subject: Identify the case where the active sidebar blocks didn't produce any
content and print out a more informative message in that case. Fixes
---
themes/wind/views/no_sidebar.html.php | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
(limited to 'themes')
diff --git a/themes/wind/views/no_sidebar.html.php b/themes/wind/views/no_sidebar.html.php
index a9eb0e3e..58c57256 100644
--- a/themes/wind/views/no_sidebar.html.php
+++ b/themes/wind/views/no_sidebar.html.php
@@ -1,6 +1,11 @@
- - = t("No active sidebar blocks.") ?>
-
">= t("Add blocks") ?>
+ -
+ if (block_manager::get_active("site_sidebar")): ?>
+ = t("Active sidebar blocks have no content.") ?>
+ else: ?>
+ = t("No active sidebar blocks.") ?>
+ endif ?>
+ ">= t("configure blocks") ?>
--
cgit v1.2.3
From 5ac49d497f51a3828c1254b5024a4aa898f86530 Mon Sep 17 00:00:00 2001
From: Bharat Mediratta
Date: Mon, 10 Jan 2011 22:20:12 -0800
Subject: Create new APIs for allowing themers to control what CSS/JS get
combined and when. Backwards compatible in that old themes will work, but
their CSS/JS will no longer be combined unless they make some changes. Fixes
#1600.
---
modules/gallery/libraries/Admin_View.php | 5 ---
modules/gallery/libraries/Gallery_View.php | 61 +++++++++++++++++++++---------
modules/gallery/libraries/Theme_View.php | 14 -------
themes/admin_wind/views/admin.html.php | 38 ++++++++++++-------
themes/wind/views/page.html.php | 49 +++++++++++++++---------
5 files changed, 99 insertions(+), 68 deletions(-)
(limited to 'themes')
diff --git a/modules/gallery/libraries/Admin_View.php b/modules/gallery/libraries/Admin_View.php
index 28a003cc..1a633a34 100644
--- a/modules/gallery/libraries/Admin_View.php
+++ b/modules/gallery/libraries/Admin_View.php
@@ -96,11 +96,6 @@ class Admin_View_Core extends Gallery_View {
}
}
- if ($function == "admin_head") {
- array_unshift($blocks, $this->combine_files($this->scripts, "javascript"));
- array_unshift($blocks, $this->combine_files($this->css, "css"));
- }
-
if (Session::instance()->get("debug")) {
if ($function != "admin_head") {
array_unshift(
diff --git a/modules/gallery/libraries/Gallery_View.php b/modules/gallery/libraries/Gallery_View.php
index b45bb94a..8befda95 100644
--- a/modules/gallery/libraries/Gallery_View.php
+++ b/modules/gallery/libraries/Gallery_View.php
@@ -19,18 +19,35 @@
*/
class Gallery_View_Core extends View {
protected $theme_name = null;
- protected $scripts = array();
- protected $css = array();
+ protected $combine_queue = array();
/**
- * Add a script to the combined scripts list.
+ * Begin gather up scripts or css files so that they can be combined into a single request.
+ *
+ * @param $types a comma separated list of types to combine, eg "script,css"
+ */
+ public function start_combining($types) {
+ foreach (explode(",", $types) as $type) {
+ $this->combine_queue[$type] = array();
+ }
+ }
+
+ /**
+ * If script combining is enabled, add this script to the list of scripts that will be
+ * combined into a single script element. When combined, the order of scripts is preserved.
+ *
* @param $file the file name or path of the script to include. If a path is specified then
* it needs to be relative to DOCROOT. Just specifying a file name will result
* in searching Kohana's cascading file system.
+ * @param $group the group of scripts to combine this with. defaults to "core"
*/
- public function script($file) {
+ public function script($file, $group="core") {
if (($path = gallery::find_file("js", $file, false))) {
- $this->scripts[$path] = 1;
+ if (isset($this->combine_queue["script"])) {
+ $this->combine_queue["script"][$group][$path] = 1;
+ } else {
+ return html::script($path);
+ }
} else {
Kohana_Log::add("error", "Can't find script file: $file");
}
@@ -46,14 +63,22 @@ class Gallery_View_Core extends View {
}
/**
- * Add a css file to the combined css list.
- * @param $file the file name or path of the script to include. If a path is specified then
+ * If css combining is enabled, add this css to the list of css that will be
+ * combined into a single style element. When combined, the order of style elements
+ * is preserved.
+ *
+ * @param $file the file name or path of the css to include. If a path is specified then
* it needs to be relative to DOCROOT. Just specifying a file name will result
* in searching Kohana's cascading file system.
+ * @param $group the group of css to combine this with. defaults to "core"
*/
- public function css($file) {
+ public function css($file, $group="core") {
if (($path = gallery::find_file("css", $file, false))) {
- $this->css[$path] = 1;
+ if (isset($this->combine_queue["css"])) {
+ $this->combine_queue["css"][$group][$path] = 1;
+ } else {
+ return html::stylesheet($path);
+ }
} else {
Kohana_Log::add("error", "Can't find css file: $file");
}
@@ -61,11 +86,13 @@ class Gallery_View_Core extends View {
/**
* Combine a series of files into a single one and cache it in the database.
+ * @param $type the data type (script or css)
+ * @param $group the group of scripts or css we want
*/
- protected function combine_files($paths, $type) {
+ public function get_combined($type, $group="core") {
$links = array();
- if (empty($paths)) {
+ if (empty($this->combine_queue[$type][$group])) {
return;
}
@@ -73,7 +100,7 @@ class Gallery_View_Core extends View {
// entries.
$key = array(url::abs_file(""));
- foreach (array_keys($paths) as $path) {
+ foreach (array_keys($this->combine_queue[$type][$group]) as $path) {
$stats = stat($path);
// 7 == size, 9 == mtime, see http://php.net/stat
$key[] = "$path $stats[7] $stats[9]";
@@ -85,7 +112,7 @@ class Gallery_View_Core extends View {
if (empty($contents)) {
$contents = "";
- foreach (array_keys($paths) as $path) {
+ foreach (array_keys($this->combine_queue[$type][$group]) as $path) {
if ($type == "css") {
$contents .= "/* $path */\n" . $this->process_css($path) . "\n";
} else {
@@ -103,12 +130,12 @@ class Gallery_View_Core extends View {
}
}
+ unset($this->combine_queue[$type][$group]);
+
if ($type == "css") {
- return "\n" .
- html::stylesheet("combined/css/$key", "screen,print,projection", true);
+ return html::stylesheet("combined/css/$key", "screen,print,projection", true);
} else {
- return "\n" .
- html::script("combined/javascript/$key", true);
+ return html::script("combined/javascript/$key", true);
}
}
diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php
index ba1862c0..04784ca1 100644
--- a/modules/gallery/libraries/Theme_View.php
+++ b/modules/gallery/libraries/Theme_View.php
@@ -236,13 +236,6 @@ class Theme_View_Core extends Gallery_View {
case "thumb_bottom":
case "thumb_info":
case "thumb_top":
- if ($function == "head") {
- // Stash any CSS we have already; that came from the theme and we want theme CSS to
- // override module CSs
- $save_css = $this->css;
- $this->css = array();
- }
-
$blocks = array();
if (method_exists("gallery_theme", $function)) {
switch (count($args)) {
@@ -281,13 +274,6 @@ class Theme_View_Core extends Gallery_View {
array_merge(array($this), $args));
}
- if ($function == "head") {
- // Merge the theme CSS/JS at the end
- $this->css = array_merge($this->css, $save_css);
- array_unshift($blocks, $this->combine_files($this->scripts, "javascript"));
- array_unshift($blocks, $this->combine_files($this->css, "css"));
- }
-
if (Session::instance()->get("debug")) {
if ($function != "head" && $function != "body_attributes") {
array_unshift(
diff --git a/themes/admin_wind/views/admin.html.php b/themes/admin_wind/views/admin.html.php
index c8041069..54b30c6f 100644
--- a/themes/admin_wind/views/admin.html.php
+++ b/themes/admin_wind/views/admin.html.php
@@ -4,6 +4,7 @@
+ $theme->start_combining("script,css") ?>
if ($page_title): ?>
= t("Gallery Admin: %page_title", array("page_title" => $page_title)) ?>
@@ -11,8 +12,26 @@
= t("Admin dashboard") ?>
endif ?>
- " type="image/x-icon" />
+ "
+ type="image/x-icon" />
+ = $theme->script("jquery.js") ?>
+ = $theme->script("jquery.form.js") ?>
+ = $theme->script("jquery-ui.js") ?>
+ = $theme->script("gallery.common.js") ?>
+ /* MSG_CANCEL is required by gallery.dialog.js */ ?>
+
+ = $theme->script("gallery.ajax.js") ?>
+ = $theme->script("gallery.dialog.js") ?>
+ = $theme->script("superfish/js/superfish.js") ?>
+
+ = $theme->admin_head() ?>
+
+ /* Theme specific CSS/JS goes last so that it can override module CSS/JS */ ?>
+ = $theme->script("ui.init.js") ?>
= $theme->css("yui/reset-fonts-grids.css") ?>
= $theme->css("themeroller/ui.base.css") ?>
= $theme->css("superfish/css/superfish.css") ?>
@@ -22,20 +41,11 @@
media="screen,print,projection" />
- = $theme->script("jquery.js") ?>
- = $theme->script("jquery.form.js") ?>
- = $theme->script("jquery-ui.js") ?>
- = $theme->script("gallery.common.js") ?>
- /* MSG_CANCEL is required by gallery.dialog.js */ ?>
-
- = $theme->script("gallery.ajax.js") ?>
- = $theme->script("gallery.dialog.js") ?>
- = $theme->script("superfish/js/superfish.js") ?>
- = $theme->script("ui.init.js") ?>
+
+ = $theme->get_combined("script") ?>
- = $theme->admin_head() ?>
+
+ = $theme->get_combined("css") ?>
body_attributes() ?>>
diff --git a/themes/wind/views/page.html.php b/themes/wind/views/page.html.php
index 90f76bb5..441866d5 100644
--- a/themes/wind/views/page.html.php
+++ b/themes/wind/views/page.html.php
@@ -4,6 +4,7 @@
+ $theme->start_combining("script,css") ?>
if ($page_title): ?>
= $page_title ?>
@@ -17,28 +18,24 @@
endif ?>
endif ?>
- " type="image/x-icon" />
- = $theme->css("yui/reset-fonts-grids.css") ?>
- = $theme->css("superfish/css/superfish.css") ?>
- = $theme->css("themeroller/ui.base.css") ?>
- = $theme->css("screen.css") ?>
-
+ "
+ type="image/x-icon" />
+
if ($theme->page_type == "collection"): ?>
if ($thumb_proportion != 1): ?>
$new_width = round($thumb_proportion * 213) ?>
$new_height = round($thumb_proportion * 240) ?>
-
+
endif ?>
endif ?>
+
= $theme->script("json2-min.js") ?>
= $theme->script("jquery.js") ?>
= $theme->script("jquery.form.js") ?>
@@ -52,9 +49,8 @@
= $theme->script("gallery.dialog.js") ?>
= $theme->script("superfish/js/superfish.js") ?>
= $theme->script("jquery.localscroll.js") ?>
- = $theme->script("ui.init.js") ?>
- /* These are page specific, but if we put them before $theme->head() they get combined */ ?>
+ /* These are page specific but they get combined */ ?>
if ($theme->page_subtype == "photo"): ?>
= $theme->script("jquery.scrollTo.js") ?>
= $theme->script("gallery.show_full_size.js") ?>
@@ -63,6 +59,23 @@
endif ?>
= $theme->head() ?>
+
+ /* Theme specific CSS/JS goes last so that it can override module CSS/JS */ ?>
+ = $theme->script("ui.init.js") ?>
+ = $theme->css("yui/reset-fonts-grids.css") ?>
+ = $theme->css("superfish/css/superfish.css") ?>
+ = $theme->css("themeroller/ui.base.css") ?>
+ = $theme->css("screen.css") ?>
+
+
+
+ = $theme->get_combined("script") ?>
+
+
+ = $theme->get_combined("css") ?>
body_attributes() ?>>
--
cgit v1.2.3
From 20ae106c22b9528d34fb85d09a7ab542e6c6c880 Mon Sep 17 00:00:00 2001
From: Bharat Mediratta
Date: Mon, 17 Jan 2011 21:15:33 -0800
Subject: Display a message in the "Check for Gallery upgrades" block when
there's a newer version available, even if the user has dismissed the site
status message. #1605.
---
.../gallery/controllers/admin_upgrade_checker.php | 9 ++++++-
modules/gallery/helpers/gallery_block.php | 1 +
modules/gallery/helpers/upgrade_checker.php | 31 +++++++---------------
.../gallery/views/upgrade_checker_block.html.php | 8 ++++++
themes/admin_wind/css/screen.css | 2 +-
5 files changed, 27 insertions(+), 24 deletions(-)
(limited to 'themes')
diff --git a/modules/gallery/controllers/admin_upgrade_checker.php b/modules/gallery/controllers/admin_upgrade_checker.php
index 4b1467cd..456a982c 100644
--- a/modules/gallery/controllers/admin_upgrade_checker.php
+++ b/modules/gallery/controllers/admin_upgrade_checker.php
@@ -21,7 +21,14 @@ class Admin_Upgrade_Checker_Controller extends Admin_Controller {
function check_now() {
access::verify_csrf();
upgrade_checker::fetch_version_info();
- upgrade_checker::check_for_upgrade();
+ $message = upgrade_checker::get_upgrade_message();
+ if ($message) {
+ $message .= " [x]";
+ site_status::info($message, "upgrade_checker");
+ } else {
+ site_status::clear("upgrade_checker");
+ }
url::redirect("admin/dashboard");
}
diff --git a/modules/gallery/helpers/gallery_block.php b/modules/gallery/helpers/gallery_block.php
index 2189a710..fed786cc 100644
--- a/modules/gallery/helpers/gallery_block.php
+++ b/modules/gallery/helpers/gallery_block.php
@@ -111,6 +111,7 @@ class gallery_block_Core {
$block->content = new View("upgrade_checker_block.html");
$block->content->version_info = upgrade_checker::version_info();
$block->content->auto_check_enabled = upgrade_checker::auto_check_enabled();
+ $block->content->new_version = upgrade_checker::get_upgrade_message();
}
return $block;
}
diff --git a/modules/gallery/helpers/upgrade_checker.php b/modules/gallery/helpers/upgrade_checker.php
index 0e72bb94..f92203c8 100644
--- a/modules/gallery/helpers/upgrade_checker.php
+++ b/modules/gallery/helpers/upgrade_checker.php
@@ -77,40 +77,27 @@ class upgrade_checker_Core {
/**
* Check the latest version info blob to see if it's time for an upgrade.
*/
- static function check_for_upgrade() {
+ static function get_upgrade_message() {
$version_info = upgrade_checker::version_info();
- $upgrade_available = false;
if ($version_info) {
if (gallery::RELEASE_CHANNEL == "release") {
if (version_compare($version_info->data["release_version"], gallery::VERSION, ">")) {
- site_status::warning(
- t("A newer version of Gallery is available! Upgrade now to version %version or wait until later.",
- array("version" => $version_info->data["release_version"],
- "upgrade-url" => $version_info->data["release_upgrade_url"],
- "hide-url" => url::site("admin/upgrade_checker/remind_me_later?csrf=__CSRF__"))),
- "upgrade_checker");
- $upgrade_available = true;
+ return t("A newer version of Gallery is available! Upgrade now to version %version",
+ array("version" => $version_info->data["release_version"],
+ "upgrade-url" => $version_info->data["release_upgrade_url"]));
}
} else {
$branch = gallery::RELEASE_BRANCH;
if (isset($version_info->data["branch_{$branch}_build_number"]) &&
version_compare($version_info->data["branch_{$branch}_build_number"],
gallery::build_number(), ">")) {
- site_status::warning(
- t("A newer version of Gallery is available! Upgrade now to version %version (build %build on branch %branch) or wait until later.",
- array("version" => $version_info->data["branch_{$branch}_version"],
- "upgrade-url" => $version_info->data["branch_{$branch}_upgrade_url"],
- "build" => $version_info->data["branch_{$branch}_build_number"],
- "branch" => $branch,
- "hide-url" => url::site("admin/upgrade_checker/remind_me_later?csrf=__CSRF__"))),
- "upgrade_checker");
- $upgrade_available = true;
+ return t("A newer version of Gallery is available! Upgrade now to version %version (build %build on branch %branch)",
+ array("version" => $version_info->data["branch_{$branch}_version"],
+ "upgrade-url" => $version_info->data["branch_{$branch}_upgrade_url"],
+ "build" => $version_info->data["branch_{$branch}_build_number"],
+ "branch" => $branch));
}
}
}
-
- if (!$upgrade_available) {
- site_status::clear("upgrade_checker");
- }
}
}
diff --git a/modules/gallery/views/upgrade_checker_block.html.php b/modules/gallery/views/upgrade_checker_block.html.php
index 30e18305..b04887b2 100644
--- a/modules/gallery/views/upgrade_checker_block.html.php
+++ b/modules/gallery/views/upgrade_checker_block.html.php
@@ -11,6 +11,14 @@
endif ?>
+ if ($new_version): ?>
+
+ -
+ = $new_version ?>
+
+
+ endif ?>
+
">
diff --git a/themes/admin_wind/css/screen.css b/themes/admin_wind/css/screen.css
index 7d491cb7..a5376ff6 100644
--- a/themes/admin_wind/css/screen.css
+++ b/themes/admin_wind/css/screen.css
@@ -888,10 +888,10 @@ button {
background-position: .4em .3em;
border: 1px solid #ccc;
padding: 0;
+ margin-bottom: 1em;
}
#g-action-status {
- margin-bottom: 1em;
}
#g-action-status li,
--
cgit v1.2.3
From 08c41f2976cb49b85ec896b11735edb008d53881 Mon Sep 17 00:00:00 2001
From: Bharat Mediratta
Date: Fri, 21 Jan 2011 00:07:00 -0800
Subject: Add "html_attributes" theme callback to allow modules to inject
attributes into the element, including things like namespaces. Fixes
#1615.
---
modules/gallery/libraries/Admin_View.php | 1 +
modules/gallery/libraries/Theme_View.php | 1 +
themes/admin_wind/views/admin.html.php | 2 +-
themes/wind/views/page.html.php | 2 +-
4 files changed, 4 insertions(+), 2 deletions(-)
(limited to 'themes')
diff --git a/modules/gallery/libraries/Admin_View.php b/modules/gallery/libraries/Admin_View.php
index 1a633a34..b5d3871e 100644
--- a/modules/gallery/libraries/Admin_View.php
+++ b/modules/gallery/libraries/Admin_View.php
@@ -86,6 +86,7 @@ class Admin_View_Core extends Gallery_View {
case "admin_page_top":
case "admin_head":
case "body_attributes":
+ case "html_attributes":
$blocks = array();
foreach (module::active() as $module) {
$helper_class = "{$module->name}_theme";
diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php
index 04784ca1..cdc7a7cd 100644
--- a/modules/gallery/libraries/Theme_View.php
+++ b/modules/gallery/libraries/Theme_View.php
@@ -224,6 +224,7 @@ class Theme_View_Core extends Gallery_View {
case "head":
case "header_bottom":
case "header_top":
+ case "html_attributes":
case "page_bottom":
case "page_top":
case "photo_blocks":
diff --git a/themes/admin_wind/views/admin.html.php b/themes/admin_wind/views/admin.html.php
index 54b30c6f..9e011c69 100644
--- a/themes/admin_wind/views/admin.html.php
+++ b/themes/admin_wind/views/admin.html.php
@@ -1,7 +1,7 @@
-
+html_attributes() ?> xml:lang="en" lang="en">
$theme->start_combining("script,css") ?>
diff --git a/themes/wind/views/page.html.php b/themes/wind/views/page.html.php
index 441866d5..0e5bdf6b 100644
--- a/themes/wind/views/page.html.php
+++ b/themes/wind/views/page.html.php
@@ -1,7 +1,7 @@
-
+html_attributes() ?> xml:lang="en" lang="en">
$theme->start_combining("script,css") ?>
--
cgit v1.2.3