summaryrefslogtreecommitdiffstats
path: root/modules-available/locations/pages/locations.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/locations/pages/locations.inc.php')
-rw-r--r--modules-available/locations/pages/locations.inc.php23
1 files changed, 11 insertions, 12 deletions
diff --git a/modules-available/locations/pages/locations.inc.php b/modules-available/locations/pages/locations.inc.php
index 0eb035c8..8ba4793e 100644
--- a/modules-available/locations/pages/locations.inc.php
+++ b/modules-available/locations/pages/locations.inc.php
@@ -123,7 +123,7 @@ class SubPage
unset($loc);
foreach ($plugins as $pk => $plugin) {
if ($plugin->propagateColumn()) {
- self::propagateFields($locationList, $plugin->propagateDefaultHtml(), $pk);
+ self::propagateFields($locationList, $plugin, $pk);
}
}
foreach ($locationList as &$loc) {
@@ -155,23 +155,22 @@ class SubPage
Module::isAvailable('js_ip'); // For CIDR magic
}
- private static function propagateFields(array &$locationList, string $defaultValue, string $plugin)
+ private static function propagateFields(array &$locationList, AbstractLocationColumn $plugin, string $pluginKey)
{
$depth = array();
foreach ($locationList as &$loc) {
$d = $loc['depth'];
- if (empty($loc['plugins'][$plugin]['html'])) {
+ if (empty($loc['plugins'][$pluginKey]['html'])) {
// Has no explicit config assignment
- if ($d === 0) {
- $loc['plugins'][$plugin]['html'] = $defaultValue;
- } else {
- $loc['plugins'][$plugin]['html'] = $depth[$d - 1];
- }
- $loc['plugins'][$plugin]['class'] = 'gray';
- } elseif (empty($loc['plugins'][$plugin]['class'])) {
- $loc['plugins'][$plugin]['class'] = 'slx-bold';
+ $loc['plugins'][$pluginKey]['html'] = $depth[$d - 1] ?? $plugin->propagateDefaultHtml();
+ $loc['plugins'][$pluginKey]['class'] = 'gray';
+ } elseif (empty($loc['plugins'][$pluginKey]['class'])) {
+ $loc['plugins'][$pluginKey]['class'] = 'slx-bold';
+ $loc['plugins'][$pluginKey]['html'] =
+ $plugin->propagationOverride($depth[$d - 1] ?? $plugin->propagateDefaultHtml(),
+ $loc['plugins'][$pluginKey]['html']);
}
- $depth[$d] = $loc['plugins'][$plugin]['html'];
+ $depth[$d] = $loc['plugins'][$pluginKey]['html'];
unset($depth[$d + 1]);
}
}