Overall ------- * Added localized exception messages for all known ERR_* codes, standardized which exception codes are used, added more info to some exceptions for their messages, and added several exception classes. * Added help text for all CLI commands. Solar ----- * [CHG] In method start(), guard base-class loading with class_exists(). Thanks, Jeff Moore, for the report; and thanks, Stloyd, for the patch. * [FIX] In method exception(), when the vendor class is not Solar, add Solar as the final fallback. Solar_Access_Adapter_Sql ------------------------ * [FIX] Prefix column names with the table name in WHERE and ORDER BY sections of the SELECT query; using column names such as "order" no longer results in an error. Thanks, dmytrok. Solar_Auth_Adapter_Sql ---------------------- * [FIX] Prefix column names with the table name in WHERE sections of the SELECT query; using column names such as "order" no longer results in an error. Thanks, dmytrok. Solar_App_Hello --------------- * [FIX] Turn off layout for the index action. Solar_Cache_Adapter* -------------------- * [CHG] In methods save(), add(), fetchOrSave(), fetchOrAdd(), and _fetchOrInsert(), add a new trailing parameter $life to override the default lifespan for the cache entry. Solar_Cache_Adapter_File ------------------------ * [BRK] Now uses a .meta file to store expire and serial values, instead of using filemtime() for expiry and a .serial file for the serialization flag. This is to enable per-entry expiration. You may need to clear your file caches for this to operate properly after you upgrade. Solar_Cli_Help -------------- * [FIX] No longer print double newlines between help text and options. Solar_Cli_MakeApp ----------------- * [BRK] No longer takes a --target option; writes always and only to the Solar system "include" directory. Solar_Cli_MakeCli ----------------- * [BRK] No longer takes a --target option; writes always and only to the Solar system "include" directory. Solar_Cli_MakeModel ------------------- * [BRK] No longer takes a --target option; writes always and only to the Solar system "include" directory. Solar_Cli_MakeTests ------------------- * [BRK] No longer takes a --target option; writes always and only to the Solar system "include" directory. Solar_Cli_MakeVendor -------------------- * [FIX] In config/default.php, *do not* create a $config variable, because it overwrites the main $config value. Thanks, probd, for the report and patch. * [FIX] Renamed options.txt to options.php in order for options to work as expected. Thanks, dmytrok. * [FIX] Removed surplus and misleading " tag. * [CHG] Method setDecorator() now takes a third param, $attribs, as attributes for the decorator type. * [CHG] Method setDecorators() now honors two kinds of specifications. The old style, where the $list value is a string tag name, is honored. The newly added style is where the $list value is an array, where the first element is a string tag name, and the second element is an array of key-value pairs ('attrib' => 'value'). * [ADD] Methods setDecoratorAttribs() and addDecoratorAttribs() to set decorator attributes directly. * [CHG] Rename property $_attribs to $_attribs_view, to indicate attributes for the form tag that are set directly at the view-helper level. * [ADD] Properte $_attribs_auto, to retain attributes for the form tag that are set indirectly via the auto() method. * [CHG] Method auto() now retains attributes from the spec in $_attribs_auto, not in $_attribs_view. * [CHG] Method reset() no longer merges $_default_attribs and $this->_config['attribs'] into $_attribs_view; merging of defaults now occurs at fetch-time. It does, however, reset $_attribs_view and $_attribs_auto. * [CHG] Method _buildBegin() now merges form-tag attributes internally when building the form tag. The order of precedence from lowest to highest is: $_default_attribs, $_config['attribs'], $_attribs_auto, $attribs_view. This is so that attribs set directly in the view always take precedence over attribs set indirectly via the auto() method. * [BRK] Previously, checkbox labels (when not in groups) were put in the 'label' portion of the element, and the checkbox value itself was *not* wrapped in a label. This left the checkbox itself sitting alone, and clicking on the somewhat distant label for it would check/uncheck the box. This has proved unintuitive, troublesome, and unpopular. As such, checkboxes will now be wrapped with their label in the value portion of the element, and the label portion of the element will be left blank. Sorry for the trouble, folks. * [ADD] In method beginFieldset(), add a second parameter $attribs, used to provide attributes for the fieldset tag. This changes the internal $_stack descriptor for fieldsets, which is now honored by _buildFieldset*() methods. * [CHG] Slightly better error messages for magic __call(). * [REF] Extract method meta() from auto(), to handle setting of meta-info about the form view (attribs, feedback, and status) using a form object. Solar_View_Helper_FormCheckbox ------------------------------ * [ADD] Add config key 'label_class' to add a CSS class to the label tag wrapping the checkbox input; this will help target labels on checkboxes (vs generic input labels). * [FIX] Use getText() for the label text so that locale keys get translated properly (vice escape()). Solar_View_Helper_FormRadio --------------------------- * [FIX] Radio buttons IDs are now suffixed with an incremental count. * [ADD] Config key 'label_class' to specify a CSS class for the label tag wrapping the radio input. * [FIX] Use getText() for the label text so that locale keys get translated properly (vice escape()). Solar_View_Helper_Form(Timestamp|Date|Time) ------------------------------------------- * [ADD] Config keys 'y_first' and 'y_last', to set defaults for the first and last years shown as select options. (These can be either low-to-high or high-to-low.) * [ADD] Method _prepare() to override the parent; this allows us to retain element info keys for 'y_first' and 'y_last' which determine the first and last years shown as select options. * [ADD] Properties $_y_first and $_y_last for the first and last years shown. * [CHG] Method _selectYear() now honors the $_y_first and $_y_last properties, instead of showing only +/- 4 years from the current year. * [CHG] Method _selectHour() now shows 00-24 instead of 00-23. * [CHG] The '-' empty-value has been removed from all select options. * [CHG] Method _prepare(), when no value is present, now defaults the value to the current timestamp using `date('Y-m-d H:i:s')`.