Решения Услуги О компании Контакты +7 (495) 662-95-43 Консультация
Шаг 2

Использование на сайте

Подключение модуля, массив $contact, методы ContactHelper, примеры вывода контактов, соцсетей, логотипа и карты в шаблоне сайта.

Подключение модуля

В шаблоне сайта подключите модуль и получите контакты в виде массива:

<?php
if (CModule::IncludeModule('ipromoagency.contact')) {
    $contact = \Ipromoagency\Contact\ContactHelper::getContactArray();
    $social  = \Ipromoagency\Contact\ContactHelper::getActiveSocial();
}
?>

Дальше используйте $contact и $social в любой части шаблона — в шапке, футере, на странице контактов.

Доступные методы

МетодОписаниеПример
getContactArray() Получить все контакты в виде массива $contact = ContactHelper::getContactArray();
getOption($code, $default) Получить значение опции по коду $phone = ContactHelper::getOption('PHONE');
setOption($code, $value) Установить значение опции ContactHelper::setOption('PHONE', '+7 (495) 123-45-67');
getLogoUrl($type) Получить URL логотипа (LOGO или LOGO_SMALL) $logo = ContactHelper::getLogoUrl('LOGO');
getLogoId($type) Получить ID файла логотипа $id = ContactHelper::getLogoId('LOGO');
getActiveSocial() Получить только активные (непустые) соцсети $social = ContactHelper::getActiveSocial();
hasSocial() Проверить наличие активных соцсетей if (ContactHelper::hasSocial()) { ... }
formatPhone($phone, $format) Форматировать телефон (link или display) $link = ContactHelper::formatPhone('+7 (495) 123-45-67', 'link');
getMapUrl() Получить URL карты с параметрами $map = ContactHelper::getMapUrl();
getFooterContact() Получить сокращённый набор для футера $footer = ContactHelper::getFooterContact();

Полный пример для шапки и футера

<?php
if (CModule::IncludeModule('ipromoagency.contact')) {
    $contact = \Ipromoagency\Contact\ContactHelper::getContactArray();
    $social  = \Ipromoagency\Contact\ContactHelper::getActiveSocial();
}
?>

<!-- Логотип -->
<?php if (!empty($contact['LOGO'])): ?>
    <img src="<?= $contact['LOGO'] ?>" alt="Логотип">
<?php endif; ?>

<!-- Телефон со ссылкой -->
<a href="tel:<?= preg_replace('/[^\d+]/', '', $contact['PHONES']['MAIN']) ?>">
    <?= $contact['PHONES']['MAIN'] ?>
</a>

<!-- Дополнительный телефон -->
<?php if (!empty($contact['PHONES']['ADDITIONAL'])): ?>
    <a href="tel:<?= preg_replace('/[^\d+]/', '', $contact['PHONES']['ADDITIONAL']) ?>">
        <?= $contact['PHONES']['ADDITIONAL'] ?>
    </a>
<?php endif; ?>

<!-- Email -->
<a href="mailto:<?= $contact['EMAILS']['MAIN'] ?>">
    <?= $contact['EMAILS']['MAIN'] ?>
</a>

<!-- Адрес -->
<?php if (!empty($contact['ADDRESSES']['MAIN'])): ?>
    <div><?= $contact['ADDRESSES']['MAIN'] ?></div>
<?php endif; ?>

<!-- Режим работы -->
<?php if (!empty($contact['WORK_TIME']['MAIN'])): ?>
    <div><?= $contact['WORK_TIME']['MAIN'] ?></div>
<?php endif; ?>

<!-- Социальные сети -->
<?php if (!empty($social)): ?>
    <div class="social-links">
        <?php foreach ($social as $name => $url): ?>
            <a href="<?= $url ?>" target="_blank" rel="nofollow noopener"
               class="social-<?= strtolower($name) ?>">
                <?= $name ?>
            </a>
        <?php endforeach; ?>
    </div>
<?php endif; ?>

<!-- Вывод отдельной социальной сети -->
<?php if (!empty($contact['SOCIAL']['TELEGRAM'])): ?>
    <div><?= $contact['SOCIAL']['TELEGRAM'] ?></div>
<?php endif; ?>

<!-- Карта -->
<?php if (!empty($contact['MAP'])): ?>
    <a href="<?= $contact['MAP'] ?>" target="_blank" rel="nofollow noopener">
        Показать на карте
    </a>
<?php endif; ?>

<!-- Копирайт -->
<?php if (!empty($contact['COPYRIGHT'])): ?>
    <div><?= $contact['COPYRIGHT'] ?></div>
<?php endif; ?>

Сокращённый вывод для футера

Метод getFooterContact() возвращает только нужный для футера набор:

<?php
if (CModule::IncludeModule('ipromoagency.contact')) {
    $footer = \Ipromoagency\Contact\ContactHelper::getFooterContact();
}
?>
<footer>
    <?php if ($footer['LOGO']): ?>
        <img src="<?= $footer['LOGO'] ?>" alt="Логотип">
    <?php endif; ?>
    <div><?= $footer['PHONE'] ?></div>
    <div><?= $footer['EMAIL'] ?></div>
    <div><?= $footer['ADDRESS'] ?></div>
    <div><?= $footer['COPYRIGHT'] ?></div>
    <?php foreach ($footer['SOCIAL'] as $name => $url): ?>
        <a href="<?= $url ?>" target="_blank"><?= $name ?></a>
    <?php endforeach; ?>
</footer>

Форматирование телефона

Метод formatPhone() умеет выдавать телефон в двух форматах:

  • link — только цифры и «+», пригодно для href="tel:...";
  • display — отформатированный номер для отображения.
<?php
$raw     = '+7 (495) 123-45-67';
$link    = ContactHelper::formatPhone($raw, 'link');    // +74951234567
$display = ContactHelper::formatPhone($raw, 'display'); // +7 (495) 123-45-67
?>
<a href="tel:<?= $link ?>"><?= $display ?></a>

Обновление контактов из кода

Если нужно записать значение программно (например, при деплое или в миграции):

<?php
\Ipromoagency\Contact\ContactHelper::setOption('PHONE', '+7 (495) 662-95-43');
?>

Кеширование

Все методы возвращают данные из опций модуля — они уже закешированы Битриксом. Дополнительное кеширование в шаблоне не требуется. Если нужно сбросить кеш после изменения опций — очистите весь кеш сайта или кеш конкретной страницы.