You are here

function similar_block_configure in Similar Entries 7

Implements hook_block_configure().

File

./similar.module, line 144
Module that shows a block listing similar entries. NOTE: Uses MySQL's FULLTEXT indexing for MyISAM tables.

Code

function similar_block_configure($delta = '') {
  $form = array();
  $form['list_settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('List settings'),
    '#collapsible' => TRUE,
  );
  $form['list_settings']['similar_summary_enabled'] = array(
    '#type' => 'radios',
    '#title' => t('Include summary text'),
    '#default_value' => variable_get('similar_summary_enabled', 0),
    '#options' => array(
      t('No'),
      t('Yes'),
    ),
  );
  $form['list_settings']['similar_rel_nofollow'] = array(
    '#type' => 'radios',
    '#title' => t('Block search engines'),
    '#description' => t('Adds rel="nofollow" to the HTML source of similar links so search engines won\'t count similar links in their ranking calculations.'),
    '#default_value' => variable_get('similar_rel_nofollow', 0),
    '#options' => array(
      t('No'),
      t('Yes'),
    ),
  );
  for ($i = 1, $options = array(); $i < 101; $options[$i] = $i, $i += 1) {
  }
  $form['list_settings']['similar_num_display'] = array(
    '#type' => 'select',
    '#title' => t('Number of similar entries to find'),
    '#default_value' => variable_get('similar_num_display', 5),
    '#options' => $options,
  );
  $types = _similar_published_node_types();
  $form['list_settings']['similar_node_types'] = array(
    '#type' => 'checkboxes',
    '#title' => t('Content types to display'),
    '#default_value' => variable_get('similar_node_types', $types),
    '#options' => $types,
    '#multiple' => TRUE,
  );
  if (module_exists('field')) {
    $form['list_settings']['similar_include_fields'] = array(
      '#type' => 'checkbox',
      '#title' => t('Include content fields in matching'),
      '#default_value' => variable_get('similar_include_fields', 0),
      '#description' => t('Include extra fields defined with Field module in database queries.'),
    );
  }
  if (module_exists('taxonomy')) {
    $names = _similar_taxonomy_names();
    $form['similar_taxonomy'] = array(
      '#type' => 'fieldset',
      '#title' => t('Taxonomy category filter'),
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
    );
    $form['similar_taxonomy']['similar_taxonomy_filter'] = array(
      '#type' => 'radios',
      '#title' => t('Filter by taxonomy categories'),
      '#default_value' => variable_get('similar_taxonomy_filter', 0),
      '#options' => array(
        t('No category filtering'),
        t('Only show the similar nodes in the same category as the original node'),
        t('Use global category filtering'),
      ),
      '#description' => t('By selecting global filtering, only nodes assigned to the following selected categories will display as similar nodes, regardless of the categories the original node is or is not assigned to.'),
    );
    $form['similar_taxonomy']['similar_taxonomy_select'] = array(
      '#type' => 'fieldset',
      '#title' => t('Taxonomy categories to display'),
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
    );
    $form['similar_taxonomy']['similar_taxonomy_select']['similar_taxonomy_tids'] = array(
      '#type' => 'select',
      '#default_value' => variable_get('similar_taxonomy_tids', array_keys($names)),
      '#description' => t('Hold the CTRL key to (de)select multiple options.'),
      '#options' => $names,
      '#multiple' => TRUE,
    );
  }
  return $form;
}