From c3f42c8e2d68348153738631ec4fc651282c8952 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sun, 29 Sep 2013 08:08:56 +0000 Subject: [PATCH] support custom label and icon in customFields module --- lam/HISTORY | 1 + lam/docs/manual-sources/howto.xml | 18 ++++++++++++++++++ .../manual-sources/images/customFields25.png | Bin 0 -> 17987 bytes lam/lib/baseModule.inc | 4 ++-- lam/lib/modules.inc | 10 ++++++++-- lam/templates/config/moduleSettings.php | 5 ++++- lam/templates/masscreate.php | 12 +++++++----- lam/templates/profedit/profilepage.php | 2 +- 8 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 lam/docs/manual-sources/images/customFields25.png diff --git a/lam/HISTORY b/lam/HISTORY index fa88b0a2..482d5a4c 100644 --- a/lam/HISTORY +++ b/lam/HISTORY @@ -2,6 +2,7 @@ December 2013 4.4 - allow to set a custom label for each account type - LAM Pro: -> Samba/Shadow: display password change date in self service + -> Custom fields: support custom label and icon 25.09.2013 4.3 diff --git a/lam/docs/manual-sources/howto.xml b/lam/docs/manual-sources/howto.xml index cfb1c92d..922ad8e3 100644 --- a/lam/docs/manual-sources/howto.xml +++ b/lam/docs/manual-sources/howto.xml @@ -4050,6 +4050,24 @@ Run slapindex to rebuild the index. + Setting label and icon: + + You may set the label that is displayed e.g. on the tab when + editing an account. It is also possible to specify an icon (must be a + valid URL like "/images/icon.png" or "http://server/images/icon.png"). + The icon size should be 32x32 pixels. + + LAM will display a default icon and "Custom fields" as label if + you do not enter any values. + + + + + + + + + Defining groups: All input fields are devided into groups. A group may contain one diff --git a/lam/docs/manual-sources/images/customFields25.png b/lam/docs/manual-sources/images/customFields25.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6536b8bf0e91bd9471d948fa1f5dbc3728624d GIT binary patch literal 17987 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['icon']. - * The preferred size is 32x32px. + * The path must be releative to graphics (e.g. key.png) or an URL (/icons/icon.png or http://server/icon.png). + * You can also set $this->meta['icon']. The preferred size is 32x32px. * * @return unknown * diff --git a/lam/lib/modules.inc b/lam/lib/modules.inc index 5688fca9..3de54cec 100644 --- a/lam/lib/modules.inc +++ b/lam/lib/modules.inc @@ -1073,7 +1073,10 @@ class accountContainer { $printContainer = true; $buttonImage = $module->getIcon(); if ($buttonImage != null) { - $moduleContainer->addElement(new htmlImage('../../graphics/' . $buttonImage, null, null, getModuleAlias($name, $this->type))); + if (!(strpos($buttonImage, 'http') === 0) && !(strpos($buttonImage, '/') === 0)) { + $buttonImage = '../../graphics/' . $buttonImage; + } + $moduleContainer->addElement(new htmlImage($buttonImage, null, null, getModuleAlias($name, $this->type))); } $moduleContainer->addElement(new htmlTableExtendedInputCheckbox('password_cb_' . $name, true, getModuleAlias($name, $this->type), null, false)); $moduleContainer->addElement(new htmlSpacer('10px', null)); @@ -1382,7 +1385,10 @@ class accountContainer { if ($buttonStatus == 'disabled') echo " disabled"; echo ' onmouseover="jQuery(this).addClass(\'tabs-hover\');" onmouseout="jQuery(this).removeClass(\'tabs-hover\');">'; if ($buttonImage != null) { - echo "\"\" "; + if (!(strpos($buttonImage, 'http') === 0) && !(strpos($buttonImage, '/') === 0)) { + $buttonImage = '../../graphics/' . $buttonImage; + } + echo "\"\" "; } echo $this->module[$this->order[$i]]->get_alias(); echo " \n"; diff --git a/lam/templates/config/moduleSettings.php b/lam/templates/config/moduleSettings.php index d5943efc..7432fcb6 100644 --- a/lam/templates/config/moduleSettings.php +++ b/lam/templates/config/moduleSettings.php @@ -217,7 +217,10 @@ for ($i = 0; $i < sizeof($modules); $i++) { $module = moduleCache::getModule($modules[$i], 'none'); $iconImage = $module->getIcon(); if ($iconImage != null) { - $icon = '' . $iconImage . ' '; + if (!(strpos($iconImage, 'http') === 0) && !(strpos($iconImage, '/') === 0)) { + $iconImage = '../../graphics/' . $iconImage; + } + $icon = '' . $iconImage . ' '; } echo "$icon" . getModuleAlias($modules[$i], "none") . "\n"; $configTypes = parseHtml($modules[$i], $options[$modules[$i]], $old_options, false, $tabindex, 'user'); diff --git a/lam/templates/masscreate.php b/lam/templates/masscreate.php index 6cba1a48..c674b6ea 100644 --- a/lam/templates/masscreate.php +++ b/lam/templates/masscreate.php @@ -171,7 +171,10 @@ for ($i = 0; $i < sizeof($types); $i++) { echo $innerTable->addNewLine(); } $module = moduleCache::getModule($modules[$m], $types[$i]); - $iconImage = '../graphics/' . $module->getIcon(); + $iconImage = $module->getIcon(); + if (!is_null($iconImage) && !(strpos($iconImage, 'http') === 0) && !(strpos($iconImage, '/') === 0)) { + $iconImage = '../graphics/' . $iconImage; + } $innerTable->addElement(new htmlImage($iconImage)); $enabled = true; if (is_base_module($modules[$m], $types[$i])) { @@ -348,11 +351,10 @@ function showMainPage($scope, $selectedModules) { continue; } $columnContainer->addElement(new htmlSpacer(null, '10px'), true); - $icon = ''; $module = moduleCache::getModule($modules[$m], $scope); - $iconImage = $module->getIcon(); - if ($iconImage != null) { - $icon = '../graphics/' . $iconImage; + $icon = $module->getIcon(); + if (($icon != null) && !(strpos($icon, 'http') === 0) && !(strpos($icon, '/') === 0)) { + $icon = '../graphics/' . $icon; } $moduleTitle = new htmlSubTitle(getModuleAlias($modules[$m], $scope), $icon); $moduleTitle->colspan = 20; diff --git a/lam/templates/profedit/profilepage.php b/lam/templates/profedit/profilepage.php index 0a4209ae..f9d1bfd3 100644 --- a/lam/templates/profedit/profilepage.php +++ b/lam/templates/profedit/profilepage.php @@ -224,7 +224,7 @@ for ($m = 0; $m < sizeof($modules); $m++) { if (sizeof($options[$modules[$m]]) < 1) continue; $module = new $modules[$m]($type); $icon = $module->getIcon(); - if ($icon != null) { + if (($icon != null) && !(strpos($icon, 'http') === 0) && !(strpos($icon, '/') === 0)) { $icon = '../../graphics/' . $icon; } $container = new htmlTable();