Jump to content

gornycreative

Members
  • Posts

    352
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by gornycreative

  1. @adrian How are you able to extract image information along with the rest of the rendered results? I've tried adding item.image_field to the templates in a number of configurations and I can get the raw filename but not any of the other page image fields, e.g. httpUrl, height/width, etc.

  2. On 5/29/2021 at 2:40 AM, fruid said:

    I need to correct myself, the above, as expected, doesn't work or at least very inconsistently.

    So I'm now using the version with the sortOutEmpty function, which is a working solution. The downside I believe is that it's all loaded in memory now before paginating, so I'm still on the lookout for a better solution. Thanks so far.

    Does it make a difference if you move the negation?

    $items = $pages->find("template=basic-page, limit=$limit, !body=''");

     

    • Like 1
  3. I'm trying to do something very simple, there must be something I'm missing.

    Search page with pagination.

    The find is nothing special:

      $results = $pages->find("search_index#=$q, limit=5, has_parent!=2");

    Dumping a print_r yields what you'd expect:

    ProcessWire\PageArray Object
    (
        [count] => 5
        [total] => 8
        [start] => 0
        [limit] => 5
        [pager] => 1 to 5 of 8
        [items] => Array
            (
                [Page:0] => Array
                    (
                        [id] => 1211
                        [name] => brainstorming
                        [parent] => /project-stages/
                        [template] => project-stage
                        [title] => Brainstorming
                        [_pfscore] => 1
                    )
    
    			... etc etc
                
                [Page:4] => Array
                    (
                        [id] => 1220
                        [name] => brand-engagement
                        [parent] => /project-stages/
                        [template] => project-stage
                        [title] => Brand Engagement
                        [_pfscore] => 1
                    )
    
            )
    
        [selectors] => search_index#=business, limit=5, has_parent!=2
    )

    When I try to output $results->pager - I get NULL. The results I can pull, and the count I can pull, but for some reason other references are giving me NULL, even though there's obviously values there.

    What am I missing?

  4. @kongondo Yeah I read through the docs and put things through their paces over the weekend. It's a slick lib - there are lots of places where it would be a quick way to bring together diverse apps/services output.

    On 7/3/2021 at 4:10 PM, diogo said:

    You can add a get parameter to the url on the ajax request, and strip the header and footer based with that (ex: ?content=modal), like you mentioned for the iframe. It solves the problem easily, and I don't think it's not elegant, just explicit.

    That's true - I guess I was interested in a variety of approaches from different people.

  5. The unpoly looks really interesting - I will do a deep dive into that.

    Just to be clear, I'm not asking how to create/populate the modal windows - I typically use uikit's built-ins for that. But in terms of the target, getting a stripped down version of the rendered page so that, say, only the <article> portion of the target DOM is included.

    So I'm wondering if there is a generic rendering workflow that, say, let's you pass a page and selector string for the DOM and the render preprocesses and then gives you back just the DOM elements you are looking for. Like a 'render parts' or something. I'll have to think about it some more but do something else in the meantime. Maybe a module that can chain with the render process.

  6. This may seem like a silly question. I want to be able to render the content of a page within a modal - for example, excluding the headers, sidebar and footer material.

    I could do it as a iframe call to the page with a parameter that could hide the extra DOM stuff when set, but I was wondering if there is a more elegant way to do it. For example, maybe create a stripped down _main if I am doing markup regions and then call the page via the API and use _altmain instead of _main as the post file? Is that the recommended way?

    I'm converting a site that was built in pods with wordpress and pods allows you to create automatic templates for each custom content type and when you render that content inside of something else it sortof automagically applies the template wherever it appears. I know this is something a bit different but... essentially I want the ability to display a page as it normally appears on the site, but then also be able to display say, just the title and body fields, for example, in a modal version of the same page.

    Not sure if that makes any sense.

    For example, I have a pricing page I'm working on that includes a lot of details, but also a simpler version that I'd like to bring up very quickly with a modal.

    Granted I could totally do a bespoke modal, but I'm thinking there has to be a general practice that could be applied to any sort of page that uses markup regions.

  7. I'm trying to style this for a dark theme using UIKit LESS... got a few overrides working but have run into a snag that debug tools isn't helping with.

    For the life of me I can't figure out how the white background is appearing on the list elements in the InputfieldsCheckboxStacked ul.

    I can alter the background of the entire block, and I understand opacity rules are dictating status behavior, but I can't seem to find the rule that dictates the white background. Nothing shows up in the inspectors, and I don't think I saw it in the jquery stuff.

    Screenshot_1.jpg

    • Like 1
  8. 15 minutes ago, matjazp said:

    Thank you (and Ryan) for your work on AdminThemeUikit. What I'm missing is an option to select between styles quickly. I was expecting something like this: I create a folder /site/modules/AdminThemUikit/styles/ and copy many different less files. The core AdminThemeUikit would then scan for this folder and allow me to choose between them in the module settings, similar to what we have in AdminThemeDefault, where we can select different Color Sets (classic, Warm, Modern, Futura).

    I was looking for this at first as well - wondered what I was missing until I read more carefully.

    The question I have is a bit different. Say I want to incorporate a few style rule changes, etc. in the base admin templates. At one point we'd copy templates-admin over and make customizations there. Do we need to copy the structure to site/modules and make changes there if we want to alter the markup for the login screen, logo swaps, light/dark mode switches, etc?

  9. I found that it was necessary to do some uninstall/reinstall in order to undo AdminThemeBoss because of how it brings on board its own version of AdminThemeUikit in the /site/ directory.

    • Disable the Boss theme
    • Go to the UIKit module setting and selection the version in /wire/ rather than /site/ - this should upgrade the module to 0.3.3 from 0.3.0
    • Uninstall AdminThemeBoss, delete the plugin
    • Delete the folder in the /site/ directory for AdminThemeUikit if it is still there
    • Switch your admin profile theme to Default from Uikit
    • Uninstall AdminThemeUikit from Modules/core
    • Make sure the Less module is installed in site
    • Reinstall UIKit in Modules/core

    This is what I had to do to get things to compile properly. Deleting the files on baremetal and clearing cache/compiled files etc, refreshing the wire directory from a fresh dev archive, etc. did not work. I had to uninstall and reinstall UIkit fromwithin processwire for the LESS compilations to occur.

    Took a little while to get this working, hopefully it saves other time who have experimented with other admin theme modules that mess with UIkit.

    • Like 1
  10. Curious if there is a use case for this module in conjunction with ProDrafts. Is there still utility in being able to callback past version of field values outside the realm of full page drafts? Is it redundant to have both Version Control and ProDrafts on a site? Does having drafts enabled for a template/field make things more confusing for VC?

  11. There are three areas I would plan to explore personally, depending on the hooks/API calls available. These are three areas that, aside from payment processing, represent the logistic challenges of most e-commerce platforms on the market today - external logistics integration (third party warehousing), order shipment boxing, sales tax calculation.

    None of these are dealbreakers, and most solutions have contingencies for shipping and taxes. I think what you already have in place should work really well.

    However, these are areas I will personally look into as optional extensions to the system.

    1) Support for external order ID field - this would allow me to wire up an external Amazon FBA transmission/status workflow to a post-payment-success hook. I'm guessing I could add a text field to the order page type, and it would also need to be able to generate shipment pages for a given order that include status.

    2) Allow for a postage calculation/package tracking bypass - An external hook for shipped order products prior to the internal process, that could get wired to a service like Shipstation. In the past I have used systems that include case freight tables, where if a person is buying both pick/pack items and casebound items, the case freight can have box dimensions and weights set in place in advance - a case acts like a variant in this case, but unlike single items, the dimensions are important as they go straight to the postage calc api. Unless you are going to pull a CS-Cart where they let you put in box dimensions and it calculates how many boxes you will need to ship an order - but that gets pretty crazy. In our case, we used the weight of single pick pack and general dimensions to develop a calculation for the shipping box sizes we'd likely use.

    3) Allow for a tax calculation bypass - An external pre-shipping/post-shipping hook could connect to a tax calculation service api. I realize some locales charge sales taxes on shipping costs as well as the product (ugh, sorry) so it would make sense to toggle pre- or post- shipping calculation.

    That being said, I can't wait to start working with this. I had just started digging a little bit into padloper integration but I think padloper 2 is going to be a lot easier to manage for end users.

    • Like 1
  12. This is really interesting, does this work like nesting markup regions inside each other? Does this sortof daisychain the region content into the _main region?

    Oh never mind I see - so you can assign multiple markup region areas to a single region defined in _main. What happens if you happen to define both regions in your template file? I'm guessing the last one created takes precedence unless you do an append/prepend or something?

  13. On 10/5/2020 at 8:26 AM, gmclelland said:

    @gornycreative - If you are using Cloudflare - you may want to set some rules as seen here:

     

    That's good. I was early on with cloudflare and have only recently gotten back into it to see how incredible their platform has grown to.

    I had a pull the levers push the buttons fire drill prior to core updates but it looks like this may help that situation a lot! Thanks.

  14. 22 hours ago, Macrura said:

    @gornycreative -

    you can try changing this line (221)

    
    $valuesArray[$key] = $f->attr('value');

    to this:

    
    $valuesArray[$key] = is_array($f->attr('value')) ? array_values($f->attr('value')) : $f->attr('value');

    which should always force any value that is an array to reindex to 0 based.

    Let me know if that solves it.

    I will give it a try.

    I don't know (again) what happened, but after a few hours trying it again resolved the issue. I'm not entirely sure what caused the original issue or why it was resolved. Perhaps cloudflare said I was logged in and had toggles activated on their UI even though I wasn't logged in? I am not entirely sure. Not great for debugging when the problem solves itself ?

    The inconsistency with how Tracy dumps said one thing but some other calls provdided errors - not a lot made sense (which seems much of the time to be caching somewhere).

    It doesn't look like the host made any significant config changes anyplace I have access to.

    UPDATE: Regardless, the fix provided consistent results.

  15. I ran into an unusual situation, I've tried a number of things to remedy it but have had no luck.

    When using an InputfieldPageAutocomplete, I have the following setup:

        {
          "name":"header_font",
          "label":"Header Font",
          "type":"InputfieldPageAutocomplete",
          "width":"100",
          "parent_id":1305,
          "maxSelectedItem":1,
          "description":"Page List Select Test Description",
          "collapsed":0,
          "value":"0",
           "columnWidth":20
         },

    I am able to type fields, get results and all is good. For some reason that I cannot explain, the single page item that gets saved there started out as being stored in the index [0] for the output array, but after saving the control value with a blank entry and then selecting an entry, now for some reason the index is shifted to [1]. There are things I can do to check for this and use the value, but I am really trying to understand the shift. If I do a tracy dump, it shows the index in the array should be 0, there is only one item in the PageArray. But when I try to extract the settings and call the header_font[0] item, I get an undefined index: 0 error and if I change it to header_font[1] item, the only selected item works as usual.

    The weird thing is that it was working fine when I first added the field and saved a value - did a bunch of testing with it, no problem. After I cleared the value, saved, and then inserted a new value I started running into the weird index reset.

    I'm not really sure where to go next, when the tracy d() output suggests there is only one item in the PageArray and it somehow is not at the 0 index marker.

×
×
  • Create New...