Работа с контактами
Состав контактов
Скорее всего это может показаться странным, но к контактам я отнёс не только почту и телефон, но и ещё много чего. Всё это сделано для удобства редактирования и оптимизации вывода. В итоге, к контактам относятся:
- телефоны
- электронные почты
- адреса
- реквизиты
- карты
- социальные сети и мессенджеры
- время работы
Каждый элемент списка имеет следующий набор полей:
type
- определяет к какому типу относится данная записьvalue
- непосредственно значение, для телефона формируется дополнительный параметрformattedValue
, которое хранит отформатированное значение телефона, при этом сам телефон должен быть записан только цифрами. Указать паттерн форматирования можно в системной настройкеmpc_phone_format
caption
- подпись к контактуicon_class
- класс иконки, задать доступные классы иконок можно в интерфейсе компонента Migx в конфигурацииcontacts
в возможных значениях соответствующего поляform
- поле доступно всем типам, но актуально только для email, так как позволяет назначить email для отправки на него данных с определенных форм.
Сниппет getContacts
Для удобства вывода контактов на фронте в комплекте поставляется сниппет getContacts
.
Параметр | По умолчанию | Описание |
---|---|---|
rid | берётся из системной настройки mpc_contacts_page_id | ID страницы с Контактами |
tvname | берётся из системной настройки mpc_contacts_tvname | название TV типа migx хранящей контакты |
Сниппет возвращает массив вида
php
[
'phones' => [
'Телефон' => [
'value' => '79998887766',
'formattedValue' => '8(999)888-77-66',
'caption' => 'Телефон',
'icon_class' => 'icon-phone',
'form' => '',
],
'Телефон2' => [
'value' => '79998887766',
'formattedValue' => '8(999)888-77-66',
'caption' => 'Телефон2',
'icon_class' => 'icon-phone',
'form' => '',
],
],
'emails' => [],
'socials' => [],
'addresses' => [],
'maps' => [],
'worktime' => [],
'requisites' => [],
]
Таким образом вы никак не ограничены в количестве реквизитов и можете легко получить к ним доступ, просто один раз вызвав сниппет getContacts
, например так:
fenom
{set $contacts = 'getContacts' | snippet}
<div class="custom">
<div>
{$contacts['maps']['Карта']['value']}
</div>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<tbody>
{foreach $contacts['requisites'] as $requisite}
<tr>
<td><b>{$requisite['caption']}</b></td>
<td>{$requisite['value']}</td>
</tr>
{/foreach}
{foreach $contacts['phones'] as $phone}
<tr>
<td><b>{$phone['caption']}</b></td>
<td>{$phone['formattedValue']}</td>
</tr>
{/foreach}
{foreach $contacts['emails'] as $email}
<tr>
<td><b>{$email['caption']}</b></td>
<td>{$email['value']}</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
</div>