Добавление полей ФИО на LS 1.0.3

Всем привет! Решил написать маленький туториал, мало ли кому нибудь ещё понадобится.

Всё делаете на свой страх и риск!



Сразу скажу, что нужен доступ к базе данных (phpMyAdmin).

Правки шаблона

1. Ищем файл
/templates/skin/synio/actions/ActionSettings/profile.tpl

2. В этом файле ищем строки
		<dl class="form-item">
			<dt><label for="profile_name">{$aLang.settings_profile_name}:</label></dt>
			<dd>
				<input type="text" name="profile_name" id="profile_name" value="{$oUserCurrent->getProfileName()|escape:'html'}" class="input-text input-width-250">
			</dd>
		</dl>
После неё добавляем
		<!-- Фамилия -->
		<dl class="form-item">
			<dt><label for="profile_name_second">{$aLang.settings_profile_name_second}:</label></dt>
			<dd>
				<input type="text" name="profile_name_second" id="profile_name_second" value="{$oUserCurrent->getProfileNameSecond()|escape:'html'}" class="input-text input-width-250">
			</dd>
		</dl>
		<!-- Отчество -->
		<dl class="form-item">
			<dt><label for="profile_name_middle">{$aLang.settings_profile_name_middle}:</label></dt>
			<dd>
				<input type="text" name="profile_name_middle" id="profile_name_middle" value="{$oUserCurrent->getProfileNameMiddle()|escape:'html'}" class="input-text input-width-250">
			</dd>
		</dl>

3. Ищем файл
/templates/skin/synio/actions/ActionProfile/profile_top.tpl

4. В этом файле ищем строки
	{if $oUserProfile->getProfileName()}
		<p class="user-name" itemprop="name">{$oUserProfile->getProfileName()|escape:'html'}</p>
	{/if}
Заменяем на
	{if $oUserProfile->getProfileName() || $oUserProfile->getProfileNameSecond() || $oUserProfile->getProfileNameMiddle()}
		<p class="user-name" itemprop="name">{if $oUserProfile->getProfileNameSecond()}{$oUserProfile->getProfileNameSecond()}{/if}{if $oUserProfile->getProfileName()} {$oUserProfile->getProfileName()|escape:'html'}{/if}{if $oUserProfile->getProfileNameMiddle()} {$oUserProfile->getProfileNameMiddle()}{/if}</p>
	{/if}

5. Добавляем языковые параметры в
/templates/skin/synio/settings/language/russian.php

6. После строки
	'profile_about_edit' => 'Редактировать',
Добавить
	'settings_profile_name_second' => 'Фамилия',
	'settings_profile_name_middle' => 'Отчество',


Правки в LS

1. Находим файл
/classes/modules/user/mapper/User.mapper.class.php

2. После
				user_profile_name = ? ,
Добавим
				user_profile_name_second = ? ,
				user_profile_name_middle = ? ,

После
							  $oUser->getProfileName(),
Добавить
							  $oUser->getProfileNameSecond(),
							  $oUser->getProfileNameMiddle(),

3. Находим файл
/classes/modules/user/entity/User.entity.class.php

4. После строк
	/**
	 * Возвращает имя
	 *
	 * @return string|null
	 */
	public function getProfileName() {
		return $this->_getDataOne('user_profile_name');
	}
Добавить
	/**
	 * Возвращает Фамилию
	 *
	 * @return string|null
	 */
	public function getProfileNameSecond() {
		return $this->_getDataOne('user_profile_name_second');
	}
	/**
	 * Возвращает Отчество
	 *
	 * @return string|null
	 */
	public function getProfileNameMiddle() {
		return $this->_getDataOne('user_profile_name_middle');
	}

В этом же файле ищем строки
	/**
	 * Устанавливает имя
	 *
	 * @param string $data
	 */
	public function setProfileName($data) {
		$this->_aData['user_profile_name']=$data;
	}
Добавить после неё это
	/**
	 * Устанавливает Фамилию
	 *
	 * @param string $data
	 */
	public function setProfileNameSecond($data) {
		$this->_aData['user_profile_name_second']=$data;
	}
	/**
	 * Устанавливает Отчество
	 *
	 * @param string $data
	 */
	public function setProfileNameMiddle($data) {
		$this->_aData['user_profile_name_middle']=$data;
	}

5. Найти файл
/classes/actions/ActionSettings.class.php

6. После строк
			/**
			 * Проверяем имя
			 */
			if (func_check(getRequestStr('profile_name'),'text',2,Config::Get('module.user.name_max'))) {
				$this->oUserCurrent->setProfileName(getRequestStr('profile_name'));
			} else {
				$this->oUserCurrent->setProfileName(null);
			}
Добавить
			/**
			 * Проверяем Фамилию
			 */
			if (func_check(getRequestStr('profile_name_second'),'text',2,Config::Get('module.user.name_max'))) {
				$this->oUserCurrent->setProfileNameSecond(getRequestStr('profile_name_second'));
			} else {
				$this->oUserCurrent->setProfileNameSecond(null);
			}
			/**
			 * Проверяем Отчество
			 */
			if (func_check(getRequestStr('profile_name_middle'),'text',2,Config::Get('module.user.name_max'))) {
				$this->oUserCurrent->setProfileNameMiddle(getRequestStr('profile_name_middle'));
			} else {
				$this->oUserCurrent->setProfileNameMiddle(null);
			}

Правки БД

Заходим в БД, выполняем SQL-запрос:
ALTER TABLE `prefix_user`  ADD `user_profile_name_second` VARCHAR(100) NULL AFTER `user_profile_name`,  ADD `user_profile_name_middle` VARCHAR(100) NULL AFTER `user_profile_name_second`;


Итоги




После проделанной работы в шаблоне появится 2 новых параметра:
getProfileNameSecond() — Фамилия
getProfileNameMiddle() — Отчество
-
getProfileName() — Имя (стандарт)

Таким способом можно добавить любое поле. Спасибо за внимание!

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.