Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 08/12/2020 in all areas

  1. I've released v0.2.3 to add some support for this. v0.2.3 1. Adds a setting to the module config: "Name stub classes for compatibility with custom Page classes". This option names the template stub classes using the same format as for custom Page class names. A side-effect of this is that your IDE may warn you that multiple definitions exist for your custom Page classes. This is because the stub class files generated by this module will always be distinct from any custom Page class files you create (overwriting the actual Page class files is not on the table for this module). If you enable this option then you'll indicate the class name for $page in your template files like this (using the home template as an example): /** @var HomePage $page */ 2. For new installs the default path for stub files is now "/site/templates/AutoTemplateStubs/". This path is still configurable though.
    3 points
  2. Check here: https://www.gethalfmoon.com
    2 points
  3. Hello @Roych, Ryan was working on a multi-step/page enhancement to form builder here. I don't know what the status is since I haven't used form builder. Maybe this is a good starting point for your requirements.
    2 points
  4. Hey, no offense but your client sounds like a real punish. Here is a simple definition of a relational database pulled from the web: "A relational database organizes data into tables which can be linked—or related—based on data common to each". In PW each field gets its own table in the db, and each of these tables starts with a "pages_id" column (the primary key) that "relates" the data in a row to a specific page. This is by definition an example of following the relational model in database design. If you are seeing empty tables in the db, that is because you have fields that have no data associated with them. Perhaps try cleaning up some of your unused / redundant fields. It seems that some of @bernhard 's amazing Rock modules might help here. Have a look at the below, and check the post on the original RockGrid module (the precursor to RockTabulator) for examples of how it can be used:
    2 points
  5. Looks neat and has JS components which is promising, but needs more variables as the document states and more JS components (no tabs, no accordion, etc.). I'll be following this. UIkit is tough to beat however.
    2 points
  6. This module allows you to integrate hCaptcha bot / spam protection into ProcessWire forms. hCaptcha is a great alternative to Google ReCaptcha, especially if you are in the EU and need to comply with privacy regulations. The development of this module is sponsored by schwarzdesign. The module is built as an Inputfield, allowing you to integrate it into any ProcessWire form you want. It's primarily intended for frontend forms and can be added to Form Builder forms for automatic spam protection. There's a step-by-step guide for adding the hCaptcha widget to Form Builder forms in the README, as well as instructions for API usage. Features Inputfield that displays an hCaptcha widget in ProcessWire forms. The inputfield verifies the hCaptcha response upon submission, and adds a field error if it is invalid. All hCaptcha configuration options for the widget (theme, display size etc) can be changed through the inputfield configuration, as well as programmatically. hCaptcha script options can be changed through a hook. Error messages can be translated through ProcessWire's site translations. hCaptcha secret keys and site-keys can be set for each individual inputfield or globally in your config.php. Error codes and failures are logged to help you find configuration errors. Please check the README for setup instructions. Links Github Repository and documentation InputfieldHCaptcha in the module directory Screenshots (configuration) Screenshots (hCaptcha widget)
    1 point
  7. I combined dotnetic's suggestion with elabx's hook: <?php $wire->addHookAfter("InputfieldCheckbox::render",function($event){ $field = $event->object; $output = $event->return; if($field->name == "privacy_policy_accepted"){ $output = str_replace($field->entityEncode($field->checkboxLabel), $field->checkboxLabel, $output); } $event->return = $output; }); ?> Basically undoes the encoding
    1 point
  8. No problem at all! Excuse me, yes, I meant the ___savedPageIndex() method. Thanks in advance!
    1 point
  9. Sorry @snck and @xportde, looks like I completely missed this question. Just to be clear, you mean the ___savedPageIndex() method? Running this when the entire index is being rebuilt should be doable, but it looks like I'll have to move a few bits and pieces to another class. I'll take a closer look at this — hopefully later today, or perhaps tomorrow.
    1 point
  10. Thx for the kudos @Mikie but I think my modules will not make @fruid's clients happy. My modules are solving the problem of finding and/or displaying data, but are not doing anything in regards of bulk-editing data quickly ?
    1 point
  11. ProcessWire's database structure is unusual when first looking at it... Alien in fact. I had a similar reaction in the beginning. But then as you use the system, especially if coming from other content management systems, you'll see that it's very well thought out, flexible and performant. If you compare it to WordPress which has a more traditional structure combined with the post meta table, you'll see where WordPress' approach breaks down. Menus in WP get shoved into the post and post meta table in a really hacky way... Not good. Woocommerce from what I understand now uses their own table structures as opposed to the default WP ones. Slow Woocommerce sites were a big problem. Regardless of the system, editing data directly in MySQL is a bad idea. If I had a potential client that insisted on this, it would be a huge red flag. If they want to get hands on and edit data programmatically, I'd recommend learning the basics of manipulating pages via the API which may satisfy their need.
    1 point
  12. Hello, Just a mention that today I have received this newsletter from The Whale : https://thewhale.cc/91 And Processwire is part of it ?
    1 point
  13. Temporarily comment out the following line in Page.php: throw new WireException("You may not modify '$key' on page '{$this->path}' because it is a system page"); This will allow you to clone the home page via the API: $homePage = $pages->get('/'); $pages->clone($homePage, $homePage, false);
    1 point
  14. Another thing which would make usage of this module easier for users of the RestApi module would be to have an option to not have to use ApiKeys to access the API
    1 point
  15. Hi @teppo, thanks for the great module, we already use it with several customers. I have a question concerning the savePageIndex-Hook: It works perfectly on saving a single page, but not, when I use the "Index pages now"-function in module settings page. How could I achieve this? Best regards, Thomas.
    1 point
  16. Thank you Robin for your incredible answer. You've virtually given me a tutorial. This thread is gold!
    1 point
  17. I get your point @horst and what you describe is perfectly fine, but IMHO it wouldn't be a sad truth if it was communicated that way... --> "not-sad-truth" ? --> invest time for PRs --> PRs are ignored --> sad truth ? There are really small PRs that could be easily implemented within no time (eg https://github.com/processwire/processwire/pull/138/commits ). I understand, that checking all PRs can cost a lot of time, but that could be done by someone else just like @netcarver does it for the issues repo. Someone could tag simple fixes and ryan could then just work through PRs having some kind of label.
    1 point
×
×
  • Create New...