2017 © Pedro PelΓ‘ez
 

library image_storage_l5

Image storage for L5

image

vis/image_storage_l5

Image storage for L5

  • Wednesday, January 17, 2018
  • by KGluschenko
  • Repository
  • 1 Watchers
  • 0 Stars
  • 202 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 55 Versions
  • 4 % Grown

The README.md

Image Storage

ΠŸΠ°ΠΊΠ΅Ρ‚-ΠΌΠ΅Π΄ΠΈΠ°Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для Laravel 5.4 ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ., (*1)

Π Π°Π·Π΄Π΅Π»Ρ‹ 1. Установка 2. VIS-CMS 3. Настройка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ² 1. ΠšΠΎΠ½Ρ„ΠΈΠ³ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ 2. ΠšΠΎΠ½Ρ„ΠΈΠ³ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² 3. ΠšΠΎΠ½Ρ„ΠΈΠ³ Π²ΠΈΠ΄Π΅ΠΎ * ΠšΠΎΠ½Ρ„ΠΈΠ³ Π²ΠΈΠ΄Π΅ΠΎ API 4. БпСцификация ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ 1. ΠžΠ±Ρ‰Π°Ρ спСцификация 3. ИспользованиС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ 4. ИспользованиС Ρ„ΠΎΡ‚ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΈ 5. ИспользованиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² 6. ИспользованиС Π²ΠΈΠ΄Π΅ΠΎ * ИспользованиС Π²ΠΈΠ΄Π΅ΠΎ API 7. ИспользованиС Π²ΠΈΠ΄Π΅ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΈ 8. ИспользованиС тэгов 5. ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 6. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² VIS CMS 1. ΠžΠ±Ρ‰Π΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ 2. ΠžΠ±Ρ‰Π΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² 1. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ изобраТСниями 2. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ 3. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ 3. ΠžΠ±Ρ‰Π΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ для Ρ„ΠΎΡ‚ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΉ, (*2)

Установка

ВыполняСм, (*3)

    composer require "vis/image_storage_l5":"1.*"

ДобавляСм Π² config\app.php Π² массив providers, (*4)

    Vis\ImageStorage\ImageStorageServiceProvider::class,

ВыполняСм ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ†, (*5)

   php artisan migrate --path=vendor/vis/image_storage_l5/src/Migrations

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ config, js, css, images, (*6)

    php artisan vendor:publish --provider="Vis\ImageStorage\ImageStorageServiceProvider" --force

VIS-CMS

Π’ Ρ„Π°ΠΉΠ»Π΅ config/builder/admin.php Π² массив menu Π² настройки добавляСм, (*7)

    array(
      'title' => 'ΠœΠ΅Π΄ΠΈΠ°Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅',
      'icon'  => 'picture-o',
      'check' => function() {
          return Sentinel::hasAccess('admin.image_storage.view');
      },
      'submenu' => array(
          array(
              'title' => "Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ",
              'link'  => '/image_storage/images',
              'check' => function() {
                  return Sentinel::hasAccess('admin.image_storage.view');
              }
          ),
          array(
              'title' => "Π“Π°Π»Π΅Ρ€Π΅ΠΈ",
              'link'  => '/image_storage/galleries',
              'check' => function() {
                  return Sentinel::hasAccess('admin.image_storage.view');
              }
          ),
          array(
              'title' => "Π’ΠΈΠ΄Π΅ΠΎ",
              'link'  => '/image_storage/videos',
              'check' => function() {
                  return Sentinel::hasAccess('admin.image_storage.view');
              }
          ),
          array(
              'title' => "Π’ΠΈΠ΄Π΅ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΈ",
              'link'  => '/image_storage/video_galleries',
              'check' => function() {
                  return Sentinel::hasAccess('admin.image_storage.view');
              }
          ),
          array(
              'title' => "Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹",
              'link'  => '/image_storage/documents',
              'check' => function() {
                  return Sentinel::hasAccess('admin.image_storage.view');
              }
          ),
          array(
              'title' => "Π’Π΅Π³ΠΈ",
              'link'  => '/image_storage/tags',
              'check' => function() {
                  return Sentinel::hasAccess('admin.image_storage.view');
              }
          ),
      )
    ),

