2017 © Pedro Peláez
 

yii2-widget yii2-faceviewer-widget

Виджет для отображения представления пользователя

image

nepster-web/yii2-faceviewer-widget

Виджет для отображения представления пользователя

  • Friday, August 14, 2015
  • by nepster-web
  • Repository
  • 2 Watchers
  • 8 Stars
  • 199 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

FaceViewer Widget for Yii 2

Виджет для отображения представления пользователя (например аватарки или фотографии). br/ FaceViewer может быть полезен, в случае, когда необходимо показывать представление пользователей по различным шаблонам и делать это частно. Например: аватарки в сообщениях пользователей, фотографии в отзывах, изображение профиля и др., (*1)

Пример отображения

alt text, (*2)

Установка

Предпочтительный способ установки этого виджета через composer., (*3)

Запустите в консоле, (*4)

php composer.phar require --prefer-dist nepster-web/yii2-faceviewer-widget "*"

или добавьте, (*5)

"nepster-web/yii2-faceviewer-widget": "*"

в файл composer.json в секцию require., (*6)

Конфигурации

Все настройки:, (*7)

template - Шаблон представления. Может принимать как строку, так и callback функцию. br/br/ {face} - Приобразуется в изображение. br/ br/ Дополнительные атрибуты должны соответствовать атрибутам в data. Например, если указать в шаблоне {name}, то поиск значения name будет выполнен либо в массиве data, либо в атрибутах модели пользователя, если указан его идентификатор (userId)., (*8)

templateUrl - Заключает шаблон представление в URL адрес., (*9)

templateUrlOptions - Если шаблон представления заключен в URL адрес, то можно добавить любые атрибуты к ссылке., (*10)

data - Массив данных, которые подставляются в шаблон ({name} будет соответствовать $data['name'])., (*11)

userId - Если мы работаем с пользователями, то вместо data можно указать идентификатор пользователя, тогда faceviewer сам получит всю необходимую информаци., (*12)

userModel - неймспейс модели пользователя., (*13)

userProfileRelated - название реляции на профиль пользователя., (*14)

userModelAttributes - Атрибуты пользователя, которые будут получены при запросе., (*15)

faceField - Название атрибута, который указывает на изображение (Например: avatar_url)., (*16)

facePath - Полный путь к директории, например с аватарками (@statics/uploads/avatars)., (*17)

faceUrl - URL адрес к папке, например с аватарками (/statics/uploads/avatars)., (*18)

faceUrlDefault - URL адрес к папке, например с аватарками по умолчанию (/statics/templates/default/avatars)., (*19)

faceDefault - Имя изображения по умолчанию, например аватарки (no-avatar.png)., (*20)

faceSexField - Название атрибута, который указывает на пол (Например: sex)., (*21)

faceSexDefaultAvatar - Изображения по умолчанию на основе пола пользователя (Например [1 => 'male.png', 2 => 'female.png']). br/ Где 1 - Мужской пол, 2 - Женский пол. В качестве идентификатора 1 или 2 выступает поле указанное в faceSexField., (*22)

faceImgOptions - Атрибуты изображения., (*23)

onlyUrl - Вернуть только изображение без дополнительных тегов., (*24)

Пример использования:, (*25)

<?= \nepster\faceviewer\Widget::widget([
    // шаблон отображения
    'template' => '<div class="face">{face}</div> <br/> <strong>{username}</strong> <p>{name} {surname}</p>',
    // Поле текущего изображения
    'faceField' => 'avatar_url',
    // Массив Данных пользователя
    'data' => $model->user,
    // Url адрес с загруженными аватарками 
    'faceUrl' => '/statics/uploads/avatars',
    // Директория с загруженными аватарками на сервере
    'facePath' => '@statics/uploads/avatars',
    // Url адрес с аватарками по умолчанию 
    'faceUrlDefault' => '/statics/templates/default/avatars',
    // Дефолтная аватарка
    'faceDefault' => 'male.png'
]);?>

