diff --git a/archive/community.applications-2023.12.11-x86_64-1.txz b/archive/community.applications-2023.12.11-x86_64-1.txz
new file mode 100644
index 00000000..e4ebdd20
Binary files /dev/null and b/archive/community.applications-2023.12.11-x86_64-1.txz differ
diff --git a/source/community.applications/usr/local/emhttp/plugins/community.applications/ca.md5 b/source/community.applications/usr/local/emhttp/plugins/community.applications/ca.md5
index d01fb94a..51ab3f30 100644
--- a/source/community.applications/usr/local/emhttp/plugins/community.applications/ca.md5
+++ b/source/community.applications/usr/local/emhttp/plugins/community.applications/ca.md5
@@ -2,7 +2,7 @@ e23a1f42a98de86535c5c42c243a8893 ./Apps.page
0987a65d249dbec3267b0f4a02aa975a ./CA_notices.page
2c2a1b7d148fe51ee38813d1a0e71589 ./ca_settings.page
01ed7990078dee7cecfeda9a4e49377e ./default.cfg
-868fa54739e6859b8675f856508984eb ./include/exec.php
+4f4b4deed41981b724c69835132d12ac ./include/exec.php
1ad9fa5c1cefd01324e1bbbeb33b6a63 ./include/helpers.php
343e1d26129551fc142b09b5d6e10503 ./include/paths.php
7234caf6800479df03abb222aaedaca5 ./javascript/libraries.js
@@ -22,5 +22,5 @@ a1cb6e1930f2ad689ce9e7fc2e39c846 ./scripts/notices.php
52355989c2bec01cfd55fe619588a033 ./scripts/updatePluginSupport.php
b4e3802d0ddeaf20cdd1b001dab3eeb8 ./skins/Narrow/css.php
89953dddd75450915c0294a276d331bb ./skins/Narrow/skin.html
-75ca078d7f144ecd1cb00bc7bc119400 ./skins/Narrow/skin.php
+709c9c3fbce2310b3e1e435c80881485 ./skins/Narrow/skin.php
c26b187a50c966adff7bfb9cab6fca16 ./event/disks_mounted
diff --git a/source/community.applications/usr/local/emhttp/plugins/community.applications/include/exec.php b/source/community.applications/usr/local/emhttp/plugins/community.applications/include/exec.php
index aa589291..aa12cc3b 100644
--- a/source/community.applications/usr/local/emhttp/plugins/community.applications/include/exec.php
+++ b/source/community.applications/usr/local/emhttp/plugins/community.applications/include/exec.php
@@ -935,6 +935,7 @@ function get_content() {
if ( $displayPrivates && ! $template['Private'] ) continue;
+ $template['translatedCategories'] = "";
if ($filter) {
# Can't be done at appfeed download time because the translation may or may not exist if the user switches languages
foreach (explode(" ",$template['Category']) as $trCat) {
@@ -950,13 +951,13 @@ function get_content() {
if ( strpos($filter,"/") && filterMatch($filter,[$template['Repository']]) )
$searchResults['nameHit'][] = $template;
else {
- if ( filterMatch($filter,[$template['SortName'],$template['RepoShort'],$template['Language'],$template['LanguageLocal'],$template['ExtraSearchTerms']]) ) {
- if ( filterMatch($filter,[$template['ExtraSearchTerms']]) && $template['ExtraPriority'] )
+ if ( filterMatch($filter,[$template['SortName']??null,$template['RepoShort']??null,$template['Language']??null,$template['LanguageLocal']??null,$template['ExtraSearchTerms']??null]) ) {
+ if ( filterMatch($filter,[$template['ExtraSearchTerms']??null]) && ($template['ExtraPriority']??null) )
$searchResults['extraHit'][] = $template;
else
$searchResults['nameHit'][] = $template;
- } elseif ( filterMatch($filter,[$template['Author'],$template['RepoName'],$template['Overview'],$template['translatedCategories']]) ) {
- if ( $template['RepoName'] == $caSettings['favourite'] ) {
+ } elseif ( filterMatch($filter,[$template['Author']??null,$template['RepoName']??null,$template['Overview']??null,$template['translatedCategories']??null]) ) {
+ if ( $template['RepoName'] == $caSettings['favourite']??null ) {
$searchResults['nameHit'][] = $template;
} else {
$searchResults['anyHit'][] = $template;
@@ -986,7 +987,7 @@ function get_content() {
if ( isset($searchResults['favNameHit']) )
usort($searchResults['favNameHit'],"mySort");
else
- $searchResults['favNameHit'] = [];
+ $searchResults['favNameHit'] = [];
if ( isset($searchResults['extraHit']) )
usort($searchResults['extraHit'],"mySort");
@@ -1221,7 +1222,7 @@ function previous_apps() {
}
}
- if ( !$o['Blacklist'] && !$o['Deprecated'] && !$o['actionCentre'] )
+ if ( !$o['Blacklist'] && !$o['Deprecated'] && !($o['actionCentre']??null) )
continue;
}
if ( $installed == "action" )
@@ -1300,7 +1301,7 @@ function previous_apps() {
if ( $installed == "action" && $template['PluginURL'] && $template['Name'] !== "Community Applications") {
$installedVersion = plugin("version","/var/log/plugins/$filename");
- if ( ( strcmp($installedVersion,$template['pluginVersion']) < 0 || $template['UpdateAvailable']) ) {
+ if ( ( strcmp($installedVersion,$template['pluginVersion']) < 0 || ($template['UpdateAvailable']??null)) ) {
$template['actionCentre'] = true;
$template['UpdateAvailable'] = true;
$updateCount++;
@@ -1312,7 +1313,7 @@ function previous_apps() {
}
}
- if ( $installed == "action" && !$template['Blacklist'] && !$template['Deprecated'] && $template['Compatible'] && !$template['actionCentre'] )
+ if ( $installed == "action" && !$template['Blacklist'] && !$template['Deprecated'] && $template['Compatible'] && !($template['actionCentre']??null) )
continue;
if ( $installed == "action" )
$template['actionCentre'] = true;
@@ -2307,7 +2308,7 @@ function getLastUpdate($ID) {
return "Unknown";
$app = $templates[$index];
- if ( $app['PluginURL'] || $app['LanguageURL'] )
+ if ( ($app['PluginURL']??null) || ($app['LanguageURL']??null) )
return;
if ( strpos($app['Repository'],"ghcr.io") !== false || strpos($app['Repository'],"cr.hotio.dev") !== false || strpos($app['Repository'],"lscr.io") !== false) { // try dockerhub for info on ghcr stuff
diff --git a/source/community.applications/usr/local/emhttp/plugins/community.applications/skins/Narrow/skin.php b/source/community.applications/usr/local/emhttp/plugins/community.applications/skins/Narrow/skin.php
index 87f32dc4..7aaa6ba8 100644
--- a/source/community.applications/usr/local/emhttp/plugins/community.applications/skins/Narrow/skin.php
+++ b/source/community.applications/usr/local/emhttp/plugins/community.applications/skins/Narrow/skin.php
@@ -901,8 +901,8 @@ function getRepoDescriptionSkin($repository) {
$templates = &$GLOBALS['templates'];
$repo = $repositories[$repository];
- $iconPrefix = $repo['icon'] ? "" : "";
- $iconPostfix = $repo['icon'] ? "" : "";
+ $iconPrefix = ($repo['icon']??false) ? "" : "";
+ $iconPostfix = ($repo['icon']??false) ? "" : "";
$repo['icon'] = $repo['icon'] ?? "/plugins/dynamix.docker.manager/images/question.png";
$repo['bio'] = isset($repo['bio']) ? markdown($repo['bio']) : "
".tr("Added to CA")." | ".date("F j, Y",$repo['FirstSeen'])." |