function skinr_context_ui_admin_list_subform in Skinr 7.2
Same name and namespace in other branches
- 8.2 skinr_context/skinr_context_ui.admin.inc \skinr_context_ui_admin_list_subform()
Overrides skinr_ui_admin_skins().
See also
1 call to skinr_context_ui_admin_list_subform()
- skinr_context_ui_admin_list in skinr_context/
skinr_context_ui.admin.inc - Menu callback: skin configuration groups administration.
File
- skinr_context/
skinr_context_ui.admin.inc, line 233 - Admin page callbacks for the Skinr Context UI module.
Code
function skinr_context_ui_admin_list_subform() {
// Build the 'Update options' form.
$form['options'] = array(
'#type' => 'fieldset',
'#title' => t('Update options'),
'#attributes' => array(
'class' => array(
'container-inline',
),
),
);
$options = array();
foreach (module_invoke_all('skinr_context_ui_operations') as $operation => $array) {
$options[$operation] = $array['label'];
}
$form['options']['operation'] = array(
'#type' => 'select',
'#title' => t('Operation'),
'#title_display' => 'invisible',
'#options' => $options,
'#default_value' => 'enable',
);
$form['options']['submit'] = array(
'#type' => 'submit',
'#value' => t('Update'),
'#validate' => array(
'skinr_context_ui_admin_groups_validate',
),
'#submit' => array(
'skinr_context_ui_admin_groups_submit',
),
);
$header = array(
'type' => array(
'data' => t('Type'),
'field' => 'g.module',
),
'element' => array(
'data' => t('Element'),
'field' => 'g.element',
),
'title' => array(
'data' => t('Title'),
'field' => 'g.title',
),
'description' => array(
'data' => t('Description'),
'field' => 'g.description',
),
'status' => array(
'data' => t('Status'),
'field' => 'g.status',
'sort' => 'desc',
),
'storage' => array(
'data' => t('Storage'),
),
'operations' => array(
'data' => t('Operations'),
),
);
$query = db_select('skinr_groups', 'g')
->extend('PagerDefault')
->extend('TableSort');
skinr_context_ui_build_filter_query($query);
$gids = $query
->fields('g', array(
'gid',
))
->limit(50)
->orderByHeader($header)
->orderBy('module', 'asc')
->execute()
->fetchCol();
$groups = skinr_context_group_load_multiple($gids);
$current_theme = skinr_current_theme();
$destination = drupal_get_destination();
$options = array();
foreach ($groups as $group) {
$operations = array();
$operations['edit'] = array(
'title' => t('edit'),
'href' => 'admin/structure/skinr/edit/' . $group->module . '/' . $group->element . '/' . $group->gid,
'query' => $destination,
);
$operations['status'] = array(
'title' => $group->status ? t('disable') : t('enable'),
'href' => 'admin/structure/skinr/group/' . $group->gid . '/' . ($group->status ? 'disable' : 'enable'),
'query' => $destination + array(
'token' => drupal_get_token('admin/structure/skinr/group/' . $group->gid . '/' . ($group->status ? 'disable' : 'enable')),
),
);
$storage = skinr_context_ui_admin_group_storage($group);
if ($storage == t('Overridden')) {
$operations['revert'] = array(
'title' => t('revert'),
'href' => 'admin/structure/skinr/group/' . $group->gid . '/revert',
'query' => $destination,
);
}
if ($storage == t('Normal')) {
$operations['delete'] = array(
'title' => t('delete'),
'href' => 'admin/structure/skinr/edit/' . $group->module . '/' . $group->element . '/' . $group->gid . '/delete',
'query' => $destination,
);
}
$element = skinr_ui_get_element_title($group->module, $group->element);
$options[$group->gid] = array(
'type' => $group->module,
'element' => $element ? $element : $group->element,
'title' => t('@group (!gid)', array(
'@group' => $group->title,
'!gid' => $group->gid,
)),
'description' => $group->description,
'status' => $group->status ? t('enabled') : t('disabled'),
'storage' => array(
'data' => $storage,
'class' => array(
'skinr-ui-storage',
),
),
'operations' => array(
'data' => array(
'#theme' => 'links__skinr_ui_operations',
'#links' => $operations,
'#attributes' => array(
'class' => array(
'links',
'inline',
),
),
),
),
);
if (!$group->status) {
$options[$group->gid]['#attributes'] = array(
'class' => array(
'skinr-ui-disabled',
),
);
}
}
// Hide status row. Only used for sorting.
unset($header['status']);
drupal_add_css(drupal_get_path('module', 'skinr_ui') . '/css/skinr-ui-admin.css');
$form['groups'] = array(
'#type' => 'tableselect',
'#header' => $header,
'#options' => $options,
'#empty' => t('No content available.'),
);
$form['pager'] = array(
'#markup' => theme('pager'),
);
return $form;
}