Jump to content

FireWire

Members
  • Posts

    266
  • Joined

  • Last visited

  • Days Won

    18

Everything posted by FireWire

  1. I will wholeheartedly admit that I may be going a little hard on WP. I know there are good devs everywhere who use the platform that works for them and their clients. I could be taking it a little easier on WP and it's plugins. ALRIGHT, THAT HAVING BEEN SAID *takes swig of beer, chucks bottle* Kidding, but I have been posting very punctuated examples of issues, some of which are more widespread than others. I also haven't been posting any real nuance, so I guess that's also not really a fair play either. I'll admit that I haven't been in a situation personally where a media manager came to mind- so I'm not going to make a blanket "never use them" statement. I can definitely see how what you said could grow into an issue, and combined with the "free for all" no size limit image fields, certainly. I like per-page media but a centralized media manager makes sense logically, especially to developers because we reuse code/resources to stay DRY. It's 100% appealing to me in that sense. However the "management" part of a "media manager" takes active effort and I'm inclined to believe that this isn't something clients/users keep in mind. I say that both theoretically and empirically. Media management can be an efficiency construct that exists outside of "keeping my website updated". Contrast to PW's per-page assets that works the way a client would think it does- when a page doesn't exist anymore, none of it exists anymore. The developer gives up what they know would be a better idea technically for asset reuse (central management) for the simplicity in user experience (distributed management). Recently I was forwarded email from a client from their web host stating that they had reached their website backup space and directed them to upgrade their plan. They asked if they should buy the upgraded package, I told them I'll take a look. I logged into one of their WordPress sites and deleted almost 1gb of images that had not been in use for years. Logged into another and deleted even more. I was almost 100% sure I knew what the culprit was just reading the email. This was a layer deeper than their server disk space. A hybrid approach (I'm sure this has been discussed before elsewhere already) in PW would be interesting where asset fields have a "Select From Another Page" option that allows for reuse, but is still tied to pages. Not to get too in-the-weeds, but extend the current assets/{page id} concept where selecting an asset from another page moves that file to assets/{new id}_shared. Now both reference the same file "manager style" on the filesystem. Asset fields could have a way to view a list of pages that also use the asset, with the ability to "Delete From All". If the file is removed from all pages except one, it's moved back to the assets folder of that page and assets/{new_id}_shared is deleted. The back end handles the centralization, the user's workflow remains enhanced but without additional work. One of the things I discuss with clients is "How can we add utility without increasing workload?". It helps us balance what they want with what they can or are willing to do to make it work. I'm inspired by Colin Chapman, founder of the Lotus car company, where his philosophy when building cars was "Subtract weight, add lightness". In day to day use, I think an optimization for the developer should feel like an optimization/feature for the user if they have to interact with it (as much as reasonably possible of course). I will repeat the caveat that I haven't experienced a situation where the solution was centralized media management- or I've been such a devotee to distributed management that I never think to consider it. Either way that's on me 🀣 The only time I've run into this is for truly site-wide content like logos, or certification/awards logos for the footer which is handled easy by a "Site Settings" page in the page tree, it works because there's still some sort of dedicated purpose for those fields that keeps the images contextually organized. That might be another case-in-point about my limited experience in that situation though. I considered this the most on the my last post re: Contact Form 7. It's a plugin and not core, absolutely. So the developer dropped the ball, happens. Unfortunately issues happen all too often, so I mention it in a manner of a cumulative stack amongst many plugins. I will suggest some responsibility by WP though because of it's built-in reliance on plugins- oh, you want custom fields? (you know what comes next) It's arguable that there's an ecosystem problem, one that WP's architecture, theme reliance, messy admin, and plugin implementation has a healthy hand in. Is the complexity or quality of the core a contributor to plugin problems? 5 minutes with the WP Codex is a little convincing IMHO. If I had the time maybe I'd try my hand at Fluency for WP (did I just say that out loud?). Ironically, the list of issues I (and many of us) could come up with exists as an antithesis to the PW methodology- and I guess that's why we're all here in the first place. So I may need to acknowledge that the dead horse is dead and put my beating stick down 🀷
  2. Welp, that second one is a weird one... I went out of my way to try and make sure that was handled- it works on the TinyMCE and CKEditor fields, didn't notice the other fields were affected. I'll have to chew on that for a minute since it's a relationship between JS and the browser's acknowledgement that something has changed. Searching for that specific info is harder than I thought it would be. If anyone has any info they'd like to throw out there on this, would surely appreciate it. I misread this entirely and my code was at fault. Information on fix in reply below. As for the first request, how about this? Config page now has the option to choose "Both" for the translation action. Second button only shows up on non-default language tabs. Download it on the Dev branch and let me know if that works for you!
  3. @neophron I've noticed that WP sites tend to be big, if not massive when it comes to file/directory sizes. You're right about the auto-generated code as well. I think that WP's central media library lends itself to massive amounts of unused images because they are uploaded and then associated with pages, the opposite of what PW does by associating images at time of upload. It requires a lot of manual maintenance. I'd rather a user replicate an upload on multiple pages than rely on a central media manager that requires manual deletion when an image isn't needed anymore. A user won't do it, and shouldn't have to. Now we can all agree why hosting companies love WordPress. They love selling people more GBs of disk because they run out of space on their server...
  4. Upgrading plugins? Contact Form 7 changed IDs in their shortcodes for embedding forms from incrementing integers to hash based strings. From the release notes: orly. You see- upgrading the plugin replaced all of the IDs for the forms. It didn't add hashing, it replaced all of the integer IDs in the database during the plugin update process. Instant borkification. I've dipped my toes in programming once or twice and I can tell you that seems like a pretty big oversight... TO THE GOOGLES! First result was a support thread for this issue on the plugin's website. Hey- marked resolved, day has been saved! But there's no actual solution in the thread. IT WAS A RUSE. So here we are. Just in case anyone using WordPress needing help on Contact Form 7 is still looking for a solution and stumbles on this thread, I'll provide it here on a different CMS' support forums: Go through your entire site and replace all of the existing shortcodes for all of the forms wherever they were added on pages and templates with the new ones. By hand. Couldn't be easier. The mostest popularest user-friendliest CMS strikes again.
  5. Fluency has been added to the ProcessWire modules directory! https://processwire.com/modules/fluency/ The readme and module documentation has been expanded significantly to document all of the features available to you when using Fluency, including markup rendering. Enjoy!
  6. Can you share what platform(s) you use as an alternate to ProcessWire in these instances? As the developer of a language module maybe there is some inspiration to be had.
  7. Well, since @monollonom tagged me I thought I'd tinker. I added a one-click button to Fluency that translates any module file, core or otherwise, in seconds. It's integrated with the native ProcessWire language translator pages. Some details here. It makes it entirely possible for everything a user interacts with in the admin to be translated within minutes, not hours. I didn't know about this module... this looks great! Language is a tough nut to crack and applying a universal solutions are difficult. It's huge task for a module developer, contributor, or a core maintainer like Ryan, to take on when they are providing free and open source software for the community. The fact that ProcessWire handles language so well to begin with shows a thoughtful approach by Ryan and ProcessWire contributors, especially if it is as rarely as you assume. Try Fluency and let me know if it helps out.
  8. Got tagged by @monollonom over in this Weekly Update post. Dropped a new Fluency feature. One click translation for any module, core or otherwise. I translated all user-facing strings for Fluency itself to Slovak in 4 seconds. This may be useful for developers who need to get modules that end users will interact with in the admin localized much much faster. This uses a feature in Fluency where you can bulk translate a large group of texts to from one language to another at the same time. Just for kicks I translated the entire ProcessWire core in under 30 minutes- that includes modules I don't even use. It would certainly need some proofreading, but the amount of work up front is significantly reduced. Available on the dev branch.
  9. Fluency has hit v1.0.1 and has been submitted to the modules directory, should be available pending review/approval. Really appreciate everyone's feedback and input to help on this project. All new features from the development branch have been added to the latest release. This is a recommended upgrade for everyone that also fixes a couple of issues. https://github.com/SkyLundy/Fluency/releases/latest If you there are any bugs found during usage, please file an issue on Github where you'll get credit for your help, or consider creating a pull request with a fix! @ryangorley That is most excellent to hear and I am very glad it helped! I've re-added a donation box on the module config page in the latest release, very appreciative of your support!
  10. New version pushed to the dev branch with fixes for InputfieldTable and FieldsetPage elements. Please let me know if this solves the issue @monollonom https://github.com/SkyLundy/Fluency/tree/development Thanks for everyone's patience. Work has been crazy (and a long-ago planned vacation didn't help). Thanks!
  11. Hahaha- those are great. This is what I'm putting on the invoice line item. That's it. Also, new DJ name.
  12. @monollonom Big help! This problem was caused by my replacing <button> elements with <a> tags for the translate triggers under fields. The fact that my links don't have an href="#" was an oversight because I always add those, but either way that would have caused an issue. I did that so that links could match any custom styles that were done to the admin, which was something that isn't possible if I used a <button> element. I could revert to using a button, but it would be a welcome fix the JS could be patched with more specificity since the # href is very common. In any case, open to input from @ryan In the meantime you can use the previous release as the only changes after this were for cosmetic reasons. Tables will work here: https://github.com/SkyLundy/Fluency/releases/tag/v0.9.0b I've identified the culprit, my code wasn't accounting for hidden template elements that InputfieldTable uses to create new items. I haven't nested a table field in a repeater before, so I'd never have seen this coming. Working on a fix. Thanks for the bug report and the assistance!
  13. Don't be fooled! This reporter has published propaganda to make people think that strategic and intelligent thinking will lead to a successful WordPress update. In reality, there is no logic or reason that can prevent disaster, you are at the mercy of chaos and a hateful god determined to destroy your will to live. To describe this in more depth, one of the plugins simply wasn't able to be downloaded without paying for another license which prevented the entire site moving from PHP 7.3 to 8.1. There was another plugin for forms that showed a "This form is temporarily unavailable." error to website visitors. This plugin author has decided that not only will it stop working- it will break your site's functionality. After running a standard plugin update in the WordPress admin- it removed functionality and demanded additional payment. The plugin did not indicate that a new license would be needed before updating, and thanks to caching- you couldn't tell the form was broken on the front end! Also- let's talk about caching! Caching for WordPress is a complete mess. Sure this is not exclusive to WP, but it takes the cake. Why? Because hosting companies' "Managed WordPress" plans which are an attractive option for hosting companies because it lets them set very aggressive caching policies to squeeze more capacity out of cheap crappy shared servers. This is why "Managed WordPress" hosting is almost always run on shared servers- even WPEngine, one of the more well known and much more expensive services, is all run on shared servers. I confirmed this via their sales team who was harassing a client about their website's monthly traffic limit. They said that the overages cause "performance issues". After confirming the server isn't a VPS (although they price it like it is), I asked if "we should be worried about other sites slowing down our site because WPEngine uses shared hosting". They left the client alone after that. WP is frustrating, but I take a deep breath and think about how that WP money is helping pay for an upcoming vacation. So... thanks WP?
  14. Oh, what's this? Another completely different site borked itself? Performed an update using an automated tool through the web host where the core and all plugins are updated at the same time. Is there a right way to update WordPress? The world may never know... This update has has rendered the Admin unusable and inaccessible. Time for a server rollback! Okay! We're back... oh boy... Did you know? Deactivating plugins in the wrong order can make the plugins page hang on a redirect loop every time you try and access it. Time for a server rollback! (Before someone says "that was a caching issue", no it wasn't) Okay! We're back... oh boy... Did you know? In WordPress, a commercial theme or plugin you've purchased and installed may install other commercial plugins that require their own license. When that license expires, you may have to pay for a separate license for the plugin that the plugin/theme you already purchased installed when it comes time to upgrade. PROTIP: the commercial plugins that were installed by the theme or plugin you purchased are not easily recognized as a dependency or indicate what plugin/theme installed it- so, when working on WordPress, keep a shovel handy in case you have to start digging!
  15. Oh heck. Gotcha. I just remembered I hadn't pushed all of the new features to main- so you can ignore that. I'll take a look asap. What version of ProFields are you running?
  16. Okay- I'll take a look. Unfortunately I am completely overloaded with work right now so the fix may be a little delayed. Can you switch between the button styles (translate from default vs. translate to all) and see if there's any difference? Really appreciate the help!
  17. This is an oversight on my part- if the field is empty, it shouldn't translate. Problem solved. The following two issues are solved by a translate to all button on non-default languages, and the translation button type is still an option on the module config page 😎 The real point for a "translate to all" button is to make it easier for the end user and to prevent content deviation, where one language says one thing and another language says another. It's very easy for an end user to forget to translate content- so there is no translated content, or the translated content becomes out-of-date. I've seen both of these issues in sites I've built that had people doing SEO work, or just managing content in general. The "Translate to all languages" and the content change indicators are the best way that I can think of to help people enter content, click translate, and complete their work with the highest amount of accuracy. In my experience non-web people aren't as engrossed in the process of maintaining websites as much as developers are, so unless you make it as simple as possible it increases the likelihood that the website will be poorly maintained. Also just realized that the new "Translate to all languages" button doesn't work when translating the page's URLs. Will push a fix for that.
  18. Bonus! I've added an option to enable "Translate to all languages" for each Inputfield 😎 Enable the new translation button on the module config page. The old style of translation (translating each language from the default language) is still available for those who want to use it. Translate to all languages at once from the default language Translate to all languages at once from any language. This is where the tab indicators come in really handy to indicate the tabs that have received updated/translated content with one click. This is on the dev branch as well, so give it a try and tell me what you think.
  19. Links to ProcessWire pages in translated content now point to the localized URL. I'm pretty sure this is good to merge into a release, but extra testing would be the best idea. @bernhard Pushed to dev branch https://github.com/SkyLundy/Fluency/tree/development @jacmaes I saw that like on @bernhard's post if you want to take this for a spin as well.
  20. Impressive. I was thinking about some of the higher latency I've seen in databases that aren't located on the same server that is hosting ProcessWire. I'm sure it will be fine. I'm sure someone will come back and let me know if it's too slow πŸ˜‚ Started working on this but have been super busy with work. Will report back here when the release is ready.
  21. Completely agree, glad you brought this up. Working on this now. I might have you take a look at what I put together on the dev branch to get your opinion. I wanted to give it a shot since it presents a few challenges that I'd like to try solving, one of which is this: <?php ProcessWire\PageFinderSyntaxException OR values not supported for multi-language 'path' or 'url' at wire/core/PageFinder.php:3684 3680β–• * @throws PageFinderSyntaxException 3681β–• * 3682β–• */ 3683β–• public function syntaxError($message) { ➜3684β–• throw new PageFinderSyntaxException($message); 3685β–• } 3686β–• } 3688β–• /** Trying to keep this efficient so if there's 5 (or many more) links in a translated text, then it would be preferable to make one $pages->find('{selector}') call rather than looping over them and making multiple calls. Do you think this can be done in one? Will this need a raw SQL query (if that would present a solution)? I think another downside to multiple calls would be that this is querying the "name" column which isn't a MySQL indexed column, so a site with many many pages might experience additional slower performance. The only thing we have to work with in the <a> elements is the href value... Whoa there cowboy, we're really stacking up new features here and I can't keep up 🀣
  22. This is a great case for including a "Translate to All Languages" button on all language tabs! I didn't think about that. This is a great real-world example. I'll add that to the roadmap. Very awesome to see that feature solve an immediate need!
  23. Last time it did, but I guess not being a complete failure this time is something to celebrate. Kudos to WordPress for doing the bare minimum! Here's a gold star ⭐
  24. Translate to all languages is on the roadmap. Very desirable feature but a lot of new code separate from the existing buttons/translating UI/error handling. I have an implementation in mind but didn't want it to hold up releasing the module, especially since it was so long overdue. I know this can be really annoying and I want to have this feature implemented as well. I had plans for a "Translate to All Languages" but not buttons for individual languages since it could lead to content that doesn't match between languages. Also want to keep it dead simple for the end user. Open to thoughts on this. I think that the way that tabs show that content has been modified is a good way to know that the content for another language has been updated. Some thoughts about switching to a tab after translation: The person translating the content likely doesn't know how to speak the language they are translating to If they need to go back and edit the content again there's an extra click to get back to the language they do speak The change indicators on the tabs are bound to the state of the Inputfield independent of the translation function, so you can trust that the content has been translated When the "Translate to All Languages" button is implemented, all of the tabs will show that they have been updated so it will be easy to see The flip is a great idea. I left that second select open since it's a "global" translator that provides all of the languages. I don't have any issues with it being pre-selected. Are there instances where you need to use the translator tool rather than on the fields themselves?
  25. @everyone (how annoying would it be if that actually worked...) If you've got a Github account and want to support ProcessWire and the community, why not go give this icon PR a πŸ‘? Great way to show the icon repo maintainers that there are people out there who love the platform. https://github.com/devicons/devicon/pull/1905 And while you're at it, go give the ProcessWire repo a ⭐ as well! https://github.com/processwire/processwire
Γ—
Γ—
  • Create New...