After 11 months of hard work since the lastest alpha, the first beta
release of Ophal is finally available! The focus of this first release
is what will define this beta cycle: stability and complementary features.
The Ophal web platform started as a web framework, upon which basic CMS
features are evolving so that complementary features are required than
mere content CRUD:
- CMS modules: content, user, tag, menu, comment
- New hooks: content_render(), region(),
- New debug function: debug.log(), it logs what you pass to it into file
- New theme features: settings.lua for themes, render_t(),
theme.file_info(), theme.progress(), theme.input(), theme.select_option(),
- New JS features: extensible 'Ophal' object, Ophal.scroll_down(),
Ophal.post(), trigger ophal:comments:load()
- New documentation: How to create database schema for CMS modules
- New functions: page_not_found(), nopcall(), shutdown_ophal(),
server_exit(), format_size(), user.current(), route_build_routes(),
route_build_handler(), init_head(), add_head(), get_head(), db_limit(),
- Support error messages on JSON output format, so that errors don't
break the output!
- Route aliases with optional database storage, localize-able and with
own CRUD API
- Progressive file uploading relying on HTML5 FileReader API and
metadata storage (optional)
- Configurable hashing algorithm of user passwords
- Support for vault.lua to store sensible settings outsite settings.lua
(i.e: passwords), ignored by .gitignore of course!
- Better robots.txt
- Support more common file extensions on Nginx
- Proof of concept Ophal CLI
- Translatable texts with new function: t()
- Session files get deleted on cron with the new module: system, enable
it if you want to have a healthy site!
Some changes are required to make development experience a bit less
- Components refactored: Installation wizard, default settings builder,
- Components merged: 'menu' and 'path' are now just: 'route'
- Hooks can now break and trigger custom error.
- Routes (old menu callbacks) can now have default parameters and access
callbacks, and being called from any other module
- Password encryption removed from front-end. Use SSL my friend! and
configure settings.site.scheme to 'https'
- Code rendering the user login form is more readable
- Database schema got more consistent object names
- Function arg() renamed to route_arg()
- Use _M to build and return core modules
## New defaults
New settings get added constantly, these are the new defaults:
- Default language: en (English)
- Default theme: basic
Ophal is now Affero GPL version 3 (AGPLv3).
## Bug fixes
Let's list them in optimistic mood:
- Support LuaJIT!
- missing settings.lua will not crash everything from now on
- Content-Length header is now present on JSON output format
- Fewer WSODs on theme rendering bugs
- Function user.access() can handle nil params!
- Tag module is less buggy
- Front-page now has a default title when paginated