<?xml version="1.0"?>
<rss version="2.0"><channel><title>Media Manager Latest Topics</title><link>https://processwire.com/talk/forum/67-media-manager/</link><description>Media Manager Latest Topics</description><language>en</language><item><title>Media Manager Next</title><link>https://processwire.com/talk/topic/28585-media-manager-next/</link><description><![CDATA[<p>
	Hi all,
</p>

<p>
	<span style="color:#996600;"><strong><span style="font-size:26px;">Media Manager Next/013</span></strong></span>
</p>

<p>
	Sorry I haven't posted here in a while. 
</p>

<p>
	I am currently working on the next version of Media Manager. It will part be refactoring and part be some new (some requested) features. I have been having some very helpful conversations with a number of you. Below are the current plans for the next version. Any other thoughts and/or ideas I should consider? It is a bit of work so I might have to stretch this into several updates (versions). Thanks.
</p>

<p>
	<u>New Features</u>
</p>

<ol><li>
		Upload from external sources (Amazon, Google, etc.).
	</li>
	<li>
		Point media to external resource (e.g. to a video in YT, Vimeo, etc.).
	</li>
	<li>
		Independently set media title on upload 
	</li>
	<li>
		Improve/extend media filter/profiles to MM Inputfields (possibly pick and apply a profile from a list) (thanks <a contenteditable="false" data-ipshover="" data-ipshover-target="https://processwire.com/talk/profile/1920-gebeer/?do=hovercard" data-mentionid="1920" href="https://processwire.com/talk/profile/1920-gebeer/" rel="">@gebeer</a>)
	</li>
	<li>
		PDF thumb preview (thanks <a contenteditable="false" data-ipshover="" data-ipshover-target="https://processwire.com/talk/profile/1920-gebeer/?do=hovercard" data-mentionid="1920" href="https://processwire.com/talk/profile/1920-gebeer/" rel="">@gebeer</a>)
	</li>
	<li>
		Upload and replace media (for single media MM inputfields).
	</li>
	<li>
		API (thanks <a contenteditable="false" data-ipshover="" data-ipshover-target="https://processwire.com/talk/profile/4557-mrsnoozles/?do=hovercard" data-mentionid="4557" href="https://processwire.com/talk/profile/4557-mrsnoozles/" rel="">@MrSnoozles</a>)
	</li>
	<li>
		<span style="color:#16a085;">Any other thoughts.....?</span>
	</li>
</ol><p>
	<u>Refactor</u>
</p>

<ol><li>
		Remove dependency on JqueryFileUpload
	</li>
	<li>
		Remove dependency on jQuery -&gt; use htmx and alpine JS instead. Easier to maintain for me as well as more flexibility.
	</li>
	<li>
		Improved preview of media and their properties.
	</li>
	<li>
		Better preview of media before upload.
	</li>
	<li>
		Redesigned GUI - Intuitive (like GDrive(?)), do away with media menus (use filters instead), need oMedia is just media.
	</li>
	<li>
		Remove/reduce use of modals.
	</li>
	<li>
		Allow grouping of media (link an album) &lt;- not yet confirmed if will be implemented
	</li>
	<li>
		Implement hookable methods to allow easier developer control for those who need advanced/custom control of their MM.
	</li>
</ol><p>
	A number of reported bug fixes as well.
</p>

<p>
	ETA? I cannot give a firm date about this, sorry.
