You are here

community_tags.pages.inc in Community Tags 6

Same filename and directory in other branches
  1. 6.2 community_tags.pages.inc
  2. 7 community_tags.pages.inc

community_tags.pages.inc

Page handlers of Community Tags.

community_tags_pages Community Tags page handlers.

File

community_tags.pages.inc
View source
<?php

/**
 * @file
 * community_tags.pages.inc
 *
 * Page handlers of Community Tags.
 *
 * @defgroup community_tags_pages Community Tags page handlers.
 * @{
 */

/**
 * Quick tag form.
 */
function community_tags_form($form_state, $edit, $title = NULL) {
  $vocabulary = taxonomy_vocabulary_load($edit['vid']);
  if ($edit['cloud']) {
    if ($edit['multiple'] > 1) {

      // displaying more than 1 form so need to differentiate in headings
      $all_title = t('All !name tags', array(
        '!name' => $vocabulary->name,
      ));
    }
    else {
      $all_title = t('All tags');
    }
    $form['cloud'] = array(
      '#type' => 'markup',
      '#title' => $all_title,
      '#value' => $edit['cloud'],
    );
  }
  $access = user_access('tag content');
  if ($edit['multiple'] > 1) {

    // displaying more than 1 form so need to differentiate in headings
    $my_title = t('My !name tags', array(
      '!name' => $vocabulary->name,
    ));
  }
  else {
    $my_title = t('My tags');
  }
  $form['tags'] = array(
    '#type' => 'textfield',
    '#title' => $my_title,
    '#maxlength' => 100,
    '#default_value' => $edit['tags'],
    '#required' => FALSE,
    '#autocomplete_path' => 'taxonomy/autocomplete/' . $edit['vid'],
    '#attributes' => array(
      'class' => 'form-tags form-tags-' . $edit['vid'],
    ),
    '#access' => $access,
  );
  if ($edit['inline']) {
    $form['tags']['#size'] = 20;
  }
  if (!$access) {
    $destination = drupal_get_destination();
    $form['login'] = array(
      '#type' => 'markup',
      '#value' => '<div>' . t('<a href="@login">Login</a> or <a href="@register">register</a> to tag items', array(
        '@login' => url('user/login', array(
          'query' => $destination,
        )),
        '@register' => url('user/register', array(
          'query' => $destination,
        )),
      )) . '</div>',
    );
  }
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
    '#access' => $access,
  );
  $form['node'] = array(
    '#type' => 'value',
    '#value' => $edit['node'],
  );
  $form['nid'] = array(
    '#type' => 'hidden',
    '#title' => t('NID'),
    '#value' => $edit['nid'],
  );
  $form['vid'] = array(
    '#type' => 'hidden',
    '#value' => $edit['vid'],
  );
  return $form;

  // drupal_add_js(array('communityTags' => array('n_'. $node->nid => array('v_'. $vid => array('tags' => $names, 'url' => url('community-tags/js/'. $node->nid .'/'. $vid), 'add' => t('Add'), 'token' => drupal_get_token('community_tags_form'))))), 'setting');
}

/**
 * Validate the quick tag form.
 */
function community_tags_form_validate($form, &$form_state) {
  if ($form_state['values']['tags'] == '') {
    form_set_error('tags', t('You must enter at least one tag.'));
  }
}

/**
 * Submit callback for quick tag form.
 */
function community_tags_form_submit($form, &$form_state) {
  global $user;
  community_tags_taxonomy_node_save($form_state['values']['node'], array(
    'tags' => array(
      $form_state['values']['vid'] => $form_state['values']['tags'],
    ),
  ), FALSE, $user->uid);
  $form_state['redirect'] = 'node/' . $form_state['values']['nid'];
}

/**
 * Theme the quick tag form.
 * @ingroup themeable
 */
function theme_community_tags_form($form) {
  $output = theme('form_element', array(
    '#title' => $form['cloud']['#title'],
  ), drupal_render($form['cloud']));
  $output .= drupal_render($form);

  // We add the JS file this late, to ensure it comes after autocomplete.js.
  drupal_add_css(drupal_get_path('module', 'community_tags') . '/community_tags.css', 'module');
  drupal_add_js(drupal_get_path('module', 'community_tags') . '/community_tags.js');
  return $output;
}

/**
 * Menu callback:
 */
function community_tags_mypage($uid = NULL) {
  $uid = isset($uid) ? $uid : $GLOBALS['uid'];
  _community_tags_get_tag_result('user', 100, $uid);
}

Functions

Namesort descending Description
community_tags_form Quick tag form.
community_tags_form_submit Submit callback for quick tag form.
community_tags_form_validate Validate the quick tag form.
community_tags_mypage Menu callback:
theme_community_tags_form Theme the quick tag form.