BitPoet

Module: MediaLibrary

45 posts in this topic

Hello: i get an error with PW

 

Error: Using $this when not in object context (line 39 of /web/htdocs/www.xxxxxx/home/site/modules/MediaLibrary-master/ProcessMediaLibraries.module) 

pw version 3.0.27

 

Thank you

Share this post


Link to post
Share on other sites
13 hours ago, abmcr said:

Hello: i get an error with PW


Error: Using $this when not in object context (line 39 of /web/htdocs/www.xxxxxx/home/site/modules/MediaLibrary-master/ProcessMediaLibraries.module) 

pw version 3.0.27

Can you try the latest version on git? The error should be fixed with version 0.1.0.

The latest version also incorporates @tpr's fix for the count() on null problem in case someone removes one of the fields from the MediaLibrary template.

@Zeka: I'm still looking into script loading in the frontend question. Currently, it's expected behaviour for an uncoditional autoload module, but I'm of course looking to only have the script loaded when necessary. Might be a while though, as it means a lot of testing and delving through PW's frontend editing code until I know what I'm doing. :)

2 people like this

Share this post


Link to post
Share on other sites

Hi, I'm new to Processwire and being a PHP novice having a hard time mastering its many complexities. I'm trying to use MediaLibrary but am stuck with a frustrating issue. When I add a Library, the library name appears in the main site navigation - this being a page, obviously. And when I make it hidden, the library page disappears from the Media list, and also from the dropdown when I access is via CKEditor. What am I doing wrong? Your help would be appreciated.

Share this post


Link to post
Share on other sites

Hi @MaryMatlow, that's actually a question I haven't yet thought about, since the pages I use it in assembles their navigation menus through more detailed selectors. I don't know if you could exclude it from your navigation by adding a "template!=MediaLibrary" somewhere. I'll give it some thought and post back here.

1 person likes this

Share this post


Link to post
Share on other sites

BitPoet, thank you for your hint. Adding this to MarkupSimpleNavigation php file worked:

    'selector' => 'template!=MediaLibrary',

Is there a way to access the MediaLibrary through the "choose file" button through admin. This button appears when you include images field for the page.

Thanks once again for your help and a great module.

1 person likes this

Share this post


Link to post
Share on other sites
13 hours ago, MaryMatlow said:

Is there a way to access the MediaLibrary through the "choose file" button through admin. This button appears when you include images field for the page.

Do you mean this button?

imagesfield.png

MediaLibrary is meant to avoid adding files and images to every page anew. Such functionality would copy the selected file/image over to the current page, which would be the opposite. I seem to recall that there's been a module somewhere in the forum that lets you add files or images from other pages, you might try google search with site:processwire.com/talk/ to find it. It should be possible to tweak that module then to only allow MediaLibrary pages if that is your requirement.

1 person likes this

Share this post


Link to post
Share on other sites

Thank you for sharing. Now the management is lot easier.  Every Time my client click on select image they get confused about image management because "Media Library" dropdown is always closed. Is there a configuration to keep Media Library dropdown open all of time? 

Share this post


Link to post
Share on other sites
5 hours ago, Speed said:

Thank you for sharing. Now the management is lot easier.  Every Time my client click on select image they get confused about image management because "Media Library" dropdown is always closed. Is there a configuration to keep Media Library dropdown open all of time? 

Not yet, but that should be easy to add as a module config option. I'll try to get around to it this week. Stay tuned.

2 people like this

Share this post


Link to post
Share on other sites

 

7 hours ago, BitPoet said:

Not yet, but that should be easy to add as a module config option. I'll try to get around to it this week. Stay tuned.

You are amazing... Thank you.  

1 person likes this

Share this post


Link to post
Share on other sites
2 hours ago, Speed said:

You are amazing... Thank you.  

I try my best :)

Version 0.1.1 is on GitHub and should be picked up by the module repository soon.

medialibrary-collapsed-option.png

1 person likes this

Share this post


Link to post
Share on other sites

I am having an issue where it works if I put my MediaLibrarys at the top level, but if I make a Regular page Called "Media" and create them under that, it no longer works.  The drop down is just empty.

ie.   /media/people/  (People is the MediaLibrary page)

