Страница 1 из 1

Users.pm & ADDRESS_REGISTER

Добавлено: Вт окт 18, 2011 8:40 am
aivanzipper
При включенной опции ADDRESS_REGISTER=1 поиск по имени улицы реализован, а по номеру дома нет. Поэтому по аналогии предлагаю добавить возможность в файл Users.pm

Код: Выделить всё

if ($attr->{ADDRESS_BUILD}) {
      push @WHERE_RULES, @{ $self->search_expr($attr->{ADDRESS_BUILD}, 'STR', 'pi.address_build', { EXT_FIELD => 1 }) };
}
заменить на

Код: Выделить всё

if ($CONF->{ADDRESS_REGISTER}) {
     if ($attr->{ADDRESS_BUILD}) {
          push @WHERE_RULES, @{ $self->search_expr($attr->{ADDRESS_BUILD}, 'STR', 'builds.number', { EXT_FIELD => 'builds.number' }) };
          $EXT_TABLES .= "INNER JOIN builds ON (builds.id=pi.location_id)";
     }
 }
 elsif ($attr->{ADDRESS_BUILD}) {
     push @WHERE_RULES, @{ $self->search_expr($attr->{ADDRESS_BUILD}, 'STR', 'pi.address_build', { EXT_FIELD => 1 }) };
}
проверено, работает

Re: Users.pm & ADDRESS_REGISTER

Добавлено: Вт окт 18, 2011 9:12 am
~AsmodeuS~
спасибо добавили

Re: Users.pm & ADDRESS_REGISTER

Добавлено: Ср окт 19, 2011 10:33 am
aivanzipper
нашлась бага - одновременно улицу и дом не хочет искать, поправка к первому посту:
заменить на:

Код: Выделить всё

if ($CONF->{ADDRESS_REGISTER}) {
     if ($attr->{ADDRESS_BUILD}) {
          push @WHERE_RULES, @{ $self->search_expr($attr->{ADDRESS_BUILD}, 'STR', 'builds.number', { EXT_FIELD => 'builds.number' }) };
          $EXT_TABLES .= "INNER JOIN builds ON (builds.id=pi.location_id)" if !$attr->{ADDRESS_STREET};
     }
}
elsif ($attr->{ADDRESS_BUILD}) {
     push @WHERE_RULES, @{ $self->search_expr($attr->{ADDRESS_BUILD}, 'STR', 'pi.address_build', { EXT_FIELD => 1 }) };
}