Jump to content

Recommended Posts

That's looking great, I would possibly consider having the edit button on the grid view and open in modal. So if you find the image you want to edit the description on in grid, you don't have to go into the edit mode and go looking for it again.

This is some really good stuff! I could really do with this in a recent project where there is a custom png icon set to use on the website and I wanted them to be able look through the list and select the one they want to use :-) 

Keep up the great work.

Share this post


Link to post
Share on other sites

I could really do with this in a recent project where there is a custom png icon set to use on the website and I wanted them to be able look through the list and select the one they want to use :-) 

Keep up the great work.

Nice idea. I was looking into something similar today.

Share this post


Link to post
Share on other sites

That's looking great, I would possibly consider having the edit button on the grid view and open in modal. So if you find the image you want to edit the description on in grid, you don't have to go into the edit mode and go looking for it again..

You won't have to. It remembers contexts: What you want is either #2 or #3 below:

  1. In view mode, if you haven't searched for any media, if you click on 'edit mode' button, you will be taken to edit screen for the media type you were viewing, with the first media selected to edit. So, if in view you were on 'all' menu, you will be taken to 'all' in edit. If you were on 'image' in view mode, you will be taken to 'image' on edit mode. 
  2. If in view, you'd searched for media and got back some results, if you then clicked on 'edit mode' button, you would be taken to the edit screen for only those found items, shown one media at a time with pagination. If you got back only one result in the search, you would be taken to the edit screen of only that result (without pagination of course)
  3. If in view mode you click on the title of a media, you will be taken straight to its edit screen, no questions asked :-) See example GIF below

In any of the above scenarios, clicking the view mode button will display the media you'd just edited.

Edit mode: clicking on title of media in 'view mode' - (#3 above)

post-894-0-49310100-1452360604_thumb.gif

  • Like 4

Share this post


Link to post
Share on other sites

will media manager support, beside self-uploaded videos, how about video content provider like youbue. For instance, add a youtube link in media manager

Such that I can browse youtube videos added in the media repository

  • Like 3

Share this post


Link to post
Share on other sites

@adrianmak

Currently that's not supported. I might consider it in future versions, depending on demand.

Share this post


Link to post
Share on other sites

Last major feature has been implemented, so a couple of more testing and its ready.


have you thought about implementing the blueimp file uploader to it? it has built in preview (at least for mp3 and images) and supports client side image resizing. that's one thing i am missing most when it comes to image galleries!

Done. See it action here.

  • Like 1

Share this post


Link to post
Share on other sites

Hi all,

I've realised that in my first post I didn't clarify that Media Manager is going to be a commercial module. I have edited the first post.

  • Like 1

Share this post


Link to post
Share on other sites

Looks amazing. Looking forward to purchasing.

Are you looking for any feedback at this stage or would you rather keep developing it?

Can we get BETA access?

  • Like 1

Share this post


Link to post
Share on other sites

Happy to announce that Media Manager (Beta 001) is ready for release!

I had to change the view/edit modes to streamline these into one unified interface. I think it works better as can be seen in the video below (or if can't access YT, see this instead).

I am working on the documentation this week and 'preparing shelves at the shop' with an aim to officially release the module next week or early the week after at the latest. If you can't wait that long and would like to get your hands on a copy soonest, please send me a PM. I am also finalising a pricing model. Initially, support will be via email.

Thanks for your patience :-)

Edited by kongondo
  • Like 8

Share this post


Link to post
Share on other sites

Happy to announce that Media Manager (Beta 001) is ready for release!

This just keeps looking better and better.

Some great work gone into it so far!

k

  • Like 1

Share this post


Link to post
Share on other sites

And again the GEMA blocks it for germany. It's so great to hide content in order to "make money for their artists".

Share this post


Link to post
Share on other sites

And again the GEMA blocks it for germany. It's so great to hide content in order to "make money for their artists".

try www.proxy-youtube.net

with

Share this post


Link to post
Share on other sites

While this looks powerful, one of the important things (USP :rolleyes:) is missing: What about the embedding context of all this media types. Speaking of responsive websites, picture elements with different image versions, device dependent scaling, video quality etc. As long as all you do is "feeding" a rich text editor that can handle one image (plus a description more or less), you don't need a extraordinary media manager IMHO. But this is only my opinion.

2nd big topic for a "respectable Digital Asset Management" as said above is rights management. A media rights management should manage: who can see, embed, delete, edit, label .. assets. Maybe a separated collection for every user role (speaking of folders again ^-^ ). Most important: access control have to be functional in resource serving context as well (means: you can't access a restricted resource, even if you know it's address).

Share this post


Link to post
Share on other sites

Here you go German buddies  :) (only 720p though on Vimeo)..

  • Like 1

