RU демосайт

русскоязычная версия фриланс маркетплейса

Cовременное готовое решение сайта универсальной биржи услуг «Маркетплейс Freelance» на PHP v7.4

Смотреть демо RU

UA демосайт

україномовна версія фріланс маркетплейсу

Сучасне готове рішення сайту універсальної біржі послуг «Маркетплейс Freelance» на PHP v7.4

Дивитися демо UA
Экстраполя для профиля пользователя

Экстраполя для профиля пользователя

Очень часто при работе с сайтом на Cotonti возникает задача создания дополнительных полей для заполнения пользователями в своем профиле. Принцип работы с экстраполями.

Допустим, перед нами стоит задача создать поля: Название компании, Адрес, Телефон.

1) Для начала надо уяснить для себя, что в Cotonti данные пользователей хранятся в таблице базы данных, которая называется cot_users (Префикс cot_ может быть другим. например во фриланс-бирже префикс по-умолчанию имеет значение flance_). Чтобы создать экстраполе для этой таблицы, нам нужно перейти в админке в раздел Экстраполя и выбрать нашу таблицу.

2) На странице будет выводиться форма создания экстраполя, а также список уже созданных экстраполей (если они уже были созданы ранее). Итак, чтобы создать экстраполе нам понадобится выбрать для них код и название. Код экстраполя должен состоять только из латинских символов, а название может быть написано на русском.

В нашем случае мы определим значения таким образом:

company — Название компании
addr — Адрес
phone — Телефон

Также для экстраполя можно установить тип поля и другие значения, если например поле будет в виде селекта или другого множественного элемента веб-формы. По-умолчанию тип поля устанавливается в виде простого инпута.

3) После того как мы создали наши экстраполя, нам необходимо разместить их в соответствующих шаблонах пользователя: профиль (users.profile.tpl) и страница пользователя (users.details.tpl).

В профиле пользователь может редактировать свои данные, то есть этот шаблон (users.profile.tpl) содержит форму. Форматы тэгов в ней имеют такой вид: {USERS_PROFILE_НАЗВАНИЕПОЛЯ}

В нашем случае в этот шаблон нужно прописать такие тэги:

Поле «Название компании»:
{USERS_PROFILE_COMPANY} — само поле
{USERS_PROFILE_COMPANY_TITLE} — название поля

Поле «Адрес»:
{USERS_PROFILE_ADDR} — само поле
{USERS_PROFILE_ADDR_TITLE} — название поля

Поле «Телефон»:
{USERS_PROFILE_PHONE} — само поле
{USERS_PROFILE_PHONE_TITLE} — название поля

 

Аналогичным образом прописываются значения этих полей на странице пользователя для вывода информации, но формат тэгов уже должен быть иным {USERS_DETAILS_НАЗВАНИЕПОЛЯ}:

Поле «Название компании»:
{USERS_DETAILS_COMPANY} — значение поля
{USERS_DETAILS_COMPANY_TITLE} — название поля

Поле «Адрес»:
{USERS_DETAILS_ADDR} — значение поля
{USERS_DETAILS_ADDR_TITLE} — название поля

Поле «Телефон»:
{USERS_DETAILS_PHONE} — значение поля
{USERS_DETAILS_PHONE_TITLE} — название поля

Для шаблона users.edit.tpl:

Поле «Название компании»:
{USERS_EDIT_COMPANY} — значение поля
{USERS_EDIT_COMPANY_TITLE} — название поля

Поле «Адрес»:
{USERS_EDIT_ADDR} — значение поля
{USERS_EDIT_ADDR_TITLE} — название поля

Поле «Телефон»:
{USERS_EDIT_PHONE} — значение поля
{USERS_EDIT_PHONE_TITLE} — название поля

 

Обратите внимание, для каждого раздела в Cotonti структура тэгов экстраполей имеет разный формат. Чтобы определить этот формат, рекомендуется смотреть шаблоны соответствующих разделов.

 

Чтобы поле было обязательным только на определенной странице, например в настройках профиля — в экстраполе чекбокс снимаем «обязательное», а HTML-код поля в самом шаблоне .TPL должен включать атрибут required

примерно так в шаблон users.profile.tpl

{USERS_PROFILE_PHONE_CONTACT|cot_rc_modify($this, 'placeholder="Телефон" required="required"')}

или даже вот так

<!-- IF {USERS_PROFILE_PHONE_CONTACT} -->
<div>
	<div class="uk-card uk-card-default uk-padding-small uk-border-rounded">
		<label class="uk-form-label">{USERS_PROFILE_PHONE_CONTACT_TITLE}</label>
		<div class="uk-form-controls">
			{USERS_PROFILE_PHONE_CONTACT|cot_rc_modify($this, 'placeholder="Телефон" required="required"')}
		</div>
	</div>
</div>
<!-- ENDIF -->

пример

Название поля Описание поля (_TITLE) Тип поля HTML-код поля
adress_local Адрес, местоположение input <input class="uk-input" placeholder="Центрально-Городской р-н, пр. Мира, дом 21, офис 214" type="text" name="{$name}" value="{$value}"  maxlength="255" />
facebook Страница FaceBook input <input class="uk-input uk-width-1-1" type="text" name="{$name}" value="{$value}"  maxlength="255" />
first_second_name Контактное лицо input <input class="uk-input" type="text" name="{$name}" value="{$value}"  placeholder="Имя Фамилия" maxlength="255" />
instagram Страница в Instagram input <input class="uk-input uk-width-1-1" type="text" name="{$name}" value="{$value}"  maxlength="255" />
name_company Название компании, предприятия input <input class="uk-input uk-width-1-1" type="text" name="{$name}" value="{$value}"  maxlength="255" />
phone_contact Телефон контактный input <input class="uk-input uk-width-1-1" type="text" name="{$name}" value="{$value}"  maxlength="255" />
Telegram Telegram input <input class="uk-input" type="text" name="{$name}" value="{$value}" placeholder="MyNickTelega"  maxlength="255" />
time_working Время работы input <input class="uk-input uk-width-1-1" type="text" name="{$name}" value="{$value}" placeholder="09.00 - 21.30" maxlength="255" />
whats_app WhatsApp input <input class="uk-input" type="text" name="{$name}" value="{$value}"  maxlength="255" />
www_site Мой сайт input <input class="uk-input" type="text" name="{$name}" value="{$value}"  placeholder="mydomen.com" maxlength="255" />
youtube_link YouTube канал/страница input <input class="uk-input uk-width-1-1" type="text" name="{$name}" value="{$value}" placeholder="https://www.youtube.com/c/NatGeo/featured"  maxlength="255" />

сори за картинки не впопад

 

Другая документация по фриланс-бирже на Cotonti

Если, у Вас еще нет своего хостинга, - рекомендую проверенный !

Сам перепробывал много хостинг-услуг, - просто берите beget-хостинг (для России отличный вариант) Тариф "Старт" - оптимально и даже очень не дорого по ссылке https://beget.com/ru/order/start или клик по картинке

к тому же, тестирование на месяц бесплатно + сервисный домен - (свой домен прикрепить и протестирвать можно даже на бесплатном тестовом периоде хостинга)

Aльтернатива, если вам нужен хостинг именно в Украине, - ukraine.com.ua

Поддержите проект

Задать вопрос или оставить комментарий