Jump to content


  • Posts

  • Joined

  • Last visited

Posts posted by j00st

  1. 4 hours ago, kongondo said:

    In future, will the editors, when they create a new project page, be inputting the display title themselves? 

    Yes! Definitely ? It's just that the existing set needs to be converted/updated.

    4 hours ago, kongondo said:




    4 hours ago, kongondo said:

    But it can be any template with a display_title

    Awesome. And much better, as it can be implemented in a wider spectrum.


    4 hours ago, kongondo said:

    Test on a local install first ?

    For sure ?  but good to be reminded ?

    Thank you so much. Going to try it on the local server right now!!


    1 hour ago, kongondo said:

    I'd leave the title field as is.

    Yup, that's what I was hoping to do ? So thank you for this awesome solution!!


    1 hour ago, kongondo said:

    How many? This affects how you should run the script below

    Actually not too many on the 'live' test-server...21 at the moment. So still pretty doable.
    But in case it's going to fill up fast I want to be sure it's not going to be a lot of manual labour.


    1 hour ago, kongondo said:
    // call the function - here, we start at index 2 and limit to 3 pages 
    // the field we want to copy content to is called 'display_title' 
    // the template of the pages we want is 'projects' 
    generateDisplayTitle('display_title', 'projects', 2,3); 
    # not many pages use (i.e. do all) 
    #generateDisplayTitle('display_title', 'projects');


    So the first part of the code is all clear to me. This part (above) is an example right?
    In the generateDisplayTitle you've set start=0 and limit=10, and here you start at 2 and limit to 3 pages? Correct?
    And if I'd want to do all of them, I'd do the following:

    generateDisplayTitle('display_title','projects', 0, 21);

    And another double-check; as I'm not sure. Am I selecting the parent (projects) here? Or should it be the template, so 'project'?

  3. Hi all! 

    I've been searching/browsing a bit, but can't find what I'm looking for just yet...
    Perhaps I'm searching in the wrong places, but I thought posting it here might work better/more efficient.

    I need to do the following;

    1. I have the TITLE field (the one set by ProcessWire as default).
    2. There's already a whole lot of pages of the template 'project' set up.
    3. Now I actually want to be able to add <i> and <br> tags to this title...which is possible if I turn off the specialchar encoder...
    ...but it also presents the opportunity for people to start typing, and generate the following kind of URLs:

    TITLE: This is a really long title <br> which <i>needs</i> to be split in two
    URL generated: this-is-a-really-long-title-br-which-i-needs-i-to-be-split-in-tow

    Don't want that happening. So, I thought it might be wiser to do the following.

    Next to the 'title' field, also set a 'display-title' field.
    But, preferably I'd want to generate this for all the projects already in existance...including copying their content to this new display-title field.
    Just adding the field means all the titles will need to be copied...not something I look forward to telling the editors of the site ?

    I saw the Hook for on-save, but that's only for the single page...and I'm not an experienced MySQL-coder/user, otherwise I guess that would've been the way to go.
    So I'm really curious to hear if you guys think there are other/better options (and what they are)


  4. For those following along, or running into similar problems, these are my findings so far...

    1. I've been testing the images with ForceNew, and found (on my local server) that with width(1000) it's fine, but any bigger it throws an error.

    2. I've updated the code so that the width = 1000 when resizing. This seems to work. Setting it back to a higher width doesn't throw an error anymore (on the server), but still only loads the first image of the GIF, instead of an animated GIF

    What I reckon I'll do for now, is actually setup a PHP check for GIFs, as some images are displayed at full-screen-width (with a max of 1280px) so those I'd preferably not down-size to 1000. For the GIFs I guess, as they are already 'lower res' it's a partial solution. Still looking into it though.

  5. Another superb tip ? 

    So both on local & server it shows 256M available...

    Meanwhile I thought I'd also see if somewhere on the world wide web someone else is running into something similar,
    landing me on Stackoverflow, to be precise this thread.

    Quoting from that thread:


    Finally with the help of the server administrator, he found that the problem lies in MySQL database column definition. one of the columns in the a table was assigned to 'Longtext' which leads to allocate 4,294,967,295 bites of memory. It seems working OK if you don't use MySqli prepare statement, but once you use prepare statement, it tries to allocate that amount of memory. I changed the column type to Mediumtext which needs 16,777,215 bites of memory space. The problem is gone.

    Could this be something that's happening in this case as well? Making it a MySQL rather then a PHP problem?

  6. Hi @horst

    Thanks for all the work! Good to know the images are ok ?

    I went ahead and checked the memory_limit, on the server it was already set to 256M, and my local server was doing 128, which I upped to 256 as well.
    But...I still get the error message about not being able to allocate the data/bytes...So could it be that the GIF is in some way still too big? (Or long in duration?)
    The server I'm using is on Bluehost, which advises not to increase past 128 – but it was already set higher...so I'm also kind of surprised there.
    So unfortunately. still errors – which is weird, because I've been using it elsewhere/on older PW versions without issues.

    Good to know about the forceNew and logs!! Hadn't realised and/or heard of this before, so that's definitely something I'm going to put to use in the future!!


  7. Image is in your inbox ? THanks for checking it out.

    I tried the "forceNew" but now get the following error (on my local environment):
    Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 8192 bytes)

    But the image isn't that big, so I'm wondering what's happening here...curious to see what you make of it!

    It's with all animated images (so far at least)

  8. Tested, and both with correct/expected output:

    The first var_dump() should have a true under "info"->"animated"
    ["info"]=>["animated"]=> bool(true)

    And second one:
    array(1) { [0]=> string(27) "ImageSizerEngineAnimatedGif" }

    So those two check out...

  9. @horst

    So I removed the picturefill function, and lazysizes (which was also active), just to make sure.

    At the moment I (still) have:
    - Animated GIF Image Sizer (v0.0.1) activated
    - ProcessWire 3.0.108

    This is running on a local system operating MAMP v5.0 (334), with PHP 7.1.19 & MySQL 5.7.21
    Online it's running on something similar, but for both cases the following has negative result:

        $test = $img->url;
        $test2 = $img->width(1440)->url;
        $test3 = $img->size(1440, 0)->url;
    <img class="double" src="<?php echo $test2; ?>"/>

    That's the most basic I could test right?
    $test works fine, URL of original image is still animated.
    $test2 & $test3 – no more animation in the image.

  10. 4 minutes ago, j00st said:

    Also, another thought that crossed my mind – as we're talking about images – I'm using picturefill, but not in the same place as the animated GIFs. So I thought this also couldn't be the problem. But I thought I'd put it down here, just in case...

    Double-checked, I need to correct that. I AM using the picturefill. And what's more -> the lowres (preview) IS working as GIF, but the final image isn't...so perhaps it does have something to do with picturefill...

  11. Thanks for the response horst!!

    Q: Hhm, did you have installed / enabled the animated gif module?

    A: Nope, didn't have it installed, only the Animated GIF Image Sizer (v0.0.1) that's included in the core. That looks to be fully enabled, as it part of the core I'm not sure I could even change that, right? I tried installing the module you made before, but as I've updated to PW 3.0.108 it discontinues installation as it's already in the core.

    Q: Which version is it?

    A: Animated GIF Image Sizer (v0.0.1)
    ProcessWire 3.0.108 (latest?) (Initial install was 3.0.9, updated to 3.0.98, then this one)

    Q: Which number in the internal modules hirarchy does it have? And which other modules and hirarchy numbers are installed?

    A: You mean ImageSizerEngine Module priority with this right? I double-checked, IMagick was on 1, and AnimatedGif was on 9. Changed it around so the AnimatedGIF is on 1, and IMagick is on 2. I'm not aware of any other ImageSizerEngine modules being installed (by myself that is). And the only additional Module that I've installed that has something to do with images is ImageExtra (but as that's for additional textfields I thought that couldn't be the case?) 
    If you do mean something else by the internal module hierarchy, please let me know ?

    Also, another thought that crossed my mind – as we're talking about images – I'm using picturefill, but not in the same place as the animated GIFs. So I thought this also couldn't be the problem. But I thought I'd put it down here, just in case...

  12. Just now, dragan said:

    Seems like ImageMagick has problems maintaining all the frames, it just takes the first one and disregards the rest.

    I think I remember reading something about that; it was also the case why the plug-in was initially made, as it has to do with a re-compiling of all the 'layers' of the GIF, instead of resizing just one image. So perhaps, because it's now using ImageMagick, a similar issue is coming up?

  13. Hi everyone! 

    So I've been going over all the Animated GIF topics before posting this, but unfortunately I'm none the wiser at the moment.
    I'm super happy Horst's module has been included into the Core install, but as you might guess...I'm still having issues with my Animated GIFs ?

    CMS & File checklist:
    Double-checked if the module is installed = YES
    Correct upload of GIF = YES
    Testing GIF has 72dpi & is 1000x1000px & 563kb = Shouldn't cause any problem, right?
    Uploaded GIF still shows animation in backend = YES
    ProcessWire is up to date = 3.0.108

    Front-end tests:
    Tried the following code, to see if it had to do with the way I'm resizing, but 
    both with no results.

    <?php echo $img->width(720)->url?>
    <?php echo $img->size(720, 0)->url?>

    Here's the big catch though: 
    If I just echo the $img->url it will show the GIF...so it has to do with the resizing...but this is where I got stranded...

    Just in case, I also added the PHP & MySQL versions I'm running. Server's online not local.
    PHP 5.6.32 (in the overview) ----> But it's in fact, when going to the PHP admin, it's running PHP 7.0. Any chance this is what's causing the issue?
    MySQL 5.6.23-78.1

    Any tips?



  14. @David Karich Would it also be possible to use this to include drag-n-drop? I'm working with release 'year' (instead of date) but within the year I'd still like to drag-n-drop ?

    So using your module something like...but then I'm not sure about the drag-n-drop;
    books: -year, (drag-n-drop)

    I figured I'd try it with the 'regular' sort setting -> first by -year and then back to drag-n-drop, but it of course doesn't remember the -year sorting as the last drag-n-drop. If that's possible I guess it also solves my issue. Let me know if it's possible with this – already awesome for other cases!! – module, or if you have an alternative idea!



  15. Ah, and I completely overlooked you comment @Soma...


    Thats not really needed for this problem. Why complicate things unessecary? This wont work when using a get param to filter result with i paginated results. Ones you can add with using input whitelist.

    "This won't work when using a get param" ?

    Does what I said above still make sense then?

  16. @lokomotivan @Soma That's indeed a nice, fast, and easy way to get it working!
    Unfortunately I've made my form & GET setup a bit to complicated – so if I want to do this, I'll have to restructure everything, which I'd rather not of course. But I'll definitely keep it in mind for the next Filter-run!!

    So, now I'm working with @Zeka's code...I think I understand what's happening, but I'm having some issues with implementation.
    For example, I've replaced:

    if ($input->get()->count() && !$allbooks->count() && $input->pageNum > 0) {

    with the following:

    if (count($_GET) > 0 && $input->pageNum > 1){

    ...as I got an error on $input->get()->count() (...and I don't know why).
    The !$allbooks->count() is to verify there's actually books in there, right? So I SHOULD put that one in there...

    So far I've been using $input->get->(name of what I'm getting) so;
    - $input->get->studio
    - $input->get->title
    - $input->get->author

    When I use Zeka's code in the URL 'data' element, I get the following error:

    Parse error: syntax error, unexpected '' (T_STRING), expecting ']' in /Users/JCN/Dropbox/Websites/publicationstudio/site/assets/cache/FileCompiler/site/templates/header.inc on line 268

    As the $input->get()->count() also didn't work for me, I'm wondering if I'm missing something obvious, or if it has something to do with my settings?
    If I remove the line with 'data' it works fine – but of course isn't filtering anything ? as it'll go to page 0 of allbooks, unfiltered.

    Perhaps it's also useful to show how I have these $input->get->x set up in relation to my $allbooks:

    if($input->get->author === 'ascending'){
        $sort = 'author';
    }elseif($input->get->author === 'descending'){
        $sort = '-author';
    }elseif($input->get->title === 'ascending'){
        $sort = 'title';
    }elseif($input->get->title === 'descending'){
        $sort = '-title';		
        $sort = 'sort';

    Looking forward to hearing your take on this!!

  17. Hi all,

    I've set up a filter on my product-page, which I then use to...filter my products!
    – I've got pagination set up, and 30 items per page.
    – When I active the filter it works perfectly (in my opinion).


    Here's what I'm struggling with though:
    When I'm on another page (filtered as well/or the total overview) and I put my GET request in for the filter,
    it gives back the result, but still with the page-number there. In some cases, this is no problem – like a A-Z or Z-A filter,
    but others (say, per location) I might have less pages.

    Visual/code ref: (I DO have 3 pages of authors, but I don't have 3 pages from London)

    url: books/page3?author=ascending
    url: books/page3?studio=london


    The current setup for my pages that get rendered are as follows:

    $allbooks = $pages->find("template=book, sort=$sort, $q, $tagged, $select_studio, start=0, limit=$limit");

    As you can see I have the start=0 in there, but I read that's for the start of the pagination, not so much where it'll drop me in the search results.
    $q, $tagged and $select_studio are all empty values, unless they're returned from the GET request

    To repeat it, in it's most simplest form:

    When I click a filter, and a GET request is done, I want to 'reset' the page-number to 0, and get my results...

    Perhaps I'm missing something obvious, but I'd be really grateful to have your input.

  18. Cool to have a Module set up for this @justb3a! Cheers! ?

    I've been reading the topic, but still have a question – not so much about the implementation, but more in options I guess;
    In understand that it's connected to Sandbox users, but as I'm filling in one user, I take it it's not possible to fill in multiple users?

    (either in the module-field, or chained in the getRecentMedia('user1, user2')?
    ...Just wondering, as I'm working with a collective that has multiple accounts.

  19. @kixe thanks for the reply! Makes sense – I hadn't really thought about security holes before.

    Do you have any idea how I could go about doing this? I guess I can't really set a Cookie for a URL that's forwarding right...if it was a hard redirect there wouldn't even be an issue. But as the URL will remain, I guess the Cookie-pop-up will stay put then, as it's actually asking to set a cookie for a different 'domain' (url) :s If anyone has tips...I would be very grateful.

  • Create New...