</p>
]]></description><guid isPermaLink="false">28585</guid><pubDate>Mon, 27 Feb 2023 16:01:55 +0000</pubDate></item><item><title>Media Manager Becoming Open Source</title><link>https://processwire.com/talk/topic/31179-media-manager-becoming-open-source/</link><description><![CDATA[<div style="background-color:#ffffff;color:#666666;font-size:large;">
	I am considering open-sourcing Media Manager (and my other commercial modules). Please read and hopefully participate in the discussion in the Beer Garden (away from Google's prying eyes). Although the topic referred to is titled 'Padloper', the issues addressed equally apply to Media Manager.
</div>

<div style="background-color:#ffffff;color:#666666;font-size:large;">
	 
</div>

<div style="background-color:#ffffff;color:#666666;font-size:large;">
	<iframe allowfullscreen="" data-embedauthorid="894" data-embedcontent="" data-embedid="embed1266393932" style="height:241px;max-width:502px;" data-embed-src="https://processwire.com/talk/topic/31176-open-sourcing-padloper/?do=embed"></iframe>
</div>

<div style="background-color:#ffffff;color:#666666;font-size:large;">
	 
</div>

<div style="background-color:#ffffff;color:#666666;font-size:large;">
	Thanks.
</div>
]]></description><guid isPermaLink="false">31179</guid><pubDate>Sun, 06 Apr 2025 17:56:45 +0000</pubDate></item><item><title>MediaManager 0.1.2: Error when upgrading from PW 3.0.210 to PW 3.0.229</title><link>https://processwire.com/talk/topic/29869-mediamanager-012-error-when-upgrading-from-pw-30210-to-pw-30229/</link><description><![CDATA[<p>
	Hi <a contenteditable="false" data-ipshover="" data-ipshover-target="https://processwire.com/talk/profile/894-kongondo/?do=hovercard" data-mentionid="894" href="https://processwire.com/talk/profile/894-kongondo/" rel="">@kongondo</a>,
</p>

<p>
	today I tried to upgrade a ProcessWire website from PW 3.0.210 to 3.0.229.
</p>

<p>
	After that, when trying to access pages in the backend, which contain MediaManager fields, the following error occured:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">ProcessWire\WireException

Item 'type' set to ProcessWire\Pagefiles is not an allowed type search
File: /html/website/wire/core/WireArray.php:458

448:         *
449:         * @param int|string $key Key of item to set.
450:         * @param int|string|array|object|Wire $value Item value to set.
451:         * @throws WireException If given an item not compatible with this WireArray. 
452:         * @return $this
453:         *
454:         */
455:        public function set($key, $value) {
456:    
457:            if(!$this-&gt;isValidItem($value)) {
458:                throw new WireException("Item '$key' set to " . get_class($this) . " is not an allowed type");

459:            }
460:            if(!$this-&gt;isValidKey($key)) {
461:                throw new WireException("Key '$key' is not an allowed key for " . get_class($this));
462:            }</span></pre>

<p>
	To verify that this error was caused by Media Manager, I renamed the directory "MediaManager" in the modules folder. Then, the error disappeared.
</p>

<p>
	I had to downgrade ProcessWire for now, but the website has to be updated sooner or later, as other modules and parts of the site depend on it.
</p>

<p>
	Do you have any hints what I can do to avoid this error or is there a bugfix release of MediaManager?
</p>
]]></description><guid isPermaLink="false">29869</guid><pubDate>Wed, 27 Mar 2024 12:04:33 +0000</pubDate></item><item><title>Documentation</title><link>https://processwire.com/talk/topic/29889-documentation/</link><description><![CDATA[<p>
	As I do not really understand how to use this module: is there any working documentation? On your site I only see "Coming soon" or "Planed", which makes the module pretty useless for me.
</p>
]]></description><guid isPermaLink="false">29889</guid><pubDate>Thu, 04 Apr 2024 11:39:41 +0000</pubDate></item><item><title>Bug: CKEditor cannot select image in table view</title><link>https://processwire.com/talk/topic/29845-bug-ckeditor-cannot-select-image-in-table-view/</link><description><![CDATA[<p>
	Hello Kongondo,
</p>

<p>
	we experience a bug in Media Manager v0.1.3. When wanting to choose an image from MM in table view, after checking the red checkbox, the page inside the modal refreshes. In tile view it is working fine.
</p>

<p>
	Here's a screencast to illustrate the problem: <a href="https://www.awesomescreenshot.com/video/25972032?key=710d115a76a69bcf6642cb3ca72cfe99" rel="external nofollow">https://www.awesomescreenshot.com/video/25972032?key=710d115a76a69bcf6642cb3ca72cfe99</a>
</p>

<p>
	There are no errors shown in the console. Problem occurs in all browsers.
</p>

<p>
	PW v3.0.208, PHP8.1. Modules jQuery core v1.8.3, jQuery UI v1.9.6