ДобавляСм ΠΏΡ€Π°Π²Π° доступа Π² config/builder/tb-definitions/groups.php ΠΈ добавляСм ΠΈΡ… ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ., (*8)

    'ΠœΠ΅Π΄ΠΈΠ°Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅' => array(
        'admin.image_storage.view'   => 'ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€',
        'admin.image_storage.create' => 'Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅',
        'admin.image_storage.update' => 'Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅',
        'admin.image_storage.delete' => 'Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅',
    ),

Настройка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ²

ВсС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ содСрТат 3 основных настройки:, (*9)

Настройка title ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π° имя Ρ€Π°Π·Π΄Π΅Π»Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π² VIS-CMS, (*10)

    'title' => "Π“Π°Π»Π΅Ρ€Π΅ΠΈ",

Настройка per_page ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ количСство записСй ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π½Π° страницС Π² VIS-CMS, (*11)

    'per_page' => 20,

Настройка fields соддСрТащСС Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ΅ рСдактирования записи. ЗначСния: text, textarea,checkbox, select, datetime. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΈ Π² VIS-CMS. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ динамичСскоС созданиС Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Ρ‚Π°Π±ΠΎΠ², (*12)

    'fields' => array(
        ...
    ),

ΠšΠΎΠ½Ρ„ΠΈΠ³ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Настройки Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π’ ошибки автоматичСски ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ значСния 'max_size' ΠΈ 'extension_list', (*13)

    'size_validation' => array(
        'enabled' => true,
        'max_size' => '1500000',
        'error_message' => "ΠŸΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния Π² [size] MB"
    ),
    'extension_validation' => array(
        'enabled' => true,
        'allowed_extensions' => array('png', 'jpg', 'jpeg'),
        'error_message' => "Допустимы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ изобраТСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²: [extension_list]"
    ),

Настройка качСства для Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… JPG ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 0-100, (*14)

    'quality' => 85,

Настройка использования класса Vis\Builder\OptimizationImg для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: true\false, (*15)

    'optimization' => true,

Настройка использования исходного названия изобраТСния для поля title. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: true\false, (*16)

    'source_title' => true,

Настройка хранСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… изобраТСния Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡΡ функция exif_read_data, Π΄Π°Π½Π½Ρ‹Π΅ хранятся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ json. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: true\false, (*17)

    'store_exif' => true,

Настройка удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ сущности изобраТСния. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: true\false, (*18)

    'delete_files' => true,

Настройка пСрСимСнования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ сущности изобраТСния. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: true\false, (*19)

    'rename_files' => true,

Настройка отобраТСния ΠΊΠ½ΠΎΠΏΠΊΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² для записСй. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ нСобходимости ΡΠ³Π΅Π½Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ для ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… записСй. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: true\false, (*20)

    'display_generate_new_size_button' => true,

