Поля в профиле, созданные вручную
Попробовал сделать по аналогу стандартного поля "ПОЛ" он же "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.
Помогите доделать
в само движке бы не помешало конечно, чтобы можно было задавать проивольные поля или через плагины бы реализовывалось
Согласен. Возможно в instantcms 2, будет такая возможность