Share this post


Link to post
Share on other sites

Media Manager Version 002 is ready

Changes

  • Specify allowed media types for a media manager field (i.e. the field you add to a template). Default is to allow all four types, i.e. audio, document, image and video. Setting is in 'Details Tab' of your media manager field
  • Set the maximum number of media allowed for a media manager field (i.e. maximum per page). Set in 'Details Tab'

Media Manager Field setting

post-894-0-92568700-1459440249_thumb.png

Example Media Manager Inputfield displays

More media can still be added

post-894-0-28333600-1459440251_thumb.png

Media Manager field (for this page) full

post-894-0-13671400-1459440254_thumb.png

  • Like 5

Share this post


Link to post
Share on other sites

Hey Kongondo!

Just bought the module! Awesome work!

Only a little Problem: When using the Admin Theme Reno the Link to Media Manager won't work, because the main Links are not "linked" in the same way as in the regular templates.

Two questions for my workflow:

1. Whats the best way to view the image in the frontend? Are there any MediaManager related methods?

2. Is there currently a way to categorize the images? Sometimes a bit more structure than tags only is even better! ;)

Thanks! Martin

  • Like 1

Share this post


Link to post
Share on other sites

Hi Martin,

Thanks for your purchase. Glad you like the module.

I almost exclusively use Admin Theme Reno (and will be recommending this to others) when using Media Manager - it gives you better real estate. It works just fine for me but I notice (and maybe this is the way it works for any linked page with child pages) I have to double click on the link to make it load Media Manager. The same goes for 'Pages', 'Setup' and 'Modules' links. 

  1. There is an example in the README.txt. The Easter break and illness have meant I haven't been able to finish the official documentation (mediamanager.kongondo.com). The API is quite straightforward. Note that you will first need to create a field of type Media Manager, add that to your template(s), then add media in your Media Library to the field. I have added some examples in the first post of this thread.
  2. Current its tags only. I'll see if there's a way to make this better.

Cheers,

/k

Edited by kongondo

Share this post


Link to post
Share on other sites

Yes the Reno double-click got me stumped for a while before I figured it out - definitely a "gotcha".  As soon as I went back to the default theme it worked as planned - can we get a fix for this?  ATM I'd be rolling out the default Admin theme to end-users rather than trying to explain that Media Manager link works differently to every other link (and I'd prefer the Reno theme if possible).

I've had a good read through of the Readme and had a play on a test site (so I'm not totally familiar yet), loving the module so far - it's not quite as easy to use as the Wordpress media manager (which is what end users will be comparing to frankly - and maybe limited by being a bolt-on rather than in the core), but an exciting start!

Really love the "versions" of the image that can be created from duplicates with different cropping etc.

Couple of quick ones:

- Even if a field is listed as Image it still shows tabs for Audio/Document/Video which I thought was a bit counter-intuitive (or maybe only happens as a superadmin?).

- Took me a while to figure out which image was active/highlighted in the modal view - maybe a highlight box around or something would be good rather than just the black highlighted name text (or maybe I was just being dense at the time). Same goes for the Edit & Crop buttons on the active image overlay.

- Would like to be able to upload directly dropping into the image list rather than having to go to a separate tab (what I'm aiming for is to have a field that is Image only, so end users just see the Image tab and can select from there as well as drag n drop upload on that same div).  

- Maybe make it more obvious once media is inserted into a page field (should the media manager window close then?).  I found myself adding media multiple times because I didn't realise it'd updated after clicking "Insert Media".

All just minor UX things, and some of it might just be me (therefore, end users) getting familiar with it.  

Great job Kongondo.  This module is getting me closer to doing everything on PW rather than the few that I still do on WP when media management is more important to clients than a good CMS.

Share this post


Link to post
Share on other sites

@Loges,

Thanks for purchasing Media Manager and giving me your feedback. I'll address each point you raise in a later post.

Oh, and welcome to the forums :-)

Edited by kongondo
  • Like 1

Share this post


Link to post
Share on other sites