</p>
]]></description><guid isPermaLink="false">29845</guid><pubDate>Wed, 20 Mar 2024 02:42:09 +0000</pubDate></item><item><title><![CDATA[MediaManager: cannot access ->media properties in hook]]></title><link>https://processwire.com/talk/topic/29429-mediamanager-cannot-access-media-properties-in-hook/</link><description><![CDATA[<div style="background-color:#f5f5f5;color:#333333;font-size:15px;">
	<div>
		 
	</div>

	<div>
		I'm trying to create a hook that would populate my SEO-Markup fields automatically with some field values of the page upon saving.
	</div>

	<div>
		For some reason I cannot access the MediaManager image field's -&gt;media property and its properties, it returns null.
	</div>

	<div>
		I do see this in the tracy console though…
	</div>

	<div>
		 
	</div>

	<div>
		<img alt="image.png.ba8fac05a7b97e936f45450ebe820baf.png" class="ipsImage ipsImage_thumbnailed" data-fileid="25800" data-ratio="49.03" style="height:auto;" width="412" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/monthly_2024_01/image.png.ba8fac05a7b97e936f45450ebe820baf.png" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" />
	</div>

	<div>
		 
	</div>

	<div>
		 
	</div>

	<div>
		 
	</div>

	<div>
		<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="com">//ready.php</span><span class="pln">

$wire</span><span class="pun">-&gt;</span><span class="pln">addHookBefore</span><span class="pun">(</span><span class="str">'Pages::saveReady'</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">(</span><span class="pln">$event</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">use</span><span class="pun">(</span><span class="pln">$sanitizer</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

    $page </span><span class="pun">=</span><span class="pln"> $event</span><span class="pun">-&gt;</span><span class="pln">arguments</span><span class="pun">[</span><span class="lit">0</span><span class="pun">];</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">$page</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">return</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$page</span><span class="pun">-&gt;</span><span class="pln">isChanged</span><span class="pun">(</span><span class="str">'seo_title'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> $page</span><span class="pun">-&gt;</span><span class="pln">isChanged</span><span class="pun">(</span><span class="str">'seo_image'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> $page</span><span class="pun">-&gt;</span><span class="pln">isChanged</span><span class="pun">(</span><span class="str">'seo_description'</span><span class="pun">))</span><span class="pln"> </span><span class="kwd">return</span><span class="pun">;</span><span class="pln"> 


    </span><span class="com">// SEO image :D</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$page</span><span class="pun">-&gt;</span><span class="pln">seo_image </span><span class="pun">==</span><span class="pln"> </span><span class="str">''</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        $filled </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
	    bd</span><span class="pun">(</span><span class="pln">$page</span><span class="pun">-&gt;</span><span class="pln">mema_images</span><span class="pun">);</span><span class="pln"> </span><span class="com">// see screenshot</span><span class="pln">
        bd</span><span class="pun">(</span><span class="pln">$page</span><span class="pun">-&gt;</span><span class="pln">mema_images</span><span class="pun">-&gt;</span><span class="pln">count</span><span class="pun">);</span><span class="pln"> </span><span class="com">// 3</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$page</span><span class="pun">-&gt;</span><span class="pln">mema_images</span><span class="pun">-&gt;</span><span class="pln">count </span><span class="pun">&gt;</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $imageURL </span><span class="pun">=</span><span class="pln"> $page</span><span class="pun">-&gt;</span><span class="pln">mema_images</span><span class="pun">-&gt;</span><span class="pln">first</span><span class="pun">-&gt;</span><span class="pln">media</span><span class="pun">-&gt;</span><span class="pln">url</span><span class="pun">;</span><span class="pln">
            bd</span><span class="pun">(</span><span class="pln">$imageURL</span><span class="pun">);</span><span class="pln"> </span><span class="com">// null :(</span><span class="pln">
            $filled </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$filled </span><span class="pun">==</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $imageURL </span><span class="pun">=</span><span class="pln"> strval</span><span class="pun">(</span><span class="pln">$imageURL</span><span class="pun">);</span><span class="pln">
            $page</span><span class="pun">-&gt;</span><span class="pln">seo_image </span><span class="pun">=</span><span class="pln"> $imageURL</span><span class="pun">;</span><span class="pln">
            $page</span><span class="pun">-&gt;</span><span class="pln">message</span><span class="pun">(</span><span class="str">'SEO image was filled because it was empty :D'</span><span class="pun">);</span><span class="pln">
            $filled </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">


    </span><span class="com">// SEO description :D - this works fine</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$page</span><span class="pun">-&gt;</span><span class="pln">seo_description </span><span class="pun">==</span><span class="pln"> </span><span class="str">''</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        $filled </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
        $description </span><span class="pun">=</span><span class="pln"> </span><span class="str">''</span><span class="pun">;</span><span class="pln">

        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$page</span><span class="pun">-&gt;</span><span class="pln">preview </span><span class="pun">!=</span><span class="pln"> </span><span class="str">''</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $filled </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
            $description </span><span class="pun">=</span><span class="pln"> $page</span><span class="pun">-&gt;</span><span class="pln">preview</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln"> 

        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$filled </span><span class="pun">==</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $description </span><span class="pun">=</span><span class="pln"> </span><span class="typ">SEOcleanUp</span><span class="pun">(</span><span class="pln">$description</span><span class="pun">,</span><span class="pln"> $sanitizer</span><span class="pun">);</span><span class="pln">
            $page</span><span class="pun">-&gt;</span><span class="pln">seo_description </span><span class="pun">=</span><span class="pln"> $description</span><span class="pun">;</span><span class="pln">
            $page</span><span class="pun">-&gt;</span><span class="pln">message</span><span class="pun">(</span><span class="str">'SEO description was filled because it was empty :D'</span><span class="pun">);</span><span class="pln">
            $filled </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln"> 

    $event</span><span class="pun">-&gt;</span><span class="pln">arguments</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="pln"> $page</span><span class="pun">);</span><span class="pln">
        
</span><span class="pun">});</span></pre>

		<p>
			 
		</p>
	</div>
