Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/25/2025 in all areas

  1. I agree with everything above, but this one is pure heaven. If you work at an agency that builds WordPress sites for a living, you know the pain of updating plugins and praying they don’t break the website.
    3 points
  2. For me the following features (in no particular order) set ProcessWire apart from other systems: Easy core upgrades, just replace the wire folder and you are good to go. Low (zero) maintenance costs for core and plugins (with WordPress you need to watch plugins and core every week or day and update them) Free and Open Source Custom fields in core Easy to learn API Multi-language out of the box (which needs support for multi-language images, but that is another topic. I also know they are possible via ugly workarounds) The welcoming and helpful community Custom modules that modify ProcessWire or add new functionality without modifying the core
    3 points
  3. I resonate very deeply with this, especially in the last 2 years where I'm using ProcessWire as a web application framework. Maybe it's my impatience of having to write migration files or the fact that I'm usually a team of one, but modeling an app in this way and getting an admin interface "for free" with everything interconnected is peak productivity. I look at ProcessWire very differently as of 2 years ago. In 2006/7, not long after I decided to get into website development, I gravitated towards Ruby On Rails (which has a special place in my heart even though I haven't used it in over a decade). However given my lack of experience with programming in general at that time (I was more of a "hacker") and the fact that a web application framework lends itself to complex applications, OOP, software engineering, etc., it was too early for me to pursue that line of work, so I went down the CMS path and eventually found PW in ~2012 after searching for an alternative for WordPress for a few years. Two years ago, I had the opportunity to re-write an internal order and production system (a true web application... no frontend, purely admin) and I had to make a decision... should I write this in a web application framework like Rails/Laravel or can I actually do this in ProcessWire in the "ProcessWire Way"? This forced me to look at ProcessWire in completely differently and to make a long story short, I've proven it to myself, on a deep level, that ProcessWire is a very capable web application framework as well. Realizing and proving this to myself with this system I've developed is liberating because for me, I can use one system to do two very different types of projects.
    2 points
  4. Hi, extremely long post warning! One of the sites I've built with PW had 15 each of these errors 4 days ago: I figured it was some sort of DoS attack that was destined to fail, but the FieldtypeText errors were a bit curious, possibly part of the overload of the database. Then last night I got a bunch of different errors: This seemed a little more serious to me. It was targeting admin folders. I checked all the /wire/ and /site/ links and they all throw a 404 as expected. They also targeted unpublished pages and a couple of published test pages for some reason, but there are some old links on the site to them that shouldn't be there. I checked the logs are there 18,000 requests from last night from a single IP (I won't post in case they are snooping the internet for that IP). I can share the logs if anyone wants to see but needless to say there are a lot of probing URLs like those quoted below. Notably the last bunch of probes all returned 404 or 500. What I don't understand is why the error "Syntax error or access violation: 3057 Incorrect user-level lock name '1'." shows up 20 times. Were those successful probes? Or closer to successful? Perhaps from their first probe they figured out the site was in PW and then used the second one to attempt to access forbidden areas of the site? The code is in a GIT repo and I can confirm that no files on the server have been changed, although the /site/assets folder is excluded from the repo. I can also confirm that there are no tables added to the database (I have a backup from the day before) and the only tables with new rows were ones that make sense (except the one below) like process_changelog (things I did today) and sessions. The one that stood out was module_sert_keywords (https://github.com/marcostoll/processwire-search-engine-referrer-tracker) which only had a bunch of new rows, but my understanding of the module is that it adds rows when the referrer is Google, so any hack attempt that pretended to come from google would add a record. There were about 220 new records that look like this: So I think the site did it's job and kept the hacker out, but I'm not 100% sure and wanted to share my findings with the PW community. I'm not a security expert, just a security conscious developer. Modules are mostly up to date, but 3 have updates available (Tracy, Changelog and Jumplinks) and the core is still at 3.0.229 I'm happy to share any other details that are needed, possibly by DM if they are sensitive. Thanks for getting to the end! Chris
    1 point
  5. Try: $reference = $repeaterFg->get('field_as_reference') // Or insertBefore() $repeaterFg->insertAfter($field, $reference); $repeaterFg->save()
    1 point
  6. Ok, I've got it to work! Upgrading to MySQL ver. 9.2.0 did not work, changing from MyISAM to InnoDB did not work, but switching from MySQL to MariaDB (ver. 11.7.2) did work. I do not know enough about the technicalities of databases to know why, but I suspect it is that indexing issue from the previously mentioned error message. Thanks again for the help, it's all working as you describe now.
    1 point
  7. Hello @sharpweb, I am not sure if really somebody tried to attack your website, but if that happens again maybe this commercial module could help. 😉 https://processwire.com/store/pro-dev-tools/wire-request-blocker/ Regards, Andreas
    1 point
  8. There is also the Croppable Image module
    1 point
  9. I think being on windows is one more reason to look into ddev. You can use it in a WSL linux machine, so your local environment will be linux and your production environment will be as well (most likely). That avoids lot's of issues that you have to deal with when using laragon. For example I've been working on a PDF project and on linux it's easy to just use "poppler-utils" to create JPG from PDF. Not possible with laragon like this, so you need to either hack things together on your production environment or you have to find a way to get it working on your local dev, which means additional work and additional headache. Another example is my current multisite project. In DDEV all you have to do is add "additional_hostnames" to your config and you can access all your local sites via foo.ddev.site and bar.ddev.site and baz.ddev.site and all will be routed to the same ddev/pw project 🚀 I don't think that these two things would be possible with laragon. But I don't know. Oh and switching php versions is as simple as changing the config and running "ddev restart". In laragon it was also not that hard, but I can remember it was also not that easy...
    1 point
  10. +1 Please do that. It will help you as a developer and it will help us making exploring your module (and maybe contributing) easier. 2x speed = 12min investment 😉 If you use VSCode Github is integrated into it very well, so you won't even need the commandline. I highly recommend installing this extension: https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph It has shed so much light on things that I didn't understand before and after using this extension it clicked and things just made sense.
    1 point
  11. Wow, really helpfull @bernhard! Thanks. Up until now i had an output buffer and included a template file, or rendered a page before my wiremail call to get an instance. But this will make things way cleaner.
    1 point
  12. Yeah. That’s what I’m doing. I just wondered….
    1 point
  13. Not at real answer (Sorry!), but... We do initial workshops with clients to guide them around and assist for at least 3 months for each and every question they might have. In 90% of all cases that's all it ever takes as they are only able to add and edit small parts of the site. Using CSV imports or ProLister might take a bit more time but other than that is easy going. So that said: we never created any real tutorials, guides, or similar. Keeping the client very close in the first months they do things on their own is super important for us. Most of the editors can barely handle more than MS Office basics but can manage the website's content.
    1 point
  14. Oh and if you need a quote for the website, this might be a starting point:
    1 point
  15. this was my prompt for the AI (source = me) This is the output of the AI that I got from my prompt. 🙂 I think I used claude 3.5 sonnet but I'm not 100% sure.
    1 point
  16. @wbmnfktr @Kiwi Chris @Mats @MrSnoozles @bernhard @teppo @Jan Romero @MarkE Wow, thanks for all of the feedback. This is really helpful and gives me a lot to work with! I'm currently compiling and combining all of those feedback into a separate document that will be used to build out the features section. @bernhard What's the source of the first two quotes in your message? Those are really good. I might like to use portions of those quotes directly if possible, so wanted to provide proper attribution. @MarkE May I use a quote from what you wrote? (this quote below):
    1 point
  17. So much to agree with in all of the above. My brief contribution: I came to ProcessWire having used WordPress and CodeIgniter. WP was fine if you just wanted a really simple website, but rapidly got frustrating if you needed something a bit more (adding a bookings capability to my holiday let website involved all sorts of contortions). CodeIgniter (ok, a bit passé now, I know) worked ok but needed a lot of coding and was a bit of a straitjacket. I looked at a whole load of CMS alternatives - Drupal etc. - but only ProcessWire had the right balance between CMS and CMF based on a really simple and intuitive concept (everything is a page). Completely unopinionated, but quick to get something working which can then be built on as necessary. As your needs grow, so you realise that PW grows with you.
    1 point
  18. +1. This may not sound very shiny and impressive, but you see a lot of systems where URLs are somehow divorced from the data structure and it’s a big turn-off for me. PW’s more manual routing features (urlsegments, path hooks) are also awesome.
    1 point
  19. Interesting topic…have you seen https://gitingest.com to pull in specific code from a repo to give your chat more context?
    1 point
  20. It's possible that I'm still missing the point, but if the underlying problem is that there are multiple data sources with differing data formats, there are only two top level approaches that I can think of: write a separate import script / profile / configuration for each data source, or write an adapter per source that converts them to single, uniform format, which you can then import. For me personally scraping is never the preferred option, as it comes with a number of potential issues. For one you may not be able to scrape all relevant data, or you may get malformed or partial data — and you may not know it before it is too late. Getting your hands on the raw data is almost always much, much better. At the very least I would contact each vendor before scraping to confirm that a) they think it is doable and b) it won't result in them blocking you due to your scraping tool exceeding rate limits etc. If you can't make sense of the data format you've got, ask for some kind of documentation. The worst case is that you need to figure things out on your own — that can easily lead to nasty issues, as your assumptions could be completely wrong. If there is no way to get solid documentation for the data, let your client know that it's essentially a guessing game at this point. Especially when money is involved that's not a great situation to be in. Anyway, from what I've heard so far this all seems completely doable, but could obviously get pretty time consuming — and hence costly 🙂
    1 point
  21. @joe_g I added a link option to the group block. Please update the FieldtypePageGrid and PageGridBlocks modules to try it. Let me know what you think and if this works for you please mark this thread as [SOLVED].
    1 point
  22. Nice. Just wanted to mention Cerberus as an alternative to MJML if you want to use email-friendly HTML templates directly.
    1 point
  23. Hi @TomPich i've often to do this kind of thing, typical example is a password reset link, in this case i usually create a personal db table with, worse than the case you describe, this page is limited to be viewed only one time... - auto increment id of course - user email - uid - creation date - used default 0 - used date (not necessary but i like to keep track of what happens) the page contains obviously a field to get the user email as soon as it is displayed - i check if the uid is in the db,, if not > die() and if the used field still contains 0 - the used field is set to one and it will not usable again (you may not need this limitation) the uid if of course a long (64char min) string easy to handle with pw url segments and a regex to define what you accept i've done this a lot, be it in pw but also in the old modx evo i used a long time ago as in all my framework based tools, pw just, as usual, makes it even easier to set up 🙂 of course, this is fully adaptable for any other need than password reset adding a user id field if you want to check the user email and password as well as what follows if the user is successfully logged in case it could be useful have a nice day
    1 point
  24. I'm working on improving the RockPageBuilder config page and added toggle buttons instead of checkboxes as they are a lot more intuitive (especially if you have default=yes toggles, where you'd need to use a negative meaning with checkboxes, eg "dont use the widgets feature" vs. "use widgets feature yes/no" The default toggle looks like this in ProcessWire: There it is not really obvious which value is selected. Is the grey one the active item or the shiny white one? I think this is much better: So I'm wondering if that should be a global default for toggles in AdminStyleRock - what do you think?
    1 point
×
×
  • Create New...