Jump to content


Popular Content

Showing content with the highest reputation on 11/06/2019 in all areas

  1. 3 points
    It depends completely on the payment provider you choose, there are several modules available, but they all require some hands-on programming. http://modules.processwire.com/search/?q=payment Also often payment providers require a callback-endpoint at your site to process the result of a payment action. If all goes well, it will call this endpoint while the user is waiting for a bit during the payment process. After your system processes and acknowledges the payment (for instance it changes the status of the user to 'registered'), the payment provide will then forward the user back to your site. But.. it can also be the case that this callback happens minutes, hours or even days later in case of a hiccup with the banking system for instance. And, in case of a credit-card payment, it can in fact even change the state of a payment a month later β€” should the user formally dispute the charge. So, the flow of registration -> payment -> access is not as 1-2-3 as it may seem. You will need to consider all the possible outcomes of your registration process. You will be able to read more about the exact information your payment provider sends and expects in return in their documentation, as this varies wildly. Another thing to consider is that you cannot depend on any $session variable during the callback function, as the payment provider has its own session. So you will probably have to pass the user-id to the payment provider while setting up the payment, which it in return should include during its callback to your server and which you can then use to look up the user. One other thing though, just in case you hadn't thought about this: you should never email users their passwords. With the exception of a single-use, time-constrained temporary password. For that purpose you can use the PasswordForceChange module.
  2. 2 points
    Welcome @Elko! From comments that I've seen here in the forums I know that there are people using PW successfully with millions of pages. So that might mean that there is nothing to worry about if you decide to use a page for every time slot for every user. But personally speaking, when I've had situations like this it has felt a bit wrong to use large numbers of pages to store such simple data and I have used Profields Table for this sort of thing instead. This isn't based on any tests I've done - just on gut instinct. I have a feeling that if you need to regularly and quickly load and process large numbers of records then pages can be a bit less than optimal. @bernhard's RockFinder module might be useful to avoid loading full Page objects: Or if you're comfortable working with databases then there's no reason why you couldn't use an external database (or just an extra table in the PW database) together with the $database API. This might give the fastest performance.
  3. 2 points
    It looks like you still need to grasp some concepts and logic of html/css and php in general. Write me a pm, I think a chat between me and you would be ideal for you. I'm trying not to pollute the forum with a bi-lingual discussion between us.
  4. 2 points
    Lol I have a good job, I am just looking to showcase my skill and I guess inspire people. Yeah it's just for fun and showcasing my thoughts. Hopefully as time goes by, there would be much more content to share.
  5. 1 point
    Hello group, I would like some input on how to store the data for a project I'm currently working on. It is a Backoffice application for teams, where each day is divided into 4 sections, representing the eight working hours in a day as two-hour time slots. The time slots will be filled with a letter and a color, indicating the task that the team member is appointed to at that time. I have attached some screenshots so you can get a general idea of what it looks like (tried to make a GIF screencast with 'peek' but the file turns out too big every time to post here). The attached files show the Backoffice application itself and how I organized it in the back end of Processwire. Teams are pages, containing functions in the team. The members of a team are implemented as an ASM select field on the functions pages, that point to the Admin->Access->Users pages. Every user has access to their own profile page in the back end, but no other pages are allowed for them. As for storing the time slot data. I could create a separate database, or use Processwire to create trees of pages --under the Users pages-- with the date timestamp and task ID for that day, but I don't know yet how that would scale in Processwire when there is more-and-more page data in the Backoffice over time. With many team members, that tree could grow quite large, because it has to also be kept there as an archive for making reports about the working time the teams and members spent on what tasks in the past. So, I would appreciate some input from you on how you would store the time slot data in a case like this. Kind regards, Elko PS: I've been using Processwire since March this year and really like it so far, so thank you for making a great product like this.
  6. 1 point
    Welcome @alanxptm! There are separate permissions that can be set on the Access tab of each template's settings: View Pages (normally all roles are given this permission), Edit Pages, Create Pages, Add Children. So besides the View Pages permission you would set the permissions as follows for the author role... category template: Add Children post template: Edit Pages, Create Pages
  7. 1 point
    The guest user language will be provided by default. You can change it. If you want to control it via get parameter you need to hook in ProcessLogin::execute(); Pick up the language ID from the url get parameter and set the user language in a hookBefore.
  8. 1 point
    You can also try the recently added https://processwire.com/blog/posts/pw-3.0.139/#new-toggle-field And then have no - unpaid yes - paid paymentAttemptFailed - user tried to pay, but for some reason didn't succeed To make it even fancier, you could log the 3rd use-case in another field (each attempt with timestamp)
  9. 1 point
    You're welcome. JL2 (when I get there πŸ™ˆ) will give some more control here. This case would be covered by subscribe/{path} --> @[1495]/{path}, and then there'd either be a {query} wildcard or an option on the jumplink itself to automatically carry it over.
  10. 1 point
    You're a legend - thank you - works perfectly!
  11. 1 point
    Any time πŸ™‚ I've rolled out 1.5.57 with a fix, so you should be good to go without the {!all}, which is somewhat unsafe IMO.
  12. 1 point
    @adrian Ok so this seems to be the wildcard cleaner. Because {all} is the equivalent of .*, it includes the query string in this case and therefore cleans it like a normal wildcard. The only option for the time being is to disable cleaning of {all}, by changing it to {!all} in the destination. I know it's not perfect, but JL doesn't actually handle query strings very well – they should actually be handled separately somehow. Edit: I'm actually going to see if I can update the cleaner to prevent query string character cleaning.
  13. 1 point
    Add the "Paid" field to the user template: https://processwire.com/talk/topic/16400-is-it-possible-to-add-custom-user-properties-to-the-user/ Then you can update that field: $user->setAndSave('paid', 'true'); You can use a FieldtypeCheckbox for that too, then the ON value is 1 and OFF value is 0
  14. 1 point
    Ciao franciccio, non Γ¨ processwire che deve "pescare" la classe nel tuo css, ma sei tu che ( a seconda di una particolare condizione ) puoi dire al sistema di fare un echo di una classe piuttosto che di un'altra. Facciamo finta che tu abbia due categorie di pagine (politica ed ecologia) e al si sotto di esse le pagine corrispondenti, a questo punto puoi semplicemente definire la classe che vuoi sul bottone: // Insert a class conditionally <button class="<?= ($page->parent == 'politica') ? 'some-class' : 'other-class' ?>"></button> Lo stesso principio vale per gli sfondi. ---- It's not pw to pick the classes from the css, instead is you choosing the right class based upon some conditions (if/else, switch statements, etc.). Let's pretend you have to main parent categories (politica ed ecologia), at this point you can easy define which class you need to be applied on the button.
  15. 1 point
    Hi guys, so since I moved to Processwire, it has been my default go-to CMF/CMS for my website and client applications, apparently my previous job took a toll on me, and made me have less time, but now finally had the chance to change my website to something I always had in mind. I decided to go with something minimal, as I tend to enjoy writing, so wanted a website to have more text than graphics and I think I whipped up something clean. Currently I still have more to do, but this is my current website, the main purpose to have a content driven website where I will be writing tutorials , articles more and hopefully technical notes. Please let me know your honest opinion. PS: I am more of a coder than a designer but i think this old dog still pulled it off https://okeowoaderemi.com/
  16. 1 point
    Ah of course - didn't click that it would be the same as the previous query πŸ™ˆ πŸ˜† Ok I'm able to reproduce, will investigate
  17. 1 point
    Going to have to spin this up and see what's going on. Mind sharing your source/destination with me? Sorry, I edited that post as you were replying
  18. 1 point
    @Sephiroth you have written a good article here : https://okeowoaderemi.com/articles/posts/wordpress-to-processwire-a-guide-for-developers/ I agree you on most points over there.. can you please share the article you have written over this ?
  19. 1 point
    Thanks @dragan. Nice idea re. checking via user role. The forms generate a significant amount of web leads and are under heavy usage. Typically any enquiry needs to successfully route through all of the following which all need to be working perfectly 1. the website itself and the form 2. any SMTP configuration module 3. Our SMTP mail delivery service 4. Client's end email address We had an incident recently whereby the SMTP mail delivery service had a bounce from a client email address due to an IT outage. It then incorrectly flagged an organisation as inactive and stopped sending all future leads. The represents wasted leads but also wastage of AdWords budget etc. So essentially it's an SLA thing for reassurance to make sure everything is working.
  20. 1 point
    Thanks. This provided the result I needed. I actually added it to a custom module that added the hook, but same result.
  21. 1 point
    @Kiwi Chris Just looked at one of my sites and this is what I put in ready.php // lets non superusers view unpublished and hidden pages in listers // https://processwire.com/talk/topic/9346-not-all-specified-templates-are-editable-only-includehidden-is-allowed/?do=findComment&comment=143068 $this->wire()->addHookBefore('ProcessPageLister::getSelector', function($event) { $event->object->allowIncludeAll = true; }); Does this solve your problems?
  22. 1 point
    Current ProDrafts version is 8. I would suggest you contact @ryan via PM to relay your concerns, if you don't have access to the ProDrafts VIP Support forum.
  23. 1 point
    I'd use LoginRegister module for registering the user, and then taking them to a form with FormBuilder that later basically just flags the user as paid (on a checkbox field for the user template) on a hook after payment. EDIT: Just re-read that you want the users to pay first before actually registering them, I'd still try to find a way to use FormBuilder to simplify the payment part and just use hooks to validate the form and create a user.
  24. 1 point
    Welcome to the forums! There is no such thing unfortunately, but the tutorials section of the doc pages is a good start: https://processwire.com/docs/tutorials/ Also worth noting: https://www.youtube.com/watch?v=K6eQGGk9xOA&list=PLjfImzZuFeJ-iZ0K7WVDwSeTrQQHmt7a8 https://mauricius.dev/basic-processwire-website-workflow-part-one/ (Step-by-step guide, 4 part tutorial) https://processwire.com/talk/topic/3579-tutorial-approaches-to-categorising-site-content/ Hope this helps. Edit: +1 πŸ™‚ https://www.youtube.com/watch?v=kSLhay7msTI&list=PLOrdUWNK38ibz8U_5Vq4zSPZfvFKzUuiT
  25. 1 point
    https://www.sonrisestable.com/ This is one of my personal sites, but I've been using PW for client sites for a couple years now - a recovering Joomla user. πŸ™‚ That site uses UIKit CSS framework. I like ProjectSeven's menus for their ease of use. Ecwid is the ecommerce on the site. I'd appreciate any feedback/suggestions. I'm going to add the blog/article categories as a submenu under articles, when I get a chance.
  26. 1 point
    Why do you need to test them so often? The obvious advice would be: Test them on the development instance of the site. Depending on embed method (A-D), a query string may or may not work. Perhaps with a hook that checks for user-role? $this->addHookBefore('FormBuilderProcessor::emailForm', $this, 'testEmails'); protected function testEmails(HookEvent $event) { /* @var InputfieldForm $form */ $form = $event->arguments(0); if ($user->hasRole("email-tester") && $config->emailTesting === true) { $recipient = $form->getChildByName('recipient'); $recipient = 'foo@admin.com'; // or put inside $config too // some re-definition of the landing page, e.g. add query string or pseudo-landing page, or real-landing-page-url + url-segments /test-only/ } }
  27. 1 point
    First of all... thank you @adrian for the introduction and the great work with this module. In the last couple of days I created a DEV branch with some minor changes and fixes I found while testing the latest version (0.4.11). If you are interested in playing around with that version, grab a copy over at Github - the DEV branch is linked below. As always: backup your site and previous module first. All changes so far: FIXED: Vanilla JS version notice toggle didn't work when MANAGE disabled FIXED: Version change didn't trigger reset INFO: Added usage examples (assets/html) CHANGED: Removed CLOSE option ADDED: Datalayer details to README Issue tracking on Github was also enabled. This could make things easier in the future. Feel free to open an issue there whenever you find a bug. Don't forget to add the obvious details (ProcessWire version, PHP version, expected behaviour, your module settings and custom code). DEV-Branch https://github.com/webmanufaktur/CookieManagementBanner/tree/dev Issues https://github.com/webmanufaktur/CookieManagementBanner/issues
  28. 1 point
    This should be pinned! It's Awesome! πŸ˜„
  29. 1 point
    Same here, I just discovered this today.
  30. 1 point
    I'm around here for a while now but never saw this until now. It's awesome. Why is watching this not mandatory in some kind? πŸ˜‚
  31. 1 point
    5 years later, and this is still awesome 😁
  32. 1 point
    Probably a question best answered by Ryan in the pro support board, but this worked for me... // Name of repeater matrix field $matrix_field_name = 'test_matrix'; // Name of matrix type you want to add field to $matrix_type_name = 'type_1'; // Name of field you want to add to matrix type $add_field_name = 'images'; // Get field objects $matrix_field = $fields->get($matrix_field_name); $add_field = $fields->get($add_field_name); // Add field to repeater matrix fieldgroup $matrix_template = $templates->get("repeater_$matrix_field_name"); $matrix_fieldgroup = $matrix_template->fieldgroup; $matrix_fieldgroup->add($add_field); $matrix_fieldgroup->save(); // Associate field with matrix type $matrix_types = $matrix_field->type->getMatrixTypes($matrix_field); $matrix_type_integer = $matrix_types[$matrix_type_name]; $property = "matrix{$matrix_type_integer}_fields"; $field_ids_in_type = $matrix_field->$property; $field_ids_in_type[] = $add_field->id; $matrix_field->$property = $field_ids_in_type; $matrix_field->save();
  33. 1 point
    This could be modificated for the "Release Trailer" for PW 3....
  34. 1 point
  • Create New...