Jump to content


  • Posts

  • Joined

  • Last visited

Posts posted by nurkka

  1. Hi kongondo,

    I just watched the video and it looks very good! I already sent some suggestions a while ago, but I wanted to repeat an important one: I have some projects where the clients have lots of PDFs with very long detailed technical names. I assume the PDFs won't have thumbnails in Media Manager, so it would be very good if one could switch the view to a really compact list view, where the filenames would not be cropped. Perhaps in this list view also some other meta data could be shown, like filesize etc. Also I would add that the filenames or image titles as shown in the video are cropped in a way it makes them nearly unreadable. So I am wondering if you could consider an option to not crop those titles or filenames at all?

    • Like 1
  2. Hi @kongondo

    2 hours ago, kongondo said:

    Yes. Perhaps my question wasn't clear. I am all for this folder structure. What I was referring to in my question about inputfield selector is whether we could also simplify that.

    It would be nice to have a full text search, which would always be visible.
    If this is not possible, it would be nice, if the filter would be always open, so one can start typing immediately and previously set filter values would be visible right away.

    Also a more compact view for pdf documents would be great, because the current grid and list view both require a lot of space if one has some hundred pdfs in the library. In a past project I added the pdf filenames to the grid view by modifiying some javascript files, to have a more compact view with the filenames visible. Perhaps, pdf icons could be a lot smaller or omitted at all in the document view.

    The UI elements could be smaller and information like how many times an image was used, filesize, etc. could be hidden and made visible with a toggle button, so everything would take up less space and more image and document items would fit on the screen.

    • Like 1
  3. Hi @kongondo

    First of all thank you for the awesome plugin!

    1 hour ago, kongondo said:

    A question to you all, how does the powerful but potentially confusing inputfield selector work for your clients? Do they use it or would you prefer a simpler interface such as the WP one in the screenshot shown above by @David Karich?

    It would be really awesome if the selection would run through an interface with a folder structure. And it would be perfect if one could define per template in which folder the selection would start.

    An example: Assuming we have a folder "Employee photos" and a folder "Customers" (or a lot more folders and subfolders 😉 ), then it would be perfect if one could give the input field the information that the image selection on employee detail pages starts in the folder "Employee photos". That would be much easier for the clients/editors to work with.

    And without a folder structure, it would be great if one could define per template with which category or tag the input field starts, i.e. to have a ore-defined filter setting per template.

    • Like 2
  4. Hi everybody,

    is it possible to hide a page in the default language of a multilanguage website?
    The page’s settings tab doesn't seem to allow it, because there is no checkbox next to the default language’s url and it can’t be left empty.

    For the time being I implemented a checkbox "hide in default language", and if checked, the page outputs a wire404();

    But is there any native way to do it?

    Thanks and best regards

  5. Hi everybody,
    some time ago I implemented a blog in ProcessWire with the comments function. The comments have avatar images which were displayed based on the commentators email address. To manage the avatar images and some other data, I added custom fields to the user template. This used to work perfectly, but today I noticed that the avatar images were missing.

    $user = users()->find("email=mail@example.com");
    echo $user->first()->get('name'); // works perfectly
    echo $user->first()->get('user_display_image'); // doesn't work anymore

    UPDATE: I just found out, how to get the field value again. One has to check the option »Make field value accessible from API even if not viewable«. Screenshot:


    I assume, the functionality must have been changed sometime between 2019 and 2021. With the above setting it works again.

  6. Hi everybody,
    while testing $config->debugIf, I noticed, that it wouldn't work with custom functions. Example /site/config.php:

    function custom_debug_if () {
        return true; // simply for test reasons
    $config->debugIf = 'custom_debug_if';

    This doesn't work because the if(is_callable($debugIf)) in ProcessWire.php returns false.

    The debugIf-documentation says:

     * 2) Your own callable function name (i.e. "debug_mode") in /site/config.php that returns
     * true or false for debug mode;

    How is it possible to use this feature?

    Thanks and best regards!

  7. Hi!

    The feature Automatic Page Name Format of the PageTable field has stopped working after a ProcessWire upgrade.


    I was using the following configuration string, which worked perfectly before:

    The config string was interpreted as PHP date format, where you can escape characters to mark them as non-date-formatting characters. The PHP docs state the following:grafik.png.25c4b2cc7ad8bd83c1fb844758d3389c.png

    PageTable generated the page names like the following example: 2017-03-13_12-17-24_download

    But after a ProcessWire upgrade (I assume it must have been version 3.0.123) the page names are now generated as follows: y-m-d-h-i-s-d-o-w-n-l-o-a-d

    The config field settings description now states:


    If the name format contains any non-alphanumeric characters, it is considered to be a PHP date format. If it contains only alphanumeric characters then it will be used directly, with a number appended to the end (when necessary) to ensure uniqueness. Example: Ymd:His is a good name format for date/time based page names.

    So, I tried several other configurations, like:
    Y-m-d:H-i-s \d\o\w\n\l\o\a\d

    Which renders the date part correctly, but the string "download" is unfortunately also processed as a date format.

    I assume the configuration setting is somehow filtered by ProcessWire before it is passed to the php date function. This was not the case in older versions of ProcessWire. Sorry, I haven't the time to test with which version the behaviour changed. The feature stopped working somewhere in january 2019, so I assume it must have been the upgrade to ProcessWire 3.0.123.

    Has anyone similar issues with the Automatic Page Name Format in PageTable?


  8. Hi kongondo,

    I just wanted to report a little UI inconsistency: I was editing a CKEditor-textarea and inserted a link by using "Select Media from Media Manager". In the Media Manager modal window, I used the table view, in order to see the filenames. Now, selecting any of the thumbnails didn't give any visual feedback. The red frame indicator only appears in the grid view, but not in the table view. I did a clean install of Processwire and Media Manager, but the issue persisted.

    Update: I think I found the issue. Here is a fix for insertMediaLINK($s) in MediaManager.js:


    $inputs.each(function () {
        // skip current input
        if ($(this).attr('id') == 'media-' + $dataValue) return;
        // invert checked status
        $(this).prop("checked", inverseState).change();


    $inputs.each(function () {
    	// skip current input
    	var $dv = $(this).attr('id').substr(6).replace('-tabular', '');
    	if ($dv == $dataValue) return;
    	// invert checked status
    	$(this).prop("checked", inverseState).change();

    The line was taken from removeMediaThumbsView($a) in InputfieldMediaManager.js.

    • Like 1
  9. Thank you both! In the meantime I have found the corresponding line of code in the FieldtypeOptions module. Before saving the options, ProcessWire checks, if the current user is a superuser. So any non superusers cannot save option values (in the current / newest ProcessWire version 3.0.148). So I modified the corresponding if statement, in order to allow users with "field-admin" permission.

    Thanks again for your suggestions. I took the opportunity to take a closer look at Tracy Debugger and I will definitely keep the page field select module in mind.

    • Like 1
  10. Hi,

    I'm maintaining a multilanguage website where two different design companies have access to the processwire backend. For one of the teams I created a custom user role called "designadmin", where I activated the permissions "field-admin" and "template-admin", so the designers are able to edit fields and templates. This worked very well, but now, they wanted to create a select options field, and then change the values of the options. When clicking "Save" in the ProcessWire backend, the changed values won't save and are immediately restored to their previous values. Screenshot:


    When logging in as superuser, these values can be changed and saved successfully.

    How can I give the design team the permission to change and save options values, without giving them superuser access?

    Thank you for your help!


  11. Hi kongondo!

    Recently, I used Media Manager in a client project. In this real world use case, the media library very quickly grew to an extent, where it was too confusing for the client. Of course I know how to apply filters, but for my client, configuring and applying filters was to complicated - even with the relatively new feature of pre-defined filters. So I thought I would ask you, if you could image to implement some additional filter-features, that would make it easier for clients:

    - It would be great, if it was possible to set a default filter for every MediaManager-Field. I have a lot of different "image-types", like icons, fotos, sketches and so on. With such a feature, it would be possible to limit the displayed images to just the "type" of image, that suits the context of the current MediaManager-field. Like when applying some product icons, you don't want to choose from the whole library with all the staff portraits.

    - Another great feature would be, if pre-defined filters could be applied with one click in the overview. I tried to sketch this in a fake screenshot:


    In this way, an admin could pre-define all needed filters, and the user/client could just apply them with one click - without worrying about or even understanding the actual filter definition.

    I guess those features don't exist already, but if so, I would be very happy, if you could point me to any existing solution.
    Otherwise it would be great to have those - or similar - features in a future version.

    Thanks again for the great module!

  12. Thanks for the detailed explanation of the new module version!

    Some time ago, I wrote a simple module for a client website that converted every href-value on page render. It stripped out a certain folder name, i.e. it converted »/container-1/page-1/« to »/page-1/«.

    That worked fine, but for my client it caused a really big usability issue in the backend, because they saw the original links in the WYSIWYG-Editor, and not the resulting links.

    As much as I understand, the new Multisite version will also leave the original links in the WYSIWYG-Editors, like »/www.example.com/about/« instead of »/about/«.

    Do you see any way to just display the »right« links to backend users, while not really altering them?

  13. Thanks for your reply, Soma. And also thank you for developing the fantastic Multisite module!

    To further test this, I set up a clean installation of ProcessWire 3.0.30, activated link abstraction and put some internal links into the body-fields. Then I dragged and dropped the page branches around the page tree. PW’s link abstraction always correctly modified the links in the body-field.

    Then I installed Multisite, and link abstraction unfortunately stopped working. When trying to save a page with any link in the body-field, PW displayed an error message like »Session: Unable to resolve link on page "pagename" in field "body": /link-to-another-page/«.

    PW’s link abstraction internally saves page-ids as link-attributes in the database, like this:

    <p>This is an <a	data-pwid=1023	href="/child-page-1/grandchild-page-2/">internal link</a>.</p>

    When Multisite converts links like »/www.example.com/child-page-1/« to »/child-page-1/«, PW isn't able to recognize them anymore and therefore cannot save the corresponding page-ids to the database. So I assume, link abstraction won't work together with Multisite.

    A powerful feature of Multisite is, that editor users see the »real« links in the backend. Modifying the links on page render, as you suggested in a previous post, would confuse those users, because they would see links like »/www.example.com/child-page-1/« in the WYSIWYG-Editors.

    The only solution I can think of right now, would be to convert all modified links back to the original links on page save, let link abstraction do it’s work, and modify them again, when displayed in the backend or frontend.

    Do you think that would be possible?

  14. The Multisite module (latest Version 0.0.6 from https://github.com/somatonic/Multisite/tree/dev) doesn't work correctly with the new link abstraction (since PW 3.0.6). When activated, the link abstraction feature adds the URL-parts of the Multisite-folders back to the URLs, so you'll end up with URLs like http://example.com/example.com/some-folder/some-page/ instead of http://example.com/some-folder/some-page/

    I wrote a workaround, but unfortunately - since I didn't find a way to hook into the link abstraction - it's a core hack. I had to modify the methods sleepLinks() and wakeupLinks() in /wire/core/MarkupQA.php. In sleepLinks() I'm overriding the link modification, when a link points to a page, which doesn't belong to the current Multisite-branch. And in wakeupLinks() I'm stripping the Multisite-folder domain names from the given URLs. Since that doesn't make much sense in the long run, I wondered if anyone has a better solution?

    @ryan Ryan, could you perhaps make the link abstraction hookable?

    Or am I missing something? Every hint is very well appreciated. Thanks in advance!

  15. Hi,

    how is it possible to modify the settings of the html purifier instance that is used by InputfieldCKEditor?
    How can I get the correct instance $purifier?

    $purifier->set('Attr.AllowedFrameTargets', array('_blank','_top'));

    My goal is to allow link target "_top" *without* having to disable html purifier ...

  16. Hi Peter,

    yes that would work, though it's not very easy for the clients.

    I thought I missed a trick with dragging/dropping pages, but it looks like the pagetree simply lacks this feature.

    What would be the best way to post this as a feature request - in github issues or here in the forums?

  17. Hi,

    when moving a page in the page tree via drag'n'drop, it was not possible (for me) to move it one level down beneath another page. This only works, when the destination page already has a child page.

    Is there a trick to do drag and drop a page one level beneath another page, even if this page hasn't already got a child page?

    I tried this in Firefox and Chrome.

    Thanks in advance.

  • Create New...