Связь с адресами, телефонами, сайтами, социальными сетями

Компания (модель Company) позволяет использовать множественные значения:

Отдел компании (модель Company_Department) позволяет использовать множественные значения:

Представитель клиента (модель Siteuser_Person) позволяет использовать множественные значения:

Компания клиента (модель Siteuser_Company) позволяет использовать множественные значения:

Сотрудник (модель User) позволяет использовать множественные значения:

Получение значений

На примере компании клиента (модель Siteuser_Company) рассмотрим получение значений.

вывод всех адресов компании:

$aDirectory_Addresses = $oSiteuser_Company->Directory_Addresses->findAll();

foreach ($aDirectory_Addresses as $oDirectory_Address)
{
    // Тип адреса
    if ($oDirectory_Address->directory_address_type_id)
    {
        echo '<br />' . htmlspecialchars($oDirectory_Address->Directory_Address_Type->name);
    }
    
    // Собираем элементы адреса в массив
    $aCompanyAddress = array(
        $oDirectory_Address->postcode,
        $oDirectory_Address->country,
        $oDirectory_Address->city,
        $oDirectory_Address->value
    );

    // Удаляем пустые элементы массива
    $aCompanyAddress = array_filter($aCompanyAddress, 'strlen');
    
    // Объединяем через запятую
    $sFullCompanyAddress = implode(', ', $aCompanyAddress);
    
    echo '<br />' . htmlspecialchars($sFullCompanyAddress);
}

электронная почта:

$aDirectory_Emails = $oSiteuser_Company->Directory_Emails->findAll();

foreach ($aDirectory_Emails as $oDirectory_Email)
{
    // Тип электронной почты
    if ($oDirectory_Email->directory_email_type_id)
    {
        echo '<br />' . htmlspecialchars($oDirectory_Email->Directory_Email_Type->name);
    }
    
    echo '<br />' . htmlspecialchars($oDirectory_Email->value);
}

телефоны:

$aDirectory_Phones = $oSiteuser_Company->Directory_Phones->findAll();

foreach ($aDirectory_Phones as $oDirectory_Phone)
{
    // Тип телефона (рабочий, мобильный и т.д.)
    if ($oDirectory_Phone->directory_phone_type_id)
    {
        echo '<br />' . htmlspecialchars($oDirectory_Phone->Directory_Phone_Type->name);
    }
    
    echo '<br />' . htmlspecialchars($oDirectory_Phone->value);
}

мессенджеры:

$aDirectory_Messengers = $oSiteuser_Company->Directory_Messengers->findAll();

foreach ($aDirectory_Messengers as $oDirectory_Messenger)
{
    // Тип мессенджера
    if ($oDirectory_Messenger->directory_messenger_type_id)
    {
        echo '<br />' . htmlspecialchars($oDirectory_Messenger->Directory_Messenger_Type->name);
    }
    
    echo '<br />' . htmlspecialchars($oDirectory_Messenger->value);
}

социальные сети:

$aDirectory_Socials = $oSiteuser_Company->Directory_Socials->findAll();

foreach ($aDirectory_Socials as $oDirectory_Social)
{
    // Название соцсети
    if ($oDirectory_Social->directory_social_type_id)
    {
        echo '<br />' . htmlspecialchars($oDirectory_Social->Directory_Social_Type->name);
    }
    
    echo '<br />' . htmlspecialchars($oDirectory_Social->value);
}

сайты:

$aDirectory_Websites = $oSiteuser_Company->Directory_Websites->findAll();

foreach ($aDirectory_Websites as $oDirectory_Website)
{
    echo '<br />' . htmlspecialchars($oDirectory_Website->value);
}

Создание значения

Пример создания телефона для компании клиента:

$oDirectory_Phone = Core_Entity::factory('Directory_Phone');
$oDirectory_Phone->directory_phone_type_id = 1;
$oDirectory_Phone->public = 0;
$oDirectory_Phone->value = '+7 495 654-32-10';
$oDirectory_Phone->save();

$oSiteuser_Company->add($oDirectory_Phone);

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.