Настройка городов - доска объявлений

#1 30 октября 2011 в 15:29
Иллюстрация
Подскажите гед настроить города который выпадают в окне?
#2 30 октября 2011 в 16:00
В файле /components/board/frontend.php в условии
  1. if ($do=='additem'){
есть такой код, отвечающий за города:
  1. $item = cmsUser::sessionGet('item');
  2. if ($item) { cmsUser::sessionDel('item'); }
  3.  
  4. $item['city'] = $item['city'] ? $item['city'] : $inDB->get_field('cms_user_profiles', 'id='.$inUser->id, 'city');
Из него видно, что изначально значение город берется из сессии пользователя, ежели у пользователя в сессии город не указан, то читается из таблицы. А в поле рядом города собираются в кучу функцией:
  1. $inCore->boardCities('', '-- '.$_LANG['NOT_SELECT'].' --'));
Которая в ядре, и в свою очередь делает выборку по всем профилям пользователей, и собирает их в этот список.
#3 30 октября 2011 в 16:21
А как сделать чтоб в выпадающем меню были города моей области и только они?
#4 30 октября 2011 в 17:10
1. Переделать компонент. Добавить функцию, аналогичную той, что дергает из базы города. Для простоты реализации можно сделать статический массив с городами (ведь кол-во городов в области постоянно).
2. Исходя из последнего предложения предыдущего пункта, поправить шаблон, вставив свой select со статическим списком городов.
#5 30 октября 2011 в 17:28
Проще говоря, открываешь шаблон /templates/ТВОЙ_ДИЗАЙН/components/com_board_edit.tpl
Находишь там строчку
  1. <input name="city_ed" type="text" id="city_ed" style="width:182px" value="{$item.city|escape:'html'}"/> {$LANG.OR_SELECTING} {$cities}
удаляешь переменную в конце строки {$cities}, как есть, с фигурными скобками вместе.
А ниже этой строки вставляешь этот код
  1. <select name="city">
  2. <option value="">-- {$LANG.NOT_SELECT} --</option>
  3. <option value="Город моей области 1" >Город моей области 1</option>
  4. <option value="Город моей области 2" >Город моей области 2</option>
  5. <option value="Город моей области N" >Город моей области N</option>
  6. </select>
Только вместо Город моей области пишешь название города. и вставляешь <option value="Город моей области N" >Город моей области N</option> столько, сколько у тебя городов. :)

А для того, чтобы убрать лишний запрос к базе, удали из файла /components/board/frontend.php эту строку
  1. $smarty->assign('cities', $inCore->boardCities('', '-- '.$_LANG['NOT_SELECT'].' --'));

Удачи!

З.Ы. Реквизиты для спасибы в каждой записи моего блога. joke
#6 30 октября 2011 в 17:53
Скинул на пиво)
#7 30 октября 2011 в 17:59
эххх. не сработало

Иллюстрация
#8 30 октября 2011 в 18:34
Проверил, все должно работать.
Посмотри еще раз, все ли делал по инструкции и очисть кэш сайта.
#9 30 октября 2011 в 18:38
может не работать из-за того что 1.8.1? кеш чисттил.
#10 30 октября 2011 в 18:55
Пробелму решили) оказалось из-за изменения файлов нужно было менять в другом файле. Спасибо хулигану)
#11 22 ноября 2011 в 14:02
И у меня пиво завалялось. Подскажите, пожалуйста, какой файл ещё править?
Спасибо! (не заржавеет)
#12 1 апреля 2012 в 19:51
А для версии 1.9, как настроить города которые выпадают в форме добавления объявлений?
#13 2 апреля 2012 в 14:17
Можно вообще просто —

добавьте сами по 1му объявлению,
при добавлении впишите вручную нужный город.
Теперь этот город будет в списке городов.

А потом, что бы оно не удалялось, через phpmyadmin, зайти в cms_board_items,
и поправить поле — pubdays, поставить например — 300.

А если объявления у вас не удаляются а скрываются, то наверно и в базу лезть не надо…
#14 24 марта 2013 в 01:14
Спасибо HolyGun! Сделал свой список городов на 1.10.1, а поле с добавлением других городов убрал, т.к. пользователи вписывают города по разному и получается огромный список.
#15 30 марта 2013 в 00:37


Спасибо HolyGun!

Keep
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.