summaryrefslogtreecommitdiff
path: root/modules/gallery
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gallery')
-rw-r--r--modules/gallery/controllers/admin_themes.php3
-rw-r--r--modules/gallery/controllers/combined.php33
-rw-r--r--modules/gallery/controllers/upgrader.php11
-rw-r--r--modules/gallery/css/l10n_client.css2
-rw-r--r--modules/gallery/css/upgrader.css6
-rw-r--r--modules/gallery/helpers/l10n_scanner.php9
-rw-r--r--modules/gallery/js/l10n_client.js6
-rw-r--r--modules/gallery/libraries/Gallery_View.php1
-rw-r--r--modules/gallery/models/item.php15
-rw-r--r--modules/gallery/tests/xss_data.txt101
-rw-r--r--modules/gallery/views/l10n_client.html.php4
-rw-r--r--modules/gallery/views/movieplayer.html.php15
-rw-r--r--modules/gallery/views/upgrader.html.php5
13 files changed, 124 insertions, 87 deletions
diff --git a/modules/gallery/controllers/admin_themes.php b/modules/gallery/controllers/admin_themes.php
index aef6c2d1..538e5c8d 100644
--- a/modules/gallery/controllers/admin_themes.php
+++ b/modules/gallery/controllers/admin_themes.php
@@ -36,6 +36,9 @@ class Admin_Themes_Controller extends Admin_Controller {
$file = THEMEPATH . "$theme_name/theme.info";
$theme_info = new ArrayObject(parse_ini_file($file), ArrayObject::ARRAY_AS_PROPS);
+ $theme_info->description = t($theme_info->description);
+ $theme_info->name = t($theme_info->name);
+
$themes[$theme_name] = $theme_info;
}
return $themes;
diff --git a/modules/gallery/controllers/combined.php b/modules/gallery/controllers/combined.php
index 9df74638..925d052d 100644
--- a/modules/gallery/controllers/combined.php
+++ b/modules/gallery/controllers/combined.php
@@ -40,9 +40,14 @@ class Combined_Controller extends Controller {
* @param string the key (typically an md5 sum)
*/
private function _emit($type, $key) {
+ $input = Input::instance();
+
// Our data is immutable, so if they already have a copy then it needs no updating.
- if (!empty($_SERVER["HTTP_IF_MODIFIED_SINCE"])) {
+ if ($input->server("HTTP_IF_MODIFIED_SINCE")) {
header('HTTP/1.0 304 Not Modified');
+ header("Expires: Tue, 19 Jan 2038 00:00:00 GMT");
+ header("Cache-Control: max-age=2678400");
+ header('Pragma: public');
return;
}
@@ -54,26 +59,28 @@ class Combined_Controller extends Controller {
Session::abort_save();
$cache = Cache::instance();
- if (strpos($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip") !== false ) {
- $content = $cache->get("{$key}_gz");
- }
-
- if (!$content) {
+ $use_gzip = function_exists("gzencode") &&
+ (strpos($input->server("HTTP_ACCEPT_ENCODING"), "gzip") !== false);
+ if ($use_gzip && $content = $cache->get("{$key}_gz")) {
+ header("Content-Encoding: gzip");
+ } else {
+ // Fall back to non-gzipped if we have to
$content = $cache->get($key);
}
- if (!$content) {
+ if (empty($content)) {
Kohana::show_404();
}
- if (strpos($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip") !== false) {
- header("Content-Encoding: gzip");
- header("Cache-Control: public");
- }
-
// $type is either 'javascript' or 'css'
- header("Content-Type: text/$type; charset=UTF-8");
+ if ($type == "javascript") {
+ header("Content-Type: application/javascript; charset=UTF-8");
+ } else {
+ header("Content-Type: text/css; charset=UTF-8");
+ }
header("Expires: Tue, 19 Jan 2038 00:00:00 GMT");
+ header("Cache-Control: max-age=2678400");
+ header('Pragma: public');
header("Last-Modified: " . gmdate("D, d M Y H:i:s T", time()));
Kohana::close_buffers(false);
diff --git a/modules/gallery/controllers/upgrader.php b/modules/gallery/controllers/upgrader.php
index 91952fa9..0f6cbc2c 100644
--- a/modules/gallery/controllers/upgrader.php
+++ b/modules/gallery/controllers/upgrader.php
@@ -32,11 +32,18 @@ class Upgrader_Controller extends Controller {
@unlink(TMPPATH . $upgrade_token);
}
+ $available_upgrades = 0;
+ foreach (module::available() as $module) {
+ if ($module->version && $module->version != $module->code_version) {
+ $available_upgrades++;
+ }
+ }
+
$view = new View("upgrader.html");
$view->can_upgrade = user::active()->admin || $session->get("can_upgrade");
$view->upgrade_token = $upgrade_token;
$view->available = module::available();
- $view->done = Input::instance()->get("done");
+ $view->done = ($available_upgrades == 0);
print $view;
}
@@ -67,7 +74,7 @@ class Upgrader_Controller extends Controller {
if (php_sapi_name() == "cli") {
print "Upgrade complete\n";
} else {
- url::redirect("upgrader?done=1");
+ url::redirect("upgrader");
}
}
}
diff --git a/modules/gallery/css/l10n_client.css b/modules/gallery/css/l10n_client.css
index ecec859d..51cbc753 100644
--- a/modules/gallery/css/l10n_client.css
+++ b/modules/gallery/css/l10n_client.css
@@ -38,7 +38,7 @@
display:none;}
/* Panel toggle button (span) */
-#l10n-client .labels .toggle {
+#l10n-client-toggler {
cursor:pointer;
display:block;
position:absolute; right:0em;
diff --git a/modules/gallery/css/upgrader.css b/modules/gallery/css/upgrader.css
index b877df49..7c377817 100644
--- a/modules/gallery/css/upgrader.css
+++ b/modules/gallery/css/upgrader.css
@@ -99,6 +99,12 @@ div#confirmation {
text-align: center;
}
+div#confirmation a.close {
+ float: right;
+ padding: 10px;
+ text-decoration: none;
+}
+
div#confirmation div {
margin: 2px;
padding: 20px;
diff --git a/modules/gallery/helpers/l10n_scanner.php b/modules/gallery/helpers/l10n_scanner.php
index a68aa28b..a8059b3a 100644
--- a/modules/gallery/helpers/l10n_scanner.php
+++ b/modules/gallery/helpers/l10n_scanner.php
@@ -82,11 +82,10 @@ class l10n_scanner_Core {
}
static function scan_info_file($file, &$cache) {
- $code = file_get_contents($file);
- if (preg_match("#name\s*?=\s*(.*?)\ndescription\s*?=\s*(.*)\n#", $code, $matches)) {
- unset($matches[0]);
- foreach ($matches as $string) {
- l10n_scanner::process_message($string, $cache);
+ $info = new ArrayObject(parse_ini_file($file), ArrayObject::ARRAY_AS_PROPS);
+ foreach (array('name', 'description') as $property) {
+ if (isset($info->$property)) {
+ l10n_scanner::process_message($info->$property, $cache);
}
}
}
diff --git a/modules/gallery/js/l10n_client.js b/modules/gallery/js/l10n_client.js
index 4936d1cc..7e29849d 100644
--- a/modules/gallery/js/l10n_client.js
+++ b/modules/gallery/js/l10n_client.js
@@ -58,7 +58,7 @@ jQuery.extend(Gallery, {
case 1:
$('#l10n-client-string-select, #l10n-client-string-editor, #l10n-client .labels .label').show();
$('#l10n-client').height('22em').removeClass('hidden');
- $('#l10n-client .labels .toggle').text('X');
+ $('#l10n-client-toggler').text(MSG_CLOSE_X);
/*
* This CSS clashes with Gallery's CSS, probably due to
* YUI's grid / floats.
@@ -72,7 +72,7 @@ jQuery.extend(Gallery, {
$('#l10n-client-string-select, #l10n-client-string-editor, #l10n-client .labels .label').hide();
$('#l10n-client').height('2em').addClass('hidden');
// TODO: Localize this message
- $('#l10n-client .labels .toggle').text('Translate Text');
+ $('#l10n-client-toggler').text(MSG_TRANSLATE_TEXT);
/*
if(!$.browser.msie) {
$('body').css('border-bottom', '0px');
@@ -171,7 +171,7 @@ Gallery.behaviors.l10nClient = function(context) {
});
// When l10n_client window is clicked, toggle based on current state.
- $('#l10n-client .labels .toggle').click(function() {
+ $('#l10n-client-toggler').click(function() {
if($('#l10n-client').is('.hidden')) {
Gallery.l10nClient.toggle(1);
} else {
diff --git a/modules/gallery/libraries/Gallery_View.php b/modules/gallery/libraries/Gallery_View.php
index 40d78f94..32d79ac3 100644
--- a/modules/gallery/libraries/Gallery_View.php
+++ b/modules/gallery/libraries/Gallery_View.php
@@ -90,7 +90,6 @@ class Gallery_View_Core extends View {
$cache = Cache::instance();
$contents = $cache->get($key);
- $contents = "";
if (empty($contents)) {
$contents = "";
foreach ($links as $link) {
diff --git a/modules/gallery/models/item.php b/modules/gallery/models/item.php
index 430119b5..51037073 100644
--- a/modules/gallery/models/item.php
+++ b/modules/gallery/models/item.php
@@ -492,14 +492,13 @@ class Item_Model extends ORM_MPTT {
* @return string
*/
public function movie_img($extra_attrs) {
- $attrs = array_merge($extra_attrs,
- array("id" => "player",
- "style" => "display:block;width:400px;height:300px")
- );
- return html::anchor($this->file_url(true), "", $attrs) .
- "<script>flowplayer('player', '" .
- url::abs_file("lib/flowplayer-3.0.5.swf") .
- "'); </script>";
+ $v = new View("movieplayer.html");
+ $v->attrs = array_merge($extra_attrs,
+ array("style" => "display:block;width:{$this->width}px;height:{$this->height}px"));
+ if (empty($v->attrs["id"])) {
+ $v->attrs["id"] = "gMovieId-{$this->id}";
+ }
+ return $v;
}
/**
diff --git a/modules/gallery/tests/xss_data.txt b/modules/gallery/tests/xss_data.txt
index c379dcb5..982343f6 100644
--- a/modules/gallery/tests/xss_data.txt
+++ b/modules/gallery/tests/xss_data.txt
@@ -212,8 +212,8 @@ modules/gallery/views/l10n_client.html.php 19 DIRTY $string
modules/gallery/views/l10n_client.html.php 20 DIRTY $string
modules/gallery/views/l10n_client.html.php 22 DIRTY $string
modules/gallery/views/l10n_client.html.php 28 DIRTY $l10n_search_form
-modules/gallery/views/l10n_client.html.php 70 DIRTY $string_list
-modules/gallery/views/l10n_client.html.php 71 DIRTY $plural_forms
+modules/gallery/views/l10n_client.html.php 72 DIRTY $string_list
+modules/gallery/views/l10n_client.html.php 73 DIRTY $plural_forms
modules/gallery/views/move_browse.html.php 4 DIRTY $source->id
modules/gallery/views/move_browse.html.php 39 DIRTY $tree
modules/gallery/views/move_browse.html.php 42 DIRTY $source->id
@@ -229,6 +229,9 @@ modules/gallery/views/move_tree.html.php 13 DIRTY $child->i
modules/gallery/views/move_tree.html.php 13 $child->title
modules/gallery/views/move_tree.html.php 15 DIRTY $child->id
modules/gallery/views/move_tree.html.php 15 $child->title
+modules/gallery/views/movieplayer.html.php 2 DIRTY $item->file_url(true)
+modules/gallery/views/movieplayer.html.php 2 DIRTY $attrs
+modules/gallery/views/movieplayer.html.php 4 DIRTY $attrs
modules/gallery/views/permissions_browse.html.php 15 DIRTY $csrf
modules/gallery/views/permissions_browse.html.php 37 DIRTY $parent->id
modules/gallery/views/permissions_browse.html.php 38 $parent->title
@@ -279,14 +282,14 @@ modules/gallery/views/simple_uploader.html.php 29 $parent->
modules/gallery/views/simple_uploader.html.php 31 $item->title
modules/gallery/views/simple_uploader.html.php 85 DIRTY $item->id
modules/gallery/views/simple_uploader.html.php 89 DIRTY $csrf
-modules/gallery/views/upgrader.html.php 43 DIRTY $module->version
-modules/gallery/views/upgrader.html.php 43 DIRTY $module->code_version
-modules/gallery/views/upgrader.html.php 44 DIRTY $id
-modules/gallery/views/upgrader.html.php 45 DIRTY $module->name
-modules/gallery/views/upgrader.html.php 48 DIRTY $module->version
-modules/gallery/views/upgrader.html.php 51 DIRTY $module->code_version
-modules/gallery/views/upgrader.html.php 74 DIRTY $module->name
-modules/gallery/views/upgrader.html.php 83 DIRTY $upgrade_token
+modules/gallery/views/upgrader.html.php 44 DIRTY $module->version
+modules/gallery/views/upgrader.html.php 44 DIRTY $module->code_version
+modules/gallery/views/upgrader.html.php 45 DIRTY $id
+modules/gallery/views/upgrader.html.php 46 DIRTY $module->name
+modules/gallery/views/upgrader.html.php 49 DIRTY $module->version
+modules/gallery/views/upgrader.html.php 52 DIRTY $module->code_version
+modules/gallery/views/upgrader.html.php 75 DIRTY $module->name
+modules/gallery/views/upgrader.html.php 84 DIRTY $upgrade_token
modules/image_block/views/image_block_block.html.php 3 DIRTY $item->url()
modules/image_block/views/image_block_block.html.php 4 DIRTY $item->thumb_img(array("class" => "gThumbnail"))
modules/info/views/info_block.html.php 5 $item->title
@@ -488,24 +491,24 @@ themes/admin_default/views/admin.html.php 20 DIRTY $theme->s
themes/admin_default/views/admin.html.php 21 DIRTY $theme->script("lib/jquery.form.js")
themes/admin_default/views/admin.html.php 22 DIRTY $theme->script("lib/jquery-ui.js")
themes/admin_default/views/admin.html.php 23 DIRTY $theme->script("lib/gallery.common.js")
-themes/admin_default/views/admin.html.php 24 DIRTY $theme->script("lib/gallery.dialog.js")
-themes/admin_default/views/admin.html.php 25 DIRTY $theme->script("lib/superfish/js/superfish.js")
-themes/admin_default/views/admin.html.php 26 DIRTY $theme->theme_script("js/jquery.dropshadow.js")
-themes/admin_default/views/admin.html.php 27 DIRTY $theme->theme_script("js/ui.init.js")
-themes/admin_default/views/admin.html.php 29 DIRTY $theme->admin_head()
-themes/admin_default/views/admin.html.php 32 DIRTY $theme->body_attributes()
-themes/admin_default/views/admin.html.php 33 DIRTY $theme->admin_page_top()
-themes/admin_default/views/admin.html.php 39 DIRTY $theme->site_status()
-themes/admin_default/views/admin.html.php 41 DIRTY $theme->admin_header_top()
-themes/admin_default/views/admin.html.php 44 DIRTY $csrf
-themes/admin_default/views/admin.html.php 48 DIRTY $theme->admin_menu()
-themes/admin_default/views/admin.html.php 50 DIRTY $theme->admin_header_bottom()
-themes/admin_default/views/admin.html.php 56 DIRTY $theme->messages()
-themes/admin_default/views/admin.html.php 57 DIRTY $content
-themes/admin_default/views/admin.html.php 63 DIRTY $sidebar
-themes/admin_default/views/admin.html.php 68 DIRTY $theme->admin_footer()
-themes/admin_default/views/admin.html.php 70 DIRTY $theme->admin_credits()
-themes/admin_default/views/admin.html.php 74 DIRTY $theme->admin_page_bottom()
+themes/admin_default/views/admin.html.php 28 DIRTY $theme->script("lib/gallery.dialog.js")
+themes/admin_default/views/admin.html.php 29 DIRTY $theme->script("lib/superfish/js/superfish.js")
+themes/admin_default/views/admin.html.php 30 DIRTY $theme->theme_script("js/jquery.dropshadow.js")
+themes/admin_default/views/admin.html.php 31 DIRTY $theme->theme_script("js/ui.init.js")
+themes/admin_default/views/admin.html.php 33 DIRTY $theme->admin_head()
+themes/admin_default/views/admin.html.php 36 DIRTY $theme->body_attributes()
+themes/admin_default/views/admin.html.php 37 DIRTY $theme->admin_page_top()
+themes/admin_default/views/admin.html.php 43 DIRTY $theme->site_status()
+themes/admin_default/views/admin.html.php 45 DIRTY $theme->admin_header_top()
+themes/admin_default/views/admin.html.php 48 DIRTY $csrf
+themes/admin_default/views/admin.html.php 52 DIRTY $theme->admin_menu()
+themes/admin_default/views/admin.html.php 54 DIRTY $theme->admin_header_bottom()
+themes/admin_default/views/admin.html.php 60 DIRTY $theme->messages()
+themes/admin_default/views/admin.html.php 61 DIRTY $content
+themes/admin_default/views/admin.html.php 67 DIRTY $sidebar
+themes/admin_default/views/admin.html.php 72 DIRTY $theme->admin_footer()
+themes/admin_default/views/admin.html.php 74 DIRTY $theme->admin_credits()
+themes/admin_default/views/admin.html.php 78 DIRTY $theme->admin_page_bottom()
themes/admin_default/views/block.html.php 2 DIRTY $id
themes/admin_default/views/block.html.php 2 DIRTY $css_id
themes/admin_default/views/block.html.php 5 DIRTY $id
@@ -571,14 +574,10 @@ themes/default/views/movie.html.php 6 DIRTY $position
themes/default/views/movie.html.php 6 DIRTY $sibling_count
themes/default/views/movie.html.php 8 DIRTY $previous_item->url()
themes/default/views/movie.html.php 11 DIRTY $next_item->url()
-themes/default/views/movie.html.php 15 DIRTY $item->id
-themes/default/views/movie.html.php 16 DIRTY $item->file_url(true)
-themes/default/views/movie.html.php 17 DIRTY $item->width
-themes/default/views/movie.html.php 17 DIRTY $item->height
-themes/default/views/movie.html.php 20 DIRTY $item->id
-themes/default/views/movie.html.php 34 $item->title
-themes/default/views/movie.html.php 35 $item->description
-themes/default/views/movie.html.php 41 DIRTY $theme->photo_bottom()
+themes/default/views/movie.html.php 15 DIRTY $item->movie_img(array("class" => "gMovie", "id" => "gMovieId-{$item->id}"))
+themes/default/views/movie.html.php 18 $item->title
+themes/default/views/movie.html.php 19 $item->description
+themes/default/views/movie.html.php 25 DIRTY $theme->photo_bottom()
themes/default/views/page.html.php 9 DIRTY $page_title
themes/default/views/page.html.php 13 $theme->item()->title
themes/default/views/page.html.php 15 $theme->item()->title
@@ -597,21 +596,21 @@ themes/default/views/page.html.php 48 DIRTY $theme->s
themes/default/views/page.html.php 49 DIRTY $theme->script("lib/jquery.form.js")
themes/default/views/page.html.php 50 DIRTY $theme->script("lib/jquery-ui.js")
themes/default/views/page.html.php 51 DIRTY $theme->script("lib/gallery.common.js")
-themes/default/views/page.html.php 52 DIRTY $theme->script("lib/gallery.dialog.js")
-themes/default/views/page.html.php 53 DIRTY $theme->script("lib/gallery.form.js")
-themes/default/views/page.html.php 54 DIRTY $theme->script("lib/superfish/js/superfish.js")
-themes/default/views/page.html.php 55 DIRTY $theme->script("lib/jquery.localscroll.js")
-themes/default/views/page.html.php 56 DIRTY $theme->theme_script("js/ui.init.js")
-themes/default/views/page.html.php 60 DIRTY $theme->script("lib/jquery.scrollTo.js")
-themes/default/views/page.html.php 61 DIRTY $theme->script("lib/gallery.show_full_size.js")
-themes/default/views/page.html.php 63 DIRTY $theme->script("lib/flowplayer.js")
-themes/default/views/page.html.php 66 DIRTY $theme->head()
-themes/default/views/page.html.php 69 DIRTY $theme->body_attributes()
-themes/default/views/page.html.php 70 DIRTY $theme->page_top()
-themes/default/views/page.html.php 72 DIRTY $theme->site_status()
-themes/default/views/page.html.php 80 DIRTY $theme->messages()
-themes/default/views/page.html.php 81 DIRTY $content
-themes/default/views/page.html.php 95 DIRTY $theme->page_bottom()
+themes/default/views/page.html.php 56 DIRTY $theme->script("lib/gallery.dialog.js")
+themes/default/views/page.html.php 57 DIRTY $theme->script("lib/gallery.form.js")
+themes/default/views/page.html.php 58 DIRTY $theme->script("lib/superfish/js/superfish.js")
+themes/default/views/page.html.php 59 DIRTY $theme->script("lib/jquery.localscroll.js")
+themes/default/views/page.html.php 60 DIRTY $theme->theme_script("js/ui.init.js")
+themes/default/views/page.html.php 64 DIRTY $theme->script("lib/jquery.scrollTo.js")
+themes/default/views/page.html.php 65 DIRTY $theme->script("lib/gallery.show_full_size.js")
+themes/default/views/page.html.php 67 DIRTY $theme->script("lib/flowplayer.js")
+themes/default/views/page.html.php 70 DIRTY $theme->head()
+themes/default/views/page.html.php 73 DIRTY $theme->body_attributes()
+themes/default/views/page.html.php 74 DIRTY $theme->page_top()
+themes/default/views/page.html.php 76 DIRTY $theme->site_status()
+themes/default/views/page.html.php 84 DIRTY $theme->messages()
+themes/default/views/page.html.php 85 DIRTY $content
+themes/default/views/page.html.php 99 DIRTY $theme->page_bottom()
themes/default/views/pager.html.php 13 DIRTY $url
themes/default/views/pager.html.php 20 DIRTY $previous_page
themes/default/views/pager.html.php 20 DIRTY $url
diff --git a/modules/gallery/views/l10n_client.html.php b/modules/gallery/views/l10n_client.html.php
index c15f4b0e..38e92e3e 100644
--- a/modules/gallery/views/l10n_client.html.php
+++ b/modules/gallery/views/l10n_client.html.php
@@ -1,7 +1,7 @@
<?php defined("SYSPATH") or die("No direct script access.") ?>
<div id="l10n-client" class="hidden">
<div class="labels">
- <span class="toggle"><?= t("Translate Text") ?></span>
+ <span id="l10n-client-toggler">X</span>
<div class="label strings"><h2><?= t("Page Text") ?>
<? if (!Input::instance()->get('show_all_l10n_messages')): ?>
<a style="background-color:#fff" href="<?= url::site("admin/languages?show_all_l10n_messages=1") ?>"><?= t("(Show All)") ?></a>
@@ -67,6 +67,8 @@
</div>
</div>
<script type="text/javascript">
+ var MSG_TRANSLATE_TEXT = "<?= t("Translate Text") ?>";
+ var MSG_CLOSE_X = "<?= t("X") ?>";
var l10n_client_data = <?= json_encode($string_list) ?>;
var plural_forms = <?= json_encode($plural_forms) ?>;
</script>
diff --git a/modules/gallery/views/movieplayer.html.php b/modules/gallery/views/movieplayer.html.php
new file mode 100644
index 00000000..e8cabd31
--- /dev/null
+++ b/modules/gallery/views/movieplayer.html.php
@@ -0,0 +1,15 @@
+<?php defined("SYSPATH") or die("No direct script access.") ?>
+<?= html::anchor($item->file_url(true), "", $attrs) ?>
+<script>
+ flowplayer("<?= $attrs["id"] ?>", "<?= url::abs_file("lib/flowplayer.swf") ?>", {
+ plugins: {
+ h264streaming: {
+ url: "<?= url::abs_file("lib/flowplayer.h264streaming.swf") ?>"
+ },
+ controls: {
+ autoHide: 'always',
+ hideDelay: 2000
+ }
+ }
+ })
+</script>
diff --git a/modules/gallery/views/upgrader.html.php b/modules/gallery/views/upgrader.html.php
index b480ca19..f9e242a8 100644
--- a/modules/gallery/views/upgrader.html.php
+++ b/modules/gallery/views/upgrader.html.php
@@ -13,6 +13,7 @@
<? if ($can_upgrade): ?>
<? if ($done): ?>
<div id="confirmation">
+ <a onclick="$('#confirmation').slideUp(); return false;" href="#" class="close">[x]</a>
<div>
<h1> <?= t("That's it!") ?> </h1>
<p>
@@ -42,7 +43,7 @@
<? if ($module->active): ?>
<tr class="<?= $module->version == $module->code_version ? "current" : "upgradeable" ?>" >
<td class="name <?= $id ?>">
- <?= $module->name ?>
+ <?= t($module->name) ?>
</td>
<td>
<?= $module->version ?>
@@ -71,7 +72,7 @@
<? foreach ($available as $module): ?>
<? if (!$module->active): ?>
<li>
- <?= $module->name ?>
+ <?= t($module->name) ?>
</li>
<? endif ?>
<? endforeach ?>