Changelog

Elefant 1.3.x Beta

Elefant 1.3.x is the beta series that will lead up to Elefant 2.0. For info on our goals and progress, see the Future page.

General improvements

  • Support for Japanese, Dutch, French, Italian, Chinese, and more (and an app to help translators edit and manage multilingual sites)
  • Install apps or themes via zip file or GitHub repository
  • Multi-file and drag & drop uploads in the file manager
  • Disqus support for blog comments
  • Rate-limited logins and other security improvements
  • Dates/times appear in current user's timezone
  • Better redirect control for SEO
  • Much improved WYSIWYG editor (Redactor)
  • Better integration the WYSIWYG editor and the CMS (files, links, dynamic content)
  • Add custom fields to blog posts, users with zero coding
  • More customizable access control
  • More photo gallery display options
  • More social plugin options
  • Cleaner, simpler user interface

Framework improvements

  • New Mailer class wraps Zend_Mail to improve email sending
  • Support for more complex queries in models
  • Support for relationships between models
  • Fast batch insertions/updates in models
  • Standard API for localizing dates
  • Caching now supports Memcache, Redis, APC and files
  • AppTest class extends PHPUnit to support user interface testing
  • New APIs: FileManager, Link, Image, Validator
  • New JavaScript and Client Side Helpers
  • Improved multilingual options
  • Ridiculously easy form API
  • More tests and numerous minor improvements

1.3.5 Beta - April 21, 2013

  • Better error message when ZipInstaller fails
  • Designer app remembers the tab you were on last
  • Designer app should recognize CSS files in subfolders of themes
  • Added session_domain setting so sessions can work across subdomains
  • Added session_duration setting to control session expiry length
  • Fixed fatal error in translator add handler
  • File browser option to select multiple files at once
  • Fixed jQuery filedrop plugin in IE9
  • Refactored Appconf from Controller::handle() into its own class
  • Config cascade now includes conf/config.php when ELEFANT_ENV is set
  • Added navigation_json setting so the file path isn't hard-coded
  • Added filemanager_path setting so upload folder can be configured
  • Updated SimplePie to fix deprecated warnings
  • Improved file selection in $.filebrowser() and multi-file/image helpers
  • Standardized handler overriding via new Controller::override() method
  • Handler overriding can also be used to enable/disable features
  • Links to /index now simply point to / for better SEO control
  • Added role-based access control with fine-grained access to individual apps
  • Access control is now as easy as $this->require_acl('admin', 'myapp');

1.3.4 Beta - April 8, 2013

  • Reverted undo/redo to Redactor 8 API
  • Prevent default action on button click (dynamic objects)
  • Sanity checks in case of empty directories (file manager)
  • Added error check to MongoManager::get_database()
  • Improved error handling on Mongo connection failure
  • Controller tests now use conf/test.php
  • Added apps to PHPUnit config
  • Added default handlers to Restful API for more flexible routing
  • Controller::hook() returns output instead of dropping it
  • Page::render() calls page/render hook for post-processing
  • Removed PHP notice in web installer when $_GET['step'] isn't set
  • Updated Redactor to 8.2.5
  • Image::resize() catches exception if image file is corrupted
  • Added printer-friendly styles to default layout
  • Updated Colorbox to 1.4.6
  • Apps can now appear in page list in the Navigation app
  • Added include_in_nav to blog app
  • Blog app sets its page ID for site navigation
  • Shell arguments now escaping properly when passed to handlers
  • Disabled Redactor's convertDivs setting
  • Regex is now case-insensitive (file manager)
  • Made the /admin login redirect a setting in the admin app config
  • Default layout selection in stylesheet editor should come from config
  • Fixed prefix issue in ./elefant import-db command
  • Fixed Mongo test suite when Mongo is unavailable
  • Embedded gallery photo captions now editable from front-end
  • Fixed I18n::export() with single string parameter
  • Validator::validate() shouldn't evaluate '0' as empty