</div>
]]></description><guid isPermaLink="false">29429</guid><pubDate>Wed, 10 Jan 2024 13:51:35 +0000</pubDate></item><item><title><![CDATA[Strange Selector Issue upgrading from (PHP 7.4 & 3.0.194) to (PHP 8 & 3.0.231 dev)]]></title><link>https://processwire.com/talk/topic/29331-strange-selector-issue-upgrading-from-php-74-30194-to-php-8-30231-dev/</link><description><![CDATA[<p>
	Hi @kongondo<br />
	<br />
	We are in the process of upgrading a website which is using MM version v.0.1.2. After upgrading somehow the "All" section doesn't return any media anymore.<br />
	<a class="ipsAttachLink ipsAttachLink_image" href="https://processwire-forums.s3.us-west-2.amazonaws.com/monthly_2023_12/image.png.4acc6226a8039c92ea03a4628fa88971.png" rel="external nofollow"><img class="ipsImage ipsImage_thumbnailed" data-fileid="25660" data-ratio="74.89" style="width:450px;height:auto;" width="1000" alt="image.thumb.png.fc346f1b22cef4f9431d07eed097ce22.png" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/monthly_2023_12/image.thumb.png.fc346f1b22cef4f9431d07eed097ce22.png" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" /></a><br />
	<br />
	I figured it out, that it was because of the following part in the selector <span style="color:#d35400;">media_manager_audio|media_manager_document|media_manager_image|media_manager_video!='' </span>which is using the OR-Operator in the MM Fields.<br />
	I have changed the code in MediaManagerUtilities.php to use OR-Groups for the MM Fields instead and now it works again.<br />
	<a class="ipsAttachLink ipsAttachLink_image" href="https://processwire-forums.s3.us-west-2.amazonaws.com/monthly_2023_12/1580353363_Bildschirmfoto2023-12-06um16_32_50.png.5449733db1f20e5d19fcea5d49917a6d.png" rel="external nofollow"><img class="ipsImage ipsImage_thumbnailed" data-fileid="25661" data-ratio="67.33" style="width:450px;height:auto;" width="1000" alt="568636792_Bildschirmfoto2023-12-06um16_32_50.thumb.png.948370e8668489997c4e36f07296a008.png" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/monthly_2023_12/568636792_Bildschirmfoto2023-12-06um16_32_50.thumb.png.948370e8668489997c4e36f07296a008.png" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" /></a><a class="ipsAttachLink ipsAttachLink_image" href="https://processwire-forums.s3.us-west-2.amazonaws.com/monthly_2023_12/751624277_Bildschirmfoto2023-12-06um16_45_50.png.912851e2c3987c32e59c4f6abbe8ffac.png" rel="external nofollow"><img class="ipsImage ipsImage_thumbnailed" data-fileid="25662" data-ratio="55.78" style="width:450px;height:auto;" width="1000" alt="1144712673_Bildschirmfoto2023-12-06um16_45_50.thumb.png.0002c9ca0c2c10a439ce0c93d29196ed.png" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/monthly_2023_12/1144712673_Bildschirmfoto2023-12-06um16_45_50.thumb.png.0002c9ca0c2c10a439ce0c93d29196ed.png" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" /></a><br />
	<br />
	Do you perhaps have an Idea what could cause the OR-Operator to fail for the mm fields here? Since it looks like it is working for the templates?<br />
	<br />
	KR<br />
	Orkun