On the admin/media page it does correctly show the path as: Pages / Media

Share this post


Link to post
Share on other sites

I was able to fix my issue with this change in the MediaLibrary.module file.

Change:

public function ___getPageMediaLibraries($pg) {
		$libraries = array();
		foreach($pg->parents->and($pg) as $ppage) { 
			$libraries = array_merge($libraries, $this->getChildLibraries($ppage));
		}
		
		return $libraries;
	}

To this:

public function ___getPageMediaLibraries($pg) {
		
		$libraries = wire('pages')->find("template=MediaLibrary");
	
		return $libraries;
	}

 

Share this post


Link to post
Share on other sites

While this is a reasonable way of structuring things, it's not a case I'll cover with the module. But that's why I made getPageMediaLibraries hookable. You don't need to modify the original module code, just add a hook in site/ready.php and change the return value there.

wire()->addHookAfter("MediaLibrary::getPageMediaLibraries", null, "myCustomGetLibraries");

function myCustomGetLibraries(HookEvent $event) {
	$event->return = wire('pages')->find("template=MediaLibrary");
}

 

2 people like this

Share this post


Link to post
Share on other sites

Is there any way to handle over thousand images? The client wants all their images in one place and search would be nice too. Is there any good way to handle this with this module? Loading time is minutes now..

Share this post


Link to post
Share on other sites
On 4/3/2017 at 3:29 PM, tewdin said:

Is there any way to handle over thousand images? The client wants all their images in one place and search would be nice too. Is there any good way to handle this with this module? Loading time is minutes now..

Loading of regular pages might benefit a tiny bit from using my module, but managing images would still be prone to the same delays if you put all images into a single library (which is just a page behind the scenes). You might still be able to make use of it if you can separate images into different libraries (e.g. by categorizing them into logos, photos, product images etc.) so numbers stay manageable. Media Library uses PW's native tools (file/image fields, CKEditor pwimage plugin), and I have to admit, I haven't tested those (and my module) with a big number of images - the module is a result of an internal requirement at work, where the number tends to stay well below 100.

I'd say give it a quick try in a test system (perhaps in conjunction with the FileFieldTweaks option of @tpr's AdminOnSteroids). If you find you need something more elaborate though, @kongondo's Media Manager pro module might be worth a look.

2 people like this

Share this post


Link to post
Share on other sites
57 minutes ago, BitPoet said:

If you find you need something more elaborate though, @kongondo's Media Manager pro module might be worth a look.

+1

Or you might want to look for non PW solutions which must be integrated for sure, so that is some extra work. I've just read about this one the other day: http://www.responsivefilemanager.com/  

1 person likes this

Share this post


Link to post
Share on other sites
On 4/4/2017 at 1:09 PM, szabesz said:

+1

Or you might want to look for non PW solutions which must be integrated for sure, so that is some extra work. I've just read about this one the other day: http://www.responsivefilemanager.com/  

I am new to ProcessWire and considering using it for a project. PW seems perfect for this project and so far I am very impressed with it. There will be several image galleries though that have hundreds of images in them. The images don't need a description or any other meta, so being able to mange them in a directory for each gallery seems much easier than trying to manage hundreds of images on a page.

I am therefore interested in this approach and have managed to get http://www.responsivefilemanager.com/ working by creating a "galleries" directory at the root level of the site, putting the responsive file manager code there in one directory, and then letting it manage other directories for the galleries. Securing the file manager seems problematic though. It doesn't seem possibly to fully integrate this into the PW User/Login though. I've followed the Bootstrap instructions http://processwire.com/api/include/ and can tie into PW, but $user isn't populated (always "guest"). I can retrieve a user with $wire->users->get, but then isLoggedin() seems to always return true.