Результат: alt text, (*26)

Дополнительные примеры:, (*27)

<?php
// Вывод изображения включая пол
echo \nepster\faceviewer\Widget::widget([
    'template' => '{face} {name} {surname}',
    'data' => [
        'name' => 'Виктория',
        'surname' => 'Иванова',
        'sex' => 2, // К примеру 1 - М, 2 - Ж
    ],
    'faceUrl' => '/statics/uploads/avatars',
    'facePath' => '@statics/uploads/avatars',
    'faceUrlDefault' => '/statics/default',
    'faceDefault' => 'no-avatar.png',
    'faceField' => 'image_url',
    'faceSexField' => 'sex',
    // Дефолтные изображения исходя из поля sex
    'faceSexDefaultAvatar' => [
        1 => 'male.png',
        2 => 'female.png'
    ]
]);
?>
<?php
// Вывод изображения по ID пользователя
echo \nepster\faceviewer\Widget::widget([
    'template' => '{face} {name} {surname}',
    'userId' => 333,
    'faceUrl' => '/statics/uploads/avatars',
    'facePath' => '@statics/uploads/avatars',
    'faceUrlDefault' => '/statics/default',
    'faceDefault' => 'no-avatar.png',
    'faceField' => 'avatar_url',
    'userModel' => 'common\modules\users\models\User',
    'userModelAttributes' => ['name', 'surname', 'avatar_url']
]);
?>
<?php
// Использование callback-функции
echo \nepster\faceviewer\Widget::widget([
    'template' => function($data) {
        // Массив всех доступных данных
        var_dump($data);
    },
    'data' => [
        'name' => 'Иван',
        'surname' => 'Иванов',
    ],
    'faceUrl' => '/statics/uploads/avatars',
    'facePath' => '@statics/uploads/avatars',
    'faceUrlDefault' => '/statics/templates/default/avatars',
    'faceDefault' => 'no-avatar.png',
    'faceField' => 'image_url'
]);
?>

Внимание, если в Вашей структуре есть разделение таблиц пользователей и профиля, то Вы можете использовать следующий синтаксис:, (*28)

'userModelAttributes' => ['username', 'profile' => ['avatar_url', 'name', 'surname'] ],

FaceViewer возьмет свойство username из главной модели, а свойства avatar_url, name и surname попробует достать из реляции профиля., (*29)

Рекомендации

Если Вы используете данный виджет неоднократно, то нет необходимости при каждом вызове виджета передевать настройки на прямую. Можно реализовать передачу конфигурации по умолчанию., (*30)

Для этого можно использовать DI:, (*31)

// Настройки по умолчанию для виджета faceviewer
\Yii::$container->set('nepster\faceviewer\Widget', [
    // Url адрес с загруженными аватарками 
    'faceUrl' => '/statics/uploads/avatars',
    // Директория с загруженными аватарками на сервере
    'facePath' =>  '@statics/uploads/avatars',
    // Url адрес с аватарками по умолчанию 
    'faceUrlDefault' => '/statics/templates/default/avatars',
    // Дефолтная аватарка
    'faceDefault' => 'no-avatar.png'
]);

Предложенный код можно разместить в init необходимого модуля или в init общего контроллера., (*32)

The Versions

14/08 2015

dev-master

9999999-dev

Виджет для отображения представления пользователя

  Sources   Download

BSD-3-Clause

The Requires

 

by Nepster

yii2 yii 2 widget user avatar user photo

14/08 2015

v1.0.1

1.0.1.0

Виджет для отображения представления пользователя

  Sources   Download

BSD-3-Clause

The Requires

 

by Nepster

yii2 yii 2 widget user avatar user photo

07/03 2015

v1.0.0

1.0.0.0

Виджет для отображения представления пользователя

  Sources   Download

BSD-3-Clause

The Requires

 

by Nepster

yii2 yii 2 widget user avatar user photo