v0.3.4

<p>Users get profile fields and avatars, the admin gets a profile page, and the first system tests land.</p>

29 September 2026

Added

  • An admin profile page (phlat/addons/admin/pages/profile). A signed-in user edits their own avatar, profile fields and password there.
  • Per-user {slug}/avatar and {slug}/fields routes on the admin users page.
  • User::fields(), User::upload() and a User::field() that passes the user's uuid, so file and image fields resolve their owner.
  • Global field definitions avatar, jobTitle, phone and address, declared as user fields in phlat/roles/index.json.
  • UserFile, UserImage and ResolvesUserUrl: files owned by a user, served under the admin users page by uuid, so a rename never breaks the URL. PageFiles::usersPageUrl() resolves the base, and PageFiles accepts user owners.
  • System tests in tests/System/ for page records, router dispatch, registry queries and page files, with fixtures and a System suite in phpunit.xml.

Changed

  • The UI addon's views/components/ folder is flattened into views/.
  • The admin page tree, page picker and preview include hidden pages (children(includeHidden: true)). The preview no longer shows "Page is hidden."

Fixed

  • App::resolveField() dropped per-view option overrides. It now uses the already-merged options instead of merging the override against the raw global definition a second time.

Comments

No comments yet. Be the first!

Loading form…