</p>
]]></description><guid isPermaLink="false">29331</guid><pubDate>Wed, 06 Dec 2023 15:47:35 +0000</pubDate></item><item><title>Bug: TinyMCE insert link JavaScript Error</title><link>https://processwire.com/talk/topic/28582-bug-tinymce-insert-link-javascript-error/</link><description><![CDATA[<p>
	Hi <span><a contenteditable="false" data-ipshover="" data-ipshover-target="https://processwire.com/talk/profile/894-kongondo/?do=hovercard" data-mentionid="894" href="https://processwire.com/talk/profile/894-kongondo/" rel="">@kongondo</a>,</span>
</p>

<p>
	<span>we have detected a problem using MediaManager with the newly introduced richtext editor TinyMCE. When selecting an item from MediaManager via the "Insert Link" dialog, it will not be stored. At the javascript console is written the following message:</span><br />
	 
</p>

<pre class="ipsCode">Uncaught TypeError: window.parent.CKEDITOR is undefined

</pre>

<p>
	Is this an issue concerning to you, or for <span><a contenteditable="false" data-ipshover="" data-ipshover-target="https://processwire.com/talk/profile/2-ryan/?do=hovercard" data-mentionid="2" href="https://processwire.com/talk/profile/2-ryan/" rel="">@ryan</a>?</span>
</p>

<p>
	 
</p>

<p>
	<span>Thank you and best regards,</span>
</p>

<p>
	<span>Thomas from XPORT.</span>
</p>
]]></description><guid isPermaLink="false">28582</guid><pubDate>Mon, 05 Jun 2023 07:19:25 +0000</pubDate></item><item><title>About Media Manager Board</title><link>https://processwire.com/talk/topic/28581-about-media-manager-board/</link><description><![CDATA[<p>
	This forum is the new support forum for Media Manager. The old thread was becoming a behemoth hence this new forum. This will allow to split issues into several threads, making it much easier to manage and find things. Thanks Pete and Ryan for this!
</p>

<p>
	Where it is beneficial, I will split older posts into their own threads in this new forum. I will also lock the old long topic to avoid confusion.
</p>

<p>
	Thanks!
</p>
]]></description><guid isPermaLink="false">28581</guid><pubDate>Tue, 06 Jun 2023 17:30:18 +0000</pubDate></item><item><title>Bugs and Fixes</title><link>https://processwire.com/talk/topic/28584-bugs-and-fixes/</link><description><![CDATA[<p>
	<span style="background-color:#ffffff;color:#555555;font-size:16px;">This thread is for me to relay bug fixes about Media Manager (until I find a better way to do it). Please don't post your bug reports on this thread; unless it is about a fix that doesn't work for you. Thanks.</span>
</p>
]]></description><guid isPermaLink="false">28584</guid><pubDate>Tue, 06 Jun 2023 17:36:08 +0000</pubDate></item><item><title>Releases</title><link>https://processwire.com/talk/topic/28583-releases/</link><description><![CDATA[<p style="background-color:#ffffff;color:#555555;font-size:16px;">
	This thread is for me to announce Media Manager releases (until I find a better way to do it). Please use your download link (sent to your email) to get the latest Media Manager version.
