Jump to content

All Activity

This stream auto-updates

  1. Today
  2. This looks great! Any way to install it without Composer?
  3. Are you hosting the htpasswd protected folder within the site/ folder, or beside it? PWSITE: - /site/ - /wire/ - /index.php - /.htaccess (PW root htacess) I have placed folders at root (the same level as site and wire), and haven't had any issues with similar situations, so long as the file name(s) are correctly typed and matching the case sensitivity. Any PW-specific subfolders would also be subject to whatever htaccess rules those subfolders possess, so it's easier to just have separate-need folders at root level.
  4. Hi everyone, I just set up a very simple htaccess password protection for a folder on our website (which is run by PW of course). To be specific, I placed a .htaccess file within that folder, referencing a .htpasswd file in the same folder. However, somehow the PW mechanics redirect to the standard PW 404 page of our website whenever I try to open any file within that folder (instead of prompting the htaccess login and password fields). Thanks in advance for any hints!
  5. Ok, I uploaded a 4.9.6 version manually in wire/modules but it wasn't recognised there. Then I uploaded in site/modules and it got recognised. So now it's working while it's still in site/modules. Also recognised in the upgrades module. After that the module information page said there's two versions and now they're both 4.9.6. A bit of a mystery to me but anyway, ProcessWire managed to get everything in order sort of by itself.
  6. Yesterday
  7. Thanks everyone! The idea of a ProcessWire-native community/forum system is very close to what I am exploring with Vox. I do not think the goal should be to clone classic forum software exactly. PW gives us a chance to mix discussions, Q&A, inline content participation, profiles, reputation and API access in a more flexible way. Migrating a large forum is obviously a serious project, not just “Claude, make no mistakes” 🙂 But Vox 1.6.2 is a step toward testing these patterns on real PW sites: forum overview, Answers mode, Textformatter embeds, inline forms and flexible profile sections. I would be happy to hear which real use cases people would like to see covered next.
  8. I already generate LD-JSON in my code. I haven't entered anything in the module's identity settings, but it's still generating the json on the frontend. Is there a way to disable this please? I want very specific output for each template type. Unless there is a way in Ichiban to achieve that?
  9. Hi @maximus - thanks for all the great recent improvements. Is there a way to disable the <link rel="alternate" hreflang="english-au" etc from being rendered? I have a lot of installed languages which get used behind the scenes, but the website itself is only in English, so having all these listed just isn't correct.
  10. @suntrop Datetime rendering should be fixed in v1.6.1. I've added the published field as a system timestamp and a fallback for date fields without output format. Let me know if that fixes it on your end.
  11. @suntrop Just realizing now that the published field is an actual system datetime field. The module only checks for created/modified, so that would explain it. I'll look into making the checks consider all three, and then enable datetime formats in all contexts.
  12. The Upgrades module doesn't explicitly include the PW core module of MarkupHTMLPurifier in its update check (as it's part of the core), so there must've been a community module, or a much older version that was manually installed into the site/modules folder. If you check the site/modules/MarkupHTMLPurifier folder for the *.module (and/or README) file, can you tell who owns the module? From the one in core, the MarkupHTMLPurifier.module `getModuleInfo()` method contains the following: public static function getModuleInfo() { return array( 'title' => 'HTML Purifier', 'summary' => 'Front-end to the HTML Purifier library.', 'version' => 497, 'singular' => false, 'autoload' => false, ); } ...and here is an example screenshot of the Modules panel in the admin for comparison:
  13. Thanks @maximus I installed the new version but I can't seem to make it work. For "Rendering" I am using this values {meta_title} | {site_name} The "site_name" is added when viewing the page in the frontend but the "meta_title" (resolved from field:title in the global defaults JSON) is missing. I rebuild the index multipel times but cannot see the title (or description) here either: I have placed some default values for title and description in my config next to the new "title format" options and would assume that those values should be visible after making an audit:
  14. I just realized that published is by default set as a datetime instead of a timestamp like created/modified. I don’t know why, but that may be the reason. It is, however, being retrieved (from within the API) as a timestamp, which is how it is defined in the docs: https://processwire.com/api/ref/page/
  15. MediaHub 1.19.2 is on the way, and while I'm finalising some UI polish, I wanted to share the custom fields integration, which some of you have requested. And because both a MediaHub asset page and an input field are new to ProcessWire, we benefit from some new features I hadn't planned. You can add custom fields at two distinct levels... On an asset detail page (fig 1), useful for asset organisation and metadata On the MediaHub input field, giving editors access to those fields when placing assets (fig 2) Fields can exist independently at either level, but when the same field appears in both, they work together. So you might have custom fields on only the asset detail page or only on the input field. Explanations after screenshot... Fig 1 - Asset-level defaults Custom fields on the asset detail page act as the source of truth for that asset. Fig 2 - Editor field overrides You can choose whether to expose those fields to your editors on the MediaHub input field, or not. Your call. Fig 3 - Inherited value with reset option When the same field exists at both levels, the MediaHub field inherits the value set on the asset detail page. You can override it on a field-by-field basis, and if you change your mind, the rewind icon lets you reset it back to the asset value. It only appears once you've made a change. Fig 4 - Independent field ordering The order of fields on the MediaHub input field can be completely independent of the order on the asset detail page. I'll share a few more details when I wrap up and create a dedicated post.
  16. @suntrop What's the difference between the custom field and the published field? Isn't published a custom field as well?
  17. Thanks, this mostly works. It works for the custom field I am using, however, it is not working for "published." But using modified works in my case as well.
  18. Last week
  19. the split space bar is interesting. You have it configured for different actions. Let me guess. Space and outer space? But seriously…what do you you use the extra one for?
  20. Wow, it even has an Fn1 key! ;)
  21. Vox 1.6.2: Answers mode, profiles, forum layout, Textformatter and refreshed frontend I have released Vox 1.6.2. This release combines the recent work into one larger update after the first public release. The main goal was to make Vox easier to embed into real ProcessWire sites, not only as a single comments widget, but as a flexible community layer. The biggest additions are: Answers mode Vox can now be used for StackOverflow-style Q&A pages, with question lists, filters, question detail pages, answer forms, best answers, voting, Q&A stats and contributor sidebar. Useful tokens: [[vox:answers]] [[vox:answers-index]] [[vox:answers-ask]] [[vox:answers-sidebar]] Flexible profile sections User profile output is now split into separate sections, so you can build account/profile pages more freely: [[vox:profile]] [[vox:profile-header]] [[vox:profile-rank]] [[vox:profile-badges]] [[vox:profile-activity]] [[vox:profile-points]] [[vox:profile-leaderboard]] This makes it possible to show reputation, ranks, badges, recent activity, points and leaderboard blocks wherever they fit in your own template. TextformatterVox The new TextformatterVox module allows editors to place Vox widgets directly inside textarea or rich-text content, without editing template files. Examples: [[vox:forum]] [[vox:reviews]] [[vox:questions]] [[vox:discussions]] [[vox:all]] Inline editorial forms are also supported, so a compact participation form can be inserted between paragraphs: [[vox:form]] [[vox:discussion-form]] [[vox:question-form]] [[vox:review-form]] Custom copy can be passed directly in the token: [[vox:form type="question" title="Ask the editors" intro="We will answer useful questions here." button="Send question"]] Forum-style overview There is now a forum landing view with category cards, recommended threads, newest threads, search and a start-discussion form. [[vox:forum]] Demo installer The optional demo has been expanded into a complete showcase for: reviews questions and answers discussions Answers mode forum overview inline editorial forms flexible profile sections reputation, ranks, badges and leaderboard This should make it easier to test Vox quickly on a clean installation and see how the different pieces can be combined. Frontend refresh The public frontend has also been cleaned up: larger base typography 4px border radius no shadows no decorative gradients Remix Icon instead of FontAwesome on the public side improved spacing for profile sections, sidebars and mobile stat cards more realistic demo user names The current version is 1.6.2. Repository: https://github.com/mxmsmnv/Vox Release: https://github.com/mxmsmnv/Vox/releases/tag/v1.6.2
  22. @suntrop The dateFormat option is currently only applied to system timestamps (created, modified) to avoid showing unix timestamps. I was assuming all other date fields to have a defined output format. Can you try removing the false from this line in the codebase and report if it's working as expected for you? If so, I can add a condition to check for missing output format and apply it there as well.
  23. Is the eventual goal to perhaps have PW help us build our code without the need of an external LLM? And also take into account PW’s community modules? Imagine if it could also do front-end (HTML & CSS through the current frameworks UIKit, but including Tailwind too). That would honestly make PW a one-stop-shop.
  24. Hi @Stefanowitsch, Yes, this is now possible. I added a global Title Format setting in Ichiban settings under: Settings → Rendering → Title Format You can use it like this: {meta_title} | {site_name} or, if you prefer a fixed suffix: {meta_title} | my-company.com Supported placeholders are: {meta_title} {site_name} {entity_name} {host} So your examples would render as: Home | my-company.com Our Services | my-company.com The title format is applied to the rendered <title> tag, and Ichiban’s Audit / Bulk Editor title length checks now include the formatted title length as well. After changing the format, rebuild the audit index so the stored title length checks are refreshed.
  25. Thanks Adrian, this is now possible via a new hook: Ichiban::resolvedSeoValue. It runs after Ichiban has resolved the page/template/global defaults and built-in fallbacks, so the rendered tags, previews, Audit, Dashboard stats, and Bulk Editor all see the adjusted value. That means you can use it for automatic descriptions on staff/blog pages and OG image fallbacks without those pages showing as incomplete in the dashboard. Example is in the README, but the shape is: wire()->addHookAfter('Ichiban::resolvedSeoValue', function(HookEvent $e) { $page = $e->arguments(0); $group = $e->arguments(1); $key = $e->arguments(2); $value = $e->return; if (in_array($page->template->name, ['person', 'blog-post'], true) && $group === 'meta' && $key === 'description') { $source = $value !== '' ? $value : wire('sanitizer')->textarea($page->get('summary|body')); $e->return = wire('sanitizer')->truncate($source, 155); } if ($group === 'og' && $key === 'image' && $value === '' && $page->template->name === 'blog-post' && $page->images->count()) { $e->return = $page->images->first()->httpUrl; } });
  26. Very exciting to hear Ryan. My understanding of how LLMs work is surface level. You mentioned it's being trained on ProcessWire documentation. Does it also have to be be trained on anything general to have a stronger understanding of English itself (understanding nouns, verbs, how to form sentences, having a personality, etc etc)?
  27. I have Processwire 3.0.255 and HTMLPurifier version 1.03. that was automatically updated 7 days ago along with an update of another module. In the Upgrades module it says 'Up-to-date'. I think it was 1.0.2. and upgraded to 1.03. Didn't do much other upgrades and only installed the NativeAnalytics module.
  28. I love that rather than just consuming AI, you're trying to learn how it actually works. Speaking of the translation of code - I wonder if AI would make it easy to provide a PostgreSQL database layer for ProcessWire? Also speaking of C, I wonder about translating the entire ProcessWire codebase into Rust. (It would probably be expensive in terms of token use) ProcessWire is fast as PHP apps go, but Rust is blindingly fast, but harder to learn than PHP. It's also memory safe whereas C isn't. It might not work, as PHP is interpreted so it makes it easy to deploy individual files, whereas Rust compiles to a single binary executable, so it's probably like comparing apples with pumpkins, but all kinds of things ight be possible of you don't have to painstakingly write all the code by hand.
  1. Load more activity
×
×
  • Create New...