Jump to content

Media Manager


kongondo

Recommended Posts

Hi all,

A recent change in ProcessWire has partly broken part of Media Manager's upload feature (see the screenshot in this post with the PDO error, thanks to for @Mustafa-Online reporting). My strong feeling is that it has to do with the recent changes to the Database Class(es). I am looking into this and will report back as soon as I can.

Thanks.

Edited by kongondo
  • Like 1
Link to comment
Share on other sites

By the way, a quick workaround, if you insist on living on the edge is to do the following:

  1. Edit a Media Manager field (e.g. media_manager_image)
  2. Change its Use Tags setting and save
  3. Revert the change to what it was before and save again

Uploads should now work.

Note though that using the 'Cleanup' feature might still throw the PDO error linked to in the post above.

  • Like 1
Link to comment
Share on other sites

On 3/26/2020 at 4:29 PM, kongondo said:

Hi @Orkun,

Yes it is just a temporary folder.

It should. It works fine here. Could you please tell me about your setup? (ProcessWire and PHP versions, etc).

I am not sure whether it is a file permission issue. Are you on a Windows machine?

Alternatively, maybe you are trying to upload very large images and the system does not finish and you are trying to re-upload?

Please let me know.

Hi @kongondo

This Problem still happens regularly. It is always the "Empty File Upload Result" Error.
In the Processwire Logs it is a SQL Duplicate Entry Error (See Screenshot).The only way to make this work again temporarly was to delete the contents of /site/assets/MediaManager/jqfu/.files_no_show/

error.png.7cbc09082753a1b7deb5b9f92b979615.png


Processwire Version: 2.7.3 Dev
PHP Version: 7.0.33-0ubuntu0.16.04.15
Media Manager Version: Media Manager (Process) v0.0.9 β

  • post_max_size: Local Value(512M), Master Value(8M)
  • memory_limit: Local Value(512M), Master Value(128M)
  • file_uploads: On
  • upload_max_filesize: Local Value(512M), Master Value(2M)

It is also not a Windows Machine.

That's what the customer had said to me today.

Quote

It seems that the problem persists. Still almost everyone has the issue while uploading the files. Even me if I try to upload files I always get the error message and the only way it works for me is if I do the upload in the Incognito mode. I use Chrome but it seems like a general problem as people use different browsers and all have the same issue.

Quote

 

So people still get the "Empty File Upload" error and 90% of the time the file is really not uploaded.
I told them that they have to wait a bit before re-uploading big files and everything. But it still doesn't work. I also have issues if I'm not in the private/incognito mode.

And they have been trying to upload small files, mostly PDFs.

 

 

Can you help me on this one?

 

KR
Orkun

Link to comment
Share on other sites

Hi @Orkun,

1 hour ago, Orkun said:

Can you help me on this one?

I'd love to. However...

1 hour ago, Orkun said:

Processwire Version: 2.7.3 Dev

Support for ProcessWire 2.7 ended on 10 May 2019 😄. We only support ProcessWire 3.x. But given that...

1 hour ago, Orkun said:

Media Manager Version: Media Manager (Process) v0.0.9 β

You are still on this very old version....I might be able to help. However, I suggest that you consider upgrading to 012 + ProcessWire 3.x. 

1 hour ago, Orkun said:

the only way it works for me is if I do the upload in the Incognito mode.

I don't see how this is related to uploading and the sql errors + the temporary files not getting deleted. 

1 hour ago, Orkun said:
  • post_max_size: Local Value(512M), Master Value(8M)
  • memory_limit: Local Value(512M), Master Value(128M)
  • file_uploads: On
  • upload_max_filesize: Local Value(512M), Master Value(2M)

post_max_size needs to be bigger than upload_max_filesize. See this post by Horst.

I have never been able to reproduce this nor has anyone else ever reported the issue. I think the best way forward is if you could set up a remote test environment where the problem is reproducible then I could come in and have a look. If that's not possible then consider granting me access to the production environment where the problem is occurring.

Link to comment
Share on other sites

29 minutes ago, kongondo said:

Hi @Orkun,

I'd love to. However...

Support for ProcessWire 2.7 ended on 10 May 2019 😄. We only support ProcessWire 3.x. But given that...

You are still on this very old version....I might be able to help. However, I suggest that you consider upgrading to 012 + ProcessWire 3.x. 

I don't see how this is related to uploading and the sql errors + the temporary files not getting deleted. 

post_max_size needs to be bigger than upload_max_filesize. See this post by Horst.