The double click issue for Media Manager admin link in Reno looks like it can be solved by setting the Media Manager sub pages to hidden.  Not sure if that breaks anything else (didn't seem to in my quick test) but appears the system is looking for children pages hence the empty dropdown and requirement to double click to go to the main MM admin page.

  • Like 1

Share this post


Link to post
Share on other sites

Brilliant find! Thanks. I will need to make a couple of changes e.g. so that upload settings can be displayed and saved. There might be other minor changes needed as well. Will include this in version 003.

Edited by kongondo
clarified stuff

Share this post


Link to post
Share on other sites

Yes the Reno double-click got me stumped for a while before I figured it out - definitely a "gotcha".  As soon as I went back to the default theme it worked as planned - can we get a fix for this?  ATM I'd be rolling out the default Admin theme to end-users rather than trying to explain that Media Manager link works differently to every other link (and I'd prefer the Reno theme if possible).

You subsequently found a brilliant solution for this, so thanks.

It's not quite as easy to use as the Wordpress media manager (which is what end users will be comparing to frankly - and maybe limited by being a bolt-on rather than in the core), but an exciting start!

Never used/tested the WP one. Maybe I should have a look.

- Even if a field is listed as Image it still shows tabs for Audio/Document/Video which I thought was a bit counter-intuitive (or maybe only happens as a superadmin?).

Do you mean in the Inputfield (what you see when editing a ProcessWire page with a Media Manager field) or in the Media Library itself? I ask because there are no tabs in the former. The settings for fields only affect individual fields and are not universally applied to the Media Library (the manager itself). But there was a bug in the former in the text being displayed in the Inputfield and I fixed that in MM version 002.

Took me a while to figure out which image was active/highlighted in the modal view - maybe a highlight box around or something would be good rather than just the black highlighted name text (or maybe I was just being dense at the time). Same goes for the Edit & Crop buttons on the active image overlay

I grappled with this (the first part of your statement) during development and settled for highlighting the title with a view to revisiting in the future. Will have a look again. As for the Edit and Crop buttons, I don't understand what you mean. Please clarify.

