The PHP framework that makes you happy.

V1.6.3 (March 10th, 2014)

  • fixed a bug where it was not possible to install Prails on Windows hosts
  • fixed an incompatibility with PHP >= 5.5.0
  • updated to latest Snow compiler version
  • PLEASE NOTE: This version of Prails replaces the Generator class with one that is called OutputGenerator in order to increase compatibility with the latest PHP version. If you are actively accessing this class, please update your code!
  • update documentation
  • added HTTPClient class including documentation and tests; doGet, doPost and doPut now use HTTPClient


  • V1.6.2 (May 3rd, 2013)

  • fixed a bug in input.tag in conjunction with Snow -> fixed #4
  • fixed a bug in builder_handler
  • fixed a few bugs with user-specific content asset management
  • fixed a bug with embedded images in LESS code
  • fixed a bug where client-side invoke did not behave according to the documentation
  • removed a notice message from being issued from PHP when using the taglib
  • some code cleanup
  • added support for parameterized DB queries
  • added unit tests for parameterized DB queries.
  • upgraded old MySQL interface to use MySQLi
  • updated to latest Snow compiler (has better error reporting)
  • updated query documentation
  • made sure that the IDE is reloaded after successful replication
  • database cache is now turned off by default


  • V1.6.1 (April 18th, 2013)

  • Updated functionality to add/update Prails users via API (requires admin rights)
  • fixed a bug with endpoint detection in both PHP and Snow mode
  • Improved error reporting for Snow mode
  • Made sure the tutorial can be continued where left off
  • added an auto-detection for upgrading on servers not supporting the php_value directive in .htaccess


  • V1.6.0 (April 17th, 2013)

  • fixed a bug in initial setup in case the prails directory already existed
  • fixed a bug with saving global configuration options if no value is given
  • fixed a bug with language cookie not used for cached pages
  • updated to latest Snow version
  • added the possibility to have multiple teams working on different projects without interfering
  • added two introduction tutorials
  • removed developer chat
  • removed unnecessary scroll bars for static content section's multiline fields
  • updated display of tabs in code editors (are less invasive now)
  • fixed a bug in static content section's multiline fields where the drop down box would remain open, although it should close
  • fixed bug #2
  • added first part of an interactive Prails tutorial (web site basics and HTML&CSS)
  • added Zen-Coding/Emmet plugin for CodeMirror
  • Fixed a bug with logging in at a newly installed Prails environment (salt was incorrectly applied)
  • added "Snow mode" (github.com for more information) including a new theme for IDE and code editors


  • V1.5.2 (March 10th, 2013)

    _Please note:_ If you get an HTTP 500 error after upgrading, please uncomment line 4 in Prails' .htaccess file.

  • updated to latest Prototype.js version
  • increased compatibility with Windows servers
  • made Database class detect data types for updates more precisely
  • fixed a bug where database contents could not be backuped nor exported/imported
  • made sure the PRAILS_HOME_PATH now uses GitHub instead of GoogleCode
  • created Makefile for easier build/test/clean
  • made sure that SQLite and PostgreSQL are detected on setup (and the respective options only shown if available)
  • fixed a bug in installer, leading it to install prails in wrong directory
  • fixed a bug where creation of a ''Main'' module (upper-cased 'M') could lead to a broken Prails installation
  • fixed a bug where compilation errors (syntax errors) in PHP were not reported correctly
  • fixed a bug where the module was incorrectly identified as library in case an error occurred
  • made session cookie more secure against attacks
  • added access denial for directory listings
  • added function 'in' as a unification for in_array, strpos and others
  • fixed a display bug in debugger (line numbers were reported incorrectly)
  • added salt to user password hashing for increased security
  • added binaries


  • V1.5.1 (January 6th, 2013)

  • added some more explanatory documentation for the foreach tag
  • added combo type to input tag
  • removed control.date dependency
  • updated auto-refresh handling
  • fixed a bug with the source editor in TinyMCE in certain browsers only displaying the first one or two lines
  • made sure that when adding a content asset, the IDE doesn't need to reload
  • made the synchronization be more specific (keeps last save time for each entity)
  • made sure that there is no ping-pong effect when synching
  • cleaned up messaging for sync and fixed a bug with .less file updates
  • when auto-refreshing the page, made sure that form data is preserved where possible
  • fixed a bug with synchronization in client-side code
  • made sure that the garbage collection is always triggered at some point for sessions
  • added testsuites for Prails to avoid regressions & implemented first tests for TagLib
  • fixed several bugs in TagLib
  • fixed some whitespace problems in the pre-defined custom tags
  • removed unnecessary code from TagLib
  • fixed a problem with handler editing throwing exceptions
  • added a small fix for GET parameters not received in static content page's decorators


  • V1.5.0 (August 9th, 2012)

  • fixed a problem with installer, which was not able to install prails into the current directory instead of a sub directory
  • fixed a bug with removal of modules
  • added the possibility to use dashes in content asset names in templates
  • updated displaying of multiple lines edit fields in static content area
  • when a new update becomes available, the 'update here' link on home tab won't immediately trigger update, but rather first ask the user
  • the upload mechanism should now work again with all browsers and apache versions
  • fixed a bug in firefox, where only one or two lines of code were visible in CodeMirror
  • Added option to sendMail that allows specifying additional headers
  • fixed a javascript error in latest safari
  • updated jslint to newest version
  • fixed a bug with certain Apache versions not supporting inline comments in .htaccess file
  • fixed a scope bug for saving using the CTRL+S shortcut in a code window with multiple tabs
  • for development environments, made sure that the JS files are not merged into a large one in order to make debugging easier
  • added auto-refresh feature for development mode
  • added first version of offline editing + synchronization script
  • added skeleton creation of new modules to synchronizer


  • V1.4.3 (July 8th, 2012)

  • removed browserdetect.js
  • added jquery ui natively
  • fixed a bug with overlabels
  • updated documentation for print
  • improved search/replace handling
  • updated display of @button elements
  • added disabled attribute to input tag
  • updated code editor to latest version
  • added set tag (including documentation)
  • added some more comments to critical section
  • optimized updating and reading of custom URLs
  • improved search result display for quick open
  • documentation update for javascript + database
  • updated jQuery UI/S2 theme to be less obstrusive
  • added documentation for the Database::escape method
  • added basic set of CSS properties for style code editor
  • fixed JS error when focussing quick open field via shortcut
  • finally made the closetag plugin for the editor work correctly
  • removed obsolete tblclass and integrated it into database class
  • fixed a bug with searching in database queries in SQL Query tab
  • added documentation for using forms, form validation and javascript
  • enhanced concurrent access notifications and it's general behaviour
  • updated some documentation for using forms, tags and the language API
  • improved open item search to also look for contents rather than just names
  • updated documentation and usage of out() function to support arguments set to null
  • updated doGet and doPost methods to support more flexibility and updated documentation
  • added custom URL export and import (happens automatically as part of the module import/export)
  • fixed a problem with the fileBrowser functionality in the static content section (was invisible)
  • added re-focus on tab change, so your focus is restored to where you left when changing the prails tab
  • fixed bug with curly braces and squared brackets being problematic on keyboard layouts utilizing the ALT GR key
  • fixed a bug where after successful replication, the libraries were not flushed - same for regular module flushing
  • added some duplication checks for importing of configurations, which in some rare cases failed during replication
  • made sure that database deploy process is only turned off, if the deploying of the database was actually successful
  • added job-detection for production jobs so that those can run for longer than 25 seconds (now timeout is at 1 hour)
  • increased maximum allowed size for several code fields (CSS, JS, libraries, static content assets, custom attributes)
  • fixed a problem with overlabels not being correctly initialized after opening it in a local hop up (content not pulled via AJAX)


  • V1.4.2 (May 3rd, 2012)

  • hotfix: development environments broken due to newline at end of file in lib/debug/debugger.php


  • V1.4.1 (May 2nd, 2012)

  • increased usability of debugger's variable view
  • fixed end-of-execution detection for debugger
  • updated line number display for debugger
  • fixed debugger, made the shown code more compliant to what the developer created and added support for endpoints
  • made sure that on production system unfilled content assets wont be displayed (will have empty content)
  • fixed a bug with builder_data producing 'headers already sent' warning
  • increased maximum image size for embedding into CSS to 19kb
  • made sure that the lang_data is largely independent of session data
  • removed request time from session variable so that there is no need to create new sessions on and on
  • fixed another bug with database query tester (needed some more escaping)
  • added graphical onload effect for IDE
  • fixed history data retrieval for elements that allow to go back in history
  • updated history information shown to be more accurately and helpfully representing the latest changes
  • updated API link on builder's home page to link to the documentation page on prails.org
  • fixed a bug history display: line endings were missing and quotes were escaped
  • fixed a problem with query tester, where once sorted, you always were forced to newly sort to see the results of other tables
  • finally implemented searching in query tester by using the search UI there
  • updated documentation for if and else tags to reflect the else condition part
  • replaced @. with #!. (fixes bug #4)


  • V1.4.0 (April 16th, 2012)

  • fixed a bug with custom attributes on content assets not being correctly stored
  • added the possibility to pass limit parameters to Database::select
  • added Database::getItem, which selects a single entry by ID
  • made the scaffolded code be more flexible in case no mod_rewrite is active
  • made sure that the scaffolded links between edit, list, delete and view are always rendered if their counterparts are generated as well
  • fixed a bug with running backups
  • increase ease-of-use for creating admin modules (addSection is now MUCH easier to use)
  • updated logo
  • made modal dialog and ajaxified links easier to use
  • updated styles for radio buttons (now the label appears next to the radio control)
  • some code cleanup for scaffolded forms
  • fixed a problem with foreign keys not being correctly rendered for scaffolded form code
  • implemented mod_rewrite emulation in case there is no mod_rewrite
  • added automatic creation of necessary directories, in case they are missing
  • fixed a bug with images not being exported correctly
  • updated to newest lessphp version => warning, your LESS CSS code might break if you are using parametrized mixins
  • updated styles to be compatible with new LESSPHP
  • added the possibility to set a different DB host during setup
  • made the setup more robust in case of mod_rewrite is missing
  • added connection testing for MySQL and PostgreSQL databases during setup
  • revised wording for mod_rewrite problems (no data will be received through POSTs, if rewritten URLs are non-the-less used)
  • turned history into a dropdown attached to view history button rather than the eye view
  • made sure that the replication button cannot be hit while running a replication
  • browse history is now also available for custom libraries
  • updated html editor for TinyMCE to work with CodeMirror
  • made sure that when rewrite.php is used, query parameters are correctly parsed
  • made sure that when creating a new module, the home handler appears immediately
  • added button border
  • made sure that one can edit URLs despite of missing mod_rewrite (is now emulated using rewrite.php)
  • added new documentation & created pdoc-like documentation parser in PHP
  • updated fileselector (file upload) functionality to reflect latest changes in File API.
  • added 'pages' folder as default to static content section
  • fixed a bug where the icon for a newly created sub-section in the static content area would not look like a folder
  • Added possibility to create a page by using the CMS helper: in case all content assets of the 404 page are filled in and the current static content page does not exist, it will open the page for editing
  • fixed a bug where a non-existing backup directory would lead to an endless loop during load-up of the IDE
  • added live-syntax check
  • made sure the save shortcut does not interfere with browser's save
  • updated documentation of jumpTo (now defaults to client-side redirect)
  • improved search UI to remember last search/replace data
  • extended DBEntry so that it's now possible to modify and remove database records by it
  • updated documentation to reflect new use of DBEntry constructor


  • V1.3.1 (February 1st, 2012)

  • added overlabels capability to password fields
  • added auto-complete to tags and libraries
  • added module's configuration definitions to handler's auto-complete
  • added a visual distinction between production and development environments
  • added new codemirror2 editor for all fields - now featuring code folding, improved auto-completion, full LESS syntax highlighting, improved template highlighting
  • added asterisk for required input fields
  • updated styling for new font in code editor: Meslo LG (see github.com)
  • replaced simple auto-complete by a more elaborate one
  • made sure that cache entries are updated atomically
  • some code cleanup
  • Fixed problem with resizing the code editor
  • fixed a warning with HookCore in case there are no hooks defined
  • fixed a bug with setup routine not correctly saving MySQL password to configuration
  • fixed a problem with HTML header tags being lost if the page is cached


  • V1.3.0 (January 14th, 2012)

  • added ''backup now'' feature
  • added a way to turn off db cache
  • added custom attributes for content assets
  • added purging of modules to cache invalidation menu
  • added 'empty', 'main' and 'builder' to list of not-allowed module names
  • added new attribute to input tag: addclass, which adds a custom class to the container div
  • added a way to detect very slow highlighting. In case it's very slow, it's turned off for the sake of performance
  • added functionality to render complex library file contents when double-clicking it - therefore it needs to exist
  • added $SERVER, $SECURE_SERVER and $currentLang to available scope without the need to fetch them via global within handler code
  • introduced output code templates - now featuring the template attribute at the include tag and the third parameter at the out function
  • enabled direct var access through #local.varname in foreach loops
  • made the loading indicator be customizable
  • made the window's title give hints when saving is complete
  • made sure that when saving a CMS page, the web cache is cleaned
  • made sure that overlabels are hidden correctly on page load if data auto-filled
  • made the validator scroll to the first invalid field when trying to submit the form
  • made sure that form validation is triggered automatically after dialogify & ajaxify
  • optimized editor performance
  • changed user-agent for doGet
  • removed stripslashes for DB methods, so backslashed text can now be safely retrieved from the DB
  • updated formatters: now date only shows the date itself datetime renders date and time, time only shows the time
  • fixed a few editor bugs
  • fixed code history display
  • fixed a bug with scaffolded edit handlers
  • fixed a minor bug with restoring a backup
  • fixed several further bugs with the editor
  • fixed a problem with MySQL and escaping of strings
  • fixed a problem where database contents where not backuped
  • fixed a few problems with replication not working correctly
  • fixed a problem with backup scheduling not saved on production
  • fixed a bug where the module did not correctly get resetted when importing
  • fixed problem with installer overwriting favicon file during Prails upgrade
  • fixed a problem with URL rewriting rules not being replaced properly on save
  • fixed a bug with complex libraries leading to Prails dying while trying to load
  • fixed a bug with jumpTo not storing session data before jumps in certain environments
  • fixed a bug in input tag not rendering the value of a field correctly for some settings
  • fixed a problem with CMS where the save button was not shown under certain circumstances
  • fixed the problem that after upgrading to a newer prails version, the caches are not purged
  • fixed a problem with URL rewriting not taking additional query parameters on rewritten URLs into account
  • fixed the problem that after upgrading to a newer prails version, the database is not automatically re-deployed
  • fixed a problem with variables in template code not being evaluated correctly in case it consisted of a number only


  • V1.2.2 (October 26th, 2011)

  • fixed a problem with exporting
  • fixed a bug with saving content assets, which led to creation of new versions of it


  • V1.2.1 (October 24th, 2011)

  • added variable highlighting for handler code
  • updated several scaffolded handler codes to make sure that $arr_param is not overridden
  • fixed backups not being found after creation
  • fixed a problem with importing _very_ large exports/backups
  • fixed a bug where cache entries may be written concurrently
  • fixed a bug with code editor in conjunction with search&replace (did not immediately update the code field and did not correctly show the found items


  • V1.2.0 (October 20th, 2011)

  • added explicit use of foreign key constraints for all supported database systems (won't break existing db structures)
  • added an automated backup and restore functionality
  • added a hook for overriding the global home page rather than directly changing the handler code of it (fully backwards compatible)
  • added a simple profiling tool (therefore also added a button for all system-collected profiling data)
  • added functionality to replicate code and database structure securely to production systems
  • added PostgreSQL support
  • added library uploading (so if you have some PHP library you want to use in your project, simply upload and use it)
  • added new code editor for all code fields:
  • * it now _really_ works with iPads & co.
    * includes a much better support of auto completion (try CTRL+Space) - even in output code!
    * now also features current line hint
    * more precise syntax highlighting
  • added Hooks documentation to built-in API documentation
  • made sure that database contents cannot be imported on production
  • made setting the default language more resistant to (DB) errors
  • Fixed a problem with parameters not intuitively transmitted when using handler names beginning with edit/delete/view (now behaves exactly as with all other handlers, is also fully backwards compatible)
  • fixed a bug with scaffolding feature when editing multiple tables at the same time
  • fixed a bug where all CTRL+Backspace / CTRL+Left (same for CMD on Mac systems) were surpressed rather than only in non-textareas and non-input fields
  • fixed a bug in built-in API documentation: cross-references were not loaded correctly
  • fixed a bug with page caching in overload situations: the overload lock was released too early
  • fixed a bug where on slow servers, the overload page was shown prematurely in some rare cases
  • fixed a bug where the page's title and description were not correctly re-used when page was cached
  • removed old code mirror code editor


  • V1.1.2 (September 8th, 2011)

  • added a way to upload resources to the global module (warning: as with all global objects, it cannot be exported nor imported through package import)
  • added feature to cache static content assets if their decorator supports it (in case it has no decorator, it will always be cached)
  • added handler-specific caching (so now for example decorators can be cached independant from the actual page they are used in)
  • added endpoint infrastructure (POSTed data can now be executed through extra sub handlers - leads to cleaner code base)
  • added #server.secureUrl (which generates the HTTPS url for the current page)
  • added endpoint detection for precise error reporting in log files
  • added database contents export and import functionality
  • added server overload handling (detection + reaction)
  • added functionality to empty web cache and log files
  • added default language setting to be stored in conf
  • added 404 page for not-found modules / handlers
  • added bulk uploading of resources
  • added functionality to log out
  • arr_param is now always pre-defined within a handler function. It contains any value given to it via server-side invoke
  • improved CMS bookmarklet to enable directly jumping to the content asset in prails when clicking the square
  • updated to newest modernizr version
  • updated to newest jquery version
  • made sure that requested resources are always directed to the correct generation handler
  • simplified doctype to be HTML5 rather than XHTML
  • fixed a problem with not all log files being shown (or ones that don't exist anymore) in help tab
  • fixed a problem with the installer not having the passwords kept correctly
  • fixed a problem with module not being reset after changing configuration
  • fixed a problem with base href not being accepted with relative protocol in IE
  • fixed a bug with control.date computing the resulting timestamp incorrectly
  • fixed a bug with adding CSS & JS files as resources (and then accessing it)
  • fixed a bug with checking for table existence with MySQL
  • fixed a security bug that enabled any user to edit CMS data on production systems
  • fixed a bug with logging out of the Prails IDE
  • fixed a problem with page caching
  • fixed a bug with session data not stored correctly under some circumstances
  • fixed a bug with handler code being duplicated when saved multiple times
  • fixed a problem with empty / invalid event handler names when creating or renaming a handler
  • fixed a problem where backspace or ALT-left or CMD-left could lead to leaving prails accidentally


  • V1.1.1 (August 4th, 2011)

  • added a button at database structure editing for easier creation of foreign keys
  • fixed a problem where strange characters were added in some browsers in code when using CTRL+ALT+LEFT/CTRL+ALT+RIGHT to switch between code tabs
  • fixed a problem with dialog elements producing errors when being removed on close
  • fixed a problem with local variables not being transmitted correctly to output code
  • fixed a problem with saving users (were not shown correctly after save and re-opening of that window)
  • fixed a problem with smtp class not using sender's name for from field
  • fixed a problem with key tables not being editable via queryTest.html
  • made sure that in CMS javascript and style tags are not executed when rendering the wysiwyg field


  • V1.1.0 (July 24th, 2011)

  • added user management feature
  • added a media browser for the CMS
  • added bootstrap.less to global css
  • added a micro CSS grid framework to global css
  • added document title progress indicator for upload tag
  • added a new parameter for hyperlink() in order to decide whether or not the URL shown should be stemmed
  • added new variable formatter: date
  • added some skeleton code to handlers before their creation (so that they're not empty)
  • added some more quick tips for editHandler
  • added all shortcuts also within the bespin context
  • added focus indicator for code fields after changing the currently active tab
  • changed wysiwyg editor to tinymce
  • updated to ExtJS 3.4
  • updated to new design
  • improved show log files to include multiple logs
  • improved debugger code generation (now supports switch statements)
  • user credentials are now securely saved
  • optimized debugger and logging functionality (now one log for each log level)
  • made the variable formatters more flexible (are now external files)
  • some file clean-up
  • removed shm caching (too unstable)
  • fixed a few bugs with session not being saved correctly when redirecting or using cached pages
  • fixed a bug in mysql class to avoid unnecessary warnings
  • fixed a bug with runtime warnings and error not showing the class name correctly
  • fixed styles for lang helper (was hardly visible if body text was set to white)
  • fixed a bug with embedding images into minified css


  • V1.0.9 (June 26th, 2011)

  • added a fatal message in case templates cannot be cached
  • added separable configuration for development instances, production instances and both
  • added jQuery (can be used with "_" or jQuery instead of "$")
  • added CMS export and import of static images
  • added field name as class to form-entry in input.tag
  • added [count] postfix for hash data access (p.e. #user.post_list[count] retrieves the number of entries that are returned by #user.post_list)
  • added smtp mail sending
  • performance optimizations
  • some code clean up
  • updated less compiler to latest version
  • made sure that on production no password is needed in order to generate missing images and modules
  • made setup and total system more fail-safe in case there is no mod_rewrite
  • made sure that the session is always written when using jumpTo
  • made warnings not occur in rendered pages but instead be written to log
  • fixed some bugs with setup routine
  • fixed a bug with queryTester
  • fixed a problem with memory consumption of newly optimized less compilation
  • fixed a bug with REPLACE in sqlite
  • fixed query tester problems with new caching and session handling
  • fixed a problem with importing of cms contents
  • fixed a problem with $ at the end of content asset definitions
  • fixed a bug with templates not being rendered incorrectly due to error message thrown while evaluating it
  • fixed a problem with modal windows kept in memory after closing
  • fixed some bugs with caching, CMS export and import
  • fixed a problem with cache not being flushed correctly
  • fixed a problem with full caches in shm version
  • fixed a problem with validation of radio buttons (lead to submit although invalid)
  • fixed a typo in configuration.php
  • fixed a problem with updating configuration
  • fixed a problem with destroying session in case none was active
  • fixed error messages for libraries
  • fixed a bug with saving multiple tables concurrently
  • fixed another bug with retrieval of collections
  • fixed a problem with production instances and camel-cased module names
  • fixed a warning that appeared when running updates, inserts or deletes in a MySQL DB
  • some bug fixing on importing of database tables
  • another small cache fix (speed problem solved)


  • V1.0.8 (May 8th, 2011)

  • added hooks
  • added a simple debugger for data queries and event handlers (not yet for libraries)
  • added new input tag
  • added a tools lib function to receive files uploaded via fileselector.js
  • added CMS helper tooltips and bookmarklet
  • added support for unified <%..%>
  • added RAND method for sqlite
  • added basic set up tool
  • added basic styles for overlabels
  • added input tag documentation
  • added a way to extend the IDE itself via (currently) one hook
  • added short hand for DB queries: get(index,filter,name)
  • added search+replace functionalty (can be triggered via CTRL+F in a code field)
  • added shared memory caching for DB (includes a fallback to file system, if no shared memory can be acquired)
  • added new session manager (stores sessions now in DB)
  • added mapped filtering for DBEntry::get()
  • added explicit db flush functionality at help tab
  • added side nav link in main home template
  • added functionality to not cache external CSS files and JS files
  • added first code completion implementation for PHP code (completion of data query names in handler code)
  • changed validator to use attribute 'error' instead of 'title'
  • changed overlabel to use attribute 'label' instead of 'title'
  • clean up of global css (LESS style)
  • improved SQL query page
  • improved caching of CMS contents so that contents > 1024 bytes are not stored in session anymore
  • improved database access through class Database (easier querying)
  • improved logger to show the error if it was unable to write into error log
  • decorators now get the current context as parameter
  • made LESS more robust (now shows compiler errors and increased embed max filesize)
  • made error reporting less talkative (up to now it also reported NOTICES on some servers)
  • made CMS texts type 1 have a bigger wysiwyg editor
  • re-introduced SQLite alter table support for adding columns
  • updated to newest LESSPHP code
  • updated to newest modernizr version
  • validation enhancements (now required only fields can have own global text override too)
  • made sure the cache files are removed again
  • made sure that package import assigns contents to correct modules
  • fixed a bug with IE7 and embedded images (which did not display)
  • fixed several issues with css and image handling
  • fixed a problem with saving of SEO information and decorator detection
  • Fixed a problem with certain tag codes that were rendered incorrectly by bespin
  • fixed a bug with handlers not being re-opened after creation
  • fixed a bug in tag lib that did not allow deeper nesting of foreach intermixed with if conditions
  • fixed some issues with images not rendered correctly when pulled via HTML
  • fixed problems with language tag detection
  • fixed a bug in sqlite with ISNULL()
  • fixed a bug in CMS (missing SEO title and description)
  • fixed a bug with configuration not saved correctly if concurrently modified in same session with another module
  • fixed a bug with importing (configurations were imported incorrectly besides other side effects [wrong modules / handlers / data queries aso removed if they had the same ID])
  • fixed a bug with resetting modules after save


  • V1.0.7 (February 12, 2011)

  • set Bespin as the new Code editor
  • added search for content assets
  • added caching flag for events
  • added the PHP LESS compiler as new LESS compiler (which is much more complete than the previous implementation)
  • added some new tags ("" and "")
  • added SEO data to CMS pages
  • added for development environments a HTML comment wrapping to all translated texts, to avoid this for single texts, add a $ at the end of it's identifier while declaring, like:
  • the search / quick open now also includes translations & CMS pages
  • added a way to see the automated testing process while running
  • added a new form validator type that is able to evaluate JS code instead of RegExps only (prepend "javascript:" in rel attribute)
  • added Scripty2 including newest PrototypeJS (1.7), removed old Control.Modal, Control.Tabs and Scriptaculous instead
  • added "floor" and "ceil" to defined sqlite functions
  • added functionality for concurrent modification: editors being edited by someone else are disabled and a notification is shown, content is automatically reloaded as soon as editing by the other one is saved / undoed.
  • improved API display and added some missing documentation
  • added the newest tags to API documentation (body and print) and updated existing documentation
  • removed apply history button (makes no more any sense)
  • fixed the history to correctly work with Bespin
  • fixed a bug in search/quick open
  • fixed a bug with importing of modules via packages
  • fixed a problem with bullet points and lists not correctly shown in CMS
  • fixed a few problems with invoking server-side events in development environments
  • fixed a bug with sendMail which produces artifacts in the eMails sent
  • some code clean up and minor tweaks


  • V1.0.6 (September 12, 2010)

  • added support for LESS-style CSS code
  • added self-updating mechanisms (Prails now checks for newer versions available and gives the developer a hint and what has changed since; when the developer decides to update, Prails updates itself)
  • added export of testcases and translations for packaging (and also it's import)
  • added testing facilities (selenium-like web-app testing framework, integration into Prails IDE (new button next to "Package" to launch a testsuite and view the logs, a new area for module option editing that enables you to manage testcases module-wise)
  • added Browser detection for use in CSS (HTML element gets the browser's type as CSS class appended); for IEs a second CSS class is appended with the used IE version number (like "msie7")
  • changed database table prefix for prails' internal tables so that it does not interfere with tables created by developer
  • when saving a new translation, the correct tree path is re-opened after page reload
  • fixed a problem with favicon.ico causing unnecessary warnings in the log file
  • fixed a bug where some project group names led to crc32 codes that were too big to for normal integers, which led to the phenomenon that a wrong value was stored in the database
  • fixed a bug where AJAX links did not correctly detect absolute URLs which led to the phenomenon that in Chrome Browsers these AJAX requests were fired with wrong URLs.
  • fixed a small bug for IE6 (alerts appearing for each detected PNG)
  • when editing a translation, the page type is now correctly used to choose the kind of editing field
  • fixed a bug in lang_data which caused a nasty system failure message if no texts table exists
  • fixed a bug for the display of resources (resources used in CSS files - like background images - were previously not correctly deployed)
  • BASE tag problem in IE fixed by using absolute URLs for items in head
  • fixed a bug in the CMS page creation: when creating a new page, the input area was of an incorrect type (just one single line instead of the big wysiwyg editor)


  • V1.0.5 (August 15, 2010)

  • added form field validation
  • some debugging for deploying on PHP version < 5.3
  • improved tag lib to support formatters (no custom formatters supported yet)
  • added render optimiziation for internet explorer versions < 9 (all old versions of IE will try to mimic the IE9 rendering)
  • added automatic browser-feature detection
  • all POSTs to the server will now be received in a clean-upped way (no more uncertainty of magic quotes).
  • added IDE integration for localization: new navigation section Translations
  • updated upload target for wysiwyg fields
  • added very basic CMS functionality (can be used by creating texts in a cms top section under Translations
  • removed caching of localization data for development environments (ENV_PRODUCTION set to false)


  • V1.0.4 (July 15, 2010)

  • added easier AJAX support for links (using the rel attribute you can now define what HTML element's content should be replaced with the content loaded via the HREF attribute of the link).
  • speed up of re-deployment while in development (ENV_PRODUCTION uses then the optimized/minified JS version)
  • added the feature, that everything loaded via the ... does then again fire the dom:loaded event (causing to initialize everything again)
  • added new wysiwyg editor. It can be accessed by simply giving any element a CSS class "wysiwyg". On page load it will be automatically transformed into a wysiwyg
  • modified include tag, to make more sense for including other templates (warning: syntax has changed - to include a template you now simply write so it looks like:
  • improved taglib parsing to support nested tag evaluation
  • improved DBEntry to support on-demand reverse foreign key resolution (for example: having two tables "post" and "comment", while "comment" has a fk_post_id, then if you have a certain post, you could do: #post.comment_list which would then get you all comments of that post)
  • added new browsing feature for database tables
  • made global configuration saveable
  • fixed Bug #1
  • improved compatibility of syntax highlighting with the mobile safari for ipad
  • fixed bug with CSS and JS lib filesize retrieval
  • improved caching mechanism for runlets
  • added url rewriting feature for handlers
  • improved user-guiding if no Database can be accessed and on the default Prails home page.
  • Improved logging to notify project manager (ERROR_EMAIL) if an error occured and notification (ERROR_NOTIFICATION) is turned on
  • some code clean up


  • V1.0.3 (June 27, 2010)

  • Added support for SQLite3 databases (you can now use the DB_TYPE setting in the configuration.php to switch between MySQL and SQLite)
  • Added support for importing and exporting whole packages (modules, libraries, tables and tags)
  • When scaffolding to a module which has already been in use, it is now purged from the file system to immediately reflect the changes done by the scaffolding
  • Added log file link to home builder's home screen
  • On the first run, the database is now automatically deployed
  • Some code clean up


  • V1.0.2 (June 17, 2010)

  • Introduced scaffolding
  • Added further help section to builder's home screen
  • When creating a new module, a home event is now generated with it
  • Introduced global module editing and viewing functionality
  • Added DBEntry to enable extended field access functionality (like automatic resolution of foreign keys on demand)
  • Much code clean up