I have never been able to reproduce this nor has anyone else ever reported the issue. I think the best way forward is if you could set up a remote test environment where the problem is reproducible then I could come in and have a look. If that's not possible then consider granting me access to the production environment where the problem is occurring.

Hi @kongondo

Thanks for your input. I have now adjusted the post_max_size to 1G and the
memory_limit to 2G since according to the php docs memory_limit needs also to be bigger than post_max_size.
Will see if this helps.

It is very strange that this SQL Error appears, I mean I have the following setting in MM for duplicate Media (see screenshot).
Normally It should just replace the existing media if there is a duplicate.

setting.thumb.png.1f63ef4f8e0c32cdcba492ba09d62d47.png

Could perhaps my change (that I had done a long time ago) for setting the page title for all languages be a problem? (line 1558)

duplicate_media.thumb.png.204d4125d9633f84d4df50f6500e0174.png

-------------------------------------------------------------------------------------------------------

You are right, that a upgrade to version 3 (PW) and to the newest MM Version would be a good idea.
But the problem is, that the system is a very big and complex (Multi-Lang, Multi-Site: approximately 15-20+ Websites, A lot of modules etc...) Processwire Installation.
And also there are a lot of users/editors that are editing daily.

Because of this the upgrade isn't easily feasible.
I had already started on a dev environment to upgrade to Version 3 and to trackdown all the problems that could appear and document them...

Are there any points I need to watch on when upgrading the Media Manager?
What problems could occur when upgrading (like for example media getting deleted or something?)

KR
Orkun

Link to comment
Share on other sites

52 minutes ago, Orkun said:

Are there any points I need to watch on when upgrading the Media Manager?
What problems could occur when upgrading (like for example media getting deleted or something?)

There shouldn't be any problems and definitely nothing will get deleted.

52 minutes ago, Orkun said:

It is very strange that this SQL Error appears, I mean I have the following setting in MM for duplicate Media (see screenshot).
Normally It should just replace the existing media if there is a duplicate.

Yes. Sometimes this problem occurs if there was a delay in creating the media but hard to tell unless I can see it for myself.

52 minutes ago, Orkun said:

Could perhaps my change (that I had done a long time ago) for setting the page title for all languages be a problem? (line 1558)

Not sure. I'd have to test myself in a Multilingual setup. Have you tried removing the code to see if it helps? Maybe you can achieve what the code is doing in a Hook in ready.php?

I think this is what is happening:

  1. You upload a file
  2. Upload goes through OK and is placed in /site/assets/MediaManager/jqfu/.files_no_show/
  3. The media creation process starts but fails. MySQL throws the error about duplicate entry. This interrupts the media creation process.
  4. The media creation process does not finish hence it doesn't return a success message to the uploader
  5. The uploader throws the error "Empty File Upload Result" Error.
  6. Since the media creation process was interrupted, the script doesn't reach the code that deletes the temporary files
  7. You end up with lots of temporary files.
  8. Maybe you also end up with empty pages (i.e., without media or title)? Could you check this please?
52 minutes ago, Orkun said:

I had already started on a dev environment to upgrade to Version 3 and to trackdown all the problems that could appear and document them...

Good idea.

Edited by kongondo
clarification
Link to comment
Share on other sites

16 minutes ago, hellerdruck said:

Any ideas?

Did you install Media Manager in a subfolder? If yes, sorry, it's a bug that occurs if you've installed Media Manager in a subfolder. It got fixed a while back but I haven't committed yet. For now, please do this:

Change this line in ProcessMediaManager.module around line #154:

"template=media-manager-settings, parent={$path},include=hidden"

to this:

"template=media-manager-settings,include=hidden"

If that's not it, then please supply more details about your setup. 

Thanks.

Edited by kongondo
Link to comment
Share on other sites

6 minutes ago, kongondo said:

Did you install Media Manager in a subfolder? If yes, sorry, it's a bug that occurs if you've installed Media Manager in a subfolder. It got fixed a while back but I haven't committed yet. For now, please do this:

Change this line in ProcessMediaManager.module around line #154:


"template=media-manager-settings, parent={$path},include=hidden"

to this:


"template=media-manager-settings,include=hidden"

If that's not it, then please supply more details about your setup. 

Thanks.

that helped, thanks!

Link to comment
Share on other sites

Just now, kongondo said:

Great! Was it a 'media-manager-installed-in-a-subfolder-issue'? I'd like to find out if the issue occurs in other setups as well. Thanks.

No, I uploaded the zip file by using the modules installation uploader. just upload, install, didn't work. hope that helps.

  • Like 1
Link to comment
Share on other sites