</p>

<p style="background-color:#ffffff;color:#555555;font-size:16px;">
	Please don't post your bug reports on this thread. Instead, create a new thread for that in this support forum. Thanks.
</p>

<p style="background-color:#ffffff;color:#555555;font-size:16px;">
	<span style="color:#e67e22;"><strong><span style="font-size:22px;">Releases</span></strong></span>
</p>

<p style="background-color:#ffffff;color:#555555;font-size:16px;">
	TBD
</p>
]]></description><guid isPermaLink="false">28583</guid><pubDate>Tue, 06 Jun 2023 17:35:09 +0000</pubDate></item><item><title>Media Manager Archive</title><link>https://processwire.com/talk/topic/11224-media-manager-archive/</link><description><![CDATA[<p>
	<span style="color:#b6270e;"><span style="font-size:24px;"><strong>Media Manager </strong></span></span><br />
	 <br /><span style="font-size:18px;"><span style="color:#008000;"><strong>Released 31 March 2016</strong></span></span><br /><a href="https://processwireshop.pw/plugins/media-manager/" rel="external nofollow">https://processwireshop.pw/plugins/media-manager/</a>
</p>

<p>
	<span style="color:#808080;"><span style="font-size:18px;"><strong>Documentation</strong></span></span> 
</p>

<p>
	<a href="http://mediamanager.kongondo.com/" rel="external nofollow">http://mediamanager.kongondo.com/</a>
</p>

<p>
	<strong><span style="color:#009966;"><span style="background-color:rgb(255,255,255);font-size:20px;">As of 10 May 2019 ProcessWire versions earlier than 3.x are not supported</span></span></strong>
</p>

<p>
	<span style="background-color:#ffffff;color:#353c41;font-size:16px;">*******************************************************   ORIGINAL POST   *******************************************************</span>
</p>

<p>
	<span style="font-size:18px;"><strong><span style="color:#ff8c00;">API Example</span></strong></span> (frontend; will be added to documentation site)
</p>

<p>
	<span style="color:#800080;">Accessing and outputting the contents of the MediaManager field(s) in your template is quite simple. The fields are accessed like many other ProcessWire fields. The fields return an array of type MediaManagerArray that need to be looped to output each media within. Assuming you created a field of type MediaManager named '</span><strong><span style="color:#8b4513;">media</span></strong><span style="color:#800080;">', you can loop through it for a given page as shown below.</span>
</p>

<div>
	 
</div>

<div>
	<span style="color:#800080;"><u>@note:</u></span>
</div>

<div>
	<span style="color:#800080;">Each MediaManager object has the following <strong>5</strong> basic properties:</span>
</div>

<div>
	 
</div>

<div>
	<span style="color:#008000;"><strong>DATABASE </strong></span><span style="color:#800080;">(saved properties)</span>
</div>

<div>
	<span style="color:#800080;">1. </span><span style="color:#0000ff;"><strong>id </strong></span><span style="color:#800080;">=&gt; pageID of the page where the media lives (hidden in admin and not important to know about)</span>
</div>

<div>
	<span style="color:#800080;">2. </span><span style="color:#0000ff;"><strong>type </strong></span><span style="color:#800080;">=&gt; integer denoting media type (1=audio; 2=document; 3=image [for variations this will be 3x, where x is the number of the variation of an original image]; 4=video)</span>
</div>

<div>
	 
</div>

<div>
	<span style="color:#008000;"><strong>RUNTIME</strong></span>
</div>

<div>
	<span style="color:#800080;">3. </span><span style="color:#0000ff;"><strong>typeLabel </strong></span><span style="color:#800080;">=&gt; user friendly string denoting media type (audio, document, image, video)</span>
</div>

<div>
	<span style="color:#800080;">4. </span><span style="color:#0000ff;"><strong>media </strong></span><span style="color:#800080;">=&gt; a ProcessWire Image/File Object including all their properties (ext, filesizeStr, height, width, description, tags, filename, basename, etc.)</span>
</div>

