Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/04/2024 in all areas

  1. If you're on PHP 8 and a new-ish version of Latte, you should be able to use the nullsafe operator to safely get the value: <body n:class="$page?->category?->value"> On PHP 7, you can still use the similar nullish coalesce operator, which in this case behaves identically: <body n:class="$page->category->value ?? ''">
    5 points
  2. RockForms is based on the great Nette Forms Component and adds a little ProcessWire magic here and there to make working with forms a breeze. It will render forms directly into the markup of your website (no iframes!), which makes it a perfect companion for tools like HTMX or Alpine.js ❤️ Download & Docs: baumrock.com/RockForms
    2 points
  3. @BrendonKoz Thank you for the feedback, and I'm glad the PWGeeks Catalog is of use to you! WRT. the activity tracker: whilst links to the forum topic could easily be added, I haven't yet done it and it was a deliberate decision I made at the time. I don't think I wanted to store the additional URL data in the SQLite DB, but can't recall exactly why now. As you say, it would be rather useful if they linked over to the actual posts on the forum. I'll take a look the next time I update this part of the site. To answer your Q about the PWGeeks catalog: that timestamp is meant to be the last time github/gitlab/pw etc report the project as being updated - but looks like I have a bug there and it's just showing the last time the cached data was updated for just about everything.
    2 points
  4. This is basically saying that you are trying to read the value property of a category which is not available, as it is null. You could check the existence of category first and then check if the value is not empty, if you use the following comparison: <body n:class="$page->category && $page->category->value !== '' ? $page->category->value"> // or <body n:class="$page->category && $page->category->value ? $page->category->value">
    2 points
  5. I wanted to start a conversation about other systems out there that are "ProcessWire-like", meaning they also go all in on everything being a custom field, similar database architecture and other things that make ProcessWire seem unique. What makes ProcessWire unique to you that you just haven't seen elsewhere and how deep does ProcessWire go with certain decisions or features that other systems don't from your experience? One very recent system in the JS world that's similar (at least on the surface, I've never worked with it) is Payload CMS: https://payloadcms.com/
    1 point
  6. I need to include Stripe's Charge ID to invoices. This way some accounting software can relate the payment to the invoice via Stripe. On successfull payment (Order complete); Inside the Stripe Payment Processer I found that 'isSuccessfulPaymentCapture($response, $options = [])' $response is returning it's latest_charge (the charge_id). How can I save this to the order?
    1 point
  7. Thank you @bernhard for the quick reply, and solving the problem. I was so into reading those instructions that I forgot to use my own brains for thinking :D Maybe you can add requirements-section in case there's another like me :)
    1 point
  8. Thanks to all three of you! Learned something new again. I'm on PHP8 and because the $page object should be existent on every page, this should be sufficient and works great: <body n:class="$page->category?->value"> ??
    1 point
  9. Hi @Entil`zha, sorry for the trouble! Do you have frontend editing permission? It looks like you don't, so ProcessWire will not load jQuery and all the suff necessary for the modal to pop up.
    1 point
  10. Hi @Spinbox, I have made this hookable so you have access to $response and $options. However, we have no dedicated field for saving this value. You could add a text field to your order template. Then save the latest_charge value to that field. This way, it stays together with the order and you can easily retrieve and add it to your invoices. Does this make sense or you need example code? Thanks.
    1 point
  11. Hi, Contao (fka TypoLight) is somewhat close to ProcessWire from the Field, Template, Page point of view. However it lacks (at least when I last revisited it) from a powerful ProcessWire like API. This and the all objects are „pages“ approach are unique to PW from my point of view. Only thing I somewhat miss in PW is a global media/assets manager, but there may be a module someday. The easy to use PW-API makes the main difference for me and is the reason I ended up using PW for my latest projects.
    1 point
  12. This is really neat. If the action relates to a topic, can the topic name be linked to the actual topic? (I saw people viewing topics that I hadn't read in a long time and recall it being interesting; currently have to go back to the forum and search for it). Related to PWGeeks - is the "last updated" status the last time the related project was (determined to be) updated, or the last time PWGeeks checked the project's status? I ask because the very last page (279 as of right now) shows a last update time based on my current clock time. Ordering by "Recently Modified" shows FieldtypeFolderOptions on the first paginated page, but was last updated (Github) 4 years ago. I love the PWGeeks project, btw. ❤️
    1 point
  13. Hi @Robin S - the latest version has that new "Standalone mode" setting, but I also modified things so that all changes to the query string in the iframed version are now propagated to the parent so if you do want to use the iframed version, you'll now be able to reload the page and it will work as you're used to in standalone mode. I have also added a new option for opening adminer links from Tracy or the page editor - if you hold down "shift" while clicking, they will open in the full version of Adminer (standalone or iframed depending on your settings), rather than in the Adminer panel. Hope that helps, but let me know if you have any other feedback.
    1 point
  14. You can probably find the executable file from /home/<username>/.config/composer/vendor/bin -folder so running /home/<username>/.config/composer/vendor/bin/wirecli should work. If you want to use it without the path you should add that path to your shell $PATH-variable.
    1 point
  15. @szabesz @AndZyk Drill down to per-user activity is now behind basic auth, and the main page table is shorter now.
    1 point
  16. Unfortunately it's not a public repo but tbh it's a very simple module, I'll try to convince my customer to get it open sourced lol
    1 point
  17. ProFields Table doesn't provide this as a feature. I requested it in 2015 and it has been on the "todo" list since then, with occasional re-requests from other users. Topic in the Pro support forum: Would be great if anyone who wants the feature could remind Ryan about it. Until the feature is part of the official ProFields Table, here is a module that does the job... Table Column Required Adds a "required" option for columns within ProFields Table. Saving a page with an empty required column will alert the user via error messages and highlight the relevant table cells. But it doesn't implement any non-default action set at Template > Advanced > "Required field action". Paginated tables are supported. Screenshots Page Edit Field config https://github.com/Toutouwai/TableColumnRequired
    1 point
  18. In a current project I am using a Repeater field to build a kind of pseudo-table, where each Repeater item is a row. Some of the rows are headers, and some have buttons that toggle corresponding checkbox fields in a hidden FormBuilder form. The problem was that when the Repeater items were collapsed I couldn't see which rows were headers and which contained buttons. I tried including the fields in the Repeater labels but it still didn't provide enough visual difference to be quickly recognisable. So I investigated how classes could be added to selected Repeater items in admin depending on the value of fields within the Repeater items. This is what I ended up with... In /site/ready.php // Add classes to selected service row Repeater items $this->addHookAfter('InputfieldFieldset::render', function(HookEvent $event) { /* @var $fieldset InputfieldFieldset */ $fieldset = $event->object; $attr = $fieldset->wrapAttr(); // Fieldsets in a Repeater inputfield have a data-page attribute if(isset($attr['data-page'])) { // Get the Repeater item $p = $this->pages((int) $attr['data-page']); // Check field values and add classes accordingly // If item is a header if($p->row_type && $p->row_type->id == 2) { $fieldset->addClass('header-row'); } // If item has a checkbox button if($p->fb_field) { $fieldset->addClass('has-checkbox'); } } }); In admin-custom.css (via AdminCustomFiles) /* Special repeater rows */ .Inputfield_service_rows .header-row > label { background:#29a5aa !important; } .Inputfield_service_rows .has-checkbox > label .InputfieldRepeaterItemLabel:before { font-family:'FontAwesome'; color:#73cc31; content:"\f058"; display:inline-block; margin-right:6px; } Result
    1 point
  19. Thanks for the suggestion. I haven't used Glyphs (it's not cross-platform and I'd need to upgrade my ancient Mac) but I was aware it can export webfonts. Because Glyphs is a font creator/editor first-and-foremost I think the workflow for webfont conversion might be a bit slow. I figure you would have to open and export each font individually. Or maybe some sort of batch script is possible. I heard back from Font Squirrel this morning and they have de-blacklisted the fonts I noted above. I'm pleased about that, and it sounds like I can contact them whenever I find a font that is wrongly blacklisted and they will correct that. So I think I'll persevere with Font Squirrel wherever possible and fall back to Transfonter if needed.
    1 point
×
×
  • Create New...