/** * Override of theme_admin_block_content(). */ function slate_admin_block_content($content, $get_runstate = FALSE) { static $has_run = FALSE; if ($get_runstate) { return $has_run; } $has_run = TRUE; $output = ''; if (!empty($content)) { foreach ($content as $k => $item) { $id = str_replace('/', '-', $item['href']); $class = ' path-' . $id; $content[$k]['title'] = "<span class='icon'></span>{$item['title']}"; $content[$k]['localized_options']['html'] = TRUE; if (!empty($content[$k]['localized_options']['attributes']['class'])) { $content[$k]['localized_options']['attributes']['class'] .= $class; } else { $content[$k]['localized_options']['attributes']['class'] = $class; } } $output = system_admin_compact_mode() ? '<ul class="menu">' : '<ul class="admin-list">'; foreach ($content as $item) { $output .= '<li class="leaf">'; $output .= l($item['title'], $item['href'], $item['localized_options']); if (!system_admin_compact_mode()) { $output .= "<div class='description'>{$item['description']}</div>"; } $output .= '</li>'; } $output .= '</ul>'; } return $output; }
/** * {@inheritdoc} */ public function buildForm(array $form, array &$form_state) { $role_names = array(); $role_permissions = array(); foreach ($this->getRoles() as $role_name => $role) { // Retrieve role names for columns. $role_names[$role_name] = String::checkPlain($role->label()); // Fetch permissions for the roles. $role_permissions[$role_name] = $role->getPermissions(); } // Store $role_names for use when saving the data. $form['role_names'] = array('#type' => 'value', '#value' => $role_names); // Render role/permission overview: $options = array(); $module_info = system_rebuild_module_data(); $hide_descriptions = system_admin_compact_mode(); // Get a list of all the modules implementing a hook_permission() and sort by // display name. $modules = array(); foreach ($this->moduleHandler->getImplementations('permission') as $module) { $modules[$module] = $module_info[$module]->info['name']; } asort($modules); $form['system_compact_link'] = array('#theme' => 'system_compact_link'); $form['permissions'] = array('#type' => 'table', '#header' => array($this->t('Permission')), '#id' => 'permissions', '#sticky' => TRUE); foreach ($role_names as $name) { $form['permissions']['#header'][] = array('data' => $name, 'class' => array('checkbox')); } foreach ($modules as $module => $display_name) { if ($permissions = $this->moduleHandler->invoke($module, 'permission')) { // Module name. $form['permissions'][$module] = array(array('#wrapper_attributes' => array('colspan' => count($role_names) + 1, 'class' => array('module'), 'id' => 'module-' . $module), '#markup' => $module_info[$module]->info['name'])); foreach ($permissions as $perm => $perm_item) { // Fill in default values for the permission. $perm_item += array('description' => '', 'restrict access' => FALSE, 'warning' => !empty($perm_item['restrict access']) ? $this->t('Warning: Give to trusted roles only; this permission has security implications.') : ''); $options[$perm] = $perm_item['title']; // Show the permission description. if (!$hide_descriptions) { $user_permission_description = $perm_item['description']; // Append warning message. if (!empty($perm_item['warning'])) { $user_permission_description .= ' <em class="permission-warning">' . $perm_item['warning'] . '</em>'; } } $form['permissions'][$perm]['description'] = array('#wrapper_attributes' => array('class' => array('permission')), '#type' => 'item', '#markup' => $perm_item['title'], '#description' => $user_permission_description); $options[$perm] = ''; foreach ($role_names as $rid => $name) { $form['permissions'][$perm][$rid] = array('#title' => $name . ': ' . $perm_item['title'], '#title_display' => 'invisible', '#wrapper_attributes' => array('class' => array('checkbox')), '#type' => 'checkbox', '#default_value' => in_array($perm, $role_permissions[$rid]) ? 1 : 0, '#attributes' => array('class' => array('rid-' . $rid)), '#parents' => array($rid, $perm)); } } } } $form['actions'] = array('#type' => 'actions'); $form['actions']['submit'] = array('#type' => 'submit', '#value' => $this->t('Save permissions')); $form['#attached']['library'][] = 'user/drupal.user.permissions'; return $form; }
/** * Pre-render callback: Renders a link into #markup. * * Doing so during pre_render gives modules a chance to alter the link parts. * * @param array $element * A structured array whose keys form the arguments to Drupal::l(): * - #title: The link text to pass as argument to Drupal::l(). * - One of the following: * - #route_name and (optionally) a #route_parameters array; The route * name and route parameters which will be passed into the link * generator. * - #href: The system path or URL to pass as argument to Drupal::l(). * - #options: (optional) An array of options to pass to Drupal::l() or the * link generator. * * @return array * The passed-in element containing the system compact link default values. */ public static function preRenderCompactLink($element) { // By default, link options to pass to l() are normally set in #options. $element += array('#options' => array()); if (system_admin_compact_mode()) { $element['#title'] = t('Show descriptions'); $element['#url'] = BaseUrl::fromRoute('system.admin_compact_page', array('mode' => 'off')); $element['#options'] = array('attributes' => array('title' => t('Expand layout to include descriptions.')), 'query' => \Drupal::destination()->getAsArray()); } else { $element['#title'] = t('Hide descriptions'); $element['#url'] = BaseUrl::fromRoute('system.admin_compact_page', array('mode' => 'on')); $element['#options'] = array('attributes' => array('title' => t('Compress layout by hiding descriptions.')), 'query' => \Drupal::destination()->getAsArray()); } $options = NestedArray::mergeDeep($element['#url']->getOptions(), $element['#options']); $element['#markup'] = \Drupal::l($element['#title'], $element['#url']->setOptions($options)); return $element; }
/** * Override of theme_admin_block_content(). * * Use unordered list markup in both compact and extended move. */ function seven_admin_block_content($content) { $output = ''; if (!empty($content)) { $output = system_admin_compact_mode() ? '<ul class="admin-list compact">' : '<ul class="admin-list">'; foreach ($content as $item) { $output .= '<li class="leaf">'; $output .= l($item['title'], $item['href'], $item['localized_options']); if (!system_admin_compact_mode()) { $output .= '<div class="description">' . $item['description'] . '</div>'; } $output .= '</li>'; } $output .= '</ul>'; } return $output; }
/** * Overrides theme_admin_block_content(). * * Use unordered list markup in both compact and extended mode. */ function playaround_admin_block_content($variables) { $content = $variables['content']; $output = ''; if (!empty($content)) { $output = system_admin_compact_mode() ? '<ul class="admin-list compact">' : '<ul class="admin-list">'; foreach ($content as $item) { $output .= '<li class="leaf">'; $output .= l($item['title'], $item['href'], $item['localized_options']); if (isset($item['description']) && !system_admin_compact_mode()) { $output .= '<div class="description">' . filter_xss_admin($item['description']) . '</div>'; } $output .= '</li>'; } $output .= '</ul>'; } return $output; }
/** * Override of theme_admin_block_content(). */ function rubik_admin_block_content($vars) { $content = $vars['content']; $output = ''; if (!empty($content)) { foreach ($content as $k => $item) { //-- Safety check for invalid clients of the function if (empty($content[$k]['localized_options']['attributes']['class'])) { $content[$k]['localized_options']['attributes']['class'] = array(); } if (!is_array($content[$k]['localized_options']['attributes']['class'])) { $content[$k]['localized_options']['attributes']['class'] = array($content[$k]['localized_options']['attributes']['class']); } $content[$k]['title'] = "<span class='icon'></span>" . filter_xss_admin($item['title']); $content[$k]['localized_options']['html'] = TRUE; if (!empty($content[$k]['localized_options']['attributes']['class'])) { $content[$k]['localized_options']['attributes']['class'] += _rubik_icon_classes($item['href']); } else { $content[$k]['localized_options']['attributes']['class'] = _rubik_icon_classes($item['href']); } } $output = system_admin_compact_mode() ? '<ul class="admin-list admin-list-compact">' : '<ul class="admin-list">'; foreach ($content as $item) { $output .= '<li class="leaf">'; $output .= l($item['title'], $item['href'], $item['localized_options']); if (isset($item['description']) && !system_admin_compact_mode()) { $output .= "<div class='description'>{$item['description']}</div>"; } $output .= '</li>'; } $output .= '</ul>'; } return $output; }
function rootcandy_admin_block_content($content) { if (!$content) { return ''; } if (system_admin_compact_mode()) { drupal_add_js(drupal_get_path('theme', 'rootcandy') . '/compact-icon.js'); drupal_add_css(drupal_get_path('theme', 'rootcandy') . '/compact-icon.css'); $counter = 1; $output = '<ul class="admin-menu-compact">'; foreach ($content as $item) { $additional_class = $counter % 4 == 0 ? ' last' : ''; //Append class last to every 4th item signifying a new row $item['localized_options']['html'] = TRUE; if ($image = _rootcandy_menu_icon($item['href'])) { $link = l($image . '<br />' . $item['title'], $item['href'], $item['localized_options']); } else { $link = l(theme('image', drupal_get_path('theme', 'rootcandy') . '/icons/i32/misc/unknown.png') . '<br />' . $item['title'], $item['href'], $item['localized_options']); } $output .= '<li class="leaf' . $additional_class . '">' . $link . '</li>'; $counter++; } $output .= '</ul>'; } else { $output = '<dl class="admin-list">'; foreach ($content as $item) { $output .= '<dt>' . l($item['title'], $item['href'], $item['localized_options']) . '</dt>'; $output .= '<dd>' . $item['description'] . '</dd>'; } $output .= '</dl>'; } return $output; }
/** * Override of theme_admin_block_content(). */ function rubik_admin_block_content($content, $get_runstate = FALSE) { static $has_run = FALSE; if ($get_runstate) { return $has_run; } $has_run = TRUE; $output = ''; if (!empty($content)) { foreach ($content as $k => $item) { $content[$k]['title'] = "<span class='icon'></span>" . filter_xss_admin($item['title']); $content[$k]['localized_options']['html'] = TRUE; if (!empty($content[$k]['localized_options']['attributes']['class'])) { $content[$k]['localized_options']['attributes']['class'] .= _rubik_icon_classes($item['href']); } else { $content[$k]['localized_options']['attributes']['class'] = _rubik_icon_classes($item['href']); } } $output = system_admin_compact_mode() ? '<ul class="admin-list admin-list-compact">' : '<ul class="admin-list">'; foreach ($content as $item) { $output .= '<li class="leaf">'; $output .= l($item['title'], $item['href'], $item['localized_options']); if (!system_admin_compact_mode()) { $output .= "<div class='description'>{$item['description']}</div>"; } $output .= '</li>'; } $output .= '</ul>'; } return $output; }
/** * Implements theme_admin_block_content(). * Adding classes to the administration blocks see issue #1869690. */ function adminimal_admin_block_content($variables) { $content = $variables['content']; $output = ''; if (!empty($content)) { $class = 'admin-list'; if ($compact = system_admin_compact_mode()) { $class .= ' compact'; } $output .= '<dl class="' . $class . '">'; foreach ($content as $item) { if (!isset($item['path'])) { $item['path'] = ''; } $output .= '<div class="admin-block-item ' . check_plain(str_replace("/", "-", $item['path'])) . '"><dt>' . l($item['title'], $item['href'], $item['localized_options']) . '</dt>'; if (!$compact && isset($item['description'])) { $output .= '<dd class="description">' . filter_xss_admin($item['description']) . '</dd>'; } $output .= '</div>'; } $output .= '</dl>'; } return $output; }
/** * {@inheritdoc} */ public function buildForm(array $form, FormStateInterface $form_state) { $role_names = array(); $role_permissions = array(); $admin_roles = array(); foreach ($this->getRoles() as $role_name => $role) { // Retrieve role names for columns. $role_names[$role_name] = $role->label(); // Fetch permissions for the roles. $role_permissions[$role_name] = $role->getPermissions(); $admin_roles[$role_name] = $role->isAdmin(); } // Store $role_names for use when saving the data. $form['role_names'] = array('#type' => 'value', '#value' => $role_names); // Render role/permission overview: $options = array(); $hide_descriptions = system_admin_compact_mode(); $form['system_compact_link'] = array('#id' => FALSE, '#type' => 'system_compact_link'); $form['permissions'] = array('#type' => 'table', '#header' => array($this->t('Permission')), '#id' => 'permissions', '#attributes' => ['class' => ['permissions', 'js-permissions']], '#sticky' => TRUE); foreach ($role_names as $name) { $form['permissions']['#header'][] = array('data' => $name, 'class' => array('checkbox')); } $permissions = $this->permissionHandler->getPermissions(); $permissions_by_provider = array(); foreach ($permissions as $permission_name => $permission) { $permissions_by_provider[$permission['provider']][$permission_name] = $permission; } foreach ($permissions_by_provider as $provider => $permissions) { // Module name. $form['permissions'][$provider] = array(array('#wrapper_attributes' => array('colspan' => count($role_names) + 1, 'class' => array('module'), 'id' => 'module-' . $provider), '#markup' => $this->moduleHandler->getName($provider))); foreach ($permissions as $perm => $perm_item) { // Fill in default values for the permission. $perm_item += array('description' => '', 'restrict access' => FALSE, 'warning' => !empty($perm_item['restrict access']) ? $this->t('Warning: Give to trusted roles only; this permission has security implications.') : ''); $options[$perm] = $perm_item['title']; $form['permissions'][$perm]['description'] = array('#type' => 'inline_template', '#template' => '<div class="permission"><span class="title">{{ title }}</span>{% if description or warning %}<div class="description">{% if warning %}<em class="permission-warning">{{ warning }}</em> {% endif %}{{ description }}</div>{% endif %}</div>', '#context' => array('title' => $perm_item['title'])); // Show the permission description. if (!$hide_descriptions) { $form['permissions'][$perm]['description']['#context']['description'] = $perm_item['description']; $form['permissions'][$perm]['description']['#context']['warning'] = $perm_item['warning']; } $options[$perm] = ''; foreach ($role_names as $rid => $name) { $form['permissions'][$perm][$rid] = array('#title' => $name . ': ' . $perm_item['title'], '#title_display' => 'invisible', '#wrapper_attributes' => array('class' => array('checkbox')), '#type' => 'checkbox', '#default_value' => in_array($perm, $role_permissions[$rid]) ? 1 : 0, '#attributes' => array('class' => array('rid-' . $rid, 'js-rid-' . $rid)), '#parents' => array($rid, $perm)); // Show a column of disabled but checked checkboxes. if ($admin_roles[$rid]) { $form['permissions'][$perm][$rid]['#disabled'] = TRUE; $form['permissions'][$perm][$rid]['#default_value'] = TRUE; } } } } $form['actions'] = array('#type' => 'actions'); $form['actions']['submit'] = array('#type' => 'submit', '#value' => $this->t('Save permissions'), '#button_type' => 'primary'); $form['#attached']['library'][] = 'user/drupal.user.permissions'; return $form; }
function marinelli_admin_block_content($content) { if (!$content) { return ''; } if (system_admin_compact_mode()) { $output = '<dl class="menu">'; foreach ($content as $item) { $output .= '<dt>' . l($item['title'], $item['href'], $item['localized_options']) . '</dt>'; // use definition list per compact mode } $output .= '</dl>'; } else { $output = '<dl class="admin-list">'; foreach ($content as $item) { $output .= '<dt>' . l($item['title'], $item['href'], $item['localized_options']) . '</dt>'; $output .= '<dd>' . $item['description'] . '</dd>'; } $output .= '</dl>'; } return $output; }
/** * Overrides theme_admin_block_content(). */ function badm_admin_block_content($variables) { $content = $variables['content']; $output = ''; if (!empty($content)) { $compact = system_admin_compact_mode(); $output .= '<dl>'; foreach ($content as $item) { $output .= '<dt>' . l($item['title'], $item['href'], $item['localized_options']) . '</dt>'; if (!$compact && isset($item['description'])) { $output .= '<dd>' . filter_xss_admin($item['description']) . '</dd>'; } } $output .= '</dl>'; } return $output; }