Блок выбора города Drupal 7

Главные вкладки

Аватар пользователя Daviar Daviar 11 января 2014 в 18:04

Здравствуйте! Делаю на сайте выбор города. При поиске решения наткнулся на статью. Сделал всё по пунктам, но вылетает ошибка при изменении города в сессии пользователя:

Думаю, дело в кастомном модуле:

function вашмодуль_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'webform_client_form_572') {
    if ($_SESSION['smart_ip']['location']) {
      $form['submitted']['gorod']['#default_value'] = 'tid_' . $_SESSION['smart_ip']['location']['zip'];
      $form['#submit'][] = '_webform_city_submit';
    }
  }
}
 
function _webform_city_submit($form, $form_state) {
  //тут сохраняем в сессию
  $tid = substr($form_state['values']['submitted_tree']['gorod'], 4); //because 'tid_X';
  if ($_SESSION['smart_ip']['zip'] != $tid) {
    //тут перезаписываем
    $_SESSION['smart_ip']['zip'] = $tid;
    $_SESSION['smart_ip']['city'] = db_select('taxonomy_term_data', 'terms')
          ->fields('terms', array('name'))
          ->condition('tid', $tid, '=')
          ->execute()->fetchField();
    global $user;
    $location = $_SESSION['smart_ip'];
    smart_ip_set_location_data($user, $location);
  }
}

У кого какие мысли?

ВложениеРазмер
Иконка изображения vybor_goroda.png38.28 КБ

Комментарии

Аватар пользователя Daviar Daviar 11 января 2014 в 19:17

Advin wrote:
А имя компонента формы у вас точно такое, как и у автора способа (gorod)?

Да, у веб формы стоит синоним url "gorod".

Аватар пользователя kv4 kv4 16 января 2014 в 10:31
1

А почему бы не воспользоваться отладкой?

http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_...
http://www.ibm.com/developerworks/ru/library/os-php-xdebug/
https://netbeans.org/kb/docs/php/debugging_ru.html
http://habrahabr.ru/post/31505/
http://habrahabr.ru/post/132291/
http://habrahabr.ru/post/209024/
http://habrahabr.ru/post/139004/
http://www.xdebug.ru/

Ёлки-палки, потратьте один день, что бы понять как всё это работает, зато потом практически любая ошибка локализуется в худшем случае за 15 минут.

P.S. Наверное не все ссылки одинаково полезны... сам их не читал, но беглый взгляд говорит, что они могут почмочь ТС.