23 minutes ago, hellerdruck said:

by the way, is there a way to show a more "dataTables" kinda look? I find the thumbnails quite big for the file load we'll have.

You mean a tabular view like this?

https://mediamanager.kongondo.com/documentation/the-media-manager-admin/filtering-media-and-changing-display/

If that's not it, maybe I could add a setting to show smaller thumbs or even not at all. I'll that on my todo/to_think_about.

Link to comment
Share on other sites

15 minutes ago, kongondo said:

You mean a tabular view like this?

https://mediamanager.kongondo.com/documentation/the-media-manager-admin/filtering-media-and-changing-display/

If that's not it, maybe I could add a setting to show smaller thumbs or even not at all. I'll that on my todo/to_think_about.

No, I meant rather some list-like thing. I wouldn't need a thumbnail preview for an excel file. A line of info, next line of info.. what you have there only kinda suits images.. I guess I'll find it in the CSS files then.

Link to comment
Share on other sites

  • 2 months later...

Hi @kongondo

We buyed the latest Version of Media Manager and I tried to upgrade our old Version (0.9) by moving the old module contents inside a ".old" folder
and upload the new module files and folder.

ftp.thumb.png.28bdf20d8dd6931aeb579d1697dab5ce.png

But now I am getting this error all the time, I can't access the backend anymore.
What I am doing wrong?

error.thumb.png.bfc50a637013014677318ebe26516c5b.png

PW Version is 3.0.165

Link to comment
Share on other sites

  • 1 month later...

Hi kongondo,

that was the problem that comes up every now and then:

message: "SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'name-of-the-image-1695' for key 'name_parent_id'""

message: "SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'name-of-the-image-1695' for key 'name_parent_id'""

we already talked about the following problem via mail (Subject: Some bugs with upload images).
here are some more details you asked for:

What versions of MySQL, ProcessWire and Media Manager are you using?

Windows IIS
MySQL: 8.0.15, MyISAM, utf8_general_ci, PHP extension MySQLi
PHP version 7.2.7
Media Manager (Process) v0.1.2 β

Did anything change on the server recently?

No

What is the average size of the images you are trying to upload?

2 -3 MB

Does the error happen with non-image media as well?

Yes

Is the error happening for different images or always the same image?

different

Is this a multilingual site?

Yes

at the moment we help ourselves with renaming the picture and always something like that 01 ... 02 ... 03 in front of the picture name, but even that does not work reliably.

 

thank you and greetings from munich

 

Link to comment
Share on other sites

1 hour ago, entschleunigung said:

What versions of MySQL, ProcessWire and Media Manager are you using?

Windows IIS
MySQL: 8.0.15, MyISAM, utf8_general_ci, PHP extension MySQLi
PHP version 7.2.7
Media Manager (Process) v0.1.2 β

I see two potential suspects here; Windows IIS and MySQL 8. I haven't tested MM in Windows IIS. However, I think we have reached a point where it is best that I have access to a test server. This could either be a test site where you can reproduce the problem or the production site itself. I have never been able to reproduce the issue, albeit I have not tried in a Windows IIS environment. I don't have access to such an environment either, sorry. No other users have reported similar UNRESOLVED issues, so I have nothing else to go on regarding your particular case. 

1 hour ago, entschleunigung said:

at the moment we help ourselves with renaming the picture and always something like that 01 ... 02 ... 03 in front of the picture name,

That's not great! Please consider giving me temporary access to a site where I can debug the issue.

 

Thanks.

  • Like 1
Link to comment
Share on other sites

Hi kongondo,

unfortunately it is not possible for me to give you access to the site, otherwise I would have done it long ago. The client takes the topic GDPR very seriously and access for third parties is difficult. 

However, I've gotten the client to the point where we're changing the hosting, because there are other problems in this setup as well. I will definitely get back to you and report on the further progress. Thanks also for the support via mail.

Cheers

 

Link to comment
Share on other sites

14 hours ago, entschleunigung said:

The client takes the topic GDPR very seriously and access for third parties is difficult. 

I understand

14 hours ago, entschleunigung said:

I will definitely get back to you and report on the further progress.

Please do. 

14 hours ago, entschleunigung said:

Thanks also for the support via mail.

You're welcome :-).

Link to comment
Share on other sites

  • 4 weeks later...

Hello,

Good to be back developing in ProcessWire, but I must admit I am a little rusty.

Just installed version 012 on a fresh install of PW version 3.0.165  and getting the following errors when trying to edit the uploaded image page under Admin -> Media -> Manager.

