waContact

Работа с контактами

Содержание...

Контакт — это запись о персоне или организации в системном хранилище фреймворка. Для получения возможности управления контактом или получения информации о нем необходимо создать экземпляр класса waContact, например:

$contact = new waContact($id);
$contact_name = $contact->getName();

Методы

public function add ($field, $value)

Добавляет дополнительное значение для указанного свойства контакта.

Параметры

Пример

$contact = new waContact();
$contact->set('email', 'email1@domain.com');
$contact->add('email', 'email2@domain.com');

public function addToCategory ($category_id)

Добавляет контакт в указанную категорию. Применяется только к существующим контактам, хранящимся в базе данных.

Параметры

Пример

$contact = new waContact(1);
$contact->addToCategory(12);
$contact->addToCategory('blog');

public function delete()

Удаляет контакт из базы данных.

Пример

$contact = new waContact(123);
$contact->delete();

public function delSettings ($app_id, $name)

Удаляет из базы данных свойство контакта, относящееся к указанному приложению.

Параметры

Пример

$contact = new waContact(1);
$contact->delSettings('blog', 'nickname');

public function get ($field_id, $format = null)

Возвращает значение свойства контакта в соответствии с указанным форматом.

Параметры

Пример

$contact = new waContact(123);
$contact->get('name');

Результат

Виктор Петров

Пример

$contact = new waContact(123);
$contact->get('email', 'value');

Результат

Array
(
    [0] => email1@domain.ru
    [1] => email2@domain.ru
)

Пример

$contact = new waContact(123);
$contact->get('url', 'js');

Результат

Array
(
    [0] => Array
        (
            [value] => <a target="_blank" href="http://domain1.ru">domain1.ru</a><a target="_blank" href="http://domain1.ru"><i class="icon16 new-window"></i></a>
            [ext] => work
            [data] => http://domain1.ru
        )

    [1] => Array
        (
            [value] => <a target="_blank" href="http://domain2.ru">domain2.ru</a><a target="_blank" href="http://domain2.ru"><i class="icon16 new-window"></i></a>
            [ext] => personal
            [data] => http://domain2.ru
        )

)

public function getCache ($field_id = null, $old_value = false)

Возвращает значение свойства контакта из кеша без обращения к базе данных.

Параметры

Пример

//получаем и сохраняем в кеш информацию о контакте из базы данных
$contact = new waContact(123);
// динамически добавляем новые значения для поля 'email', в котором уже содержатся некоторые значения, хранящиеся в базе данных
$contact->add('email', 'extra1@domain.ru');
$contact->add('email', 'extra2@domain.ru');
//получаем из кеша значения поля 'email': как полученные из базы данных, так и добавленные динамически
$contact->getCache('email');

Результат

Array
(
    [0] => Array
        (
            [value] => email1@domain.ru
            [ext] => work
            [status] => unknown
        )

    [1] => Array
        (
            [value] => email2@domain.ru
            [ext] => personal
            [status] => unknown
        )

    [2] => Array
        (
            [value] => extra1@domain.ru
            [ext] => 
            [status] => unknown
        )

    [3] => Array
        (
            [value] => extra2@domain.ru
            [ext] => 
            [status] => unknown
        )

)

Пример

$contact = new waContact(123);
$contact->add('email', 'extra1@domain.ru');
$contact->add('email', 'extra2@domain.ru');
//получаем из кеша значения поля 'email': только те, которые были получены из базы данных
$contact->getCache('email', true);

Результат

Array
(
    [0] => Array
        (
            [value] => email1@domain.ru
            [ext] => work
            [status] => unknown
        )

    [1] => Array
        (
            [value] => email2@domain.ru
            [ext] => personal
            [status] => unknown
        )
)

public function getFirst ($field_id)

Возвращает первое значение множественного свойства контакта.

Параметры

Пример

$contact = new waContact(123);
$contact->getFirst('email');

Результат

Array
(
    [value] => email1@domain.ru
    [ext] => 
    [status] => unknown
)

public function getId()

Возвращает числовой идентификатор (id) контакта.

Пример

$contact = new waContact(123);
$contact->getId();

Результат

123

public function getLocale()

Возвращает локаль контакта.

Пример

$contact = new waContact(123);
$contact->getLocale();

Результат

ru_RU

public function getName()

Возвращает имя (name) контакта.

Пример

$contact = new waContact(123);
$contact->getName();

Результат

Виктор Петров

public static function getPasswordHash ($password)

Возвращает хеш для указанного пароля. Для формирования хеша по умолчанию используется функция md5. Если в конфигурационном файле wa-config/SystemConfig.class.php определена пользовательская функция wa_password_hash (подробнее об определении функции), то для формирования хеша используется она.

Параметры

Пример