Would like to be able to upload directly dropping into the image list rather than having to go to a separate tab (what I'm aiming for is to have a field that is Image only, so end users just see the Image tab and can select from there as well as drag n drop upload on that same div).

Am not sure I follow. Are you talking about the Media Library or a Media Manager field - Inputfield?

Maybe make it more obvious once media is inserted into a page field (should the media manager window close then?).  I found myself adding media multiple times because I didn't realise it'd updated after clicking "Insert Media".

Media Manager displays a notice (success or failure notices) when you select media and click on 'Insert Media'. Are you not seeing this in your tests? As for closing the modal window, the idea is that one may want to insert more media from other Media Library pages not currently in view. Closing the window would mean they have to open the modal again in order to insert the other media. I have explained this in the (upcoming) documentation so as not to confuse users.

Edited by kongondo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Gadgetto
      SnipWire - Snipcart integration for ProcessWire
      Snipcart is a powerful 3rd party, developer-first HTML/JavaScript shopping cart platform. SnipWire is the missing link between Snipcart and the content management framework ProcessWire.
      With SnipWire, you can quickly turn any ProcessWire site into a Snipcart online shop. The SnipWire plugin helps you to get your store up and running in no time. Detailed knowledge of the Snipcart system is not required.
      SnipWire is free and open source licensed under Mozilla Public License 2.0! A lot of work and effort has gone into development. It would be nice if you could donate an amount to support further development:

      Status update links (inside this thread) for SnipWire development
      2020-07-03 -- SnipWire 0.8.7 (beta) released! Fixes some small bugs and adds an indicator for TEST mode 2020-04-06 -- SnipWire 0.8.6 (beta) released! Adds support for Snipcart subscriptions and also fixes some problems 2020-03-21 -- SnipWire 0.8.5 (beta) released! Improves SnipWires webhooks interface and provides some other fixes and additions 2020-03-03 -- SnipWire 0.8.4 (beta) released! Improves compatibility for Windows based Systems. 2020-03-01 -- SnipWire 0.8.3 (beta) released! The installation and uninstallation process has been heavily revised. 2020-02-08 -- SnipWire 0.8.2 (beta) released! Added a feature to change the cart and catalogue currency by GET, POST or SESSION param 2020-02-03 -- SnipWire 0.8.1 (beta) released! All custom classes moved into their own namespaces. 2020-02-01 -- SnipWire is now available via ProcessWire's module directory! 2020-01-30 -- SnipWire 0.8.0 (beta) first public release! (module just submitted to the PW modules directory) 2020-01-28 -- added Custom Order Fields feature (first SnipWire release version is near!) 2020-01-21 -- Snipcart v3 - when will the new cart system be implemented? 2020-01-19 -- integrated taxes provider finished (+ very flexible shipping taxes handling) 2020-01-14 -- new date range picker, discount editor, order notifiactions, order statuses, and more ... 2019-11-15 -- orders filter, order details, download + resend invoices, refunds 2019-10-18 -- list filters, REST API improvements, new docs platform, and more ... 2019-08-08 -- dashboard interface, currency selector, managing Orders, Customers and Products, Added a WireTabs, refinded caching behavior 2019-06-15 -- taxes provider, shop templates update, multiCURL implementation, and more ... 2019-06-02 -- FieldtypeSnipWireTaxSelector 2019-05-25 -- SnipWire will be free and open source Plugin Key Features
      Fast and simple store setup Full integration of the Snipcart dashboard into the ProcessWire backend (no need to leave the ProcessWire admin area) Browse and manage orders, customers, discounts, abandoned carts, and more Multi currency support Custom order and cart fields Process refunds and send customer notifications from within the ProcessWire backend Process Abandoned Carts + sending messages to customers from within the ProcessWire backend Complete Snipcart webhooks integration (all events are hookable via ProcessWire hooks) Integrated taxes provider (which is more flexible then Snipcart own provider) Useful Links
      SnipWire in PW modules directory SnipWire Docs (please note that the documentation is a work in progress) SnipWire @GitHub (feature requests and suggestions for improvement are welcome - I also accept pull requests) Snipcart Website  

       
      ---- INITIAL POST FROM 2019-05-25 ----
       
    • By Sten
      Hello
      Till now I hacked something with the twig template but it works no more with new PW versions so I look forward to create a module. I am working on a site in multiple languages : French, English, Italian, German, Spanish, Portuguese, Hebrew, Russian. The new posts are entered in any language with a field for language. Till now, I got twig files to get the translations with constants defined for each part of the pages.
      So I'd like to create a module to include theses files added according to the url /fr/en/...
      Have you some observations to do before I begin about the direction to take ?
      Thank you
    • By ukyo
      Mystique Module for ProcessWire CMS/CMF
      Github repo : https://github.com/trk/Mystique
      Mystique module allow you to create dynamic fields and store dynamic fields data on database by using a config file.
      Requirements
      ProcessWire 3.0 or newer PHP 7.0 or newer FieldtypeMystique InputfieldMystique Installation
      Install the module from the modules directory:
      Via Composer:
      composer require trk/mystique Via git clone:
      cd your-processwire-project-folder/ cd site/modules/ git clone https://github.com/trk/Mystique.git Module in live reaction with your Mystique config file
      This mean if you remove a field from your config file, field will be removed from edit screen. As you see on youtube video.
      Using Mystique with your module or use different configs path, autoload need to be true for modules
      Default configs path is site/templates/configs/, and your config file name need to start with Mystique. and need to end with .php extension.
      Adding custom path not supporting anymore !
      // Add your custom path inside your module class`init` function, didn't tested outside public function init() { $path = __DIR__ . DIRECTORY_SEPARATOR . 'configs' . DIRECTORY_SEPARATOR; Mystique::add($path); } Mystique module will search site/modules/**/configs/Mystique.*.php and site/templates/Mystique.*.php paths for Mystique config files.
      All config files need to return a PHP ARRAY like examples.
      Usage almost same with ProcessWire Inputfield Api, only difference is set and showIf usage like on example.
      <?php namespace ProcessWire; /** * Resource : testing-mystique */ return [ 'title' => __('Testing Mystique'), 'fields' => [ 'text_field' => [ 'label' => __('You can use short named types'), 'description' => __('In file showIf working like example'), 'notes' => __('Also you can use $input->set() method'), 'type' => 'text', 'showIf' => [ 'another_text' => "=''" ], 'set' => [ 'showCount' => InputfieldText::showCountChars, 'maxlength' => 255 ], 'attr' => [ 'attr-foo' => 'bar', 'attr-bar' => 'foo' ] ], 'another_text' => [ 'label' => __('Another text field (default type is text)') ] ] ]; Example:
      site/templates/configs/Mystique.seo-fields.php <?php namespace ProcessWire; /** * Resource : seo-fields */ return [ 'title' => __('Seo fields'), 'fields' => [ 'window_title' => [ 'label' => __('Window title'), 'type' => Mystique::TEXT, // or InputfieldText 'useLanguages' => true, 'attr' => [ 'placeholder' => __('Enter a window title') ] ], 'navigation_title' => [ 'label' => __('Navigation title'), 'type' => Mystique::TEXT, // or InputfieldText 'useLanguages' => true, 'showIf' => [ 'window_title' => "!=''" ], 'attr' => [ 'placeholder' => __('Enter a navigation title') ] ], 'description' => [ 'label' => __('Description for search engines'), 'type' => Mystique::TEXTAREA, 'useLanguages' => true ], 'page_tpye' => [ 'label' => __('Type'), 'type' => Mystique::SELECT, 'options' => [ 'basic' => __('Basic page'), 'gallery' => __('Gallery'), 'blog' => __('Blog') ] ], 'show_on_nav' => [ 'label' => __('Display this page on navigation'), 'type' => Mystique::CHECKBOX ] ] ]; Searching data on Mystique field is limited. Because, Mystique saving data to database in json format. When you make search for Mystique field, operator not important. Operator will be changed with %= operator.
      Search example
      $navigationPages = pages()->find('my_mystique_field.show_on_nav=1'); $navigationPages = pages()->find('my_mystique_field.page_tpye=gallery');
    • By Robin S
      This is a module I made as an experiment a while ago and never got around to releasing publicly. At the time it was prompted by discussions around using Repeater fields for "page builder" purposes, where the depth feature could possibly be used for elements that would be nested inside other elements. I thought it would be useful to enforce some depth rules and translate the depth data into a multi-dimensional array structure.
      I'm not using this module anywhere myself but maybe it's useful to somebody.
      Repeater Depth Helper
      This module does two things relating to Repeater fields that have the "Item depth" option enabled:
      It enforces some depth rules for Repeater fields on save. Those rules are:
      The first item must have a depth of zero. Each item depth must not be more than one greater than previous item depth. It provides a RepeaterPageArray::getDepthStructure helper method that returns a nested depth structure for a Repeater field value.
      Helper method
      The module adds a RepeaterPageArray::getDepthStructure method that returns a multi-dimensional array where the key is the page ID and the value is an array of nested "child" items, or null if there are no nested children.
      Example

      The module doesn't make any assumptions about how you might want to use the depth structure array, but here is a way you might use it to output a nested unordered list.
      // Output a nested unordered list from a depth structure array function outputNestedList($depth_structure, $repeater_items) { $out = "<ul>"; foreach($depth_structure as $page_id => $nested_children) { $out .= "<li>" . $repeater_items->get("id=$page_id")->title; // Go recursive if there are nested children if(is_array($nested_children)) $out .= outputNestedList($nested_children, $repeater_items); $out .= "</li>"; } $out .= "</ul>"; return $out; } $repeater_items = $page->my_repeater; $depth_structure = $repeater_items->getDepthStructure(); echo outputNestedList($depth_structure, $repeater_items);
       
      https://github.com/Toutouwai/RepeaterDepthHelper
      https://modules.processwire.com/modules/repeater-depth-helper/
    • By MoritzLost
      Cacheable Placeholders
      This module allows you to have pieces of dynamic content inside cached output. This aims to solve the common problem of having a mostly cacheable site, but with pieces of dynamic output here and there.  Consider this simple example, where you want to output a custom greeting to the current user:
      <h1>Good morning, <?= ucfirst($user->name) ?></h1> This snippet means you can't use the template cache (at least for logged-in users), because each user has a different name. Even if 99% of your output is static, you can only cache the pieces that you know won't include this personal greeting. A more common example would be CSRF tokens for HTML forms - those need to be unique by definition, so you can't cache the form wholesale.
      This module solves this problem by introducing cacheable placeholders - small placeholder tokens that get replaced during every request. The replacement is done inside a Page::render hook so it runs during every request, even if the response is served from the template cache. So you can use something like this:
      <h1>Good morning, {{{greeting}}}</h1> Replacement tokens are defined with a callback function that produces the appropriate output and added to the module through a simple hook:
      // site/ready.php wire()->addHookAfter('CachePlaceholders::getTokens', function (HookEvent $e) { $tokens = $e->return; $tokens['greeting'] = [ 'callback' => function (array $tokenData) { return ucfirst(wire('user')->name); } ]; $e->return = $tokens; }); Tokens can also include parameters that are parsed and passed to the callback function. There are more fully annotated examples and step-by-step instructions in the README on Github!
      Features
      A simple and fast token parser that calls the appropriate callback and runs automatically. Tokens may include multiple named or positional parameters, as well as multi-value parameters. A manual mode that allows you to replace tokens in custom pieces of cached content (useful if you're using the $cache API). Some built-in tokens for common use-cases: CSRF-Tokens, replacing values from superglobals and producing random hexadecimal strings. The token format is completely customizable, all delimiters can be changed to avoid collisions with existing tag parsers or template languages. Links
      Github Repository & documentation Module directory If you are interested in learning more, the README is very extensive, with more usage examples, code samples and usage instructions!
×
×
  • Create New...