ВопросПроблема с поиском и чистыми ссылками в моем модуле на сервере Debian.

Привет!
Написал небольшой модуль (Drupal 7) для вывода структурированной информации и поиск по ней. Писал модуль используя в качестве сервера XAMMP под Windows. Поиск работал без проблем. После переноса на сервер Debain c Apache+PHP+Mysql перестал нормально работать поиск. Поиск стал работать только с главной страницы и страницы поиска, со страниц структурированной информации после отправки запроса на поиск, страница перезагружается, но остается на той же странице. Если же отключить в Друпале "чистые ссылки", то все работает как надо. В чем может быть причина?
Так как это мои первые шаги в программировании для Друпал, возможно я мог что-то не учесть, просто в Windows все работает нормально, проверял на другой верcии XAMPP.

Привожу часть кода касаемый поиска

function postindex_menu() {
 
  $items['postindex'] = array(
    'page callback' => 'postindex_page',
    'page arguments' => array(1, 2),
    'access callback' => TRUE,
    '#type' => MENU_CALLBACK,
  );
 
  $items['postindex-search'] = array(
    'page callback' => 'postindexsearch_arguments',
    'page arguments' => array(1, 2),
    'access arguments' => array('access search arguments page'),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );  
 
  return $items;
}
 
<?php
/**
 * Объявляем блок поиска
 */
function postindex_block_info() 
{
  $blocks['postindexsearch'] = array(
    'info' => t('Поиск по почтовым индексам'),     // Имя, которое будет показано в списке блоков.
    'cache' => DRUPAL_CACHE_PER_ROLE,   // Настройки кэширования блока
  );
 
  return $blocks;
}
 
/**
 * Подготовка содержимого для блока.
 */
function postindex_block_view($delta = '') 
{
  $block=array();
 
  switch($delta){
    case 'postindexsearch':
      $block['subject'] = t('Поиск по почтовым индексам');                // Заголовок блока
      $block['content'] = drupal_get_form('postindexsearch_block_form');    // Генерируемая форма блока
  }
 
  return $block;
}
 
 
/**
 * Описание формы блока
 */
function postindexsearch_block_form($form_id)
{
  // Контейнер нужен, чтобы поле ввода и кнопка были в ряд
  $form['container'] = array(
    '#prefix' => '<div class="container-inline">',
    '#suffix' => '</div>',
  );
 
 $form['container']['search'] = array(
  '#type' => 'textfield',
  '#size' => 25,
  '#maxlength' => 128,
  '#required' => true,
 );
 
 $form['container']['submit'] = array(
  '#type' => 'submit',
  '#value' => t('Search'),
 );
 
 return $form;
}
 
function postindexsearch_block_form_submit($form, &$form_state) 
{
 $sResult=array(  //post data
   'mysearch'=>$form_state['values']['search'],
 );
 // Формируем строку запроса и переходим на нее
 $form_state['redirect'] = 'postindex-search/' . $sResult['mysearch'];
}

Комментарии

Аватар пользователя Spleshka
Spleshka написал:

Попробуйте вместо $form_state['redirect'] воспользоваться drupal_goto().

24.12.2012 13:35

Комментировать