So what's been added, changed or updated in this new release?
Here's a list of the important things added, changed or updated in K2 v2.10.0.
- New, refreshed, backend design for the K2 component, modules and menus. The new design is 98% identical on all currently supported Joomla releases (1.5, 2.5 & 3.x) and improves your workflow substantially, overall making the process of managing content with K2 more enjoyable than ever.
- All modals and content selectors have been re-worked. New unified modal for selecting items, categories, tags or users in K2 or other extensions that integrate with K2.
- Massive code restructuring, as we pave the way towards Joomla 4 compatibility.
- Improved compatibility with PHP 7.2 & 7.3. If you get any "countable()" warnings in your site's frontend, you need to compare your K2 template overrides with the source K2 overrides and adjust any PHP check added next to "count($whatever)" uses.
- Twitter cards & Google Structured Data support added for K2 items in the frontend. Keep in mind that Google Structured Data is supported for 3 content types out-of-the-box (article, news article and blog post). If you wish to utilize the other content types included, you'll need some plugin to extend K2's item form with necessary fields, as required by each content type spec (e.g. a "product" requires a price field, reviews etc.). A commercial plugin will complement this K2 feature in the coming months...
In more detail...
Bugs fixed:
- Fix broken language filter in SQL query in the K2 Comments module
- Fix check for non-valid (placeholder) custom link in K2 Content
- Retrieve unique items in all frontend itemlists
- Updated JS libs, swapped CDNJS with jsDelivr & jQuery CDN (both GFW friendly)
- Properly render content plugins (Joomla & K2) in the item gallery and media output
- Improve plugin parsing in the K2 Content module
- K2 User module: Fix menu fetching in J3.x latest
- Fixed K2 URL router to properly fetch all menu items when used in a multi-lingual J3.x site
- Fetch entire extra field group lists in backend forms
- Fixed CSV field loading in extra field edit form (previously broken)
- Don't enforce a published state for social media sharing buttons on install/upgrade when an option is uninitialized
- Fixed: When you press enter to confirm the tag entry - JCE editor gets enabled/disabled on every Enter press
- Fixed: Meta data set in the menu item should override any item specific values
- Don't attach OpenGraph namespace if it exists already (K2 System plugin)
- Fixed K2 items getting unpublished after being edited in the frontend (even though permissions were correctly set to allow for editing)
Performance:
- 50% less SQL queries (e.g. for the itemlist view) - sites using InnoDB will benefit even more from these changes
- SQL schema updates (improvements) for new installations
- Optimized theSQL query for retrieving authors in the backend (e.g. in filters, edit forms etc.)
- Added the ?m, ?amp, ?tmpl, ?template params as URL params for distinct caching in all frontend component views
Backend:
- New unified modal selector (as described earlier) - makes working with modules a lot easier and it's there for 3rd party developers to utilize in their own extensions that interface with K2
- Enlarged SIGPro modal in the item form
- Better checks for same item aliases when Advanced SEF is enabled in K2
- Moved SEO options to their own tab in the K2 Settings
- Added option (in new SEO tab in K2's settings) to control canonical URLs
- Added more plugin events in the category edit form
- Display the language code next to category names on all category dropdowns
- Enlarge the media modal selector & media manager (now covers all available screen space) - see screenshots below
- Improve attachment saving (item form) - resolves naming bug when saving a combination of uploaded files with files selected directly from the server
- Backend - User lists: add avatar preview (as on items, categories etc.)
- Backend - Simplified new extra field group creation in extra field form
- Backend - Show the generic size of an image in the image tab
Frontend:
- Display item tags on the tag.php layout - also added control in K2 Settings for the tag layout
- Sort related items (in item view) by ID, not by date created
- Fix frontend editing permissions related to editing already published items
- Display the attachment filename if no title and/or title attribute is set (previously showed as blank in the frontend)
- Google Structured Data - can be overridden per category/item
- Twitter card support
- Change comment sorting in mod_k2_comments' latest option by comment ID
- Allow multiple itemform.php overrides per "theme" (sub-template) folder
- Removed Google+ button
- ...and replaced with LinkedIn button
- Updated FaceBook like button and added "Share" option
- Enabled image timestamp by default on modified items
- Slight improvements to the comments report function in K2
- Load frontend editing using the system template (better template compatibility & less CSS conflicts)
Backend UI Redesign:
- New sidebar design
- Normalized forms/identity overall for a more enjoyable content management workflow
- Shorten filters length in backend lists
- You now get more screen "real estate" thanks to these changes
- Added a "no content" placeholder message when there is no data to show (e.g. no tags used)
API / For developers:
- Combined all HTML/Feed/Raw/JSON views for a unified data output set. Previously there were inconsistences on the data output e.g. between HTML (site) and JSON views.
- JSON/Feeds: Dynamically change the pagination (item limit) but protect from large limit requests - Allowed for simplified paginated results using "page"
- Set image per feed item as an enclosure object
- Add "onAfterK2DeleteAttachment" event for K2 plugins when deleting an attachment
- Set Google Structured JSON data as param in the item (for extending with plugins et al)
For the OCD folks (like your truly
- Since dozens of files were refactored, we took the opportunity to reformat the code in all PHP files according to PSR-1/2. It's damn poetry I tell you
- HTML overrides have also been reformatted to be properly indented.
- Spaces have won over tabs. Don't debate it.