1.3.3 Beta - March 20, 2013

  • Patched jQuery filedrop for IE10 support
  • Improved PHPUnit test suite configuration
  • Added FileManager class separate from REST API
  • Added navigation/languages language switcher
  • Added Link::base_domain() for removing subdomain
  • 960.gs stylesheets are compiled/compressed in default layout
  • Image resizing preserves transparency in PNG and GIF output
  • Image resizing has style options (cover, stretch, and contain)
  • Added User::current() to get currently active user
  • Added preview of images on hover in file manager
  • Added Link class for generating correct URLs
  • Elefant's autoloader now checks for subsequent autoloaders
  • Added initial unit tests for navigation handlers
  • Updated deprecated references to db_*() and i18n_*()
  • Added i18n(), page(), cache(), and template() getter/setters to Controller
  • Changed object references in Controller for easier injection
  • I18n strings for individual apps are auto-loaded on first app access
  • Added ./elefant bundle-translations command to bundle app strings
  • Translation editor now shows all sources of a string
  • Removed uploadify/multi-uploader since the main one now supports multiple files
  • Added edit buttons to front-end of blog posts
  • Added user chooser to blog author field
  • Fixed blog RSS caching
  • Changed dynamic objects icon to a cog
  • Fixed translation editor handling apostrophes
  • If custom fields are required, the section defaults to being open
  • Refreshed default theme for Elefant 2
  • New admin UI theme for Elefant 2
  • Added multilingual mode for dynamic navigation handlers
  • Added support for nested URLs (e.g., /about/careers/how-to-apply)
  • Improved I18n::negotation() when negotiation_method=url
  • Added support for dynamic drop downs as custom fields
  • Inline edit buttons are now a single sprite image
  • Added ability to specify multiple user types for a single access level
  • Migrated photo galleries from Fancybox to Colorbox
  • Added filemanager/util/multi-image helper
  • Added filemanager/util/multi-file helper
  • Updated jQuery UI to 1.10.0
  • Added $.i18n() helper and I18n::export() for translatable strings in JavaScript
  • Added admin/util/notifier helper
  • Added user/util/userchooser helper
  • Drag & drop upload support in file browser helper
  • Drag & drop to move files/folders in file manager
  • Drag & drop upload support in file manager
  • Added Italian translation
  • Added thumbnail image selection mode to filebrowser helper
  • Added filemanager/util/browser helper
  • Improved CRUD app generator
  • Updated Chinese and Russian translations
  • Fixed autoloader issue with Zend packages
  • Added German translation
  • Updated jQuery to 1.8.3
  • Fixed htaccess Godaddy compatibility
  • Added Redactor plugins for internal links, images and files
  • Added Redactor plugin for dynamic object embedding
  • Replaced jWYSIWYG editor with Redactor
  • Delete pages, blog posts, etc. now use POST
  • Added $.confirm_and_post() helper for quick POST via links
  • Cleaned up navigation API
  • Redesigned navigation admin page
  • New CLI update script for applying Elefant updates
  • Improved file/folder validation
  • Custom fields can be re-ordered via drag & drop
  • ExtendedModel::orig() now returns extended fields
  • Added custom fields to blog posts and users
  • Blocks can now be per-page with fallbacks
  • Template sub-expressions now more flexible
  • Added admin/util/extended helper for building extendable models
  • Added Font Awesome as admin/util/fontawesome helper
  • Added breadcrumb navigation to dynamic objects list
  • Added display_errors toggle setting
  • Made dynamic objects dialog available via admin/util/dynamicobjects helper
  • Redesigned dynamic objects dialog
  • Dynamic objects can be clicked to be edited in wysiwyg editor
  • Added fetch_url() function which abstracts curl/fsockopen differences
  • Text file and image editing (via Aviary) in the file manager
  • Replaced SimpleModal in $.open_dialog(), now supports sub-modals
  • Improved dynamic objects display in the wysiwyg editor
  • Added prefix for APC keys
  • Google +1 button uses div instead of invalid g:plusone tag
  • Fixed warnings in strict mode (PHP 5.4)
  • Autoloader fails are caught when debugging is enabled
  • Added admin/util/extended helper
  • Fixed Ini::write() for array values
  • Added Model::table() and Model::key()
  • Added user settings form
  • Removed broken auto-post to Twitter
  • Updated slideshow to support multiple instances
  • Added social buttons on/off to blog settings
  • Added blog settings form
  • Added configurable database table name prefix
  • Updated Facebook Login to allow for same email

1.3.2 Beta - September 13, 2012

  • Added URLify to lib/vendor for transliteration in friendly URLs
  • Updated translations (Chinese, Czech, Russian, Ukrainian)
  • Can enable/disable specific social services in blog
  • Improvements to query building in Model
  • Translations app manages localized date/time formats
  • File manager allows HTML5-based multiple file upload
  • Improved language negotiation with Safari
  • Better error handling in Restful APIs
  • Redirects now use absolute URIs
  • Added View class to provide better encapsulation of view logic
  • Added __() as alias of I18n::get() and I18n::getf()
  • Fixed missing dynamic embeds in blog/index
  • Added hooks for filemanager/add, filemanager/rename, and filemanager/delete
  • Added elefant crud-app command to generate CRUD app scaffolding
  • Template includes can now span multiple lines for clarity
  • Improvements to the modal dialog behaviour
  • Renamed and improved dynamic embeds for the blog app
  • Added admin/util/wysiwyg handler to more easily use a WYSIWYG editor
  • Refactored input validation into a Validator class
  • Added numbered pagers to make it easier to browse long lists
  • More flexible template syntax for looping and conditions
  • Added $.confirm_and_post(a, msg) to POST from a link with data-id attribute
  • Moved command line tool to site root as ./elefant
  • Added ability for apps to extend the CLI command list
  • Added beginTransaction(), commit() and rollback() to DB
  • Renamed $memcache to just $cache
  • Added custom app configurations in main conf/ folder to avoid editing original source files
  • Added sample robots.txt with Elefant defaults
  • Numerous other minor fixes and improvements

