* Copyright (C) 2026 MDW * * This program and files/directory inner it is free software: you can * redistribute it and/or modify it under the terms of the * GNU Affero General Public License (AGPL) as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AGPL for more details. * * You should have received a copy of the GNU AGPL * along with this program. If not, see . */ // Load Dolibarr environment require '../../../../main.inc.php'; /** * @var DoliDB $db * @var HookManager $hookmanager * @var Translate $langs * @var User $user */ // Protection if external user if ($user->socid > 0) { accessforbidden(); } // Includes require_once DOL_DOCUMENT_ROOT . '/admin/tools/ui/class/documentation.class.php'; // Load documentation translations $langs->load('uxdocumentation'); // $documentation = new Documentation($db); // Output html head + body - Param is Title $documentation->docHeader('Icons', [], ['admin/tools/ui/css/doc-icons.css'], GETPOST('hidenavmenu')); // Set view for menu and breadcrumb // Menu must be set in constructor of documentation class $documentation->view = array('Components','Icons'); $form = new Form($db); $mode = GETPOST('mode'); // ex : no-btn $displayMode = GETPOST('displayMode') == 'kanban' ? 'kanban' : 'icon-only'; $revertDisplayMode = $displayMode == 'kanban' ? 'icon-only' : 'kanban'; $revertDisplayName = $displayMode == 'kanban' ? $langs->trans('ViewList') : $langs->trans('ViewKanban'); $switchDisplayLink = dol_buildpath($documentation->baseUrl . '/components/icons.php', 1) . '?displayMode=' . $revertDisplayMode; $switchDisplayLinkIcon = $displayMode == 'kanban' ? 'fa fa-th' : 'fa fa-th-list'; // Output sidebar if (!GETPOST('hidenavmenu')) { $documentation->showSidebar(); } ?>
"> showBreadCrumb(); } ?>

trans('DocIconsTitle'); ?>

trans('DocIconsMainDescription'); ?>

showSummary(); ?>

trans('DocIconsListImgPicto'); ?>

trans('DocDocIconsListDescription'); ?>

*/ ?> getSearchFilterToolInput( '.documentation-img-picto-icon-list .info-box, .documentation-img-picto-icon-list .doc-icon-list-item', 'search-tools-input', '', ['attr' => [ 'data-no-item-target' => '#img-picto-section-list .search-tool-no-results', ], ] ); ?>
1]); } ?>
'.$iconCode.'
'. $iconName .'
'.dol_htmlentities('img_picto(\''.$labelAlt.'\', \''.$iconName.'\')').'
'; } else { $tooltip = ''.$langs->trans("DocCodeForMenuOrModuleBuilder").':
'.$iconName; $tooltip .= '

'.$langs->trans("DocExampleForPHPCode").':
img_picto(\''.$labelAlt.'\', \''.$iconName.'\')'; $iconCode = img_picto($tooltip, $iconName, '', 0, 0, 0, '', 'classfortooltip'); print ''.$iconCode; print ''.$iconName.''; } } ?>
trans('NoResults') ?>


$iconData) { // Determine prefix: 'fab' for brands, 'fas' or 'far' can be added later if needed $prefix = in_array('brands', $iconData['styles']) ? 'fab' : null; // Format: [ "icon-name", "prefix if any", null ] $fontAwesomeIcons[] = [$iconName, $prefix, null]; // null reserved for future alias } } } ?>

trans('DocIconsListFontAwesome'); ?>

trans('DocDocIconsListDescription'); ?>

*/ ?> getSearchFilterToolInput('.documentation-fontawesome-icon-list .info-box, .documentation-fontawesome-icon-list .doc-icon-list-item', 'search-tools-input', '', ['attr' => [ 'data-no-item-target' => '#icon-section-list .search-tool-no-results', ], ] ); ?>
1]); } ?>
'; $iconLabel = !empty($iconData[2]) ? $iconData[2] : $iconData[0]; if ($displayMode == 'kanban') { print '
' . $iconCode . '
' . $iconLabel . '
' . dol_htmlentities($iconCode) . '
'; } else { $tooltip = ''.$langs->trans("DocCodeForMenuOrModuleBuilder").':
'.$class; print ''.$iconCode.''.$class.''; } } } ?>
trans('NoResults') ?>
docFooter(); /** * Get all usage icon key usable for img_picto(..., key) * * @return string[] * @see getImgPictoConv() */ function getImgPictoNameList() { $imgpicto = array_merge(array_keys(getImgPictoConv()), array( // Keep in this list only picto that are NOT already into getImgPictoConv() '1downarrow', '1uparrow', '1leftarrow', '1rightarrow', '1uparrow_selected', '1downarrow_selected', '1leftarrow_selected', '1rightarrow_selected', 'angle-double-down', 'angle-double-up', 'barcode', 'bank', 'bell', 'birthday-cake', 'briefcase-medical', 'bug', 'building', 'hourglass', 'cash-register', 'clock', 'clone', 'code', 'cog', 'cron', 'cubes', 'check-circle', 'check-square', 'circle', 'chevron-left', 'chevron-right', 'chevron-down', 'chevron-up', 'dolly', 'download', 'ellipsis-h', 'envelope', 'eraser', 'external-link-alt', 'external-link-square-alt', 'eye', 'file', 'file-code', 'file-export', 'file-import', 'file-upload', 'autofill', 'folder', 'folder-open', 'folder-plus', 'font', 'generic', 'globe-americas', 'hands-helping', 'id-card', 'images', 'key', 'language', 'link', 'list', 'listlight', 'lock', 'long-arrow-alt-right', 'map-marker-alt', 'minus', 'money-bill-alt', 'note', 'off', 'on', 'paragraph', 'play', 'phone', 'search', 'share-alt', 'stripe-s', 'unlink', 'user', 'user-tie', 'wrench', 'discord', 'facebook', 'flickr', 'instagram', 'linkedin', 'github', 'google', 'meetup', 'microsoft', 'skype', 'slack', 'twitter', 'pinterest', 'reddit', 'snapchat', 'tumblr', 'youtube', 'viadeo', 'google-plus-g', 'whatsapp', 'home', 'pencil-ruler', 'question', 'rss', 'search-plus', 'shapes', 'square', 'sort-numeric-down', 'supplier_invoice', 'terminal', 'undo', 'user-cog', 'user-injured', 'user-md', 'upload', 'stamp', 'signature' )); asort($imgpicto); return array_unique($imgpicto); // @phpstan-ignore return.type }