v8 - 2011.06.23
Fixed: Bugs relating to the new Community Contributed Modules section & GCC stored modules Added: Modules information for the new Gallery 3.0.2 Modules tab Added: SPEED! The module checking process is now 60% faster than before thanks to logic updates in the data gathering process. The decrease in update checking time will be more noticeable as more modules are added.
This commit is contained in:
parent
74bca55d52
commit
daac27904d
@ -1,6 +1,6 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.");/**
|
||||
* Gallery - a web based photo album viewer and editor
|
||||
* Copyright (C) 2000-2010 Bharat Mediratta
|
||||
* Copyright (C) 2000-2011 Bharat Mediratta
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -16,7 +16,6 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
class Admin_Moduleupdates_Controller extends Admin_Controller {
|
||||
|
||||
/**
|
||||
@ -39,36 +38,212 @@ class Admin_Moduleupdates_Controller extends Admin_Controller {
|
||||
* @author brentil <forums@inner-ninja.com>
|
||||
*/
|
||||
public function index() {
|
||||
|
||||
//Start execution timer
|
||||
$bgtime=time();
|
||||
|
||||
$view = new Admin_View("admin.html");
|
||||
$view->page_title = t("Gallery 3 :: Manage Module Updates");
|
||||
$view->content = new View("admin_moduleupdates.html");
|
||||
$view->content->mu_version = module::get_version("moduleupdates");
|
||||
|
||||
$all_modules = new ArrayObject(array(), ArrayObject::ARRAY_AS_PROPS);
|
||||
$refreshCache = false;
|
||||
|
||||
$cache = unserialize(Cache::instance()->get("moduleupdates_cache"));
|
||||
$cache_updates = unserialize(Cache::instance()->get("moduleupdates_cache_updates"));
|
||||
|
||||
//if someone pressed the button to refresh now
|
||||
if (request::method() == "post") {
|
||||
access::verify_csrf();
|
||||
$cache = new ArrayObject(array(), ArrayObject::ARRAY_AS_PROPS);
|
||||
$cache_updates = array("date" => "", "updates" => 0);
|
||||
$refreshCache = true;
|
||||
}else if(count($cache) < 1 or $cache_updates['date'] == ""){
|
||||
//if there are no items in the cache array or the update date is "" refresh the data
|
||||
$cache = new ArrayObject(array(), ArrayObject::ARRAY_AS_PROPS);
|
||||
$cache_updates = array("date" => "", "updates" => 0);
|
||||
$refreshCache = true;
|
||||
}
|
||||
|
||||
//Check the ability to access the Gallery3 GitHub
|
||||
$GitHub = null;
|
||||
try {
|
||||
$GitHub = fopen ("http://github.com", "r");
|
||||
if ($GitHub != null) {
|
||||
$GitHub = '<font color=green>Online</font>';
|
||||
}else{
|
||||
$GitHub = '<font color=red>Offline</font>';
|
||||
}
|
||||
}
|
||||
catch (Exception $e) {
|
||||
}
|
||||
//Check the ability to access the Google
|
||||
$Google = null;
|
||||
try {
|
||||
$Google = fopen ("http://google.com", "r");
|
||||
if ($Google != null) {
|
||||
$Google = '<font color=green>Online</font>';
|
||||
}else{
|
||||
$Google = '<font color=red>Offline</font>';
|
||||
}
|
||||
}
|
||||
catch (Exception $e) {
|
||||
}
|
||||
|
||||
foreach (module::available() as $this_module_name => $module_info) {
|
||||
|
||||
list ($remote_version, $remote_server) = $this->get_remote_module_version($this_module_name);
|
||||
|
||||
$font_color = "black";
|
||||
if ($remote_version == "DNE") {
|
||||
$font_color = "blue";
|
||||
} else if ($remote_version < $module_info->code_version) {
|
||||
$font_color = "green";
|
||||
} else if ($remote_version > $module_info->code_version) {
|
||||
$font_color = "red";
|
||||
}
|
||||
$all_modules->$this_module_name = array ("name" => $module_info->name, "locked" => $module_info->locked,
|
||||
"code_version" => $module_info->code_version, "active" => $module_info->active,
|
||||
"version" => $module_info->version,"description" => $module_info->description,
|
||||
"remote_version" => $remote_version, "remote_server" => $remote_server, "font_color" => $font_color);
|
||||
$update_count = 0;
|
||||
|
||||
if($refreshCache == true){
|
||||
foreach (module::available() as $this_module_name => $module_info) {
|
||||
|
||||
$font_color_local = "black";
|
||||
$core_version = '';
|
||||
$core_server = '';
|
||||
$core_dlink = '';
|
||||
$font_color_core = "black";
|
||||
$contrib_version = '';
|
||||
$contrib_server = '';
|
||||
$contrib_dlink = '';
|
||||
$font_color_contrib = "black";
|
||||
$gh_version = '';
|
||||
$gh_server = '';
|
||||
$gh_dlink = '';
|
||||
$font_color_gh = "black";
|
||||
|
||||
|
||||
|
||||
$font_color_local = $this->get_local_module_version_color ($module_info->version, $module_info->code_version);
|
||||
list ($core_version, $core_server) = $this->get_remote_module_version($this_module_name, "CORE");
|
||||
$font_color_core = $this->get_module_version_color ($module_info->version, $module_info->code_version, $core_version);
|
||||
if(!is_numeric($core_version)) {
|
||||
list ($contrib_version, $contrib_server) = $this->get_remote_module_version($this_module_name, "CONTRIB");
|
||||
$font_color_contrib = $this->get_module_version_color ($module_info->version, $module_info->code_version, $contrib_version);
|
||||
list ($gh_version, $gh_server) = $this->get_remote_module_version($this_module_name, "GH");
|
||||
$font_color_gh = $this->get_module_version_color ($module_info->version, $module_info->code_version, $gh_version);
|
||||
}
|
||||
|
||||
if($font_color_core == "red" or $font_color_contrib == "red" or $font_color_gh == "red"){
|
||||
$update_count++;
|
||||
}
|
||||
|
||||
$module_info->name = "<a href=\"http://codex.gallery2.org/Gallery3:Modules:".$this_module_name."\" target=\"_new\">".$module_info->name."</a>";
|
||||
|
||||
if (is_numeric($core_version)) {
|
||||
if($core_version > $module_info->version) {
|
||||
$core_dlink = "http://github.com/gallery/gallery3/tree/master/modules/".$this_module_name;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_numeric($contrib_version)) {
|
||||
if($contrib_version > $module_info->version) {
|
||||
$contrib_dlink = "http://github.com/gallery/gallery3-contrib/tree/master/".
|
||||
substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_numeric($gh_version)) {
|
||||
if($gh_version > $module_info->version) {
|
||||
$this_gm_repo = str_replace(".","",substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")));
|
||||
if($this_gm_repo == "30"){
|
||||
$gh_dlink = "http://www.gallerymodules.com/update/".$this_module_name;
|
||||
} else {
|
||||
$gh_dlink = "http://www.gallerymodules.com/update".$this_gm_repo."/".$this_module_name;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//populate the list fo modules and their data
|
||||
$cache->$this_module_name = array ("name" => $module_info->name, "locked" => $module_info->locked,
|
||||
"code_version" => $module_info->code_version, "active" => $module_info->active,
|
||||
"version" => $module_info->version,"description" => $module_info->description,
|
||||
"core_version" => $core_version, "core_server" => $core_server, "font_color_core" => $font_color_core,
|
||||
"contrib_version" => $contrib_version, "contrib_server" => $contrib_server, "font_color_contrib" => $font_color_contrib,
|
||||
"gh_version" => $gh_version, "gh_server" => $gh_server, "font_color_gh" => $font_color_gh,
|
||||
"font_color_local" => $font_color_local, "core_dlink" => $core_dlink, "contrib_dlink" => $contrib_dlink,
|
||||
"gh_dlink" => $gh_dlink);
|
||||
}
|
||||
|
||||
//Define right now as YYYY.MM.DD HH:MM with the # of updates that are out of date
|
||||
$cache_updates = array("date" => date("Y.m.d - H:i"), "updates" => $update_count);
|
||||
|
||||
//Write out the new data to cache with a 30 day expiration & 0 for update data so it's always present
|
||||
Cache::instance()->set("moduleupdates_cache", serialize($cache), array("ModuleUpdates"), 30*86400);
|
||||
Cache::instance()->set("moduleupdates_cache_updates", serialize($cache_updates), array("ModuleUpdates"), null);
|
||||
log::success("moduleupdates", t("Completed checking remote GitHub for modules updates."));
|
||||
}
|
||||
|
||||
$view->content->vars = $cache;
|
||||
$view->content->update_time = $cache_updates['date'];
|
||||
$view->content->csrf = access::csrf_token();
|
||||
$view->content->Google = $Google;
|
||||
$view->content->GitHub = $GitHub;
|
||||
$view->content->Gallery_Version = substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," "));
|
||||
|
||||
$view->content->vars = $all_modules;
|
||||
|
||||
//End execution timer
|
||||
$ExecutionTime = (time()-$bgtime);
|
||||
if ($ExecutionTime < 1) {
|
||||
$ExecutionTime = '<font color=green>1</font>';
|
||||
}else if ($ExecutionTime <= 30){
|
||||
$ExecutionTime = '<font color=green>' . $ExecutionTime . '</font>';
|
||||
}else if ($ExecutionTime <= 60){
|
||||
$ExecutionTime = '<font color=orange>' . $ExecutionTime . '</font>';
|
||||
}else{
|
||||
$ExecutionTime = '<font color=red>' . $ExecutionTime . '</font>';
|
||||
}
|
||||
|
||||
|
||||
$view->content->ExecutionTime = $ExecutionTime;
|
||||
|
||||
print $view;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private function get_module_version_color ($version, $code_version, $remote_version) {
|
||||
|
||||
$font_color = "black";
|
||||
|
||||
//BLACK - no module version detected
|
||||
if ($remote_version == "") {
|
||||
$font_color = "black";
|
||||
//BLUE - DNE: Does Not Exist, this module was not found
|
||||
} else if ($remote_version == "DNE") {
|
||||
$font_color = "blue";
|
||||
//GREEN - Your version is newer than the GitHub
|
||||
} else if ($remote_version < $code_version or ($version != ''
|
||||
and $remote_version < $version)) {
|
||||
$font_color = "green";
|
||||
//RED - Your version is older than the GitHub
|
||||
} else if ($remote_version > $code_version or ($version != ''
|
||||
and $remote_version > $version)) {
|
||||
$font_color = "red";
|
||||
}
|
||||
|
||||
return $font_color;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
**/
|
||||
private function get_local_module_version_color ($version, $code_version) {
|
||||
|
||||
$font_color = "black";
|
||||
|
||||
//PINK - Your installed version is newer than file version
|
||||
if ($version != '' and $code_version < $version) {
|
||||
$font_color = "pink";
|
||||
//ORANGE - Your file version is newer than the installed version
|
||||
} else if ($version != '' and $code_version > $version) {
|
||||
$font_color = "orange";
|
||||
}
|
||||
|
||||
return $font_color;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Parses the known GitHub repositories for new versions of modules.
|
||||
*
|
||||
@ -78,48 +253,102 @@ class Admin_Moduleupdates_Controller extends Admin_Controller {
|
||||
*
|
||||
* http://github.com/gallery/gallery3
|
||||
* http://github.com/gallery/gallery3-contrib
|
||||
* http://www.gallerymodules.com
|
||||
*
|
||||
* @author brentil <forums@inner-ninja.com>
|
||||
* @param String The folder name of the module to search for on the remote GitHub server
|
||||
* @return Array An array with the remote module version and the server it was found on.
|
||||
* @param String - The folder name of the module to search for on the remote GitHub server
|
||||
* @param String - The remote server to check against
|
||||
* @return Array - An array with the remote module version and the server it was found on.
|
||||
*/
|
||||
private function get_remote_module_version ($module_name) {
|
||||
private function get_remote_module_version ($module_name, $server_location) {
|
||||
|
||||
$version = 'DNE';
|
||||
$version = '';
|
||||
$server = '';
|
||||
$file = null;
|
||||
|
||||
try {
|
||||
$file = fopen ("http://github.com/gallery/gallery3/raw/master/modules/".$module_name."/module.info", "r");
|
||||
$server = '(G3)';
|
||||
}
|
||||
catch (Exception $e) {
|
||||
//echo 'Message: ' .$e->getMessage() . '<br>';
|
||||
}
|
||||
|
||||
if ($file == null) {
|
||||
try {
|
||||
$file = fopen ("http://github.com/gallery/gallery3-contrib/raw/master/modules/".$module_name."/module.info", "r");
|
||||
$server = '(G3CC)';
|
||||
}
|
||||
catch (Exception $e) {
|
||||
//echo 'Message: ' .$e->getMessage() . '<br>';
|
||||
}
|
||||
}
|
||||
|
||||
if ($file != null) {
|
||||
switch ($server_location) {
|
||||
case "CONTRIB":
|
||||
//Check the Gallery3 Community Contributions GitHub
|
||||
if ($file == null) {
|
||||
try {
|
||||
$thisInstalledVersion = gallery::VERSION;
|
||||
//Gallery versions prior to 3.0.2 contained the codename in the version string
|
||||
if (substr_count($thisInstalledVersion, ' ') > 0 ){
|
||||
$thisInstalledVersion = substr_replace($thisInstalledVersion,"",strpos($thisInstalledVersion," "));
|
||||
}
|
||||
//Truncate the minor version number
|
||||
if (substr_count($thisInstalledVersion, '.') > 1 ){
|
||||
$thisInstalledVersion = substr_replace($thisInstalledVersion,"",strripos($thisInstalledVersion,"."));
|
||||
}
|
||||
$file = fopen ("http://github.com/gallery/gallery3-contrib/raw/master/".
|
||||
$thisInstalledVersion ."/modules/".$module_name."/module.info", "r");
|
||||
|
||||
if ($file != null) {
|
||||
$server = '(GCC)';
|
||||
}
|
||||
}
|
||||
catch (Exception $e) {
|
||||
//echo 'Message: ' .$e->getMessage() . '<br>';
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "CORE":
|
||||
//Check the main Gallery3 GitHub
|
||||
if ($file == null) {
|
||||
try {
|
||||
$file = fopen ("http://github.com/gallery/gallery3/raw/master/modules/".$module_name."/module.info", "r");
|
||||
if ($file != null) {
|
||||
$server = '(G)';
|
||||
}
|
||||
}
|
||||
catch (Exception $e) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "GH":
|
||||
//Check GalleryModules.com
|
||||
if ($file == null) {
|
||||
try {
|
||||
$this_gm_repo = str_replace(".","",substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")));
|
||||
if($this_gm_repo == "30"){
|
||||
$file = fopen ("http://www.gallerymodules.com/m/".$module_name, "r");
|
||||
} else {
|
||||
$file = fopen ("http://www.gallerymodules.com/".$this_gm_repo."m/".$module_name, "r");
|
||||
}
|
||||
if ($file != null) {
|
||||
$server = '(GH)';
|
||||
}
|
||||
}
|
||||
catch (Exception $e) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ($file != null) {
|
||||
while (!feof ($file)) {
|
||||
$line = fgets ($file, 1024);
|
||||
|
||||
//Regular expression to find & gather the version number in the remote module.info file
|
||||
if (preg_match ("@version = (.*)@i", $line, $out)) {
|
||||
$version = $out[1];
|
||||
break;
|
||||
}
|
||||
if ($server_location == "GH"){
|
||||
//GH stores only the version info
|
||||
if($line == "Not entered" or $line == "See git") {
|
||||
$line = "";
|
||||
}
|
||||
if (substr_count($line, '.') > 0) {
|
||||
$line = str_replace('.','',$line);
|
||||
}
|
||||
$version = $line;
|
||||
break;
|
||||
} else {
|
||||
//Regular expression to find & gather the version number in the remote module.info file
|
||||
if (preg_match ("@version = (.*)@i", $line, $out)) {
|
||||
$version = $out[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose ($file);
|
||||
}
|
||||
|
||||
return array ($version, $server);
|
||||
}
|
||||
}
|
||||
return array ($version, $server);
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.");/**
|
||||
* Gallery - a web based photo album viewer and editor
|
||||
* Copyright (C) 2000-2010 Bharat Mediratta
|
||||
* Copyright (C) 2000-2011 Bharat Mediratta
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.");/**
|
||||
* Gallery - a web based photo album viewer and editor
|
||||
* Copyright (C) 2000-2010 Bharat Mediratta
|
||||
* Copyright (C) 2000-2011 Bharat Mediratta
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -17,21 +17,35 @@
|
||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
|
||||
class moduleupdates_installer {
|
||||
|
||||
static function install() {
|
||||
|
||||
$version = module::get_version("moduleupdates");
|
||||
if ($version == 0) {
|
||||
module::set_version("moduleupdates", 1);
|
||||
if ($version < 1) {
|
||||
module::set_version("moduleupdates", 8);
|
||||
//Remove the ModuleUpdates cache entry 'JIC'
|
||||
Cache::instance()->delete("ModuleUpdates");
|
||||
//create the blank ModuleUpdates cache entry with an expiration of 0 days
|
||||
Cache::instance()->set("moduleupdates_cache", "", array("ModuleUpdates"), null);
|
||||
Cache::instance()->set("moduleupdates_cache_updates", "", array("ModuleUpdates"), null);
|
||||
}
|
||||
}
|
||||
|
||||
static function upgrade($version) {
|
||||
module::set_version("moduleupdates", 8);
|
||||
//Remove the ModuleUpdates cache entry 'JIC'
|
||||
Cache::instance()->delete("ModuleUpdates");
|
||||
//Empty the ModuleUpdates cache entry so our new version starts from scratch
|
||||
Cache::instance()->set("moduleupdates_cache", "", array("ModuleUpdates"), null);
|
||||
Cache::instance()->set("moduleupdates_cache_updates", "", array("ModuleUpdates"), null);
|
||||
}
|
||||
|
||||
static function uninstall() {
|
||||
|
||||
|
||||
//Remove the ModuleUpdates cache entry as we remove the module
|
||||
Cache::instance()->delete("ModuleUpdates");
|
||||
module::delete("moduleupdates");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,3 +1,7 @@
|
||||
name = "Module Updates"
|
||||
name = "ModuleUpdates"
|
||||
description = "Compares your installed module version against the ones stored in the GitHub."
|
||||
version = 1
|
||||
version = 8
|
||||
author_name = "brentil"
|
||||
author_url = "http://gallery.menalto.com/user/153736"
|
||||
info_url = "http://codex.gallery2.org/Gallery3:Modules:moduleupdates"
|
||||
discuss_url = "http://gallery.menalto.com/node/96574"
|
||||
|
@ -1,36 +1,74 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.") ?>
|
||||
|
||||
|
||||
<div id="g-admin-moduleupdates" class="g-block">
|
||||
<h1> <?= t("Module Updates") ?> </h1>
|
||||
<p>
|
||||
<?= t("Compares your installed module version against the ones stored in the GitHub.<br><br>") ?>
|
||||
<?= t("<font color=red>Red = Out of Date</font><br>") ?>
|
||||
<?= t("<font color=green>Green = Your version is newer</font><br>") ?>
|
||||
<?= t("<font color=blue>Blue = Does Not Exist/No information available</font><br>") ?>
|
||||
</p>
|
||||
|
||||
<ul id="g-action-status" class="g-message-block">
|
||||
<li class="g-warning"><?= t("Versions are compared from the official Gallery3 (G3) and official Gallery3 Community Contributions (G3CC). Versions downloaded from the forums will not be shown.") ?></li>
|
||||
</ul>
|
||||
|
||||
<h1> <?= t("ModuleUpdates v".$mu_version) ?> </h1>
|
||||
<?= t("Compares your installed module version against the ones stored in the GitHub and GalleryModules.") ?>
|
||||
|
||||
<div class="g-block-content">
|
||||
<table>
|
||||
<tr>
|
||||
<th> <?= t("Module") ?> </th>
|
||||
<th> <?= t("Your Version") ?> </th>
|
||||
<th> <?= t("Remote Version") ?> </th>
|
||||
<th> <?= t("Description") ?> </th>
|
||||
</tr>
|
||||
<? foreach ($vars as $module_name): ?>
|
||||
<tr class="<?= text::alternate("g-odd", "g-even") ?>">
|
||||
<td> <? echo "<font color=".$module_name['font_color'].">"; ?> <?= $module_name['name'] ?> </font> </td>
|
||||
<td> <? echo "<font color=".$module_name['font_color'].">"; ?> <?= $module_name['code_version'] ?> </font> </td>
|
||||
<td> <? echo "<font color=".$module_name['font_color'].">"; ?> <?= $module_name['remote_version'] ?> <?= $module_name['remote_server'] ?> </font> </td>
|
||||
<td> <? echo "<font color=".$module_name['font_color'].">"; ?> <?= $module_name['description'] ?> </font> </td>
|
||||
</tr>
|
||||
<? endforeach ?>
|
||||
</table>
|
||||
|
||||
<form method="post" action="<?= url::site("admin/moduleupdates") ?>" id="g-configure-moduleupdates-form">
|
||||
<input type="hidden" name="csrf" value="<? echo $csrf; ?>" />
|
||||
<fieldset>
|
||||
<legend>ModuleUpdates Information</legend>
|
||||
<ul>
|
||||
<li><?= t("<font color=red>Red = Your version is older than the GitHub</font><br>") ?></li>
|
||||
<li><?= t("<font color=green>Green = Your version is newer than the GitHub</font><br>") ?></li>
|
||||
<li><?= t("<font color=orange>Orange = Your file version is newer than the installed version</font><br>") ?></li>
|
||||
<li><?= t("<font color=pink>Pink = Your installed version is newer than file version</font><br>") ?></li>
|
||||
<li><?= t("Outbound Status: " . $Google . " - GitHub Status: " . $GitHub . " - Execution Time: " . $ExecutionTime . " s <br>") ?></li>
|
||||
<li><input type="submit" value="<?= t("Check Modules for Updates")?>" class="submit" /> <? if($update_time == ""){ echo " - Last Scan: Unknown";}else{ echo " - Last Scan: ".$update_time;} ?></li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<br>
|
||||
<ul id="g-action-status" class="g-message-block">
|
||||
<li class="g-warning"><?= t("Versions are compared from GitHub for Gallery Core (GC), Gallery Community Contributions (GCC), and GalleryModules.com (GM). Versions downloaded from the forums will not be shown.") ?></li>
|
||||
</ul>
|
||||
<fieldset>
|
||||
<legend>Core Modules</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<th> <?= t("Module") ?> </th>
|
||||
<th><center> <?= t("Local /<br>Installed") ?> </center></th>
|
||||
<th width=50><center> <?= t("GC") ?> </center></th>
|
||||
<th> <?= t("Description") ?> </th>
|
||||
</tr>
|
||||
<? foreach ($vars as $module_name): ?>
|
||||
<? if(is_numeric($module_name['core_version'])) { ?>
|
||||
<tr class="<?= text::alternate("g-odd", "g-even") ?>">
|
||||
<td> <?= t($module_name['name']) ?> </td>
|
||||
<td align=center> <? echo "<font color=".$module_name['font_color_local'].">"; ?> <? if($module_name['font_color_local'] != "black"){ echo "<b><u>*"; } ?> <? if (is_numeric($module_name['code_version'])) echo $module_name['code_version']; ?><? if (is_numeric($module_name['version'])) echo " / ".$module_name['version']; ?> <? if($module_name['font_color_local'] != "black"){ echo "*</b></u>"; } ?> </td>
|
||||
<td align=center> <? echo "<font color=".$module_name['font_color_core'].">"; ?> <? if($module_name['font_color_core'] != "black" and $module_name['font_color_core'] != "" ){ echo "<b><u>*"; } ?> <? if(is_numeric($module_name['core_version'])) if($module_name['core_version'] > $module_name['code_version']) { echo "<a href=\"".$module_name['core_dlink']."\" target=\"_blank\">".$module_name['core_version']."</a>";} else { echo $module_name['core_version']; } ?> <? if($module_name['font_color_core'] != "black"){ echo "*</b></u>"; } ?> </font> </td>
|
||||
<td> <?= t($module_name['description']) ?> </td>
|
||||
</tr>
|
||||
<? } ?>
|
||||
<? endforeach ?>
|
||||
</table>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Community Contributed Modules</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<th> <?= t("Module") ?> </th>
|
||||
<th><center> <?= t("Local /<br>Installed") ?> </center></th>
|
||||
<th width=50><center> <?= t("GCC") ?> </center></th>
|
||||
<th width=85><center> <?= t("GM") ?> </center></th>
|
||||
<th> <?= t("Description") ?> </th>
|
||||
</tr>
|
||||
<? foreach ($vars as $module_name): ?>
|
||||
<? if(is_numeric($module_name['contrib_version']) or is_numeric($module_name['gh_version'])) { ?>
|
||||
<tr class="<?= text::alternate("g-odd", "g-even") ?>">
|
||||
<td> <?= t($module_name['name']) ?> </td>
|
||||
<td align=center> <? echo "<font color=".$module_name['font_color_local'].">"; ?> <? if($module_name['font_color_local'] != "black"){ echo "<b><u>*"; } ?> <? if (is_numeric($module_name['code_version'])) echo $module_name['code_version']; ?><? if (is_numeric($module_name['version'])) echo " / ".$module_name['version']; ?> <? if($module_name['font_color_local'] != "black"){ echo "*</b></u>"; } ?> </td>
|
||||
<td align=center> <? echo "<font color=".$module_name['font_color_contrib'].">"; ?> <? if($module_name['font_color_contrib'] != "black" and $module_name['font_color_contrib'] != "" ){ echo "<b><u>*"; } ?> <? if(is_numeric($module_name['contrib_version'])) if($module_name['contrib_version'] > $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "<a href=\"".$module_name['contrib_dlink']."\" target=\"_blank\">".$module_name['contrib_version']."</a>";} else { echo $module_name['contrib_version']; } ?> <? if($module_name['font_color_contrib'] != "black"){ echo "*</b></u>"; } ?> </font> </td>
|
||||
<td align=center> <? echo "<font color=".$module_name['font_color_gh'].">"; ?> <? if($module_name['font_color_gh'] != "black" and $module_name['font_color_gh'] != "" ){ echo "<b><u>*"; } ?> <? if(is_numeric($module_name['gh_version'])) if($module_name['gh_version'] > $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "<a href=\"".$module_name['gh_dlink']."\" target=\"_blank\">".$module_name['gh_version']."</a>";} else { echo $module_name['gh_version']; } ?> <? if($module_name['font_color_gh'] != "black"){ echo "*</b></u>"; } ?> </font> </td>
|
||||
<td> <?= t($module_name['description']) ?> </td>
|
||||
</tr>
|
||||
<? } ?>
|
||||
<? endforeach ?>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<pre>
|
||||
</pre>
|
||||
</div>
|
Reference in New Issue
Block a user