1.3.1 Beta - May 1, 2012

  • Fixed MySQL schema error
  • Added new social plugin options
  • Improved Dynamic Objects menu formatting

Elefant 1.2 Stable - March 20, 2012

Elefant 1.2 is now stable and includes many improvements:

Performance improvements

  • Added automatic caching to handlers
  • Added support for chunked transfer encoding
  • Wrapped navigation in caching for improved performance
  • Automatically cache public pages without dynamic includes
  • Caching to filesystem if Memcache is unavailable
  • Lazy loading of database connections

Improvements for designers

  • Admin UI is easily rebrandable
  • Browser detection, and mobile version of default layout

User interface improvements

  • Wysiwyg editor: Dynamic object to embed arbitrary HTML
  • Software update notices in the admin toolbar
  • Link dialog can now browse uploaded files
  • Dynamic objects includes embedding mp3, mp4, and flash
  • New 'All Pages' screen to offer another way of editing pages
  • New 'Website' link in toolbar makes navigation of CMS clearer
  • Blog importers from Blogger.com and Wordpress
  • Improved multilingual support

Framework improvements

  • MongoDB support via MongoModel class
  • Environment switching (development, staging, production)
  • ./conf/elefant export-db command
  • ./conf/elefant backup command
  • New Restful class makes creating REST APIs much easier/cleaner
  • Support for the PHP 5.4 built-in web server
  • Support for PostgreSQL as a database
  • Added bootstrap.php for global configurations
  • Added Pimple dependency injection container to lib/vendor
  • Added Analog logging package to lib/vendor
  • Moved ActiveResource class to lib/vendor
  • Added subfolder support (via alternate front controller)
  • Even less boilerplate for building custom forms
  • Lots of other minor improvements and fixes

1.2.2 Stable - September 13, 2012

  • Fixed security issue with layout and css previews

1.2.1 Stable - September 11, 2012

  • Fixed broken Lock tests
  • Fixed admin user edit not updating type
  • Fixes to dynamic objects dialog
  • Updated hard-coded references to User for proper inheritance
  • Improved language negotiation with Safari
  • Better error handling in Restful APIs
  • Redirects now use absolute URIs
  • Added View class to provide better encapsulation of view logic
  • Added __() as alias of I18n::get() and I18n::getf()
  • Fixed escaping on special characters in database passwords
  • Fixed OpenID truncation issue
  • Fixed XSS vulnerability in admin/versions
  • Fixed missing run_includes() in blog/index
  • Fixed numerous other bugs

Older Releases

1.1.5 Beta

  • Fixed a potential XSS security hole in page add/edit previews
  • Secured lib/Model from a possible source of SQL injection

1.1.4 Beta

  • Fixed a typo in the MySQL schema

1.1.3 Beta

  • Improved translation builder coverage
  • Install folder no longer has to be writeable
  • Themes can now be self-contained in subfolders of layouts
  • Better error handling in MongoManager
  • Web installer can now be translated
  • WYSIWYG editor is now translated as well
  • Language now determined by Accept-Language header by default
  • Password hashing now uses Blowfish by default
  • ExtendedModel for arbitrary properties now used on User and blogPost models
  • Fixes to blog importers

1.1.2 Beta

  • Improved Cache API for non-Memcache sites
  • Improved mobile/tablet user agent detection
  • Several fixes for better i18n support
  • PostgreSQL now supported in site backup utility
  • Wordpress and CSV blog post importers
  • User API has been improved, along with new unit tests
  • Form API now features an ultra-concise closure-based handling technique
  • Improved the Designer app to maximize screen space for editing layouts and stylesheets
  • New/improved unit tests
  • Fixed numerous other bugs

1.1.1 Beta

  • Fixed a conflict between PHP 5.4 built-in server support and the file manager
  • Fixed a conflict between the MySQL and PostgreSQL connection info in the web installer
  • Updated file manager to use the new RESTful API

1.0 Branch

1.0.2 Stable

  • Fixed a potential XSS security hole in page add/edit previews
  • Secured lib/Model from a possible source of SQL injection

1.0.1 Stable

  • Added mobile support to default layouts
  • Added browser detection via a new detect() function
  • Added quotes filter to blog, block, and user edit forms
  • Stopped filtering title and window_title on default template.
  • Stopped filtering title and window_title on index template.
  • Stopped filtering window_title on admin template.
  • Added |quotes filter to templates to convert double-quotes to " for form input values, and changed page titles to use it instead of Template::sanitize()
  • Fixed warning in database test
  • Updated wiki links in README
  • Added check for bootstrap.php to front controller so developers can load custom framework-wide initializations
  • Added missing charset meta tags to default layouts
  • Improved security by increasing file restrictions in sub-folders
  • Moved jQuery UI code from Google CDN to local copies
  • Added space between file upload and submit button
Edit this page.
This documentation was generated by the Elefant Documentation Project. We're always open to new contributions *wink* *wink*