PHPackages                             alvazz/ohohmnm - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. alvazz/ohohmnm

ActiveLibrary[Image &amp; Media](/categories/media)

alvazz/ohohmnm
==============

A Media Manager Built With Vuejs &amp; Laravel

v3.4.2(6y ago)139MITJavaScriptPHP ~7.0

Since Jul 16Pushed 6y ago1 watchersCompare

[ Source](https://github.com/Alvazz/Laravel-Media-Manager)[ Packagist](https://packagist.org/packages/alvazz/ohohmnm)[ Docs](https://github.com/alvazz/Laravel-Media-Manager)[ RSS](/packages/alvazz-ohohmnm/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (93)Used By (0)

 Laravel Media Manager
 [![Latest Stable Version](https://camo.githubusercontent.com/cf60a159fdc8a346ca3f0a819290466a8ff1e1e3a101cf6e9ba2f21ddff53e38/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616c76617a7a2f6d656469612d6d616e616765722e737667)](https://packagist.org/packages/alvazz/media-manager) [![Total Downloads](https://camo.githubusercontent.com/d73119f8cf7ad1f8f599eaffae4f9c7ce769b05de93aca6ca7d5b6780dedcbd0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616c76617a7a2f6d656469612d6d616e616765722e737667)](https://packagist.org/packages/alvazz/media-manager)
 [![Browser Status](https://camo.githubusercontent.com/e810b3bf2214e34e2c3f0acfe4a0de53b7df4bd405f68113f82cd503f598feaa/68747470733a2f2f6261646765732e6865726f6b756170702e636f6d2f62726f77736572733f66697265666f783d3631266d6963726f736f6674656467653d313726676f6f676c656368726f6d653d3531267361666172693d213f26696578706c6f72653d213f)](https://camo.githubusercontent.com/e810b3bf2214e34e2c3f0acfe4a0de53b7df4bd405f68113f82cd503f598feaa/68747470733a2f2f6261646765732e6865726f6b756170702e636f6d2f62726f77736572733f66697265666f783d3631266d6963726f736f6674656467653d313726676f6f676c656368726f6d653d3531267361666172693d213f26696578706c6f72653d213f)
==========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

[](#----laravel-media-manager-----------------)

 [![main](https://user-images.githubusercontent.com/7388088/46549213-88953500-c8d1-11e8-9685-188c7e56506a.png)](https://user-images.githubusercontent.com/7388088/46549213-88953500-c8d1-11e8-9685-188c7e56506a.png) [![card](https://user-images.githubusercontent.com/7388088/46549215-892dcb80-c8d1-11e8-8c23-d8bbfe7a10cc.jpg)](https://user-images.githubusercontent.com/7388088/46549215-892dcb80-c8d1-11e8-8c23-d8bbfe7a10cc.jpg) [![filter](https://user-images.githubusercontent.com/7388088/46004313-dda3a080-c0b2-11e8-814a-af5b3953846f.jpg)](https://user-images.githubusercontent.com/7388088/46004313-dda3a080-c0b2-11e8-814a-af5b3953846f.jpg) [![diff](https://user-images.githubusercontent.com/7388088/46004311-dd0b0a00-c0b2-11e8-82f1-d6c75235690f.jpg)](https://user-images.githubusercontent.com/7388088/46004311-dd0b0a00-c0b2-11e8-82f1-d6c75235690f.jpg)

- to optimize uploaded files on the fly try [spatie](https://github.com/spatie/laravel-image-optimizer)

Installation
------------

[](#installation)

- `composer require alvazz/media-manager`
- (Laravel &lt; 5.5) add the service provider to `config/app.php`

    ```
    'providers' => [
        alvazz\MediaManager\MediaManagerServiceProvider::class,
    ]
    ```
- publish the package assets with

    `php artisan vendor:publish --provider="alvazz\MediaManager\MediaManagerServiceProvider"`
- after installation, package will auto-add

    - package routes to `routes/web.php`
    - package assets compiling to `webpack.mix.js`
- [install dependencies](https://github.com/alvazz/Laravel-Media-Manager/wiki/Packages-In-Use)

    ```
    yarn add vue vue-ls vue-async-computed vue-list-rendered vue-image-compare2 vue-tippy@v1 vue2-filters vue-input-autowidth vue-notif vue-clipboard2 vue-awesome@v2 vue-touch@next idb-keyval axios dropzone cropperjs keycode date-fns lottie-web plyr fuse.js
    # or
    npm install vue vue-ls vue-async-computed vue-list-rendered vue-image-compare2 vue-tippy@v1 vue2-filters vue-input-autowidth vue-notif vue-clipboard2 vue-awesome@v2 vue-touch@next idb-keyval axios dropzone cropperjs keycode date-fns lottie-web plyr fuse.js --save
    ```
- add this one liner to your main js file and run `npm run watch` to compile your `js/css` files.

    - if you are having issues [Check](https://alvazz.wordpress.com/2017/09/12/laravel-mix-es6/).

    ```
    // app.js

    window.Vue = require('vue')

    // pre Laravel v5.7
    require('../vendor/MediaManager/js/manager')
    // Laravel v5.7
    // require('../assets/vendor/MediaManager/js/manager')

    new Vue({
        el: '#app'
    })
    ```

Features
--------

[](#features)

- [image editor](https://github.com/alvazz/Laravel-Media-Manager/wiki/Image-Editor)
- multi

    - upload
    - move/copy
    - delete
- upload by either

    - using the upload panel
    - drag &amp; drop anywhere
    - click &amp; hold on an empty area **"items container"**
- toggle between `random/original` names for uploaded files
- upload an image from a url
- [load image on demand](https://github.com/alvazz/Laravel-Media-Manager/wiki/Caching-Strategies#cache-api-image-offline-caching)
- [cache requests](https://github.com/alvazz/Laravel-Media-Manager/wiki/Caching-Strategies)
- [asynchronous Updates](https://github.com/alvazz/Laravel-Media-Manager/wiki/Async-Update-The-Manager)
- bulk selection
- change item/s visibility
- update the page url while navigation
- show audio files info **"artist, album, year, etc.."**
- dynamically hide [files](https://github.com/alvazz/Laravel-Media-Manager/wiki/Hide-Files-With-Extension) / [folders](https://github.com/alvazz/Laravel-Media-Manager/wiki/Hide-Folders)
- [restrict access to path](https://github.com/alvazz/Laravel-Media-Manager/wiki/Restrict-Access-To-Path)
- download selected ["including bulk selection"](https://github.com/alvazz/Laravel-Media-Manager/wiki/Download-Files-as-a-ZipFile)
- directly copy selected file link
- use the manager + [from modal](https://github.com/alvazz/Laravel-Media-Manager/wiki/Use-The-Manager-From-A-Modal)+ [with any wysiwyg editor](https://github.com/alvazz/Laravel-Media-Manager/wiki/Use-The-Manager-With-Any-WYSIWYG-Editor)
- auto scroll to selected item using **"left, up, right, down, home, end"**
- [lock/unlock](https://github.com/alvazz/Laravel-Media-Manager/wiki/Lock-Files-&-Folder) item/s.
- search in the current folder **or** globally through the entire collection.
- filter by

    - folder
    - image
    - audio
    - video
    - text/pdf
    - application/archive
    - locked items
    - selected items
- sort by

    - name "default"
    - size
    - last modified
- items count for

    - all
    - selected
    - search found
- contents ratio bar
- protection against overwriting (files/folders)
- file name sanitization for

    - upload
    - rename
    - new folder
- auto-play media files ***"if selected filter is audio/video"***
- disable/enable buttons depend on the usage to avoid noise &amp; keep the user focused
- shortcuts / gestures

    > - if no more **rows** available, pressing `down` will go to the last item in the list **"same as native finder"**.
    > - when viewing a `audio/video` file in the preview card, pressing `space` will **play/pause** the item instead of closing the modal.
    > - dbl click/tap
    >     - any file of type `audio/video` when sidebar is hidden, will open it in the preview card **"same as images"**.
    >     - any file of type `application/archive` will download it.
    > - all the **left/right** gestures have their counterparts available as well.
    > - pressing `esc` while using the ***image editor*** wont close the modal but you can ***dbl click/tap*** the `modal background` to do so. **"to avoid accidentally canceling your changes"**.

    \* the info sidebar is only available on big screens **"&gt; 1087px"**.
    \* to stop interfering with other `keydown` events you can toggle the manager listener through
    `EventHub.fire('disable-global-keys', true/false)`.

    navigationbuttonkeyboardclick / taptouchtoggle upload panel *(toolbar)*urefresh *(toolbar)*rhold *(clear cache)*pinch in *(items container)*move *(toolbar)*mimage editor *(toolbar)*edelete *(toolbar)*d / dellock/unlock *(toolbar)*lhold *(anything but images)*change visibility *(toolbar)*vtoggle bulk selection *(toolbar)*b(reset) bulk select all *(toolbar)*atoggle sidebar *(path bar)*t\*swipe left/right *(sidebar)*confirm *(modal)*entertoggle preview image/pdf/text *(item)*space\*\*play/pause media *(item)*space\*\*hide (modal / upload-panel / global-search)escreset (search / bulk selection / filter)esc move *(item)*swipe updelete *(item)*swipe downrename *(item)*swipe leftimage editor *(item)*holdlimit bulk select *(item)*shift + clickcurrent + next bulk select *(item)*alt/meta + clickcreate new folder\*\* *(items container)* go to next *(item)*right\*swipe left *(preview)*go to prev *(item)*left\*swipe right *(preview)*go to first *(item)*homego to last *(item)*endgo to next *(row)*downswipe up *(preview)*go to prev *(row)*upswipe down *(preview)*open folderenter\*\*go to prev *(dir)*folderName *(path bar)*backspace\*swipe right *(items container)*
- events

    typeevent-namedescription[JS](https://github.com/gocanto/vuemit)modal-showwhen modal is showenmodal-hidewhen modal is hiddenfile\_selected *([when inside modal](https://github.com/alvazz/Laravel-Media-Manager/wiki/Use-The-Manager-From-A-Modal))*get selected file urlmulti\_file\_selected *([when inside modal](https://github.com/alvazz/Laravel-Media-Manager/wiki/Use-The-Manager-From-A-Modal))*get bulk selected files urlsfolder\_selected *([when inside modal](https://github.com/alvazz/Laravel-Media-Manager/wiki/Use-The-Manager-From-A-Modal))*get selected folder path[Laravel](https://laravel.com/docs/5.5/events#manually-registering-events)MMFileUploaded($file\_path, $mime\_type)get uploaded file full [path](https://gist.github.com/alvazz/9fa6013954654384052d2e2e809b9bf6) &amp; mime type[MMFileSaved](https://github.com/alvazz/Laravel-Media-Manager/wiki/Image-Editor#optimize-edited-images-on-save)($file\_path, $mime\_type)get saved (edited/link) image full [path](https://gist.github.com/alvazz/9fa6013954654384052d2e2e809b9bf6) &amp; mime typeMMFileDeleted($file\_path, $is\_folder)get deleted file/folder full [path](https://gist.github.com/alvazz/9fa6013954654384052d2e2e809b9bf6)MMFileRenamed($old\_path, $new\_path)get renamed file/folder "old &amp; new" [path](https://gist.github.com/alvazz/9fa6013954654384052d2e2e809b9bf6)MMFileMoved($old\_path, $new\_path)get moved file/folder "old &amp; new" [path](https://gist.github.com/alvazz/9fa6013954654384052d2e2e809b9bf6)

Config
------

[](#config)

**config/mediaManager.php**

```
return [
    /*
     * ignore files pattern
     */
    'ignore_files' => '/^\..*/',

    /*
     * filesystem disk
     */
    'storage_disk' => 'public',

    /*
     * manager controller
     */
    'controller' => '\alvazz\MediaManager\Controllers\MediaController',

    /*
     * remove any file special chars except
     */
    'allowed_fileNames_chars' => '.\_\-\'\s\(\)\,',

    /*
     * remove any folder special chars except (_ -)
     */
    'allowed_folderNames_chars' => '\_\-',

    /*
     * disallow uploading files with the following mimetypes
     * https://www.iana.org/assignments/media-types/media-types.xhtml
     */
    'unallowed_mimes' => ['php', 'java'],

    /*
     * extra mime-types
     */
    'extended_mimes' => [
        'image' => [
            'binary/octet-stream',
        ],
        'archive' => [
            'application/x-tar',
            'application/zip',
        ],
    ],

    /*
     * when file names gets cleand up
     */
    'sanitized_text' => 'uniqid',

    /*
     * display file last modification time as
     * http://carbon.nesbot.com/docs/#api-formatting
     */
    'last_modified_format' => 'toDateString',

    /**
     * hide file extension in files list
     */
    'hide_files_ext' => true,

    /*
     * load image preview only when item is clicked ?
     */
    'lazy_load_image_on_click' => false,

    /*
     * automatically invalidate cache after "in Minutes"
     */
    'cache_expires_after' => 60,

    /*
     * in-order to get the folder items count & size
     * we need to recursively get all the files inside the folders
     * which could make the request take longer
     */
    'get_folder_info' => true,

    /**
     * do you want to enable broadcasting the changes
     * made by one user to others ?
     *
     * "laravel-echo" must be installed
     */
    'enable_broadcasting' => false,

    /**
     * show "an itunes like" content ratio bar
     */
    'show_ratio_bar' => true
];
```

Usage
-----

[](#usage)

> [Wiki](https://github.com/alvazz/Laravel-Media-Manager/wiki)
> [Demo](https://github.com/alvazz/demos/tree/media-manager)

- visit `localhost:8000/media`

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 97.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Recently: every ~0 days

Total

92

Last Release

2545d ago

Major Versions

v1.3.6 → v2.0.02017-10-25

v2.6.2 → v3.0.02018-04-23

PHP version history (2 changes)v1.0.0PHP &gt;=5.6.4

v1.0.8PHP ~7.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/ad6cbec70a888af93281493a4fbe408a7b6b14e4b3b7a68697a442460f567a61?d=identicon)[jasonzz](/maintainers/jasonzz)

---

Top Contributors

[![ctf0](https://avatars.githubusercontent.com/u/7388088?v=4)](https://github.com/ctf0 "ctf0 (223 commits)")[![chriys](https://avatars.githubusercontent.com/u/7218422?v=4)](https://github.com/chriys "chriys (2 commits)")[![palpalani](https://avatars.githubusercontent.com/u/716695?v=4)](https://github.com/palpalani "palpalani (1 commits)")[![rohanvakharia](https://avatars.githubusercontent.com/u/6183560?v=4)](https://github.com/rohanvakharia "rohanvakharia (1 commits)")[![Sparclex](https://avatars.githubusercontent.com/u/2805213?v=4)](https://github.com/Sparclex "Sparclex (1 commits)")

---

Tags

laravelguimanagermediamediamanageralvazz

### Embed Badge

![Health badge](/badges/alvazz-ohohmnm/health.svg)

```
[![Health](https://phpackages.com/badges/alvazz-ohohmnm/health.svg)](https://phpackages.com/packages/alvazz-ohohmnm)
```

###  Alternatives

[tomatophp/filament-media-manager

Manage your media files using spatie media library with easy to use GUI for FilamentPHP

14543.9k3](/packages/tomatophp-filament-media-manager)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
