You are here

function mail_edit_list_filtered_form in Mail Editor 7

Same name and namespace in other branches
  1. 6 mail_edit.admin.inc \mail_edit_list_filtered_form()

Create $form array with filtered list.

Parameters

array $languages_selected: The list of selected languages.

string $module: The module option to restrict the list with.

bool $display_language_names: Whether to display the language names.

Return value

array The $form array.

1 call to mail_edit_list_filtered_form()
mail_edit_list in ./mail_edit.admin.inc
Page callback: List mail templates.

File

./mail_edit.admin.inc, line 112
Administrative interface for the Mail Editor module.

Code

function mail_edit_list_filtered_form($languages_selected, $module, $display_language_names) {
  _mail_edit_key_registry_rebuild();
  $header = _mail_edit_list_get_header($languages_selected, $display_language_names);
  _mail_edit_key_registry_rebuild();
  $query = db_select('mail_edit_registry', 'mer')
    ->extend('PagerDefault')
    ->limit(50)
    ->fields('mer', array(
    'id',
    'module',
    'mailkey',
    'description',
  ))
    ->orderBy('mer.module')
    ->orderBy('mer.mailkey');
  switch ($module) {
    case '-all':
      break;
    case '-enabled':
      $enabled_modules = array_keys(_mail_edit_module_list());
      $query
        ->condition('mer.module', $enabled_modules, 'IN');
      break;
    default:
      $query
        ->condition('mer.module', $module);
      break;
  }
  $form['templates']['#tree'] = TRUE;
  $form['#cache'] = TRUE;
  $form['header'] = array(
    '#type' => 'value',
    '#value' => $header,
  );
  $form['templates'] = array();
  foreach ($query
    ->execute() as $template) {

    // Add all translated languages to the template.
    $languages = db_select('mail_edit', 'me')
      ->fields('me', array(
      'language',
    ))
      ->condition('me.id', $template->id)
      ->execute()
      ->fetchCol();
    foreach ($languages as $language) {
      $template->languages[$language] = TRUE;
    }
    $form['templates'][$template->id] = _mail_edit_list_row($template, $languages_selected, $display_language_names);
  }
  $form['languages'] = array(
    '#type' => 'value',
    '#value' => $languages_selected,
  );
  $form['#theme'] = 'mail_edit_table';
  $form['pager'] = array(
    '#markup' => theme('pager'),
  );
  return $form;
}