<div>
	<span style="color:#800080;">5. </span><span style="color:#0000ff;"><strong>title </strong></span><span style="color:#800080;">=&gt; title of media (@note: this is the title of the page where the media lives; may or may not be the same as the name of the media file itself). This can be used as a user-friendly name for your media</span>
</div>

<pre class="ipsCode prettyprint">$media = $page-&gt;media;// returns a MediaManagerArray. Needs to be looped through

foreach ($media as $m) {
	echo $m-&gt;id;// e.g. 1234 (hidden page in /admin/media-manager/media-parent/)
	echo $m-&gt;type;// e.g. 3 (a media of type image) OR 1 (a media of type audio)
	echo $m-&gt;typeLabel;// e.g. 'document' (i.e. type would be 2)
	echo $m-&gt;title;// e.g. 'My Nice Trip' (whose media file could be my-nice-trip.mp4)
	/*
		@note: 
		- $m-&gt;media returns an object;
                   either a ProcessWire Image (for image media) or File object (for audio, document and video media)
		- This means you have access to all the properties of that object,
                   e.g. ext, tags, description, url, filename, basename, width, height,
                        modified, created, filesize, filesizeStr, etc
                        as well as associated methods, e.g. size()
	*/ 
	
	echo $m-&gt;media-&gt;tags;
}

// only output images
foreach ($media as $m) {
	if($m-&gt;typeLabel =='image') {
		echo "&lt;img src='" . $m-&gt;media-&gt;size(100,75)-&gt;url . "'&gt;&lt;br&gt;";
	}
	
}

// There's also a toString() method so you can do:
echo $page-&gt;media;

/*
All your media will be output wrapped in appropriate HTML tags, i.e.:

	audio: &lt;audio&gt;&lt;/audio&gt;;
	document: &lt;a&gt;&lt;/a&gt;;
	image: &lt;img&gt;;
	video: &lt;video&gt;&lt;/video&gt;;

*/
</pre>

