Drama...sigh
Be a part of the solution
Filed in: ExpressionEngine, Blobbing
January 9, 2012
Ah, it's winter. (side note: I seriously need to get the winter theme up and going on my site.) It's that time of year where the ExpressionEngine user-base starts to get restless. Oh, who am I kidding, it can happen at any time of year. So a recent comment on Kenny's article over at The Nerdary got me thinking, and I decided to dust off my long ignored blog.
I don't think users of ExpressionEngine have any clue what it's like to be a developer at EllisLab, what it entails, or what the fuck they do. It just so happens I have a keen insight into it, and have been wanting to post this for a long time.
Let's go back in time to when I came on full-time. At that point, Allard, Jones, Robin & Pascal had been working their tails off. Not knowing the codebase, my job was to fix low-hanging fruit bugs and try to bring some consistency to the UI. For those of you who where in the public beta, you saw these changes. We added a javascript combo-loader, added future caching headers. This helped to dramatically speed up the experience in the control panel. At a point, Allard broke off and started on Mojo. I had no problem with this. There are times when too many people working in the same area can cause more problems than it solves. So for those of you who have lambasted the choice for Derek to be working on Mojo at this time, I'm sorry, but I disagree with you.
Les has said before that things weren't handled correctly in the 2.x conversion and during the public beta, Robin, Pascal and I worked hours on end to fix things up. Given that there was several years of previous development, a change in CTO and other leadership/dev team shuffles, from my perspective, things weren't as bad as they could have been.
I understand why people were upset/on edge during this period. We made drastic changes during the closed beta. Due to the time it took, people expected ajax requests to their brain and for ExpressionEngine to code their site for them. So back to reality, shit happens, software has bugs and we just do our best to make it better.
After we rolled out of the public beta and felt we had a product we were proud of, we started thinking about things to change. For some reason, the ExpressionEngine community seems to think that unless it's direct changes in the UI, nothing happens. However, let's look at what 2011 brought ExpressionEngine, which was taken straight from the changelog
Build 20110101 (initial release)
- File management overhaul stage one completed.
- Added {exp:comment:edit_comment_script} tag to output comment editor via a script tag.
- Added {if enable_avatars}{/if} and {if enable_photos}{/if} to members and forums menu.html theme files.
- Optimized the Channel Entries tag to consistently not perform page related queries when the pagination tag is missing.
- Fixed a bug in the Metaweblog API settings page where PHP errors could occur if no additional statuses had been created.
- Fixed a bug in the Metaweblog API settings page where some dropdown menus could populate incorrectly in Internet Explorer.
- Fixed a bug (#14904) where links to edit entries could be incorrect if the entry list was not fully loaded.
- Fixed a bug (#13217) where file upload buttons did not submit in Internet Explorer 7.
- Fixed a bug (#15125) where jQuery effects were not correctly combo-loaded.
- Fixed a documentation error (#14913) where some update instructions still advised forcing ASCII mode when uploading.
- Fixed a documentation error (#15128) where a set of parameters was out of order in the Module Tutorial.
- Fixed a documentation error (#14883) where instructions for creating a new theme did not mention the images directory.
- Fixed a bug (#14876) where some channel preference input fields were not clickable in the corporate theme.
- Fixed a bug (#14708) where the control panel login did not redirect with a session ids, breaking access in some cases.
- Fixed a bug (#14868) in the Moblog where the field formatting settings were not respected.
- Fixed a bug (#14851) in the Moblog where field overrides did not work properly.
- Fixed a bug in the Moblog where email data were not properly stripped from the body content when no upload directory was specified in the Moblog settings.
- Fixed a bug (#14952) in the Channel Entries API where formatting specifications were removed.
- Fixed a bug (#14884) in the Comment Entries tag where the channel parameter was not honored when dynamic was set to ‘no’.
- Fixed a bug where a comment could have an incorrect site_id if entered from a different MSM site.
- Fixed a bug (#14869) where Page URLs did not work properly using a legacy multiple site setup.
- Altered the behavior of the Publish Page’s write mode editor to always publish to field when the modal is closed as per #13164.
- Fixed a bug (#14417) in the Metaweblog API where categories were not properly entered when creating a new entry.
- Fixed a bug (#13752) where disabled fields were forced to an enabled state when the Publish Page’s toolbar was toggled.
- Fixed a bug (#14888) where the comments module would ignore the sort parameter in certain cases.
- Fixed a bug (#14902) where a PHP Error could occur on the publish page for non-super admin users.
- Fixed a bug (#14882) where the Stats module incorrectly reported last_entry_date when filtering to a specific channel.
- Fixed a bug (#14299) where PHP errors would occur on the Blogger API control panel pages.
- Fixed a bug (#14968) where a PHP error could occur when searching for all member entries.
- Fixed a bug (#14176) where libraries were unable to be loaded in the upd file during installation.
- Fixed a bug (#14856) where load_package_css would not properly load for themes other than default.
- Fixed a bug (#14945) where improper breadcrumb trail was show in admin_content area.
- Fixed a bug (#14628) where the DATE_ISO8601 variable was returning an incorrectly formatted date string.
- Fixed a bug (#14788) where a language variable contained improper capitalization.
- Fixed a bug (#14855, #14999) where open fields in a saved layout could be closed when the custom field settings are altered.
- Fixed a bug (#14779) where pagination’s {previous_page} and {next_page} variables were only evaluated once to check for conditional usage.
- Fixed a bug (#14576) where some date variables returned nothing when no format was given. No format will now result in a timestamp.
- Fixed a bug (#14777) where the incorrect channel title was displayed in the Autosaved Entries List.
- Fixed a bug (#14989) where Member Profile template links do not reflect changed Profile Triggering Word.
- Fixed a bug (#14822) where statuses were not properly filtered by status order on the publish page.
- Fixed a bug (#14703) where the edit photo link would show regardless of member photo settings in the member & forum themes.
- Fixed a bug (#14951) where a PHP error would occur on the Publish Pages Categories tab when a category group was deleted.
- Fixed a bug (#14782) where publishing autosaved entries could result in a Fatal Error Message.
- Fixed a bug (#12167) where the “Edit Categories” link was not removed from view after being clicked to edit categories on the publish page.
- Fixed a bug (#14947) where the revisions checkbox was not checked by default in the publish page revisions tab.
- Fixed a bug (#14549) where when duplicate from Existing Template function creates from database and not from file.
- Fixed a bug (#14821) where the category tree would not properly sort by a custom order.
- Fixed a bug (#14778) where the result from the file upload preferences query was not properly caching.
- Fixed a bug (#14536) where comment preview did not maintain the page URI, resulting in improper page rendering.
- Fixed a bug (#14814) where legacy multi-site setups did not properly function.
- Fixed a bug (#12413, #14801) where the preview layout was not working.
- Fixed a bug (#14682) where hidden custom fields were being shown after being edited.
- Fixed a bug where field visibility wasn’t being accounted for in the Fields sidebar on the publish page.
- Fixed a bug where field width wasn’t being retained when fields are hidden in publish layouts.
- Fixed a bug (#14934) where the resize handle was missing from the Corporate theme
- Fixed a bug (#14967) where wildcard email addresses in the member banning preferences weren’t working properly.
- Fixed a bug (#14896) where parse_variable_rows was not handling single variables with typography options.
- Fixed a bug (#14877) where reverse related entries wouldn’t properly sort on numeric fields.
- Fixed a bug (#12442) where wrapping HTML buttons were overflowing out of their toolbar.
- Fixed a bug (#13579) where the category url title would not be created automatically on the publish page.
- Fixed a bug (#15025) that would result in a PHP error when uploading a member signature photo on the front end.
- Fixed a submission error spelling error (#15024) in the private messaging system.
- Fixed a bug (#15016) with front end comment editing when non-super admin users could not edit their own comments unless they had comment moderation privileges.
Version 2.1.4
Release Date: February 1, 2011
Build 20110405
- Improved XSS filtering of input data to prevent an XSS vulnerability.
- Fixed a security issue that in certain circumstances could allow manipulation of the Email module’s recipients parameter.
- Eliminated a vulnerability in the comment preview that occurred only when secure forms was turned off.
- Improved randomization of temporary template markers.
- Fixed a bug (#15416) in the template parser where nested tags could result in PHP errors.
- Fixed a bug (#15202) where saving an entry with a date in DST while you’re not in DST (or the opposite) caused the date to increase or decrease by an hour.
- Fixed a bug (#15199) where member registration in the control panel would cause a MySQL error when strict mode was enabled.
- Fixed a bug (#15199) in the installer where TYPE= is not supported by MySQL 5.5+.
- Fixed a bug (#15115) where plugins using PHP5 style constructors, would not properly parse in some circumstances.
- The security library has been moved to the CodeIgniter core. Loading it is deprecated and will result in PHP errors in future releases.
- Fixed a bug (#15383) where the Template Library could remove the wrong application package after parsing.
Version 2.1.5
Release Date: May 12, 2011
Build 20110512
- File Manager Changes (see Version Update Notes):
- Moved file information storage to the database
- Moved File Upload Preferences to the File Manager
- Added a ‘Can administrate file upload preferences’ setting to Member Group settings
- Added the ability to create custom image thumbnails on image upload
- Added the ability to watermark custom image thumbnails
- Altered the behavior of the minimum and maximum dimension settings in File Upload Preferences so that images that exceed the maximum will be automatically resized.
- Added back the hidden configuration variables xss_clean_member_group_exception and xss_clean_member_exception
- Wiki now uses the new database based file system.
- Moblog now uses the new database based file system.
- Migrated Moblog image and thumbnail sizes to upload dimensions.
- MetaWeblog API now uses the new databased file system.
- SafeCracker File now uses the new database based file system.
- Added a new modal upload form for the File Manager and File Chooser on the publish page.
- Added $config[‘force_redirect’] to the config file to force an intermediate confirmation page on all forwarded urls.
- Added $config[‘cookie_secure’] to the config file to allow requiring a secure (HTTPS) in order to set cookies.
- Added theme_folder_url as a Global Variable.
- Added Feature Request: rel=”external” to control panel help links so they open in a new window.
- Added Feature Request to allow parsing of global variables within snippets.
- Removed the Blogger API module.
- Moved SafeCracker into native modules, please see the
version notes <installation/version_notes_2.2.0.html>_ about how to upgrade. - Fixed a bug (#15590) where view files did not properly cascade.
- Fixed a bug (#15013) where files ending in ”.jpeg” were not allowed image types.
- Fixed a bug (#15049) where the Publish Page Glossary would not properly show when the Emotions Module is not installed.
- Fixed a bug (#15214) where the view path for accessories was improperly set.
- Fixed a bug (#15226) where an incorrect language key was used in the error message when trying to create a custom field group when a group with the same name already exists.
- Fixed a bug (#15115) where plugins using PHP5 style constructors, would not properly parse in some circumstances.
- Fixed a bug (#15298) where double slashes could appear in the comment form action in some situations.
- Fixed a bug (#14870) where the module class name was displayed instead of the actual module name in member group module permissions.
- Fixed a bug (#14850) where disabling signatures and member photos did disable for existing members.
- Fixed a bug (#15221) where weblog previous/next entry tags did not properly convert special characters in the title tag, which could lead to HTML validation errors in some cases.
- Fixed a bug (#14780) where comments belonging to expired entries would display when using the dynamic=”no” parameter in exp:comment:entries tags
- Fixed a bug (#15086) where an empty RSS feed could lead to PHP notices.
- Fixed a bug (#15242) where duplicating a template would not properly fill the template data on the resulting template.
- Fixed a bug (#15269) where an error existed in the valid_title check.
- Fixed a bug (#15319) where PHP notices could occur on the Template Manager under certain circumstances.
- Fixed a bug (#15375) where the “Add HTML Button” on the Publish Page was missing it’s link title text.
- Fixed a bug (#15445) where a PHP error could be thrown in the send_ajax_response() method if the javascript library had not been loaded.
- Fixed a bug (#15487) where the update_comment_additional extension hook did not fire on bulk comment update.
- Fixed a bug (#15299) where package libraries could not be loaded in an Accessories class constructor.
- Fixed a bug (#12044) where embedded variables were not properly parsed within module or plugin tags.
- Fixed a bug (#15611) where PHP errors could occur on member profile pages.
- Fixed a bug (#15617) where a help link for custom member profile fields was incorrect.
- Fixed a bug (#15122) where the avatar upload path was incorrectly reported in the member preferences when the directory was not writeable.
- Fixed a bug (#15409) where the help link on new member registration page was incorrect.
- Fixed a bug (#15435) when creating a new channel it will assign a field group even though none is selected.
- Fixed a bug (#15440) where the open status was not properly hidden when no status group was assigned to a channel.
- Fixed a bug (#15538) where the relationships cache was not updated following deleting an entry.
- Fixed a bug (#15413) where certain types of email address links were incorrectly converted by the Typography Parser.
- Fixed a bug (#15166) where libraries, models and helpers were unable to be loaded in an Accessories Class Constructor.
- Fixed a bug (#15697) where the rendered Wiki Module version number was incorrect.
- Fixed a bug (#15202) where saving an entry with a date in DST while you’re not in DST (or the opposite) caused the date to increase or decrease by an hour.
- Fixed a bug (#15417) where the drop down menus off of the top level navigation would not work for Firefox 4.
- Fixed a bug (#15513) where image rotation was going the wrong direction.
- Fixed a bug (#15635) where SafeCracker File output was being formatted as xhtml, instead of having no formatting.
- Fixed a bug (#15676) where the channel name was not listed on the Edit Group Assignments page.
- Fixed a bug (#15358) where EE_Email class message() method not chainable.
- Fixed a bug (#15380) where email_data.php was returning PHP errors in the translation utility.
- Fixed a bug (#15249) in the typography class where a line consisting of a single character did not always have line breaks properly applied.
- Fixed a bug (#15711) where the author_id parameter of exp:comment:entries would not work if the dynamic parameter was not explicitly disabled.
- Fixed a bug (#15599) where a PHP error could occur if an exp:stats tag was used and online user tracking was disabled.
- Fixed a bug (#15403) where permissions were not explicitly set on files uploaded from places other than the File Manager.
- Fixed a bug (#15093) where comment notification emails could contain comments from other entries.
- Fixed a bug (#13339) where autolinking would sometimes result in invalid bbcode.
- Fixed a bug where a PHP error could be thrown when relationships are used.
- Fixed a bug where bad relationships could be stored when using SafeCracker.
- Fixed a bug where the status group name did not appear on the edit status group admin page.
- Fixed a bug where the URL to the site home page was incorrect when updating.
- Fixed a bug where the form_class and form_id parameters were non functional on the exp:member:login_form tag.
- Fixed a bug where using a conditional inside a variable pair could result in the tag pair not being parsed in certain circumstances.
- Fixed a bug where Superadmin permissions for categories were not properly set when upgrading from 1.x.
- Fixed a bug where the Datepicker would default to 1969/1970 when launched on a field that contained an invalid date.
- Fixed a bug where the currently selected date of a date field was not highlighted correctly inside the Datepicker.
- Fixed a bug where search form XID checking would fail to check in some cases which could lead to lack of garbage collection in the security_hashes table.
- Fixed a bug in the Channel module where date headings were calculated incorrectly.
- Fixed a bug (related to #15199) where member registration in the control panel would cause a MySQL error when strict mode was enabled.
- Refactored inefficient conditional statements in the channel module. (#15293)
- Moved application view files to expressionengine/views/
- All loader variables are now private. Package view paths are handled by CodeIgniter’s add_package_path.
- Fixed a bug (#15383) where the Template Library could remove the wrong application package after parsing.
- Removed undocumented and long deprecated Typography class function light_xhtml_typography().
- Deprecated undocumented Typography Class Method xhtml_typography(), use auto_typography() instead.
- Altered native ExpressionEngine modules to work as packages for field types and extensions.
- Moved the ‘field_content_type’ data in exp_channel_fields to the settings array for native field types that need it. The field_content_type field will be removed in the future.
Version 2.2.0
Release Date: June 22, 2011
- Added a File Module to display file information on the frontend.
- Added ability to edit file metadata from the File Manager.
- Added several file types to the mimetype listing. Please update system/expressionengine/config/mimes.php.
- Altered Sessions handling and removed the uniqueid and userhash cookies.
- Removed the Debug: 0 option from Output and Debugging Preferences.
- Turned on Show SQL Queries and Template Debugging by default in a new installation.
- Altered Control Panel sidebar to be hidden on new installations by default.
- Added memory usage to each template log item so cumulative effect of memory used can be seen.
- Numerous optimizations in control panel and front-end queries.
- Altered CSS templates to send one week expires headers when the “Send HTTP Headers” option is set to yes.
- Added additional checking to help prevent a fatal error in the event a third_party plugin is placed in the wrong directory.
- Added configuration overrides (user_session_ttl and cp_session_ttl) to allow site developers the ability to change the default user and control panel session TTL.
- File synchronization now ensures all added files conform to our filename standards (spaces replaced by underscores, disallowed characters removed).
- Added the ability to limit a file field to a single directory.
- Altered Design permissions so that members with permission to edit templates in a given template group may also add templates to that group without needing administrative privileges.
- Updated the publish page fullscreen editor to remember cursor locations.
- Updated the login routine to salt and rehash all passwords with a SHA-2 hash function if available.
- Removed automatic pmachine.com to expressionengine.com ping url rewriting. Please make sure your ping servers do not include pmachine.com.
- Added Config Overrides (user_session_ttl and cp_session_ttl) to allow site developers the ability to change the default user and control panel session TTL.
- Changed CSS rendering for form fields to give more contrast, larger font size and an obvious focus style
- Changed “View Rendered Template” to open in a new window
- Removed corners.js from the CP header
- Developers: Added getter and setter method for accessing the Sessions Class $cache property. Accessing the class property directly is deprecated and developers are encouraged to update as soon as possible.
- Developers: Removed the explicit instantiation of the jQuery Table Sorter plugin on admin_content::field_edit(), as it could interfere with Fieldtype View files using tables.
- Altered the saved entry revision data to store custom field data after custom field ‘save’ processing.
- Added an auth library to simplify user authentication.
- Modifying _ci_view_path has been worked around following developer concerns about upgrades. However, it is deprecated and quickly nearing end of support. Use set_package_path, please.
- Deprecated functions::create_directory_map(), please use the CodeIgniter directory helper.
- Removed previously deprecated member_model::update_layouts()
- Removed previously deprecated layout::remove_module_layout()
- Removed previously deprecated content_edit methods: change_comment_status, delete_comment_confirm, view_comments, view_comment.
- Removed usage of the EXT constant in EE, as it has been deprecated in CodeIgniter.
- Added ability to send a settings object to $.ee_filebrowser.add_trigger to restrict files based on file type and directory.
- Increased PHP memory requirement to 32M from 16M.
- Fixed a bug (#15841) where a PHP error would occur when attempting to create a Custom Member Field.
- Fixed a bug (#15825) where documentation references to index.php were too ambiguous. ExpressionEngine now ships with an admin.php (masked access) file by default, and all documentation references that.
- Fixed a bug (#15401) where some settings (such as the webmaster email) could be set to blank, impacting functionality. ExpressionEngine now performs form validation on several settings.
- Fixed a bug (#15478) where the entry_id in the autosave JSON response could be incomplete or incorrect.
- Fixed a bug #(15866) where the Channel API could not accept an integer value of 0.
- Fixed a bug (#15557) where upgrading could fail if a custom active group was specified in database.php.
- Fixed a bug (#15077) where a PHP error could occur when deleting the only Channel Field group.
- Fixed a bug (#15896) where a PHP error could occur when deleting a Channel Field group containing certain Fieldtypes.
- Fixed a bug where dragging fields could produce highlighting on the Publish page in WebKit-based browsers.
- Fixed a documentation error (#15149) where options for creating extension setting fields were not well documented.
- Fixed a bug where the control panel search behaved unpredictably with secure forms enabled.
- Fixed a bug where using only session ids on the frontend could result in 404s in some environments.
- Fixed a bug (#15718) where the close button had no effect on the publish page fullscreen editor.
- Fixed a bug (#15256) where large numbers were displayed in scientific notation.
- Fixed a bug (#15369) where setting the autosave interval to 0 caused it to continually fire instead of disabling it.
- Fixed a bug (#15164) where errors on the publish page category editor were not displayed.
- Fixed a bug (#15103) where some modules did not respect the IP and User Agent security setting.
- Fixed a bug (#15756) where the Communicate re-send did not restore the sender correctly.
- Fixed a bug (#15809) where the MSM menu did not display correctly.
- Fixed a bug (#15810) where exported template group folders did not include the .group suffix.
- Fixed a bug (#15212) where the login success notification did not hide automatically.
- Fixed a bug (#15744) where editing categories on the publish page deselected all of them.
- Fixed a bug (#15246) where certain characters would cause the control panel search to bail out.
- Fixed a bug (#15696) where the category loop was always empty inside relationship tags.
- Fixed a bug where saving banned members could overwrite MSM configuration settings.
- Fixed a bug (#15304) where Admin -> Channel Administration settings showed for members without Channel Administration privileges.
- Fixed a bug (#15347) where file fields did not display saved data when viewing a revision.
- Fixed a bug (#15465) where the Simple Commerce module did not properly end subscriptions.
- Fixed a bug (#15863) where entry dates did not display correctly when using a saved revision.
- Fixed a bug (#15851) where submitting the ‘Convert delimited text to XML’ page in the member import generated a 404.
- Fixed a bug (#15629) where members with permission to change the group that a member is assigned to were unable to activate members unless they also had permission to delete members.
- Fixed a bug (#15563) where the advanced search form did not honor the ‘Search in’ field selection.
- Fixed a bug (#15232) on the publish page where the default day shown in the date picker calendar was improperly localized.
- Fixed a bug (#15790) where the Filemanager library could incorrectly calculate available memory.
- Fixed a bug (#15455) in the Wiki module where categories with the same name but in different branches could be created with an incorrect parent.
- Fixed a bug (#15549) where the Search module was not searching in comments.
- Fixed a bug (#15674, #15782) where package paths could be incorrectly set for Extensions.
- Fixed a bug (#15318) where the autolinker may attempt to create a URL into a link when inside an html anchor tag.
- Fixed a bug (#15840) where the get_plugins() method in the addons_model could throw an error under some circumstances.
- Fixed bugs (#15773, #15832) where a Fatal PHP Error would occur in the SafeCracker File Addon.
- Fixed a display bug on the Custom Field Groups page when no field groups exist.
- Fixed a bug (#15562) where when entries are deleted, corresponding entries in the autosave and versioning tables are not removed.
- Fixed a bug (#15871) where the view files in the SafeCracker File Extension did not load properly.
- Fixed a bug (#15836) where the email contact form would not properly return to SSL encrypted urls.
- Fixed a bug (#15337) where the corporate theme publish fields could not be resized.
- Fixed a bug (#15574) where the next/prev month button were missing from the Safecracker Calendar.
- Fixed a bug (#15811) where the comments control panel would fail to load due with large datasets.
- Fixed a bug where custom themes would not properly load under certain circumstances.
- Fixed a bug (#15924) where the “Can view comments in channel entries authored by others” member group option was ignored in the comments control panel.
- Fixed a bug (#15009) where the SAEF CSS contained relative links
- Fixed a bug where total channel entries reported in My Account were not accurate on a new install.
- Fixed a bug (#15117) where the Save Revisions button was not showing up on the Publish page.
- Fixed a bug (#15752) where the IS_EMPTY value would not work on newly added custom fields.
- Fixed a bug (#15500) where database configuration values were not being escaped on install.
- Fixed a bug (#15577) where SafeCracker wasn’t respecting status group assignments for member groups.
- Fixed a bug where uploading a file to a textarea and then to a file field would result in a bad link in the file field pointing to the same file from the textrea.
- Fixed a bug (#15529) where autosaved entries couldn’t be edited.
- Fixed a bug (#15745) where images would be incorrectly outputted when the channel’s HTML formatting was set to ‘Allow only safe HTML’.
- Fixed a bug (#15778) where SafeCracker forms would cause a Javascript error by attempting to load a view for the file chooser.
- Fixed a bug (#15737) where SafeCracker forms would cause a Javascript error when there was no logged in user and no logged in user ID supplied.
- Fixed a bug where user errors would not be sent using the selected charset.
- Fixed a bug (#15758) where the Advanced Search form wouldn’t obey ‘search_in’ or ‘where’ values if they were in standard inputs.
- Fixed a bug where the Advanced Search form wouldn’t obey the ‘category’ parameter.
- Added error conditionals to SafeCracker’s form when using error_handling=”inline”.
- Fixed a bug (#15764, #15507) where SafeCracker would not respect the channel parameter.
- Fixed a bug where MSM sites with a domain in the form of .. (e.g. .us.com) couldn’t set cookies.
- Fixed a bug (#15206) where the upload location dropdowns were inconsistent between the modal on the Publish page and the File Manager.
- Fixed a bug (#15656) where SafeCracker file fields would output a period if they were empty.
- Fixed a bug (#15936) where SafeCracker wouldn’t display captchas if the form submitted didn’t validated and error_handling was set to inline.
- Fixed a bug (#15496) where during the install of the Agile theme, the path to the /images/uploads strips out slashes altogether.
- Updated styles on comment edit page.
- Added ability to send a settings object to $.ee_filebrowser.add_trigger to restrict files based on file type and directory.
- Removed usage of the EXT constant in EE, as it has been deprecated in CodeIgniter.
- Altered the saved entry revision data to store custom field data after custom field ‘save’ processing.
- Added getter and setter method for accessing the Sessions Class $cache property. Accessing the class property directly is deprecated and developers are encouraged to update as soon as possible.
- Removed the explicit instantiation of the jQuery Table Sorter plugin on admin_content::field_edit(), as it could interfere with Fieldtype View files using tables.
- Added an auth library to simplify user authentication.
- Added path variable handling to the Template Library’s parse_variables() method.
- Modifying _ci_view_path has been worked around following developer concerns about upgrades. However, it is deprecated and quickly nearing end of support. Use set_package_path, please.
- Deprecated functions::create_directory_map(), please use the CodeIgniter directory helper.
- Removed previously deprecated member_model::update_layouts()
- Removed previously deprecated layout::remove_module_layout()
- Removed previously deprecated content_edit methods: change_comment_status, delete_comment_confirm, view_comments, view_comment.
Version 2.2.1
Release Date: June 30, 2011
- Turned off Template Debugging by default in new installations.
- Added short name auto creation behavior to channel and custom field pages.
- Moved the build date next to version number in the footer.
- Fixed a bug where new members were not logged in automatically if confirmation was disabled.
- Removed Survey from the updater, fixing a PHP bug (#15770).
- Fixed a bug (#16062) where frontend member registrations did not assign a group id to the new member.
- Fixed a bug (#16068) where the channel dropdown was truncated if it did not fit the viewport.
- Fixed a bug (#16095) where trying to change your email settings resulted in an invalid password error.
- Fixed a bug (#16066) where super admins could not be demoted by another super admin.
- Fixed a bug (#15534) where navigating the template manager with ctrl + arrow keys resulted in javascript errors.
- Fixed a bug (#16047) where {elapsed_time} and {memory_usage} were being removed with debug set to 0.
- Fixed a bug (#16094) where the query result table did not scroll horizontally.
- Fixed an incomplete bug (#15369) where the autosave interval config was not cast to an integer when set to 0.
- Fixed a bug (#15986) where watermarks still had a dropshadow with ‘Enable Dropshadow’ set to ‘no’.
- Fixed a bug where the ‘Dropshadow Distance’ setting in Watermark Preferences didn’t stick.
- Fixed a bug (#16086) where the password lockout persisted past the specified lockout time.
- Fixed a bug (#16076) where the file uploader did not properly resize when the max height or width was exceeded.
- Fixed a bug (#16043) where a database error would occur in the lost password form.
- Fixed a bug (#15991) where a PHP error would occur when deleting a file watermark preference.
- Fixed a bug where a PHP error would occur in the email module.
- Fixed a bug (#16044) where a MySQL error would occur when creating an Integer Field when MySQL is running in Strict Mode.
- Fixed a bug (#16057) where changing passwords in the member profile themes would fail for non-superadmin users.
- Fixed a bug (#16040) where the file manager modal was limited to the first 100 files in a directory.
- Fixed a bug (#16056) where lang keys were not being used for the file browser.
- Fixed a bug (#16074) where global variables would be parsed in an order that you couldn’t use them inside path variables.
- Fixed a bug (#16046) where new upload directories would not have their path and URL pre-populated.
- Fixed a bug (#16098) where field shortnames could be duplicated within the same field group when editing.
Version 2.2.2
Release Date: August 1, 2011
- ExpressionEngine version 2.2.2 is a maintenance update recommended only for membership based sites who require administrator approval for new member accounts. Version 2.2.2 fixes a critical bug on these sites where Pending members could log in and have similar permissions to members in the default Member group.
- Removed accordions from Member Groups, Member Preferences and Channel Preferences.
- Temporarily disabled the Profiler in the installer / updater while investigating an issue in certain environments where the Profiler may throw an exception and halt the installer.
- Fixed a bug (#16143) where a PHP error occurred on the Edit Member Group page when MSM was active.
- Fixed a bug (#16144) where an incorrect error message appeared on unsuccessful authentication on the front end.
- Fixed a bug (#16264) where Pending members were allowed to log in.
- Fixed a bug where groups in an MSM site that didn’t have CP access to the main site couldn’t login to the CP of any other sites.
- Fixed a bug where syncing a directory with files that have spaces in their names would break links to existing File fields and textarea fields.
Version 2.3.0
Release Date: October 11, 2011
- Fixed a potential cross site scripting vulnerability.
- Fixed a potential cross site request forgery vulnerability.
- Fixed a bug where using the MSM multi-site login feature would sometimes latch onto the wrong session.
- Removed accordions from Member Groups, Member Preferences and Channel Preferences.
- Forum search now uses board default pagination per page settings instead of using a hardcoded 20 items per page.
- Updated pagination variable pair that allows much more control over pagination within channel entries and comments.
- Member search tokens that allow you to specify different information to search for (e.g. email:ellislab.com username:test screen_name:’John Doe’)
- Added quick way to copy and paste custom field tags from the Custom Field Group’s page
- Added a hidden config variable remove_unparsed_vars which, when set to ‘n’ in conjunction with debug = 0, will not remove unparsed ExpressionEngine Variables.
- Modified legacy debug 0 setting to only remove unparsed template variables when the ‘remove_unparsed_vars’ hidden config is set to ‘y’, fixing some common issues with JavaScript and JSON getting “eaten” on sites using that legacy debug setting.
- Fixed a bug in the Metaweblog API module that was causing authentication errors.
- Fixed a bug in parsing image tag attributes that could lead to a PHP notice error when only “Safe HTML” is allowed.
- Fixed a bug in the template parser that was preventing the minified jQuery from being used in an ExpressionEngine template
- Fixed a bug where a PHP notice error would occur when debug is enabled and an invalid ExpressionEngine tag occurs on the page that only has one tag segment.
- Fixed a cosmetic IE JavaScript error (#15196) on the publish page.
- Fixed a display error in the file upload modal of the Corporate theme.
- Fixed a bug where reassignment of entries when deleting a member was limited to superadmins.
- Fixed a bug (#16083) where editing or adding categories from the Publish page did not work properly in IE7.
- Fixed a bug (#15530) where a registering member could supply a value that was not an option in a Select List member field.
- Fixed a bug (#16214) where new categories would be sorted alphabetically when the group was using a custom sort order instead.
- Fixed a bug (#16232) where the multi-entry editor did not update entry edit dates.
- Fixed a bug (#16246) where the Date fieldtype could not show an error if an invalid date was entered.
- Fixed a bug (#16239) where some buttons in the Control Panel had minor display issues.
- Fixed a bug (#16038) where the File Manager had display issues when the Corporate theme was used.
- Fixed a bug (#16265) where the Email Contact Form could fail to send in some cases if the user_recipients parameter was not specified.
- Fixed a bug (#16422) where some colors appeared incorrectly in the Datepicker.
- Fixed a bug (#16288) where http:// could be undesirably prepended to some General Configuration URLs.
- Fixed a bug (#16397) where the Add Category dialog could appear incorrectly in some cases.
- Fixed a bug (#16639) where non-Super Admins with group administration privileges could change a Super Admin’s member group.
- Fixed a bug (#16626) where non-Super Admins with profile editing privileges could edit a Super Admin’s profile.
- Fixed a documentation error (#16213) where some parameters available to exp:member:login_form were not listed.
- Fixed a documentation error (#16564) where the tag for generating comment editing Javascript was incorrectly listed.
- Fixed a typo in the Control Panel (#16403)
- Fixed a breadcrumb language key issue in the Control Panel (#16229)
- Fixed a bug where the private message inbox only displayed 5 messages per page.
- Fixed various jQuery UI display issues in the corporate theme.
- Fixed a bug where Datepicker hours before 10 were not consistently prefixed with a zero.
- Fixed a bug where sorting channel entries on entry_date instead of date ignored additional sort fields.
- Fixed a bug (#16149) where File Manager permissions would prevent someone from uploading files on the Publish page.
- Fixed a bug (#16157) where Template Access preferences would show up as being unaccessible in the File manager.
- Fixed a bug (#16183) where Wikis would show an error if all tracking was disabled. Thanks to Erik Reagan for the fix.
- Fixed a bug (#16193) where uninstalling the Moblog would cause an error due to a misnamed variable.
- Fixed a bug (#16202) where the backspace parameter in the category_archive tag was removing characters from the whole loop, not each iteration.
- Fixed a bug (#16204) where setting permissions on the closed status would not be obeyed.
- Fixed a bug (#16211) where file size was not being updated after any image manipulation.
- Fixed a bug (#16179) where images were being upsized instead of restricting the width.
- Fixed a bug (#16114) where if $config[‘debug’] was set to 0, it would not show up as an option in Output and Debugging Preferences.
- Fixed a bug (#15158) where the search excerpt field could only be selected from searchable fields.
- Fixed a bug (#15510) where creating a channel via the API could cause an error if there were no existing channels.
- Fixed a bug where syncing a directory with files that have spaces in their names would break links to existing File fields and textarea fields.
- Fixed a bug (#16264) where pending members were allowed to log in.
- Fixed a bug where groups in an MSM site that didn’t have CP access to the main site couldn’t login to the CP of any other sites.
- Fixed a bug (#16200) where forum search was returning inconsistent and incorrect results.
- Fixed a bug (#16322) where the Upload File button wasn’t working in the File Manager.
- Fixed a bug (#16380) where the arrow from an accordion was overlapping the text in the accordion header.
- Fixed a bug (#15525) where the date picker on a SafeCracker date field would always use US date formatting even when European date formatting was chosen.
- Fixed a bug where the channel names in the Agile Records themes were incorrect for both the comments and comment_preview templates within the news template group.
- Fixed a bug (#16414) where the RSS feed for a forum would only output the first forum’s posts.
- Fixed a bug (#16406) where publish layouts were breaking if you disabled comments after creating a layout. Thanks to John D. Wells for supplying the fix.
- Fixed a bug (#16363) where items on the calendar were being placed on the wrong day.
- Fixed a bug (#16388) where the file manager modal required scrolling up to view in IE7 (updated the jQuery UI theme).
- Fixed a bug (#16525) where password reset did not honor the password length requirements.
- Fixed a bug (#16539) where auto generated passwords did not honor the secure password configuration setting.
- Fixed a bug (#16116) where image files could be upsized if either, but not both, max height or max width was specified for the directory.
- Fixed a bug (#16159) where you could not edit channel entries when the forum tab’s forum topic id had been specified a 0.
- Fixed a bug (#16389) where a MySQL error occurred when displaying comments with dynamic set to off and pagination on.
- Fixed a bug (#16349) where a PHP error could occur when changing comment status and the update_comment_additional hook was being used.
- Fixed a bug (#16620) where multi-site login did not respect the return parameter.
- Fixed a bug (#16611) where a PHP error could occur when recounting member statistics if private messages existed.
- Fixed a bug where a PHP error could occur when sending private messages with attachments.
- Fixed a bug (#16515) in the comments control panel where the second page of comments for a single entry was not limited to that entry.
- Fixed a bug (#16420) where the reset_password was not properly cleared from the database once successfully changed in the forgotten password routine.
- Fixed a bug (#16592) where the file selector button on the publish page did not work when no image button was defined in the users’ html buttons.
- Fixed a bug (#16267) where the publish page spellcheck iframe did not display properly due to the failure to load a stylesheet.
- Fixed a bug (#16650) where the Moblog did not include files with upper case extensions.
- Fixed a bug (#16107) where user notepad content did not properly display.
- Fixed a bug (#16115) where the “Upload File” button on the File Manager home page was unable to be translated.
- Fixed a bug (#16144) where an incorrect error message appeared on unsuccessful authentication on the front end.
- Fixed a bug (#16102) where the file manager category filtering did not function properly.
- Fixed a bug (#16163) where the Comment Module Control Panel page was unable to limit to specific entry ids.
- Fixed a bug (#16143) where a PHP error occurred on the Edit Member Group page when MSM was active.
- Fixed a bug (#16180) where the CP Menu Help Links in the File Manager pointed to incorrect URLs.
- Fixed a bug (#15909) where usernames did not have leading or trailing whitespace trimmed.
- Fixed a bug (#16112) where a MySQL error could occur when creating a channel field and not including the ordering field.
- Fixed a bug (#16228) where a PHP error occurred in the member importer.
- Deprecated Channel_model::get_channel_categories().
- Deprecated Localize::set_gmt().
- Modified routing behavior to no longer require query strings to be enabled on the frontend. Please make sure you do not use $_GET variables on the frontend (exceptions: ACT, URL, css).
- Fixed a bug (#16350) where the update_comment_additional hook in change_comment_status() was being passed an object instead of the documented array.
- Fixed a bug (#16366) where the can_access_module() method in the member model did not automatically return TRUE for superadmins.
- Fixed a bug (#16383) where the get_channel_categories method in the channel_model was not working properly due to an invalid where clause.
- Fixed a bug in Auth::verify() where it was checking for CP access permissions on front end requests.
Version 2.3.1
Release Date: October 17, 2011
- Fixed a potential cross site scripting vulnerability.
- Modified a URL character check that was affecting third party addons to be less strict.
- Fixed several minor documentation errors including #16770, #16772, #16783, #16771, #16761 and #16318.
The rumor-mill also tells me that there are some amazing things in store for upcoming releases.
Seriously, people. Get a fucking grip. To say the EE dev team didn't get anything accomplished in 2011 is disingenuous and completely unfair. These people work their asses off day in and day out to allow you to be successful and build sites you otherwise wouldn't be able to.
Are there alternatives to ExpressionEngine, absolutely. Let's look at them.
- Rails - Need to know Ruby, DB structure and you need some sysadmin foo. You can find help in some places, but you are largely on your own.
- Django - You need to know Python, understand DB structure, and know some sysadmin foo.
So in otherwords, you need to be a developer to use both of these. Using ExpressionEngine tags doesn't make you a developer. You could use Zend Framework, but again, you need to know your shit with Object Oriented PHP. You could try to roll your own CMS, but again, you need to be able to program PHP, and not just use some methods laid out on a super object.
There's WordPress and Drupal. I've never touched Drupal, and haven't logged into WordPress in years, so I can't comment on those other than to say that chances are, you have to know some PHP.
Like I said, the EE dev team is a group of extremely bright, fantastic people. Prior to leaving EllisLab, I largely stopped using Twitter due to the constant shit-talking on work I did. Let's put it this way, how would you feel if I looked at sites you did and said you were doing things wrong, stupid and you sucked? Probably not real good. The support team is in the amazing hands of Kevin Smith. If you want to hear someone talk passionately about support, talk with Kevin. I commend him with the job he's doing. A second designer has been around for a couple of weeks.
I don't think enough is charged for EE. The user-base is huge and everyone who uses it is an expert at what it should do. Funny how things never seem to match up.
So finally to my point. You can disagree with what EllisLab has done, but know where to point the fingers. Executive teams make these decisions and stand by them. Les has said he wants to be the guy to blame, and James Mathias has proven he wants to hear from people. Les and James are my friends, and two amazing people. Secondly, they are at the helm and great listeners.
Have meaningful conversations with the people at EllisLab who are in charge of change, don't throw the developers or the support team under the bus. Their work puts food on your table as well as theirs. Remember that. Let's stop rehashing the same shit every few months. If you want to see change, do something about it. Don't be a dick on the internet and say the people in the trenches aren't doing anything.
I don't want this to be any kind of sounding board, so comments on this post are off. Make positive change and contribute to the solution, don't be the problem.
Happy New Year,
-greg