Поле "страна" в профиле пользователя. 1.10.4

#1 1 августа 2014 в 17:38
Здравствуйте.
Хотел бы добавить поле "страна пользователя" в профиле пользователя, и соответственно что бы далее по ней тоже можно было искать и выводить где нужно по аналогии с городом.

Продублировал все функции отвечающие за город в файлах /components/users/fronted.php и model.php
Но так не работает.


fronted.php

// Возможные входные переменные
$name = cmsCore::getSearchVar('name');
$city = cmsCore::getSearchVar('city');
$country = cmsCore::getSearchVar('country');

// Добавляем в выборку город, если он есть
if($city){
$model->whereCityIs($city);
$stext[] = $_LANG['CITY']." — ".htmlspecialchars(stripslashes($city));
}

// Добавляем в выборку страну, если она есть
if($country){
$model->whereCountryIs($country);
$stext[] = $_LANG['COUNTRY']." — ".htmlspecialchars(stripslashes($country));
}


===========

assign('city', stripslashes($city))->
assign('country', stripslashes($country))->
==========

$profiles['city'] = cmsCore::request('city', 'str');
$profiles['country'] = cmsCore::request('country', 'str');

model.php

p.id as pid, p.city, p.country, p.description, p.showmail, p.showbirth, p.showicq,

=========

$user['cityurl'] = urlencode($user['city']);
$user['countryurl'] = urlencode($user['country']);

===============

public function whereCityIs($city) {
$this->inDB->where("LOWER(p.city) LIKE '%$city%'");
}

public function whereCountryIs($country) {
$this->inDB->where("LOWER(p.country) LIKE '%$country%'");
}

===========

p.city, p.country, p.karma, p.imageurl,

В таблице cms_users_profiles добавил поле country
`country` varchar(250) NOT NULL,
Что нужно исправить что бы заработало???
#2 1 августа 2014 в 18:12
А что именно неработает?
#3 1 августа 2014 в 18:20
Lora, поле в профиле не выводится я там поставил {$usr.country}
и при редактировании города страна не прописывается в базу данных.
#4 1 августа 2014 в 18:44
Нил, в 1.10.5 страна будет выводится по умолчанию, см
trac.instantcms.ru/browser/branches/fuze/components/users/frontend.php#L430
trac.instantcms.ru/browser/branches/fuze/templates/_default_/components/com_users_profile.tpl#L217

и соответственно что бы далее по ней тоже можно было искать и выводить где нужно по аналогии с городом.

Нил
Лучше добавить в таблицу поле country_id и по нему искать
#5 1 августа 2014 в 18:47
Fuze, спасибо, буду пробовать
#6 2 августа 2014 в 13:39
А про поля country_id можно подробно sql код сюда?
CREATE TABLE `#__users` ( и.т.д.)
Заранее спасибо popcorn
#7 2 августа 2014 в 15:29
ALTER TABLE `cms_users` ADD `country_id` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
#8 2 августа 2014 в 18:02

VARCHAR

Амиго
зачем числовому полю тип VARCHAR?
  1. ALTER TABLE `cms_users` ADD `country_id` INT( 11 ) NOT NULL DEFAULT '0' AFTER `openid` , ADD INDEX ( `country_id` )
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.