<p>
	 <br />
	*******************************************************   ORIGINAL POST   *******************************************************<br />
	 <br />
	The topic of a central media manager feature for ProcessWire has come up several times:<br />
	 <br /><a href="https://processwire.com/talk/topic/4330-get-image-from-other-pages-via-images-field/" rel="">https://processwire.com/talk/topic/4330-get-image-from-other-pages-via-images-field/</a><br /><a href="https://processwire.com/talk/topic/4330-get-image-from-other-pages-via-images-field/?p=42578" rel="">https://processwire.com/talk/topic/4330-get-image-from-other-pages-via-images-field/?p=42578</a><br /><a href="https://processwire.com/talk/topic/4330-get-image-from-other-pages-via-images-field/?p=42582" rel="">https://processwire.com/talk/topic/4330-get-image-from-other-pages-via-images-field/?p=42582</a><br /><a href="https://processwire.com/talk/topic/425-file-manager/" rel="">https://processwire.com/talk/topic/425-file-manager/</a><br /><a href="https://processwire.com/talk/topic/425-file-manager/?p=13802" rel="">https://processwire.com/talk/topic/425-file-manager/?p=13802</a><br /><a href="https://processwire.com/talk/topic/425-file-manager/?p=13861" rel="">https://processwire.com/talk/topic/425-file-manager/?p=13861</a><br /><a href="https://processwire.com/talk/topic/10763-asset-manager-asset-selector/" rel="">https://processwire.com/talk/topic/10763-asset-manager-asset-selector/</a><br />
	 <br />
	More recently, regarding my <a href="https://processwire.com/talk/topic/11040-visual-page-selector-commercial-page-picker-module-for-processwire/" rel="">Visual Page Selector</a> module, I have been asked several times why the module does not have an in-built feature to upload images.<br />
	 <br />
	There's two camps on the topic of a central media manager: those who like them (especially those coming in to PW from other CMSes) and those who don't like them (primarily because of the chaotic way some CMSes (dis)organise their media management) <img alt=":-)" data-emoticon="" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/emoticons/default_smile2.png" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" />. I think that we can have our cake and eat it too! If done the right way, closely following the principles of and harnessing the power of ProcessWire, we can have a well-implemented, organised, feature-rich, site-wide media manager.<br />
	 <br /><strong>Introducing Media Manager: (a commercial module)</strong><br />
	 <br />
	Alongside a number of modules I am currently working on (both free and commercial), I have been developing  a centralised <strong>Media Manager</strong> for ProcessWire. Before you cast the first stone, no, this is <u>not</u> going to be a <span style="color:#ff0000;">one-large-media-bucket</span> as in other CMS where it gets very messy very quickly <img alt=":)" data-emoticon="" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/emoticons/default_smile.png" height="20" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" srcset="https://processwire-forums.s3.us-west-2.amazonaws.com/emoticons/smile@2x.png 2x" width="20" />. In the backend things are neatly stored away, yes, in pages. However, those are pages you will not see (just like repeater pages). Before anyone has a go at pages, remember a page is not that thing you see on the ProcessWire Tree (that's just its visual representation); <em>A page is a record/row in the database </em> <img alt=":P" data-emoticon="" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/emoticons/default_tongue.png" height="20" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" srcset="https://processwire-forums.s3.us-west-2.amazonaws.com/emoticons/tongue@2x.png 2x" width="20" />  <img alt=";)" data-emoticon="" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/emoticons/default_wink.png" height="20" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" srcset="https://processwire-forums.s3.us-west-2.amazonaws.com/emoticons/wink@2x.png 2x" width="20" />. For the end-user of Media Manager, all they will see is the 'familiar media bucket' to select their media from. As long as it works efficiently, I don't think they care about the wizardry behind the scenes <img alt=":)" data-emoticon="" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/emoticons/default_smile.png" height="20" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" srcset="https://processwire-forums.s3.us-west-2.amazonaws.com/emoticons/smile@2x.png 2x" width="20" /> . <br />
	 <br />
	The module allows for the comprehensive management of several media types:
</p>

<ul><li>
		Audio
	</li>
	<li>
		Video
	</li>
	<li>
		Images
	</li>
	<li>
		Documents
	</li>
</ul><p>
	Each media type will be handled by its own sub-module so the user can pick and install/choose the type of media management they want.<br />
	 <br />
	Features include:
</p>

<ul><li>
		Access controls
	</li>
	<li>
		Centralized uploads of media
	</li>
	<li>
		Bulk management of media: tag, delete, describe, replace, etc.
	</li>
	<li>
		Bulk upload: zip; scan, single
	</li>
	<li>
		Quick upload in page edit mode
	</li>
	<li>
		Usage stats across pages (maybe?)
	</li>
	<li>
		Etc..
	</li>
</ul><p>
	Would love to hear your thoughts and any feature suggestions. I think there's enough demand for such a module. If not, please let me know so that I can instead focus on other things  <img alt=":lol:" data-emoticon="" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/emoticons/default_laugh.png" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" />, thanks.<br />
	 <br /><strong>How other CMS do it</strong><br /><a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="6147" href="//processwire-forums.s3.us-west-2.amazonaws.com/monthly_10_2015/post-894-0-53440600-1443797542.png" rel=""><img alt="post-894-0-53440600-1443797542_thumb.png" class="ipsImage ipsImage_thumbnailed" data-fileid="6147" data-ratio="59.44" style="height:auto;" width="180" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/monthly_10_2015/post-894-0-53440600-1443797542_thumb.png" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" /></a><br />
	 <br /><strong>The more efficient (PW) way of doing it</strong><br /><a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="6148" href="//processwire-forums.s3.us-west-2.amazonaws.com/monthly_10_2015/post-894-0-21221700-1443797544.png" rel=""><img alt="post-894-0-21221700-1443797544_thumb.png" class="ipsImage ipsImage_thumbnailed" data-fileid="6148" data-ratio="61.11" style="height:auto;" width="180" data-src="//processwire-forums.s3.us-west-2.amazonaws.com/monthly_10_2015/post-894-0-21221700-1443797544_thumb.png" src="https://processwire.com/talk/applications/core/interface/js/spacer.png" /></a>
</p>
]]></description><guid isPermaLink="false">11224</guid><pubDate>Mon, 19 Oct 2015 11:50:09 +0000</pubDate></item></channel></rss>