Whats also odd is when trying to upload at Media Manager -> Upload, the file appears to upload, but does not show up in the Images/All tab nor does the preview show up. On some occasions the file name is present, but others it is not. I ran the check field data with no issues reported and also uninstalled and reinstalled. 

What am I missing.

Running php 7.4.3 and Mysql 8

915426423_ScreenShot2020-10-27at10_13_57PM.thumb.png.4e0133eab04d7cd0b3f29520b3f6682f.png

Link to comment
Share on other sites

Hi kongondo,

Thanks for the quick replay. Your solution seems to work. I do have a follow up regarding tags. I am unable to successfully return images with the getTag() or findTag() methods that are available. Am I misunderstanding something? 

Media Manager Field. Returns empty string

$test = $theme_options->media_manager->getTag("MainNavLogo");

Default Image Field Returns ProcessWire\Pageimage

$test = $theme_options->images->getTag("MainNavLogo");

Thanks for your time.

Link to comment
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 Robin S
      This module lets you add some custom menu items to the main admin menu, and you can set the dropdown links dynamically in a hook if needed.
      Sidenote: the module config uses some repeatable/sortable rows for the child link settings, similar to the ProFields Table interface. The data gets saved as JSON in a hidden textarea field. Might be interesting to other module developers?
      Custom Admin Menus
      Adds up to three custom menu items with optional dropdowns to the main admin menu.
      The menu items can link to admin pages, front-end pages, or pages on external websites.
      The links can be set to open in a new browser tab, and child links in the dropdown can be given an icon.
      Requires ProcessWire v3.0.178 or newer.
      Screenshots
      Example of menu items

      Module config for the menus

      Link list shown when parent menu item is not given a URL

      Advanced
      Setting child menu items dynamically
      If needed you can set the child menu items dynamically using a hook.
      Example:
      $wire->addHookAfter('CustomAdminMenus::getMenuChildren', function(HookEvent $event) { // The menu number is the first argument $menu_number = $event->arguments(0); if($menu_number === 1) { $colours = $event->wire()->pages->findRaw('template=colour', ['title', 'url', 'page_icon']); $children = []; foreach($colours as $colour) { // Each child item should be an array with the following keys $children[] = [ 'icon' => $colour['page_icon'], 'label' => $colour['title'], 'url' => $colour['url'], 'newtab' => false, ]; } $event->return = $children; } }); Create multiple levels of flyout menus
      It's also possible to create multiple levels of flyout submenus using a hook.

      For each level a submenu can be defined in a "children" item. Example:
      $wire->addHookAfter('CustomAdminMenus::getMenuChildren', function(HookEvent $event) { // The menu number is the first argument $menu_number = $event->arguments(0); if($menu_number === 1) { $children = [ [ 'icon' => 'adjust', 'label' => 'One', 'url' => '/one/', 'newtab' => false, ], [ 'icon' => 'anchor', 'label' => 'Two', 'url' => '/two/', 'newtab' => false, 'children' => [ [ 'icon' => 'child', 'label' => 'Red', 'url' => '/red/', 'newtab' => false, ], [ 'icon' => 'bullhorn', 'label' => 'Green', 'url' => '/green/', 'newtab' => false, 'children' => [ [ 'icon' => 'wifi', 'label' => 'Small', 'url' => '/small/', 'newtab' => true, ], [ 'icon' => 'codepen', 'label' => 'Medium', 'url' => '/medium/', 'newtab' => false, ], [ 'icon' => 'cogs', 'label' => 'Large', 'url' => '/large/', 'newtab' => false, ], ] ], [ 'icon' => 'futbol-o', 'label' => 'Blue', 'url' => '/blue/', 'newtab' => true, ], ] ], [ 'icon' => 'hand-o-left', 'label' => 'Three', 'url' => '/three/', 'newtab' => false, ], ]; $event->return = $children; } }); Showing/hiding menus according to user role
      You can determine which menu items can be seen by a role by checking the user's role in the hook.
      For example, if a user has or lacks a role you could include different child menu items in the hook return value. Or if you want to conditionally hide a custom menu altogether you can set the return value to false. Example:
      $wire->addHookAfter('CustomAdminMenus::getMenuChildren', function(HookEvent $event) { // The menu number is the first argument $menu_number = $event->arguments(0); $user = $event->wire()->user; // For custom menu number 1... if($menu_number === 1) { // ...if user does not have some particular role... if(!$user->hasRole('foo')) { // ...do not show the menu $event->return = false; } } });  
      https://github.com/Toutouwai/CustomAdminMenus
      https://processwire.com/modules/custom-admin-menus/
    • By tcnet
      This module for ProcessWire sends a notification email for each failed login attempt. Similar modules exists already in the module directory of ProcessWire. However, this module is designed to notify, even if specified user doesn't exist.
      Settings
      The settings for this module are located in the menu Modules=>Configure=>LoginFailNotifier.
      Notification email
      Specifies the email address to which the notification emails should be sent.
        Email subject
      Specifies the subject line for the notification email.
        Post variables
      Specifies the $_POST variables to be included in the notification email. Each variable must be separated by a comma. For example: login_name,login_pass
        Server variables
      Specifies the $_SERVER variables to be included in the notification email. Each variable must be separated by a comma. For example: REMOTE_ADDR,HTTP_USER_AGENT
      Link to ProcessWire module directory:
      https://processwire.com/modules/login-fail-notifier/
      Link to github.com:
      https://github.com/techcnet/LoginFailNotifier
    • By Fokke
      ProcessWire 3.x markup module for rendering meta tags in HTML document head section. Note that this module is not a full-blown SEO solution, but rather a simple tool for rendering meta tags based on module configuration. Adding custom meta tags is also supported.
      Built-in meta tags
      The following meta tags are supported out-of-the-box:
      Document title consisting of page title and site name Character set Canonical Viewport Description Keywords Hreflang tags Open Graph og:title og:site_name og:type og:url og:description og:image og:image:width og:image:height Twitter meta tags twitter:card twitter:site twitter:creator twitter:title twitter:description twitter:image Facebook meta tags fb:app_id The full documentation with configurable options can be found here: https://github.com/Fokke-/MarkupMetadata
       
      Requirements:
      ProcessWire>=3.0.0 PHP >=7.1 Installation using Composer
      composer require fokke/markup-metadata Manual installation
      Download latest version from https://github.com/Fokke-/MarkupMetadata/archive/master.zip Extract module files to site/modules/MarkupMetadata directory.
    • By m.sieber
      ITRK-Service for ProcessWire
      Module for the automated transfer of imprint, data protection declaration and terms and conditions from IT-Recht Kanzlei to your ProcessWire installation
      What is ITRK Service for ProcessWire?
      ITRK-Service for ProcessWire is a free module for ProcessWire CMS. It provides an interface to the update service of IT-Recht Kanzlei, via which the legal texts of your online presence are automatically updated. In this way, the texts remain legally secure and warning-proof in the long term. Imprint, data protection declaration, revocation and general terms and conditions are currently supported.
      You can find our documentation (in german language) here: https://www.pupit.de/itrk-service-for-processwire/dokumentation/

      Download: https://www.pupit.de/itrk-service-for-processwire/
      Github: https://github.com/pupit-de/pwItrkServiceConnector
    • By LuisM
      Symprowire is a PHP MVC Framework based and built on Symfony using ProcessWire 3.x as DBAL and Service-Provider
      It acts as a Drop-In Replacement Module to handle the Request/Response outside the ProcessWire Admin. Even tough Symfony or any other mature MVC Framework could be intimidating at first, Symprowire tries to abstract Configuration and Symfony Internals away as much as possible to give you a quick start and lift the heavy work for you.
      The main Goal is to give an easy path to follow an MVC Approach during development with ProcessWire and open up the available eco-system.
      You can find the GitHub Repo and more Information here: https://github.com/Luis85/symprowire
      Documentation
      The Symprowire Wiki https://github.com/Luis85/symprowire/wiki How to create a simple Blog with Symprowire https://github.com/Luis85/symprowire/wiki/Symprowire-Blog-Tutorial Last Update
      16.07.2021 // RC 1 v0.6.0 centralized ProcessWire access trough out the Application by wrapping to a Service https://github.com/Luis85/symprowire/releases/tag/v0.6.0-rc-1 Requirements
      PHP ^7.4 Fresh ProcessWire ^3.0.181 with a Blank Profile Composer 2 (v1 should work, not recommended) The usual Symfony Requirements Features
      Twig Dependency Injection Monolog for Symprowire Support for .env YAML Configuration Symfony Console and Console Commands Symfony Webprofiler Full ProcessWire access inside your Controller and Services Webpack Encore support Caveats
      Symfony is no small Framework and will come with a price in terms of Memory Usage and added Overhead. To give you a taste I installed Tracy Debugger alongside to compare ProcessWire profiling with the included Symfony Webprofiler

      So in a fresh install Symprowire would atleast add another 2MB of Memory usage and around 40ms in response time, should be less in production due to the added overhead of the Webprofiler in dev env
       
×
×
  • Create New...