waContact::getPasswordHash('6-~Md>vW);[&_3ue')

Результат

09e9f44d40c72f889769f0d548b4e405

public function getPhoto ($width = null, $height = null)

Возвращает URL фотографии контакта.

Параметры

Пример

$contact = new waContact(); //создаем новый контакт — у него еще нет фотографии
$contact->getPhoto(); //для контактов без фотографии возвращается URL аватара по умолчанию

Результат

/wa-content/img/userpic96.jpg

Пример

$contact = new waContact(123); //получаем информацию о существующем контакте
$contact->getPhoto(); //получаем URL фотографии этого контакта

Результат

/wa-data/public/contacts/photo/1/1343144519.96x96.jpg

public static function getPhotoUrl ($id, $ts, $width = null, $height = null)

Возвращает URL фотографии указанного контакта.

Параметры

Пример

waContact::getPhotoUrl(1, 1915140120, 'original')

Результат

/wa-data/public/contacts/photo/1/1915140120.original.jpg

public function getRights ($app_id, $name = null, $assoc = true)

Возвращает информацию о правах доступа контакта-пользователя.

Параметры

Пример

$contact = new waContact(123);
$contact->getRights('shop', 'orders');

Результат

1

Пример

$contact = new waContact(123);
$contact->getRights('shop', 'type%');

Результат

Array
(
    [.1] => 1
    [.2] => 1
)
$contact = new waContact(123);
$contact->getRights('shop', 'type%', false);

Результат

Array
(
    [0] => .1
    [1] => .2
)

public function getSettings ($app_id, $name = null, $default = null)

Возвращает свойства контакта, относящиеся к указанному приложению.

Параметры

Пример

$contact = new waContact(123);
$contact->getSettings('blog');

Результат

Array
(
    [blog_last_datetime] => 2013-12-03 13:52:33
    [type_items_count] => overdue:posts:comments
)

Пример

$contact = new waContact(123);
$contact->getSettings('blog', 'type_items_count');

Результат

overdue:posts:comments

public function getStatus()

Возвращает статус контакта-пользователя: «онлайн» или «оффлайн».

Пример

$contact = new waContact(123);
$contact->getStatus();

Результат

online

public function getTime()

Возвращает текущую дату и время с учетом локали и временной зоны контакта.

Пример

$contact = new waContact(123);
$contact->getTime();

Результат

03.12.2013 13:58

public function getTimezone()

Возвращает временную зону контакта.

Пример

$contact = new waContact(123);
$contact->getTimezone();

Результат

Europe/Moscow

public function isAdmin ($app_id = 'webasyst')

Возвращает информацию о том, имеет ли контакт-пользователь полные права доступа («администратор») ко всему бекенду либо указанному приложению.

Параметры

Пример

$contact = new waContact(123);
$contact->isAdmin('blog');

Результат

false // если у пользователя нет доступа к приложению «Блог» либо если у него ограниченные права к этому приложению
//в противном случае метод вернет true

public function load ($format = false, $all = false)

Возвращает полную информацию о контакте, хранящуюся в кеше.

Параметры

Пример

$contact = new waContact(123);
$contact->load('js', true);

public function save ($data = array(), $validate = false)

Сохраняет информацию о контакте в базу данных.

Параметры

Пример

$contact = new waContact();
$contact->set('name', 'Виктор Петров');
$contact->save();

public function set ($field_id, $value, $add = false)

Устанавливает значение для указанного свойства контакта.

Параметры

Пример

$contact = new waContact();
$contact->set('name', 'Виктор Петров');

public function setPhoto ($file)

Добавляет изображение для существующего контакта.

Параметры

Пример

$contact = new waContact(123);
$contact->setPhoto('path/to/imagefile.png');

public function setRight ($app_id, $name, $value)

Устанавливает права доступа для контакта-пользователя. Если пользователь обладает правами администратора для указанного приложения, то попытка изменить его права доступа с помощью этого метода будет проигнорирована.

Параметры

$contact = new waContact(123);
$contact->setRight('shop', 'orders', 1);

public function setSettings ($app_id, $name, $value = null)

Сохраняет произвольные параметры контакта, относящиеся к указанному приложению, в базу данных.

Параметры

Пример

$contact = new waContact(123);
$contact->setSettings('shop', 'sidebar_width', 200);

public function validate ($data=array())

Проверяет корректность указанных значений свойств контакта и возвращает массив сообщений об ошибках.

Параметры

Пример

$data = array(
  'name'  => 'Виктор Петров',
  'email' => 'domain.ru' //допустим, email-адрес контакта указан неверно
);
$contact = new waContact();
$contact->validate($data);

Результат

Array
(
    [email] => Array
        (
            [0] => Email-адрес введен неправильно
        )

)