Настройка Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ…. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с изобраТСниями Intervention. ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ настройки Modify ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Intervention, (*21)

    'sizes' => array(
        'source' => array(
            'caption' => 'ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»',
            'default_tab' => true,
        ),
        'cms_preview' => array(
            'caption' => 'ΠŸΡ€Π΅Π²ΡŒΡŽ Π² ЦМБ',
            'default_tab' => false,
            'modify' => array(
                'fit' => array(160, 160, function (\Intervention\Image\Constraint $constraint) {
                    $constraint->upsize();
                }),
            ),
        ),

ΠšΠΎΠ½Ρ„ΠΈΠ³ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

ВсС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ настройки Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ изобраТСниям, ΠΊΡ€ΠΎΠΌΠ΅ Настройка ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠΉ сущности "Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°". ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках сайта ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π²ΠΎ всС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ устанавливаСтся ссылка Π½Π° исходный Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, (*22)

    'sizes' => array(
        'source' => array(
            'caption' => 'Основной Ρ„Π°ΠΉΠ»',
            'default_tab' => true,
        ),
        'ua' => array(
            'caption' => 'Π€Π°ΠΉΠ» Π½Π° ΡƒΠΊΡ€',
            'default_tab' => false,
        ),
        'en' => array(
            'caption' => 'Π€Π°ΠΉΠ» Π½Π° Π°Π½Π³Π»',
            'default_tab' => false,
        ),

    ),

ΠšΠΎΠ½Ρ„ΠΈΠ³ Π²ΠΈΠ΄Π΅ΠΎ

Π’ массивС настройки fields Π΄Π²Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… поля ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° сСрвис ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π²ΠΈΠ΄Π΅ΠΎ, (*23)

    'api_provider' => array(
        'caption' => 'Π’ΠΈΠ΄Π΅ΠΎ сСрвис',
        'type' => 'select',
        'options' => config('image-storage.video_api.provider_names')
    ),
    'api_id' => array(
        'caption' => 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π²ΠΈΠ΄Π΅ΠΎ',
        'type' => 'text',
        'field' => 'string',
        'placeholder' => 'Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π²ΠΈΠ΄Π΅ΠΎ',
    ),

ΠšΠΎΠ½Ρ„ΠΈΠ³ Π²ΠΈΠ΄Π΅ΠΎ API

Настройка ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ запрос ΠΊ Π²ΠΈΠ΄Π΅ΠΎ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΊΠ»ΡŽΡ‡ΠΈ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: true\false, (*24)

    'enabled' => true,

Настройка Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ Π²ΠΈΠ΄Π΅ΠΎ API Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: x, 0 (ΠΏΡ€ΠΈΠΌ. 0 - Π²Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ), false, (*25)

    'cache_minutes' => 60,

Настройка автоматичСского заполнСния ΠΏΠΎΠ»Π΅ΠΉ title&description ΠΈΠ· ΠΎΡ‚Π²Π΅Ρ‚Π° Π²ΠΈΠ΄Π΅ΠΎ API Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: true\false, (*26)

    'set_data' => true,

Настройка ΠΈΠΌΠ΅Π½ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎ API. Выводится Π² select создании\Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎ, (*27)

    'provider_names' => array(
        'youtube' => 'Youtube',
        'vimeo'   => 'Vimeo',
    ),

Настройка ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎ API, (*28)

    'providers' => array(
        'youtube' => array(
         ...
        ),
        'vimeo' => array(
        ...
        ),
     )

Настройки ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ API ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ², (*29)

Настройка ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сущСствования Π²ΠΈΠ΄Π΅ΠΎ Π½Π° сСрвисС (Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π° API), (*30)

    'video_existence_url' => '',

Настройка ссылки Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΏΡ€Π΅Π²ΡŒΡŽ Π½Π° сСрвисС (Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π° API), (*31)

    'preview_url' => '',

Настройка качСства изобраТСния-ΠΏΡ€Π΅Π²ΡŒΡŽ Π½Π° сСрвисС, (*32)

    'preview_quality' => '',

Настройка ссылки Π½Π° просмотр Π²ΠΈΠ΄Π΅ΠΎ (Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π° API), (*33)

    'watch_url' => '',

Настройка ссылки Π½Π° встраиваСмоС Π²ΠΈΠ΄Π΅ΠΎ (Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π° API), (*34)

    'embed_url' => '',

Настройка ссылки Π½Π° сСрвис API, (*35)

    'api_url' => '',

Настройка Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Ρ‹ Ρƒ сСрвиса API, (*36)

    'api_part' => '',

Настройка ΠΊΠ»ΡŽΡ‡Π° для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСрвису API, (*37)

    'api_key' => '',

БпСцификация ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠžΠ±Ρ‰Π°Ρ спСцификация

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ² Π² Π½Π°Ρ‡Π°Π»Π΅ своСго класса., (*38)

    use Vis\ImageStorage\Gallery;
    use Vis\ImageStorage\Image;
    use Vis\ImageStorage\Tag;
    use Vis\ImageStorage\VideoGallery;
    use Vis\ImageStorage\Video;
    use Vis\ImageStorage\Documents;

Ко всСм модСлям ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ стандартный ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ написания запросов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ Eloquent. Π’Π°ΠΊ ΠΆΠ΅ всС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Ρ€Π΅ΠΉΡ‚Ρ‹ VIS CMS \Vis\Builder\Helpers\Traits\TranslateTrait ΠΈ \Vis\Builder\Helpers\Traits\SeoTrait , (*39)

Для всСх записСй гСнСрируСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… слаг, Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, (*40)

    public function getSlug()

ΠžΠ±Ρ‰ΠΈΠ΅ scope Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ для всСх ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ (\Models\Traits\FilterableTrait.php) Π€ΠΈΠ»ΡŒΡ‚Ρ€ сортировки ΠΏΠΎ id., (*41)

    public function scopeOrderId(Builder $query, $order = "desc")

Π€ΠΈΠ»ΡŒΡ‚Ρ€ вывСдСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… записСй., (*42)

    public function scopeActive(Builder $query)

Π€ΠΈΠ»ΡŒΡ‚Ρ€ вывСдСния записСй согласна массива активностСй Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: массив $activity[0,1], (*43)

   public function scopeFilterByActivity(Builder $query, array $activity = [])

Π€ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ slug записи, (*44)

    public function scopeSlug(Builder $query, $slug = '')

Π€ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ title записи, (*45)

    public function scopeFilterByTitle(Builder $query, $title = '')

Π€ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Π΄Π°Ρ‚Π΅ создания записи. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: массив $date['from' => '', to => ''], (*46)

    public function scopeFilterByDate(Builder $query, array $date = [])

Π€ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ связанным тэгам. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: массив $tags[$idTags], (*47)

    public function scopeFilterByTags(Builder $query, array $tags = [])

Eloquent связь с тэгами. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС связанныС тэги с сущностями, (*48)

    public function tags()

ИспользованиС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Eloquent связь с галСрСями. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС связанныС Π³Π°Π»Π΅Ρ€Π΅ΠΈ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, (*49)

    public function galleries()

Π€ΠΈΠ»ΡŒΡ‚Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ галСрСям. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: массив $galleries[$idGalleries], (*50)

    public function scopeFilterByGalleries(Builder $query, array $galleries = [])

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния ссылки Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎΠΌΡƒ Ρ€ΠΎΡƒΡ‚Ρƒ. Π ΠΎΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, (*51)

    public function getUrl()
    {
        return route("vis_images_show_single", [$this->getSlug()]);
    }

НаслСдуСт ΠΎΡ‚ абстракции src/Models/AbstractImageStorageFile.php ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ изобраТСния Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - source, (*52)

    public function getSource($size = 'source')

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° изобраТСния Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - source, (*53)

    public function getFileExtension($size = 'source')

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° изобраТСния Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - source, (*54)

    public function getFileName($size = 'source')

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° изобраТСния Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - source, (*55)

    public function getFileSize($size = 'source')

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ mime-type Ρ„Π°ΠΉΠ»Π° изобраТСния Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - source, (*56)

    public function getFileMimeType($size = 'source')

ИспользованиС Ρ„ΠΎΡ‚ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΈ

Eloquent связь с изобраТСния. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС связанныС изобраТСния с Π³Π°Π»Π΅Ρ€Π΅Π΅ΠΉ, (*57)

    public function images()

Π€ΠΈΠ»ΡŒΡ‚Ρ€ Π³Π°Π»Π΅Ρ€Π΅ΠΉ ΠΏΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, (*58)

    public function scopeHasImages(Builder $query)

Π€ΠΈΠ»ΡŒΡ‚Ρ€ Π³Π°Π»Π΅Ρ€Π΅ΠΉ ΠΏΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, (*59)

    public function scopeHasActiveImages(Builder $query)

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния ссылки Π½Π° Π³Π°Π»Π΅Ρ€Π΅ΡŽ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎΠΌΡƒ Ρ€ΠΎΡƒΡ‚Ρƒ. Π ΠΎΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, (*60)

    public function getUrl()
    {
        return route("vis_galleries_show_single", [$this->getSlug()]);
    }

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния ΠΏΡ€Π΅Π²ΡŒΡŽ-изобраТСния для Π³Π°Π»Π΅Ρ€Π΅ΠΈ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - cms_preview, (*61)

    public function getGalleryPreviewImage($size = 'cms_preview')

ИспользованиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

НаслСдуСт ΠΎΡ‚ абстракции src/Models/AbstractImageStorageFile.php ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - source, (*62)

    public function getSource($size = 'source')

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - source, (*63)

    public function getFileExtension($size = 'source')

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - source, (*64)

    public function getFileName($size = 'source')

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - source, (*65)

    public function getFileSize($size = 'source')

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ mime-type Ρ„Π°ΠΉΠ»Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - source, (*66)

    public function getFileMimeType($size = 'source')

ИспользованиС видСо

Eloquent связь с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ-ΠΏΡ€Π΅Π²ΡŒΡŽ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ установлСнного изобраТСния-ΠΏΡ€Π΅Π²ΡŒΡŽ, (*67)

    public function preview()

Eloquent связь с изобраТСния. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС связанныС изобраТСния с Π³Π°Π»Π΅Ρ€Π΅Π΅ΠΉ, (*68)

    public function videoGalleries()

Бвязь с API ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ API provider Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π²ΠΈΠ΄Π΅ΠΎ., (*69)

    public function api()

Π€ΠΈΠ»ΡŒΡ‚Ρ€ Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ видСогалСрСям галСрСям. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: массив $galleries[$idGalleries], (*70)

    public function scopeFilterByVideoGalleries(Builder $query, array $galleries = [])

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния id Π²ΠΈΠ΄Π΅ΠΎ, (*71)

    public function getSource()

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния ссылки Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎΠΌΡƒ Ρ€ΠΎΡƒΡ‚Ρƒ. Π ΠΎΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, (*72)

    public function getUrl()
    {
        return route("vis_videos_show_single", [$this->getSlug()]);
    }

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния ссылки Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΏΡ€Π΅Π²ΡŒΡŽ Π²ΠΈΠ΄Π΅ΠΎ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ»ΠΈ установлСнноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΏΡ€Π΅Π²ΡŒΡŽ ΠΈΠ»ΠΈ обращаСтся API Π·Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ., (*73)

    public function getPreviewImage($size = 'source')

ИспользованиС видСо API

Π’ΠΈΠ΄Π΅ΠΎ API Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс /Models/Interfaces/VideoAPIInterface.php ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ , (*74)

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния ссылки Π½Π° Π²ΠΈΠ΄Π΅ΠΎ, (*75)

    public function getWatchUrl(array $urlParams);

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния ссылки Π½Π° встраиваСмоС Π²ΠΈΠ΄Π΅ΠΎ, (*76)

    public function getEmbedUrl(array $urlParams);

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния ссылки Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈ-ΠΏΡ€Π΅Π²ΡŒΡŽ ΠΈΠ· API, (*77)

    public function getPreviewUrl();

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния всСх Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· API, (*78)

    public function getApiResponse();

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния названия Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· API, (*79)

    public function getTitle();

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния описаниС Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· API, (*80)

    public function getDescription();

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния количСства просмотров Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· API, (*81)

    public function getViewCount();

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния количСства Π»Π°ΠΉΠΊΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· API, (*82)

    public function getLikeCount();

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния количСства Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· API, (*83)

    public function getDislikeCount();

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния количСства favorite для Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· API, (*84)

    public function getFavoriteCount();

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния количСства ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² для Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ· API, (*85)

    public function getCommentCount();

ИспользованиС Π²ΠΈΠ΄Π΅ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΈ

Eloquent связь с Π²ΠΈΠ΄Π΅ΠΎ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС связанныС Π²ΠΈΠ΄Π΅ΠΎ с Π²ΠΈΠ΄Π΅ΠΎΠ³Π°Π»Π΅Ρ€Π΅Π΅ΠΉ, (*86)

    public function videos()

Π€ΠΈΠ»ΡŒΡ‚Ρ€ Π²ΠΈΠ΄Π΅ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΉ ΠΏΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, (*87)

    public function scopeHasVideos(Builder $query)

Π€ΠΈΠ»ΡŒΡ‚Ρ€ Π²ΠΈΠ΄Π΅ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΉ ΠΏΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π²ΠΈΠ΄Π΅ΠΎ, (*88)

    public function scopeHasActiveVideos(Builder $query)

ΠœΠ΅Ρ‚ΠΎΠ΄ получСния ссылки Π½Π° Π²ΠΈΠ΄Π΅ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΡŽ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎΠΌΡƒ Ρ€ΠΎΡƒΡ‚Ρƒ. Π ΠΎΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, (*89)

    public function getUrl()
    {
        return route("vis_video_galleries_show_single", [$this->getSlug()]);
    }

ИспользованиС тэгов

Eloquent связь с изобраТСния. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС связанныС изобраТСния с тэгом, (*90)

    public function images()

Eloquent связь с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС связанныС изобраТСния с тэгом, (*91)

    public function documents()

Eloquent связь с Π²ΠΈΠ΄Π΅ΠΎ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС связанныС изобраТСния с тэгом, (*92)

    public function videos()

Eloquent связь с галСрСями. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС связанныС изобраТСния с тэгом, (*93)

    public function galleries()

Eloquent связь с видСогалСрСями. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ всС связанныС изобраТСния с тэгом, (*94)

    public function videoGalleries()

ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠœΠ΅Π΄ΠΈΠ°Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ряд Ρ‚Π΅Π³ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. ΠŸΡ€ΠΈ внСсСнии ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΉ Π² записи ΠΌΠ΅Π΄ΠΈΠ°Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° происходит автоматичСскоС сбрасываниС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ кэша связанного с этими Ρ‚Π΅Π³Π°ΠΌΠΈ. ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ тэгов для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· сущностСй: * image-storage.video * image-storage.document * image-storage.video_gallery * image-storage.gallery * image-storage.image * image-storage.tag, (*95)

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² VIS CMS

ΠžΠ±Ρ‰Π΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ ΠΊ интСрфСйсу VIS-CMS. Π’ шапкС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² находится ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ панСль с Ρ„ΠΈΠ»ΡŒΡ‚Π°ΠΌΠΈ(с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ для Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²) ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ создания Π½ΠΎΠ²ΠΎΠΉ записи, которая Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ модальноС ΠΎΠΊΠ½ΠΎ создания. Π’ Π½ΠΈΠΆΠ½Π΅ΠΉ части страницы находится пагинация, (*96)

ΠžΠ±Ρ‰Π΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ вызовСтся модальноС ΠΎΠΊΠ½ΠΎ рСдактирования записи ΠšΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ поля ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² соотв. ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ прямо ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ связями ΠΊΠΎΠ½ΠΊΡ‚Ρ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ изобраТСния., (*97)

ΠŸΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ области с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° панСль мноТСствСнного управлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. ПослС выдСлСния ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅\ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ наТатия Π½Π° Π½ΠΈΡ… ΠΌΡ‹ΡˆΠΊΠΎΠΉ ΠΏΡ€ΠΈ Π·Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ctrl. , (*98)

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ изобраТСниями

ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° ΠΏΠΎΠ»Π΅ "Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅" появится ΠΎΠΊΠΎΠ½ Π²Ρ‹Π±ΠΎΡ€Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ мноТСствСнная Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСх ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ созданиях ΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ запрос Π½Π° ΠΈΡ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ. Если ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΠ· сгСнирированных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ-Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π½Π΅ устариваСт, Ρ‚ΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ этого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°., (*99)

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ

ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎ достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ сСрвис ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π²ΠΈΠ΄Π΅ΠΎ. Если Π²ΠΈΠ΄Π΅ΠΎ сущСствуСт - ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² ΠΎΠ±Ρ‰ΠΈΠΉ список. Поля title ΠΈ description автоматичСски Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, Ссли установлСна соотв. настройка Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅. Если ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΏΡ€Π΅Π²ΡŒΡŽ прСдоставляСмоС Π²ΠΈΠ΄Π΅ΠΎ сСрвисом Π½Π΅ устариваСт, Ρ‚ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ собствСнноС Π² Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ "ΠŸΡ€Π΅Π²ΡŒΡŽ"., (*100)

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ

ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° ΠΏΠΎΠ»Π΅ "Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚" появится ΠΎΠΊΠΎΠ½ Π²Ρ‹Π±ΠΎΡ€Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ мноТСствСнная Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСх Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²ΠΎ всС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля Ρ„Π°ΠΉΠ»ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ установлСна ссылка Π½Π° исходный Ρ„Π°ΠΉΠ». Если Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» для ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², Ρ‚ΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ этого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°., (*101)

ΠžΠ±Ρ‰Π΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ для Ρ„ΠΎΡ‚ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ³Π°Π»Π΅Ρ€Π΅ΠΉ

ПослС создания Π³Π°Π»Π΅Ρ€Π΅ΠΈ ΠΈ добавлСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ\Π²ΠΈΠ΄Π΅ΠΎ Π² Π½Π΅Ρ‘ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ порядком ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ\Π²ΠΈΠ΄Π΅ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ пСрСтягивания ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ установлСниС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ\Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π²ΡŒΡŽ для Π³Π°Π»Π΅Ρ€Π΅ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ наТатия Π½Π° Π½Π΅Π³ΠΎ ΠΌΡ‹ΡˆΠΊΠΎΠΉ ΠΏΡ€ΠΈ Π·Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ctrl., (*102)

The Versions

17/01 2018

dev-master

9999999-dev

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

17/01 2018

1.4.11

1.4.11.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

19/11 2017

1.4.10

1.4.10.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

11/09 2017

1.4.9

1.4.9.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

06/09 2017

1.4.8

1.4.8.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

15/08 2017

1.4.7

1.4.7.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

10/07 2017

1.4.6

1.4.6.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

31/05 2017

1.4.5

1.4.5.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

16/05 2017

1.4.4

1.4.4.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

15/05 2017

1.4.3

1.4.3.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

15/05 2017

1.4.2

1.4.2.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

15/05 2017

1.4.1

1.4.1.0

Image storage for L5

  Sources   Download

proprietary

The Requires

 

by vis

08/05 2017

1.3.14

1.3.14.0

Image storage for L5

  Sources   Download

proprietary

by vis

04/05 2017

1.3.13

1.3.13.0

Image storage for L5

  Sources   Download

proprietary

by vis

03/05 2017

1.3.12

1.3.12.0

Image storage for L5

  Sources   Download

proprietary

by vis

03/05 2017

1.3.11

1.3.11.0

Image storage for L5

  Sources   Download

proprietary

by vis

27/04 2017

1.3.10

1.3.10.0

Image storage for L5

  Sources   Download

proprietary

by vis

26/04 2017

1.3.9

1.3.9.0

Image storage for L5

  Sources   Download

proprietary

by vis

19/04 2017

1.3.8

1.3.8.0

Image storage for L5

  Sources   Download

proprietary

by vis

28/03 2017

1.3.7

1.3.7.0

Image storage for L5

  Sources   Download

by vis

23/03 2017

1.3.6

1.3.6.0

Image storage for L5

  Sources   Download

by vis

07/03 2017

1.3.5

1.3.5.0

Image storage for L5

  Sources   Download

by vis

20/02 2017

1.3.4

1.3.4.0

Image storage for L5

  Sources   Download

by vis

09/02 2017

1.3.3

1.3.3.0

Image storage for L5

  Sources   Download

by vis

24/01 2017

1.3.2

1.3.2.0

Image storage for L5

  Sources   Download

by vis

19/01 2017

1.3.1

1.3.1.0

Image storage for L5

  Sources   Download

by vis

17/01 2017

1.2.17

1.2.17.0

Image storage for L5

  Sources   Download

by vis

17/01 2017

1.2.16

1.2.16.0

Image storage for L5

  Sources   Download

by vis

17/01 2017

1.2.15

1.2.15.0

Image storage for L5

  Sources   Download

by vis

29/12 2016

1.2.14

1.2.14.0

Image storage for L5

  Sources   Download

by vis

26/12 2016

1.2.13

1.2.13.0

Image storage for L5

  Sources   Download

by vis

22/12 2016

1.2.12

1.2.12.0

Image storage for L5

  Sources   Download

by vis

14/12 2016

1.2.11

1.2.11.0

Image storage for L5

  Sources   Download

by vis

09/12 2016

1.2.10

1.2.10.0

Image storage for L5

  Sources   Download

by vis

01/12 2016

1.2.9

1.2.9.0

Image storage for L5

  Sources   Download

by vis

01/12 2016

1.2.8

1.2.8.0

Image storage for L5

  Sources   Download

by vis

01/12 2016

1.2.7

1.2.7.0

Image storage for L5

  Sources   Download

by vis

30/11 2016

1.2.6

1.2.6.0

Image storage for L5

  Sources   Download

by vis

30/11 2016

1.2.5

1.2.5.0

Image storage for L5

  Sources   Download

by vis

30/11 2016

1.2.4

1.2.4.0

Image storage for L5

  Sources   Download

by vis

30/11 2016

1.2.3

1.2.3.0

Image storage for L5

  Sources   Download

by vis

30/11 2016

1.2.2

1.2.2.0

Image storage for L5

  Sources   Download

by vis

29/11 2016

1.2.1

1.2.1.0

Image storage for L5

  Sources   Download

by vis

28/11 2016

1.2.0

1.2.0.0

Image storage for L5

  Sources   Download

by vis

22/11 2016

1.1.1

1.1.1.0

Image storage for L5

  Sources   Download

by vis

21/11 2016

1.1.0

1.1.0.0

Image storage for L5

  Sources   Download

by vis

21/11 2016

1.0.9

1.0.9.0

Image storage for L5

  Sources   Download

by vis

18/11 2016

1.0.8

1.0.8.0

Image storage for L5

  Sources   Download

by vis

18/11 2016

1.0.7

1.0.7.0

Image storage for L5

  Sources   Download

by vis

18/11 2016

1.0.6

1.0.6.0

Image storage for L5

  Sources   Download

by vis

16/11 2016

1.0.5

1.0.5.0

Image storage for L5

  Sources   Download

by vis

15/11 2016

1.0.4

1.0.4.0

Image storage for L5

  Sources   Download

by vis

15/11 2016

1.0.3

1.0.3.0

Image storage for L5

  Sources   Download

by vis

14/11 2016

1.0.2

1.0.2.0

Image storage for L5

  Sources   Download

by vis

14/11 2016

1.0.1

1.0.1.0

Image storage for L5

  Sources   Download

by vis