Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


heldercervantes last won the day on April 1

heldercervantes had the most liked content!

1 Follower

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Location
    Porto, Portugal

Recent Profile Visitors

8,059 profile views

heldercervantes's Achievements

Sr. Member

Sr. Member (5/6)




Community Answers

  1. Hi guys. Check out my latest project Casa Douro Guesthouses. As the name implies, Casa Douro offers a few guesthouses in historic Porto and on the Douro Region. They came to us looking for a well built website that would fit their marketing efforts and grab direct reservations, instead of relying only on Booking.com and Airbnb. Since their channel manager (CM) software only offers a cookie-cutter website and no API, ours does all the presentation and jumps straight to the booking system when the user decides to make a reservation. As usual on my sites, pages are built using a blocks system (Profields Repeater Matrix), allowing the admin to change things up a little bit between the different units. Plus the usual WireMailSMTP, SEOMestro, and Rockfrontend because I love using Latte templates. The frontend is a mix of Tailwind + SCSS on more complicated components, and JS over Vite which allows me to keep it as vanilla as possible. We already have plans for new sections, and maybe upgrade the booking system in the future.
  2. Page loads on every step. Adding to a repeater is a lot quicker and less frustrating than creating a page. I usually add a "Global settings" tab to the homepage where I put a repeater for the social networks, email for form submissions and stuff like that, so I was wondering if I could have a field there to manage this list instead of pages. It would also seem more tidy and even intuitive for the admin than using pages on the tree. The idea that pages on the tree might not be actual pages but also the options for a field is super weird to me. This is what I mean. The amenities are grouped in sections, but those are lost when selecting them on the page. Not an issue with the 9 or 10 that I have now, but considering in the end there will be 50 of them, it won't be very user-friendly. Oh, as I was writing this, @BitPoet pointed out the solution. Thanks man, great timing πŸ˜„
  3. Happy new year, everyone! I'm working on a BnB website and I need to have an anemities list like this: How would you approach something like this in the admin? I need to create a global list of amenities, with sections, each with a title, icon and optional note, that in each unit I can just select with checkboxes. The most viable option is probably to create separate pages for each + a multi-page select field. But there are a couple of things I don't quite like in that approach. One is creating / managing the options. Having to create these as pages one by one makes my skin crawl, and I'd much rather have someting like a repeater on a global config section of the homepage. The other is selecting them. I've created amenities/section/amenty templates, the pages select field looks for the amenity template, and in the end the sections aren't accounted for when I'm selecting in the unit page. I'll probably have to grind a bit to get them to display organised by section in the end, now that I think about that. Any better ideas?
  4. Has this been deprecated? Just tried this module on a site, trying to get watermarks on its opengraph images, and I'm getting this error: Compile Error: Array and string offset access syntax with curly braces is no longer supported (line 2385 of site/modules/PageImageManipulator/ImageManipulator.class.php) (My server is running PHP 8.0)
  5. The directory is writable and there's stuff there. It's weird that the older version works. I'll probably just leave it at that
  6. Here I am doing maintenance on a site that seems to have went through some hard times and had multiple issues. I started off by updating to version 3.0.229 and then went ahead to finding crap and cleaning up, replacing the old SEO module with the new one, refactoring some stuff, yadda yadda. Most of it's done but now I'm getting a weird error on WireMailSmtp. I can configure it fine, but when I send a test email or uninstall the module I'm getting this: Class "WireMailSmtp" not found in site/modules/WireMailSmtp/WireMailSmtpAdaptor.php:143 Any idea what's going on? I've already removed the module manually from the file system, refreshed modules to remove it from the database and installed it again, but the same thing happens. **EDIT** I've downgraded from version 0.6.3 to 0.6.0 (just copied the folder from another site) and I don't get this error anymore πŸ€·β€β™‚οΈ
  7. The problem isn't breaking the boilerplate, but rather breaking my habits πŸ˜… I mean I'm so used to just making my own vanilla js and getting it doing what I want that needing to flip the switch to Alpine's way is enough to make me postpone the decision to the next project.
  8. Love this! Makes total sense. Although I did try to make AlpineJS part of my boilerplate and quickly gave up. Just easier for me to add a JS file and do my stuff with vanilla. Right now I just have a Vite thing, a js that imports and inits scripts from a file (like the one that Bernhard mentioned). Effects like my text reveal thing require adding the type of ready-made JS and CSS that I tend to avoid. However if it could be part of a library of stuff a developer can browse and easily add to their project, it might be a cool idea. Alpine might help with this.
  9. It's my own script. Basically I'm identifying every text to animate with a data-attribute. Then my JS starts by breaking each word into a div with overflow:hidden and each letter in a span shifted down and incremented css transition-delay. Then, an intersectionObserver detects when it comes into view and adds a css class that changes each letter's position back to zero and the transition-delay makes them appear one by one. It's a cool approach and practically a snap-on script that I can reuse (and have done so already) on other pages. It still has that error @netcarver pointed out, though. I also have something similar for the images that makes a fade-in reveal effect.
  10. That's a glitch on my animation script that I still have to improve πŸ˜„ It's on my todo list
  11. http://shift-up.pt/ Shift-Up is a consultancy company from Portugal that specializes in government incentives and financing. This is my first project using ProFields and RockFrontend, and I can't really believe how long it took me to start using both. Profields' InputMatrix is a huge step up from my previous custom module that I hacked together using file selects and custom field visibility. And RockFrontend, just by getting latte in the mix, makes everything a lot more polished and professional. The project is a fresh start from the previous old Wordpress solution they had, taking care as to not harm the SEO standing this site had built up with all its content. I started out by writing a content import script that took hundreds of pages from the oh so messy WP export and turned them into neat PW pages. I also had to handle the URLs in the process, ensuring that the old unstructured WP links would be fed to the Redirects module. So the focus here was more on carrying over the content without having to rewrite everything, and now that we're here, when new programs come up we have a platform that can properly grow and add new layout solutions and features.
  12. Well, I can just do two searches. I'm just being stubborn assuming there's a straightforward solution for this πŸ˜†
  13. Hey guys and gals. I have a page tree that I want to search, where the second level has an "archived" checkbox. Something like this: Home Products Category ('archived' checkbox field is here) Product (these also can have subpages that I want to catch too) Product Product And now that I'm making the search engine for this site, I want to query all product pages, and I want to sort them showing "non-archived" items first. I suppose there's a way I can incorporate something like 'sort=$page->parents[2]->archived' (not like this of course, but...) Any ideas?
  14. Of course it's that easy πŸ€¦β€β™‚οΈ How did I not find that discussion? Who knows. Thanks Jan 😘
  15. Hi guys. I'm making an import script for a weird site's content. I got to the point where I can successfully clean everything up and shepherd most data from the exported mess to their new home in page fields. I'm also finding file links and image urls that I want to upload to a new files field. I don't have them locally, so basically I need to start from an array of URLs and somehow upload them to the page's files field. But how? I just can't wrap my head around uploading stuff. It's always a pain
  • Create New...