Поля в профиле, созданные вручную

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 22 февраля 2013 в 18:02
Суть в том, что нужно создать допусти чуть ниже информации "даты регистрации" совсем новое поле, которое в настройках выпадающее, а в просмотре профили как мета тег на instantcms 1.10.1. К примеру "семейное положение", многие скажут почему бы не воспользоваться стандартным конструктором форм, я бы с удовольствием — но там порядок не настроишь, поле будет ниже всей другой главной информации пользователя.

Попробовал сделать по аналогу стандартного поля "ПОЛ" он же "gender", не получилось.

В базе "cms_user_profiles" я создал таблицу по подобию "gender" такую же только со своим название "family".

В файле шаблона com_users_edit_profile добавил:
<tr>
<td valign="top"><strong>Семейное положение:</strong></td>
<td valign="top">
<select name="family" id="family" style="width:307px">
<option value="0" {if $usr.family==0} selected {/if}>{$LANG.NOT_SPECIFIED}</option>
<option value="1" {if $usr.family==1} selected {/if}>Не женат(а)</option>
<option value="2" {if $usr.family==2} selected {/if}>Встречаюсь</option>
<option value="3" {if $usr.family==3} selected {/if}>Помолвлен(а)</option>
<option value="4" {if $usr.family==4} selected {/if}>Женат(а)</option>
<option value="5" {if $usr.family==5} selected {/if}>Влюблен(а)</option>
<option value="6" {if $usr.family==6} selected {/if}>Все сложно</option>
<option value="7" {if $usr.family==7} selected {/if}>В поиске</option>
</select>
</td>
</tr>

В файле шаблона com_users_profile добавил:
{if $usr.ffamily}
<div class="field">
<div class="title">Семейное положение:</div>
<div class="value">{$usr.ffamily}</div>
</div>
{/if}

В файле frontend который находится в корне в папки компонентов, юзер, добавил:
// Возможные входные переменные
$family = cmsCore::getSearchVar('family');

// Добавляем в выборку пол, если есть
тут я него не добавлял

// Если поиск включен, подключаем автокомплит для городов
$smarty->assign('family', $family);

// Если сохраняем профиль
$profiles['family'] = cmsCore::request('family', 'str');

В той же папки в файле model добавил:

public function whereFamilyIs($family) {
$this->inDB->where("p.family = '$family'");
}


$sql = "SELECT
p.family as family


if ($user['family']) {
switch ($user['family']){
case '1': $user['ffamily'] = $_LANG['SINGLE']; break;
case '2': $user['ffamily'] = $_LANG['DATING']; break;
case '3': $user['ffamily'] = $_LANG['ENGAGED']; break;
case '4': $user['ffamily'] = $_LANG['MARRIED']; break;
case '5': $user['ffamily'] = $_LANG['LOVE']; break;
case '6': $user['ffamily'] = $_LANG['DIFFICULT']; break;
case '7': $user['ffamily'] = $_LANG['LOOKING']; break;
default: $user['ffamily'] = '';
}
}
$user = cmsCore::callEvent('GET_USER', $user);
return $user;

Получается в настройках профиля все нормально стало отображаться и при изменениях в базу добавляется значение. А вот в самом профиле нечего не отображается, отображается название поля и его значение 1или2или3 и.т.д — и это отображается только если в файле com_users_profile изменить две строчки вот так:


{if $usr.family}
между этих строк код, как выше я писал
<div class="value">{$usr.family}</div>

а если это не сделать то вообще нечего не отображается..

нужно что бы не цифры отображались а его перевод — например встречаюсь, помолвлен, женат и.т.д

В users в папки с переводом добавил SINGLE, DATING, ENGAGED, MARRIED, LOVE, DIFFICULT, LOOKING.

Помогите доделать
#2 22 февраля 2013 в 18:11
Видимо никак не научить людей поиском пользоваться. Что ж такое...
Вот пример как сделать еще одно поле.
Вот пример, как сделать поле "семейное положение".
Понимаю, что все примеры для старых версий, но если подумать головой, то можно сделать по аналогии.
#3 22 февраля 2013 в 19:11
Сделал как во второй ссылки, тоже самое выводиться только "case 'y'" а не слово. Пытаюсь решить проблему sad
#4 22 февраля 2013 в 19:37
в само движке бы не помешало конечно, чтобы можно было задавать проивольные поля или через плагины бы реализовывалось
#5 22 февраля 2013 в 19:55
#6 23 февраля 2013 в 11:47
Проблема пока что остается актуальной!

в само движке бы не помешало конечно, чтобы можно было задавать проивольные поля или через плагины бы реализовывалось

yury

Согласен. Возможно в instantcms 2, будет такая возможность joke
#7 28 февраля 2013 в 13:13
Неужели никто не знает, как решить данный вопрос. cry
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.