Torsten Baldes Posted March 15, 2015 Posted March 15, 2015 (edited) I got an error when i tried to crop an image with the new processwire croppingfeature and PIA installed. TemplateFile: Unknown Selector operator: '' -- was your selector value properly escaped? field='1121', value='', selector: '1121' #0 /Users/jondoe/Documents/localdev/wire/core/Selectors.php(284): Selectors->create('1121', '', '') #1 /Users/jondoe/Documents/localdev/wire/core/Selectors.php(81): Selectors->extractString('1121') #2 /Users/jondoe/Documents/localdev/site/modules/PageimageAssistant/PageimageAssistant.module(378): Selectors->__construct('1121') #3 /Users/jondoe/Documents/localdev/site/modules/PageimageAssistant/PageimageAssistant.module(227): PageimageAssistant::selector2array('1121') #4 /Users/jondoe/Documents/localdev/site/modules/PageimageAssistant/PageimageAssistant.module(160): PageimageAssistant->getSizeParams(0, 0, 1121, 'piacrop') #5 /Users/jondoe/Documents/localdev/wire/core/Wire.php(388): PageimageAssistant->PiaMakeCrop(Object(HookEvent)) #6 /Users/jondoe/Documents/localdev/wire/core/Wire.php(321): Wire->runHooks('crop', Array) #7 /Users/jondoe/Documents/localdev/wire/modules/Process/ProcessPageEditImageSelect/ProcessPageEditImageSelect.module(914): Wire->__call('crop', Array) #8 /Users/jondoe/Documents/localdev/wire/modules/Process/ProcessPageEditImageSelect/ProcessPageEditImageSelect.module(914): Pageimage->crop(1121, 764, 736, 419, Array) #9 /Users/jondoe/Documents/localdev/wire/modules/Process/ProcessPageEditImageSelect/ProcessPageEditImageSelect.module(556): ProcessPageEditImageSelect->processCrop() #10 [internal function]: ProcessPageEditImageSelect->___executeEdit() #11 /Users/jondoe/Documents/localdev/wire/core/Wire.php(366): call_user_func_array(Array, Array) #12 /Users/jondoe/Documents/localdev/wire/core/Wire.php(321): Wire->runHooks('executeEdit', Array) #13 /Users/jondoe/Documents/localdev/wire/core/ProcessController.php(213): Wire->__call('executeEdit', Array) #14 /Users/jondoe/Documents/localdev/wire/core/ProcessController.php(213): ProcessPageEditImageSelect->executeEdit() #15 [internal function]: ProcessController->___execute() #16 /Users/jondoe/Documents/localdev/wire/core/Wire.php(366): call_user_func_array(Array, Array) #17 /Users/jondoe/Documents/localdev/wire/core/Wire.php(321): Wire->runHooks('execute', Array) #18 /Users/jondoe/Documents/localdev/wire/core/admin.php(93): Wire->__call('execute', Array) #19 /Users/jondoe/Documents/localdev/wire/core/admin.php(93): ProcessController->execute() #20 /Users/jondoe/Documents/localdev/wire/modules/AdminTheme/AdminThemeDefault/controller.php(13): require('/Users/jondoe/D...') #21 /Users/jondoe/Documents/localdev/site/templates/admin.php(15): require('/Users/jondoe/D...') #22 /Users/jondoe/Documents/localdev/wire/core/TemplateFile.php(169): require('/Users/jondoe/D...') #23 [internal function]: TemplateFile->___render() #24 /Users/jondoe/Documents/localdev/wire/core/Wire.php(366): call_user_func_array(Array, Array) #25 /Users/jondoe/Documents/localdev/wire/core/Wire.php(321): Wire->runHooks('render', Array) #26 /Users/jondoe/Documents/localdev/wire/modules/PageRender.module(356): Wire->__call('render', Array) #27 /Users/jondoe/Documents/localdev/wire/modules/PageRender.module(356): TemplateFile->render() #28 [internal function]: PageRender->___renderPage(Object(HookEvent)) #29 /Users/jondoe/Documents/localdev/wire/core/Wire.php(366): call_user_func_array(Array, Array) #30 /Users/jondoe/Documents/localdev/wire/core/Wire.php(321): Wire->runHooks('renderPage', Array) #31 /Users/jondoe/Documents/localdev/wire/core/Wire.php(388): Wire->__call('renderPage', Array) #32 /Users/jondoe/Documents/localdev/wire/core/Wire.php(388): PageRender->renderPage(Object(HookEvent)) #33 /Users/jondoe/Documents/localdev/wire/core/Wire.php(321): Wire->runHooks('render', Array) #34 /Users/jondoe/Documents/localdev/wire/modules/Process/ProcessPageView.module(172): Wire->__call('render', Array) #35 /Users/jondoe/Documents/localdev/wire/modules/Process/ProcessPageView.module(172): Page->render() #36 [internal function]: ProcessPageView->___execute(true) #37 /Users/jondoe/Documents/localdev/wire/core/Wire.php(366): call_user_func_array(Array, Array) #38 /Users/jondoe/Documents/localdev/wire/core/Wire.php(321): Wire->runHooks('execute', Array) #39 /Users/jondoe/Documents/localdev/index.php(240): Wire->__call('execute', Array) #40 /Users/jondoe/Documents/localdev/index.php(240): ProcessPageView->execute(true) #41 {main} This happens when I try to save my cropped selection. (I turned debug on to get the longer error message.) When I uninstall PIA it works without problems. I use PW 2.5.22 and PIA 0.2.2 Edited March 16, 2015 by horst changed error message from "quote" to "code"
horst Posted March 16, 2015 Author Posted March 16, 2015 (edited) Hey Torsten, What exactly have you done? Can you explain exactly, step by step, so that I can reproduce it? Edit: Can you reproduce it? I have installed latest dev from today 2.5.22, but it is a bit different from an earlier 2.5.22 (maybe a week ago) and everything in regard to Pia works fine. Edited March 16, 2015 by horst
Torsten Baldes Posted March 16, 2015 Posted March 16, 2015 Hallo Horst, I did a small Screencast to show you my steps to reproduce this error: http://cl.ly/3p0b411B441L I hope it's useful. I also just updated to the latest dev-version, but the error still remains. Thanks! 1
horst Posted March 16, 2015 Author Posted March 16, 2015 Thanks for the screencast. But that's what I also do and it works here. Only thing that seems other here is I have no german language pack installed. What are your settings for Pia? I have tried it with the global ForceNew set to true and to false, both is working here. So, what makes me completly wonder is why Pia is / should be invoked in your site when editing with the new pageimage field cropping tool. It doesn't make sense. The new image tool don't call Pia, and Pia only should get invoked by explicitly calling her: $this->addHook('Pageimage::pia', $this, 'PiaBallerina'); $this->addHook('Pageimage::crop', $this, 'PiaMakeCrop'); $this->addHook('Pageimage::cover', $this, 'PiaMakeCover'); $this->addHook('Pageimage::contain', $this, 'PiaMakeContain'); $this->addHook('Pageimage::retinafy', $this, 'PiaCreateRetinafy'); $this->addHook('Pageimage::hiDPI', $this, 'PiaCreateRetinafy'); She only add her own methods to the Pageimage and do not hook into any existing one. And in my testsite it doesn't get invoked. Why is it with your site? There must be something other that interferes with using the new cropping tool.
Torsten Baldes Posted March 16, 2015 Posted March 16, 2015 Sorry to confuse you. ;-) These are my settings for Pia. Just for completeness, here are the other image related modules i use: Images FocusArea Image Extra What can i do to help you further with this issue?
horst Posted March 16, 2015 Author Posted March 16, 2015 Not imagesizer options but "during development" forceNew setting was of interest, but this also doesn't affect it here. Have you disabled the other modules too? Can you do it, (maybe in a new test install)? And then try it one by one. Uninstall all site modules. Then only install Pia and try it. If no other site module is installed, I believe it will work with Pia too. If it does, install the next module to it, e.g. ImageExtra. If it works together, install the next one, etc. (Do this also for other modules, e.g. SEO or other you may have installed yet.)
horst Posted April 18, 2015 Author Posted April 18, 2015 Updated Pia to version 0.3.0 Resolved a naming conflict with Pias crop() method: around PW version 2.5.17 there was a new pageimage::crop method introduced. If you use Pia with a recent PW dev version, please update! 1
rooofl Posted June 13, 2015 Posted June 13, 2015 Hi horst, thank you for this great plugin. I can’t install it on my new Processwire website. When I come to activate the plugin, I get the following error: Class PageimageAssistant contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Module::getModuleInfo) in /…/site/modules/PageimageAssistant/PageimageAssistant.module on line 738 Any idea?
horst Posted June 13, 2015 Author Posted June 13, 2015 Do you have copied all files completely to the modules directory? Which version of PW and PHP do you use?
rooofl Posted June 13, 2015 Posted June 13, 2015 Horst > I try both to upload manually and from the module installer. The error happens when I check for new module or when I proceed to installation. My php version is 5.6.10. I noticed that the error exists on my distant server as well. It blocks the access to the module page until I manually remove PIA. Edit: and ProcessWire 2.4.0
horst Posted June 13, 2015 Author Posted June 13, 2015 PIA is only compatible with PW 2.5 and 2.6! in Github repo, the subheader at top: Module for ProcessWire 2.5.0+ and in the modules directory it has the appropriate checkboxes checked. When trying to direct install via PW 2.4, you have it on the install screen: So, with PW 2.5+ you will see more bold information when versions are mismatch, or "thumbs up icon" if they match fine. But at least, also with PW 2.4 all needed informations are on the right place(s). One more reason to update your PW version, we are on 2.6 stable for some weeks now ;-)
rooofl Posted June 13, 2015 Posted June 13, 2015 Oh, sorry for that and thank you for your time! You made me realize that I was a bit late in term of PW versions. I have a fresh one now, thanks again. 1
horst Posted February 7, 2016 Author Posted February 7, 2016 Successfully tested PIA with PW 3.0 and set the version to 1.0.0 stable now. 5
SteveB Posted February 28, 2016 Posted February 28, 2016 Quick question: Looking at module setttings for this 1.0.0 version in a new PW 3.0 setup there are only HiDPI/Retinafy Options. I don't see any image Sizer Options, as shown a few posts back. Is this normal? Are they somewhere else? Thanks.
horst Posted February 29, 2016 Author Posted February 29, 2016 (edited) @SteveB: Sorry, I need to update this in the description here. The UI for Imagesizer options is removed now, as it could interfere with the ConfigModule. I think it is better to have only one SettingsPage / UI screen than multiple, what can let to confusion. Pia is meant to assist in Image API handling, and the ConfigModule is meant for UI handling of config options. So, the UI for Image Sizer Options isn't there anymore, for all PW versions, 2.5+ and 3.0+. Edited February 29, 2016 by horst
Gazley Posted April 2, 2016 Posted April 2, 2016 Hey @horst - the IMagick Image Sizer module uses a default "Quality" setting of 80. When using the "quality" option in PIA (or native PW $image methods), does it override the IMagick Image Sizer module or, if you specify "quality=75", is it 75 based on 80 (IMagick default), or 75 based on the original image? Hope this makes sense! Thanks.
horst Posted April 2, 2016 Author Posted April 2, 2016 Hi @Gazley, you are speaking of the new core (PW 3) ImageSizerEngineIMagick.module? (Better do not use the old IMagick Sizer module, or, if so, do you stuck with PW 2.7 ?) But to your question: The hirarchy of options is this way, lowest to highest: (higher ones overwrite lower ones) module default (is only there if all others are missing) global setting in wire/config.php (is the distribution default) global setting in site/config.php (can be set to overwrite the distribution default per site) setting in array options, passed to pageimage (overwrites all others)with methods width, height, size If the module has a default of 80, the wire/config.php has 90, the result is 90. If you pass an option with 75 to size(), the resulting quality is 75. Pia is only a wrapper around pageimage, so any option passed to Pia (pageimage), overwrite all other (hirarchically previous) options. 1
Gazley Posted April 2, 2016 Posted April 2, 2016 Hi @horst - excellent answer! Many thanks indeed I am using PW3 and taking advantage of all the latest goodness! Hope you're having a great weekend and I appreciate your very quick response. Cheers! 1
Gazley Posted April 19, 2016 Posted April 19, 2016 Edit: Please ignore this post - the more I play with the code, the more obvious the answer is and the more stupid this question is! Sorry Hi @horst - I don't know whether this is the correct thread to ask this question but it is connected because I danced with this lady I haven't done any cropping with PW before and have noticed the following. I add a "master" image to PW called "st_mi_18.jpg". In the backend UI, I crop the image and PW saves the copy as "st_mi_18-v1.jpg". The current use-case is that I want to save various "art-directed" versions of the master "st_mi_18.jpg" to use in a picture element. I guess the issue is, how do I reference these versions in my code if I didn't know the name that PW has generated? So far, PW saves them as V1, V2 etc. I want to process (in code) each version (V1, V2) so that various sizes are available to support different DPR values but obviously, I need to access each art-directed copy (V1,V2 etc). Do I just have to "know" that each version is called V1, V2 etc or, can I influence the name of the saved copy? Can I get V1 or V2 by using the $image variable with the known size/crop values and PW will return the matching Vx file? I hope this makes sense. If you have any thoughts or opinions on what I am trying to do, I'd really appreciate them! Many thanks.
rst Posted April 20, 2018 Posted April 20, 2018 hello, is there a way to add a prefix to the image name? i am trying to create a low quality and high quality image with the same size, but it seems one is overwriting the other
horst Posted April 21, 2018 Author Posted April 21, 2018 You can add suffixes to image variations. If you want to do it with Pia, you need to add, for example, suffix=lowres, or suffix=hires to the selctor string. If you want to add suffix names to image variations without Pia, pass an options array to the width, height or size methods as (optional) last argument. Within the array set the key suffix to your desired name.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now