Jump to content

monollonom

Members
  • Posts

    328
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by monollonom

  1. I love it that you called it “RockCare”, to rockfinity and beyond... 🙃 In all seriousness, IMHO I don’t think this is something worth developing for others to buy (nor as a free module). Everyone has their own set of requirements (and their own way of doing) and this would make it a very hard time on you to figure out a “one-size-fits-all” solution. I would advise to save yourself this burden, knowing you’re already going on big endeavours with other modules (e.g. RockCommerce). However this is just me and you could definitely beta-test it with select users to see if they could adapt to your way of doing and in this case foresee a potential public release. In my particular case though, this is something I wanted to tackle for a while now, also with ProcessWire. But I know for sure that I would want to do it all by myself, as a way to experiment (and have fun like you said) but also to make sure it’s perfectly tailored for my usage. What would be nice though is having a thread (this one?) so people can share what they put in place (PW-based that is) to help them managing this aspect of their work. Not going as far as sharing a whole site-invoice profile, but something along the lines of the associated blog post 🙂
  2. It depends on what you want to achieve but basically with lazycron you specify a time interval target and whenever someone loads a page the lazycron checks if the interval has passed and then triggers its function. This means that depending on where you put the hook, it may check more often or not: if you put the code in a template, then the lazycron is checked only when a guest is visiting a page with this template. However if you put the hook in init.php (or ready.php) then the lazycron will be checked for every pageview, even the admin ones.
  3. Do you remember which ones you read about? I don’t know how well it scales, but this is something that makes it interesting to have a PW module (same way there is a WP one): it would allow users to have a simple and manageable instance with one (or potentially more) users, on a shared hosting. But I did read some issues about how Mastodon is agressively sending requests to websites when they are referenced in a toot, especially if said toot is shared on a big instance (read https://www.jwz.org/blog/2022/11/mastodon-stampede/), I don’t know though if this changed in the meantime. I read that as well. Apparently ActivityPub is quite “loosely” spec’d so there’s a lot of parts that can be interpreted differently. And since Mastodon is (one of) the biggest player, their way of doing became a de-facto standard (others had to implement the Mastodon-way to be able to interact with the bigger network).
  4. This is something I have had on my “things I’d like to do” list for a while now... I left Twitter some years ago and wanted to switch to Mastodon, but after learning how this is based on a (supposedly) web standard I wanted to have a look and try to implement my own thing, based on PW of course. I do feel as well that there is a gap and I would love it if it could be as simple as installing a module. From what I’m seeing the wordpress plugin does it really well and would definitely be an inspiration of mine. I also feel this could be a great addition to artists/designers/photographers’ website as a way to share their work, an alternative to Instagram potentially (but not as literally as Pixelfed does though). The closest I’ve seen here regarding this is the webmention module (thread) by @gRegor.
  5. Hi @Robin S, Would you consider the idea of allowing something similar to In my use-case (the same one still), I would like add an edit button to allow to edit the page in a modal. In the meantime I’ll try to add this using javascript.
  6. As this topic helped me to get on track, here’s a new module I created for this:
  7. PageListCustomSort Github: https://github.com/eprcstudio/PageListCustomSort Modules directory: https://processwire.com/modules/page-list-custom-sort/ This module enables the use of a custom sort setting for children, using multiple properties. About This module is similar to ProcessPageListMultipleSorting by David Karich but is closer to what could (should?) be in the core as it adds the custom sort setting in both the template’s “Family” tab and in the page’s “Children” tab (when applicable). Usage Once a custom sort is set, it is applied in the page list but also when calling $page->children() or $page->siblings(). You can also apply the custom sort when calling $page->find("sort=_custom") or $pages->find("parent_id|has_parent=$id,sort=_custom"). Unfortunately this won’t work the same way sort=sort does if you only specify the template in your selector.
  8. Don’t you think a <select> would be better in this case? To show “1st”, “2nd”, “3rd” and “4th” (or nothing) (“5th” also possible, but rarer) Or do you want to be able to say “Every 6 monday“ to have a 6-week gap in-between two mondays? In which case the “1st” placeholder would not make sense.
  9. Completeness wasn’t there apparently lol. Basically “Every X day(s)” would show nothing: Hence why I like your solution better: it allows the user to quickly repeat every day, except for some. In my UI you would need to understand that you need to select the “month(s)” frequency, and select the days, but even then it’s inferior because you select the days’ number and not the day of week. I rewatched my video and you can actually do that using the “week(s)” frequency, but still! Don’t change a thing, you’re clearly on the right path! (what do you input here? )
  10. At first it was @szabesz’s suggestion that made me post this, because of the way things are handled in the calendar app: there’s no “In Months”, just “Each” and it only appears if the frequency is “Every month” and so on... I liked it this way because of how the ux “difficulty” (let’s say) is incremental. But in the end I think your way of doing actually makes more sense (and you are right that it’s more limited in my case)... so you can dismiss my post 🙂
  11. In my implementation using FieltypeCombo, I basically followed what Apple is doing in their calendar app: Here’s an export of my field:
  12. This looks truly great and I can easily see myself using it in several client projects! Great work 🙂 One note on the last video (pretty sure you already thought of this but hey): if there is a need for a first save before being able to create copies, maybe hide the options?
  13. Ah and so basically an editor could set one particular copy back to a regular “date” (uncheck “recurring”) and then be able to edit this specific one, which is nicely thought! Maybe this could be implied by the UI (and maybe it already is?!): if there is $date->mainPage, hide the options to create copies and instead display something like “This event is a copy of ‘Main Page’” with an option to break the connection (and allow to create copies from there) or suggest to uncheck “recurring” to be able to edit the event. I wonder if the fields should also show that changes won’t be applied if it’s a copy as well?
  14. It’s an interesting mix indeed. Would you say these copies act as aliases but with their own date? Does it require a special template or is it that your module dynamically add a page reference field to the copies and then your module add hooks to get the main event’s data at runtime? What is very nice is it makes it super easy for the editor to edit a specific copy. Among many other benefits 🙂 The only downside I can think of in your setup is what if a recurring event gets cancelled? Is there a way to easily delete the copies? If you have a page reference field it shouldn’t be too hard actually... Maybe? If I rephrase what’s happening: you create the event, set its date to "recurring" and go ahead and create your copies. Then you save the page. If you edit it again, you have the "recurring" date type selected with the options to create new ones, but no indications of the copies previously created. Is this correct?
  15. I think I missed something: is the "Recurring" option creating copies of the current page (event)? In my case there is no copy, just an array of occurences (array of dates basically) that remain bound to the page and that I’m using when querying events. This does mean I always display the same content. That’s why I’m asking: the dates are generated and then remain, I can disable some and if a selector involves a disabled occurrence, the event will not show up. Thus some occurences can be in the past. But again my question comes from me misunderstanding what your module is doing (even though it’s clearly specified in the fieldset’s label 😅). Another question then: once you created the events, what happens if you save the page? Are the copies displayed in your table or does it start from scratch? (thank you for taking the time to answer)
  16. Another thing got me curious: In your gif it looks like you have a calendar in a page, would the idea be that you could have a calendar in a template and then (maybe) show events that could be child pages or pages that match a selector with a page reference field (e.g. for event categories)? This has a lot of potential I think.
  17. What I’m finding particularly useful is your date Inputfield on steroids allowing you to cover almost all cases. On a recent project I went with a FieldtypeCombo + FieldtypeTable to achieve something similar: If the event is happening indefinitely, I create the first 1000 occurences and have a button to create a 1000 more, like in your screencast (though not live). The one thing missing in my contraption is hiding past occurrences (but keep them just in case). In your example, does clicking on the trash icon delete the occurrence or just deactivate it? Having a calendar UI would of a course be a really nice thing to have as well for clients 🙂
  18. After doing a test and seeing your gif could it be because you’re also slightly moving the mouse on the Y-axis? Maybe the slider should stick to one axis once you passed a certain threshold?
  19. I also had to set the collapsed property dynamically and thankfully @Robin S has got us covered ? Just replace the hook to be on Field::getInpufield and it should work.
  20. In your home page can't you set the English page name as /en/ and leave the German one as / ? Edit: just tried and turns out you can't, as it automatically set the name to the main language's one of you leave empty
  21. Actually having a demo per (first party) site profile would be a good showcase of how these can be good starting points while showing how versatile PW can be, e.g. with the (great) invoice profile.
  22. One can have a look at how others do it: https://plugins.getkirby.com/ There the navigation is clearer as the categories are tucked away under “Types” and allows to have a clearly visible “Paid modules” menu link (Pro Modules could go under there as well as “First party paid modules”). Also they have no centralized way of selling modules, authors adding links to their own ecommerce solution (be it a custom one, Gumroad, ...). One thing I note though is even the paid modules are released on Github (but always mentionning how they are not “free software”), on PW modules are also required to have a Github page to be listed (I assume to be auditable / accountable). Regarding a blog post, I’m not selling anything but I guess it could be nice even though it remains a one-off promotional tool.
  23. This is a bit of a long shot given your description and the fact you don’t have access to the php files but maybe this has to do with URL Segments ? Head to Templates > Course (or whatever the template’s name is) and under the “URLs” tab have a look at “Which URL segments do you want to allow?” and add there the “contact-persons” segment on a new line (if “Allow URL segments?” is on, that is)
  24. You’re not losing your mind ? https://processwire.com/blog/posts/new-repeater-and-repeater-matrix-features/#custom-icons-for-repeater-types
  25. The simplest in this case would be to use the module you mentioned in your first post. To me, it’s not so overkill
×
×
  • Create New...