You are here

function globallink_taxonomy_dashboard_form in GlobalLink Connect for Drupal 7.7

Same name and namespace in other branches
  1. 7.5 globallink_taxonomy/globallink_taxonomy_send.inc \globallink_taxonomy_dashboard_form()
  2. 7.6 globallink_taxonomy/globallink_taxonomy_send.inc \globallink_taxonomy_dashboard_form()

Builds form to create a taxonomy submission.

1 string reference to 'globallink_taxonomy_dashboard_form'
globallink_taxonomy_dashboard in globallink_taxonomy/globallink_taxonomy_send.inc

File

globallink_taxonomy/globallink_taxonomy_send.inc, line 234

Code

function globallink_taxonomy_dashboard_form() {
  module_load_include('inc', 'globallink_taxonomy', 'globallink_taxonomy');
  module_load_include('inc', 'globallink', 'globallink');
  module_load_include('inc', 'globallink', 'globallink_send_translations');
  $module_path = drupal_get_path('module', 'globallink');
  drupal_add_js($module_path . '/js/globallink_send_translations.js');
  drupal_add_js(array(
    'globallinkSendTranslations' => array(
      'selectAll' => base_path() . globallink_get_root_menu('create-submission/select_all_js'),
      'selectedPath' => base_path() . globallink_get_root_menu('create-submission/select_id_js'),
      'selectedType' => GLOBALLINK_ENTITY_TYPE_TAXONOMY,
      'sessionKey' => 'tids',
    ),
  ), 'setting');
  drupal_add_css($module_path . '/css/globallink.css');
  $form = array();
  $default_checked = array();
  if (isset($_SESSION['tids'])) {
    $default_checked = $_SESSION['tids'];
  }
  $locales = globallink_get_mapped_drupal_locales(FALSE);
  if (isset($locales) && count($locales) > 1) {
    $target_lang_arr = globallink_get_mapped_locales_with_drupal_desc(FALSE);
    $source_lang_arr = $target_lang_arr;
    $default_info = '';
    if (!empty($_SESSION['globallink_selected_taxonomy_info'])) {
      $default_info = $_SESSION['globallink_selected_taxonomy_info'];
    }
    $default_vocab = '[any]';
    if (!empty($_SESSION['globallink_selected_taxonomy_vocab'])) {
      $default_vocab = $_SESSION['globallink_selected_taxonomy_vocab'];
    }
    $language = language_default();
    $default_language = $language->language;
    unset($target_lang_arr[globallink_get_locale_code($default_language)]);
    $t_count = 0;
    foreach ($target_lang_arr as $key => $value) {
      $t_count++;
      if ($t_count % 2 === 0) {
        $target_lang_arr[$key] = '&nbsp;&nbsp;' . $value . '<BR/>';
      }
      else {
        $target_lang_arr[$key] = '&nbsp;&nbsp;' . $value . '&nbsp;&nbsp;&nbsp;&nbsp;';
      }
    }
    $page_count = TPT_PAGER_LIMIT;
    if (isset($_SESSION['globallink_taxonomy_page_count'])) {
      $page_count = $_SESSION['globallink_taxonomy_page_count'][0];
    }
    $header = array(
      'vocab' => array(
        'field' => 'v.name',
        'data' => t('Vocabulary'),
      ),
      'name' => array(
        'field' => 't.name',
        'data' => t('Term Name'),
      ),
      'language' => array(
        'field' => 't.language',
        'data' => t('Language'),
      ),
      'active' => t('In Active Submission'),
      'preview' => t('Preview'),
    );
    $rows = array();
    $query = db_select('taxonomy_term_data', 't')
      ->extend('PagerDefault')
      ->limit($page_count)
      ->extend('TableSort')
      ->orderByHeader($header);
    $i18nmodes = array(
      '0',
      '2',
    );
    $query
      ->join('taxonomy_vocabulary', 'v', 't.vid = v.vid');
    $query
      ->fields('t', array(
      'tid',
      'name',
      'vid',
      'language',
    ));
    $query
      ->fields('v', array(
      'name',
    ));
    $query
      ->condition('v.i18n_mode', $i18nmodes, 'NOT IN');
    if ($default_info != '') {
      $query
        ->condition('t.name', '%' . $default_info . '%', 'LIKE');
    }
    if ($default_vocab != '[any]') {
      $query
        ->condition('t.vid', array(
        $default_vocab,
      ), 'IN');
    }
    $source_lang = language_default()->language;
    $drupal_langs = globallink_get_mapped_drupal_locales(FALSE);
    if (!empty($drupal_langs)) {
      $drupal_langs['und'] = '';
      $query
        ->condition('t.language', array(
        $source_lang,
        'und',
      ), 'IN');
    }
    $result = $query
      ->execute();
    $count = 0;
    foreach ($result as $item) {
      $active = '';
      $active_arr = globallink_taxonomy_get_active_submission_by_id($item->tid);
      if (!empty($active_arr)) {
        foreach ($active_arr as $active_row) {
          $l_title = globallink_format_display_string($active_row->submission);
          $l_href = 'admin/globallink-translations/workbench/all/' . $active_row->submission_rid . '/' . $active_row->target_lang_code;
          $l_options = array();
          $active .= l($l_title, $l_href, $l_options) . '&nbsp;&nbsp;- &nbsp;&nbsp;' . $active_row->sub_target_lang_name . ' <BR/> ';
        }
      }
      $rows[$item->tid] = array(
        'vocab' => $item->v_name,
        'name' => $item->name,
        'language' => $drupal_langs[$item->language],
        'active' => $active,
        'preview' => globallink_taxonomy_make_preview_link('Preview', $item->tid),
      );
      $count++;
    }
    $cart_count = get_cart_count();
    globallink_add_cart_form_elements($form, $header, $rows, $default_checked, $cart_count);
    if ($count > 0) {
      $form['pager'] = array(
        '#markup' => theme('pager'),
      );
    }
  }

  // Very important
  form_load_include($form_state, 'inc', 'globallink', 'globallink_send_translations');
  return $form;
}