I imagine this needs to be done in a Module to have more integration with PW and may look into doing that. I wanted to check first though to see if someone else has done this, or if it doesn't sound like a good idea at all, or other suggestions? Thanks!

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 benbyf
      HELLO!
      I've been working on a user messaging module which I am nearly ready to release as version 1.
      Currently I have the below functionality and I'm looking for feedback to what other things may be useful for people looking to add user to user messaging on their sites.
      compose message to one or more users known to PW js to enable tag based UI display of user names input on compose message form display all message threads with reply forms reply to message thread displaying each user name by each message in the thread display "unread" when a thread has new content that hasnt been seen by current user delete or unpublish message thread (configurable) display total message thread count display total unread threads (threads that have new replies that the current user has not seen) delete all message threads and associated data (not meant for the users to have access to) road map
      send email to user on new message to a thread they are included in
    • By louisstephens
      So I was working on a module and trying to include a library (so I could use it across the site) using $modules->get('myModule'); . However, When I go to include the library folder (modeled after the LibFlourish module created some time ago). I keep getting: 
      site/modules/MyModule/libraryName/ProcessWire\filetoinclude.php This comes with an error notifying that "failed to open stream: No such file or directory in ...".. Is ProcessWire supposed to be in the include url, or is there a way around this? Sorry, I am quite new to working with my own modules.
       
      I just noticed the sub forum regarding Development, if someone could move this to the correct area I would appreciate it.
    • By louisstephens
      I wasn't quite sure where to post this, as this is a question regarding the module (sorry if it is in the wrong place). I was wondering if anyone has used the Email to Page module and figured out a way to "move" incoming css to another field, or how to render the css so the message just renders utilizing the css. 
      Right now all of the message contents get dropped into a textarea field and display in a template as a jumbled mess. Perhaps I am missing a formatting option in the text area field to render the css and html.
    • By blynx
      Hej,
      just finished the first working version of my photoswipe bundle. https://github.com/blynx/MarkupProcesswirePhotoswipe
      Haven't published it to the module directory, yet. Wanted to wait for some feedback.
      You can add a photoswipe enabled thumbnail gallery / lightbox to your site like this. Just pass an image field to the renderGallery method:
      <?php $pwpswp = $modules->get('Pwpswp'); echo $pwpswp->renderGallery($page->nicePictures); Options are provided like so:
      <?php $galleryOptions = [ 'imageResizerOptions' => [ 'size' => '500x500' 'quality' => 70, 'upscaling' => false, 'cropping' => false ], 'loresResizerOptions' => [ 'size' => '500x500' 'quality' => 20, 'upscaling' => false, 'cropping' => false ], 'pswpOptions' => (object) [ 'shareEl' => false, 'indexIndicatorSep' => ' von ', 'closeOnScroll' => false ] ]; echo $pswp->renderGallery($page->images, $galleryOptions); More info about all that is in the readme: https://github.com/blynx/MarkupProcesswirePhotoswipe
      It is possible to customize pretty much anything by providing your own templates and scripts.
      What do you think? Any ideas, bugs, critique, requests?
      cheers
      Steffen
    • By kixe
      FieldtypeColor is on github

      Fieldtype stores a 32bit integer value reflecting a RGBA value.
      Input
      4 types of Inputfields provided
      Html5 Inputfield of type='color' (if supported by browser)    Inputfield type='text' expecting a 24bit hexcode string (RGB). Input format: '#4496dd'.
      The background color of the input field shows selected color Inputfield of type='text' expecting 32bit hexcode strings (RGB + alpha channel) Input format: '#fa4496dd' Inputfield with Spectrum Color Picker
      (Options modifiable) Inputfield type='text' with custom JavaScript and/or CSS (since version 1.0.3) Output
      Define output format under 'Details' tab in field settings. Select from the following 8 options
      string 6-digit hex color. Example: '#4496dd' string 8-digit hex color (limited browser support).  Example: '#fa4496dd' string CSS color value RGB. Example: 'rgb(68, 100, 221)' string CSS color value RGB. Example: 'rgba(68, 100, 221, 0.98)' string CSS color value RGB. Example: 'hsl(227, 69.2%, 56.7%)' string CSS color value RGB. Example: 'hsla(227, 69.2%, 56.7%, 0.98)' string 32bit raw hex value. Example: 'fa4496dd' int 32bit. Example: '4198799069' (unformatted storage value) The Fieldtype includes
      Spectrum Color Picker by Brian Grinstead

      SCREENSHOTS
      Input type=text with changing background and font color (for better contrast)

      Input type=color (in Firefox)


      Javascript based input (Spectrum Color Picker)


      Settings Output

       
      Settings Input