Jump to content

gornycreative

Members
  • Posts

    90
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

gornycreative's Achievements

Full Member

Full Member (4/6)

34

Reputation

  1. Yes I see your point. Because the slug in pw comes from the page name, not the template name. I'm getting my systems confused over here - with another popular system. Ugh. Thanks for making the change anyway.
  2. I have what might seem like a strange request, but is it possible to pick the delimiter for the name generation for templates? I typically use a dash delimiter for template and the underscore for fields, so I end up having to rename templates every time I generate them with the module. I don't know if there is a best practice for these conventions - I just have always understood that underscores in URLs were to be avoid in favor of dashes and so I use dashes in my template names and underscores in my field names to keep them sraight. Just an option to be able to separately pick or enter alternative delimiters for the template and field name generation would be nice.
  3. One thing I found with the Markdown textformatter updates is that it appears to be more strict in dealing with newlines. For some time you could simply put in a newline and the textformatter would interpret that as a line break but now you do have to strictly follow the two spaces return rule for Markdown to generate the <br>. I had a number of textarea markdown output areas where linebreaks disappeared because I didn't add the spaces.
  4. So I'm trying to wrap my head around what each() can do and when I need to use a regular foreach() structure. I have the following code: $pages->find('template=social-media-platform, !social_media_share_url=""')->each(function($zxc,$val){ $smi = ($val->social_media_alt_icon<>'') ? $val->social_media_alt_icon : $val->social_media_icon; $ary[$zxc] = array( "social_media_share_url" => $val->social_media_share_url, "social_media_share_parameters" => $val->social_media_share_parameters, "social_media_icon" => $smi ); return $ary[$zxc]; }) What I am trying to do is generate an array that is a subset of the values normally passed through the system, and trying to coalesce two value so that if the default value is empty and an alternative is not, the alternative is plugged into the same default value key. Regardless of whether I return $ary or $ary[$zxc] what I get back is a PageArray with page fields I have referred to in the loop included, but the substitution isn't made. I will do this with a regular foreach() but I guess I am trying to understand what the purposes/limitation of the keyed function argument are if you always get a PageArray as the result. What I'm trying to get is something simpler. Or I can actually use the PageArray object and just do the coalesce logic at output.
  5. This has been great. I just wanted to confirm one thing I noticed which is that _auto_desc doesn't seem to highlight/load a summary on partial word matches, although the search itself picks them up. So for example if I search for 'business' using a partial match operator, any article search_index that includes the whole word 'business' will create a summary with the word 'business' marked... and results will show up where businesses and businessmen are in the index, but no summary with a highlighted partial word appears. The summary for these entries is blank. Is this the intended behavior?
  6. Yes that's what I figured. Looking at it more closely, I think if I bring in the HTML.AdminThemeUikit class in rulesets for those modules I can guarantee more specific rules.
  7. It looks like this may be connected to a glitch in calculations for timestamps that account for daylight savings time. It looks like if you are in a timezone with daylight savings the UTC timestamp is advanced 60 minutes before it gets saved in the field. I have created an issue for it in github. Just explain further for the curious, I have a template with the following code: <p>Now: <?=( time() )?> Edited: <?=( $page->modified )?></p> And when I edit the page and save it, the output I get is this: CST (Central Standard Time) is -0600, but CDT (which we're currently in) is -0500 and if I expand the formatting to include the timezone name it is CDT - so the timezone is correct, it's just the extra calculation of the timestamp that is unnecessary - the field should preserve the timestamp as-is and let the session timezone dictate the offset. The time in the example should be 12:16:14 PM.
  8. I'm not sure I'm being clear. I can get my rules to compile and apply, but because they are loaded earlier in the css stack, stylesheets from modules are getting loaded later and in many cases where I want to override in the admin.less the rule gets struck out because another rule defined later in the loading order overrides it. So I can have rules like this in admin.less: //Awesomeplete for autocomplete modules .awesomplete > ul { background: hsla(0,0%,5%,.9); background: linear-gradient(to bottom right, @global-background, hsla(0,0%,5%,.8)); border: 1px solid rgba(255,255,255,.3); box-shadow: .05em .2em .6em rgba(0,0,0,.2); } .awesomplete > ul:before { background: @global-background; } And the rules and color overrides appear in the CSS but they are struck out because the autocomplete module awesomplete has its own rules that get loaded later by the module. To make the rules work the quick and dirty way I have to use: //Awesomeplete for autocomplete modules .awesomplete > ul { background: hsla(0,0%,5%,.9) !important; background: linear-gradient(to bottom right, @global-background, hsla(0,0%,5%,.8)) !important; border: 1px solid rgba(255,255,255,.3) !important; box-shadow: .05em .2em .6em rgba(0,0,0,.2); } .awesomplete > ul:before { background: @global-background !important; } Here's the loading order: So for example, because aos.min.css is loaded after Admin.css and AdminTheme.css, any rules I put in place to correct the default colors set in place by the module loading its own css are superseded unless I use !important or more properly use a rule with greater specificity than the original rule in aos.min.css - I'm guessing the css order is in place to allow module builders to have more control over the display for their module components.
  9. Is there a way to push admin.less rules to the end of the loading stack? I've run into a couple of situations building out a dark theme where I've had to use !important rules to override because it seems like the admin uikit css get loaded at the base and then additional admin module css get loaded on top of that. This applies both to admin styled areas in both core modules and 3rd party modules. For example, there are rules in the image editor pop-up that appears when you hover over a thumbnail that are already flagged important and can't be stated with more precision to force an override.
  10. That's an interesting way of doing it. Have you used the FieldtypeSelectExtOption module at all? Seems like it would be useful in that scenario. Only other thing I considered, as I thought about the original question, I find that when I want to to pass information to an include, I usually end up setting up a function to handle it. The _uikit.php file in the coffee site template made a lot more sense to me. I started out writing more includes but then realized setting up functions that I could pass arrays to made more sense and was a bit easier to work with once the functions themselves were done.
  11. My stuff is typically not that dynamic on the front side of things but I believe there are a number of users who have put together some pretty sophisticated partial loading methods with vue.js and other things that would probably cut back on the overhead if you are seriously concerned. I would think that the apps bringing in data to your dashboard probably have more overhead than pw, but I haven't built anything huge with it yet. Just digging around my links, it is old but you might consider looking at this for some ideas: https://github.com/microcipcip/processvue
  12. I typically start with the raw HTML output design and as I work I notice elements that I use often and break those into partials. In my _main I typically have the spacing and grid scaffolding for most items with the understanding I may embed nested structure as part of my individual page template, and then I will load includes into those embedded areas as needed. I see _main as the foundation and outer walls of the house. I see the page templates with their regions as different layouts of walls/rooms within that house. I see the furniture and features of the rooms of the house as partial includes. Whether you choose for the rooms themselves to be adaptable or not is really up to you. It isn't necessary to use partials at all, but I find it cuts down a little bit on the template counts. A common tradeoff seems to be between the amount of code you put into your template file region replacements/append/prepend etc vs the number of different templates you have, and whether you want the presentation routing to be directed more by the selection of the templates or programmatic responses to data in the fields your templates use. It is possible to have very few template files that reroute and alter the display based on tons of selections made on the pages themselves, or it is possible to have individual templates for all of the different scenarios you may want to come up with - but for complicated sites I tend to prefer fewer templates, more function controls. I would say that for the end user having lots of templates and transparent choices/structure on the pw backend is safer with clients. Because you can control a lot of things about adding new content, etc. it is less likely that the user may alter some value and cause some other glitches on the site that you don't expect unless you are pretty strict with your unit testing. But if you have code content that is really never anything the client is going to have to be actively involved in, bringing stuff like that into the code side keeps down the clutter. Hanna code sits somewhere in the middle and I always feel like it is playing with fire but that's a pretty happy bridge between the two worlds if you want to try to give placement control to the client but want to maintain logic control.
  13. Perhaps I've done this wrong, but modified times across the board are always an hour ahead because my server is set to UTC-5 but I'm in the UTC-6 timezone. I have set the timezone to America/Chicago in the site config. All clocks and set to NTP sync, but I still get warnings that someone started editing a page 60 minutes from now. Any other thoughts on what I may need to check?
  14. @adrian Thanks, it does. I wasn't sure if I'd need to dig into hooks on this or not. @teppo Just to confirm, looking at Renderer it also seems like there isn't a method off the bat to get the paginationString from the query... just count and total. Looks like I'd need to hook into renderResultsListSummary with a pagination check for that? I think I could get it from the magic get method?
×
×
  • Create New...