• Content count

  • Joined

  • Last visited

  • Days Won


Tom. last won the day on June 12

Tom. had the most liked content!

Community Reputation

302 Excellent

About Tom.

  • Rank
    Sr. Member
  • Birthday 11/01/1992

Profile Information

  • Gender
  • Location
  • Interests

Recent Profile Visitors

2,042 profile views
  1. @AndZyk Thank you very much!
  2. Yesterday we (Peter & Paul) launched two websites, Noiascape & Factory. Both a labour of absolute love. We are extremely proud of these and even more proud that our clients share our love for ProcessWire. Thanks for all your great work Ryan! Noiascape An architectural company based in London, Teatum & Teatum, came to us asking for a very different website promoting their unnamed development practice. Teatum & Teatum's creativity influences their buildings, we wanted to capture that in the name, brand & website we created. The name we came up with was Noia/Scape. Noia means new thinking, new approach and new direction. Scape means space, landscape, communities and places. Factory A multi-award winning sound design and audio facility in London, worked with us to come up with a creative idea to celebrate their 20th Anniversary. The original idea to reskin their website, turned into a rebuild using ProcessWire due to the massive improvement that ProcessWire could bring. Both to the front-end and the back-end. Factory are extremely happy with ProcessWire and are really glad they made the switch. It's always exciting when clients share our passion for ProcessWire. The main piece of work was to create art from sound and use this for a timeline of Factory's history. Thanks Ryan & Community for all your great work and allowing front-end developers such as myself feel limitless when creating websites.
  3. I'm having trouble with sorting by repeater count. We have awards given to each work and the awards are in a repeater. Doing "sort=-awards.count" However it isn't working. Anyone got any ideas?
  4. Hello Bramwolf, As Processwire is a CMF it can do all of these. However it will require quite a lot of custom coding. If you aren't looking to do that, then you will have to use multiple platforms. Getting them to all work together, could prove a nightmare and blow your house down. For the CMS part, you could use ProcessWire and for the membership part you could also use ProcessWire and Stripe/PayPal quite easily. Personally I would suggest Stripe. Advertising platform you can use something like and plug that into ProcessWire, and for Marketing Automation you can now use something like The thing that I'll have no idea about is segmenting you users based on personal interest, pages they have visited etc. To me that will be your biggest bulk of work as to track all of this is big data and will require crazy optimisation or a huge database.
  5. Also worth noting @cosmicsafari that you can limit page view permission without the need of a module Edit the template you want permissions for, go to Access and untick View for your user role.
  6. 404 on /processwire doesn't say to me that this is a permission error. Also I don't believe you can remove the administration role from the initial admin account without taking from the database. Have you changed the url to the login page? Can you echo out <?=$page->editUrl?> this will give you the url with the admin panel.
  7. I feel like 580px for the sidebar is far too big, and that's the minimum. I feel like 380px would be far more comfortable. The view without the sidebars doesn't have the page breadcrumbs anymore.
  8. Haha, I actually knew this! Sorry, complete Sheldon Cooper moment there!
  9. Surely it would look better with no styling? I'm sure when it comes to creating the actual theme, we will not aim to make it look worse. Great work Ryan, this is shaping up really well! Can't wait to get stuck in!
  10. Hello, I can see it's using <canvas>, it's very likely that all the urls are set in Javascript. I can't find any documentation on how to change the URL, am I getting your question right? If you like to any documentation I'm sure I can help you further.
  11. I personally haven't had any issues, just make sure you do the standard checks that are built into ProcessWire's API also make sure you do permission checks such as updating a user: $u = $users->get($id); if($user == $u) { // Do stuff here } else { // You don't have permission to edit this user } If for example you have profile pages which are a page, you will have a Page Reference field that will store the user then you can do: $p = $pages->find("template=profile, user=$user"); $p->of(false); if($location) { $p->location = $sanitizer->text($location); } $p->save(); And the update will be url will be: In the ajax.php file you don't want to pass $user as this is built in however you do want to pass location: if($input->urlSegment1 == "users") { if($input->urlSegment2 == "get") { wireIncludeFile("ajax/users/get", ["id" => $input->get->id]); } if($input->urlSegement2 == "update") { wireIncludeFile("ajax/users/update", ["location" => $input->get->location]); } } EDIT: Sorry, I didn't consider if you was using AJAX externally (websites on a different server), you will probably want some external authentication checks you can create fields for Users I would create a field called auth, salt the username and password then you can do a check on username and password salt and if it matches select that user as active $ajaxUser = $users->find("auth=$salt);
  12. Hello, I suppose there loads of ways of doing this, and it mostly comes down to person preference. I usually create a template called Ajax then give the template the ability to use segments, I use segment 1 for the group and segment 2 for the action, the rest I use GET. Then each action can live in an Ajax folder. The ajax.php will look like: if($input->urlSegment1 == "users") { if($input->urlSegment2 == "get") { wireIncludeFile("ajax/users/get", ["id" => $input->get->id]); } if($input->urlSegement2 == "update") { wireIncludeFile("ajax/users/update", ["id" => $input->get->id, "email" => $input->get->email]); } } Then in ajax/users/get.php for example I do: return $users->get($id); Ajax request will be to the url for example Not sure if I'm answering your question here.
  13. This is amazing and so easy to skin, I noticed a few CSS errors, I will put them on GitHub Great work Ryan!
  14. I always wondered the best way of setting up fields in terms of Performance, do you have one field for example called "slider" which you can use across multiple templates, or is it better for performance to break down the field into templates: "home_slider" "journal_slider" For example, will it take longer to query the single entry for home slider among the potentially hundreds of entries for journal slider, if you use one field "slider".
  15. @Robin S I understand your concern, however this is default but will not remain default. What I get from this blog post is Ryan wants to work with the designers on this forum to customise UIKit using it's built in classes to create a front-end which will be ProcessWire's new default. I personally love the new simplistic approach and it's pretty much an empty canvas for us to inject some personality. For our website - we use our own customised version of the backend.