1. Backend / component & modulesGone is the dashboard. When you click on K2 you now go straight to the K2 items list. The dashboard was nice, but we prefer practicality. And this is something some hundred professional journalists will agree on (yes, we prefer live guinea pigs!). Plus it was more practical to use the K2 Quickicons module in your Joomla! control panel (aka the one dashboard you should see in your site). Since we killed the dashboard, the statistics table is now moved into a new backend module, K2 Stats. This module displays handy information like latest posted/most popular/most commented items, latest comments and general statistics like how many items, categories etc. you have in K2. This information is all displayed in tabs and you can show/hide them as you see fit. Plus you can copy the module as many times as you want in the backend and have different information displayed into a different position.
The K2 menu entry in the backend will now reveal a sub-menu to inner K2 pages like categories, comments, tags etc. Makes browsing faster.
An important upgrade in the backend is the introduction of the K2 Media Manager, powered by the amazing open source media manager, elFinder. By incorporating this ajax based media manager into the K2 backend, not only did we improve K2's workflow, but we basically rendered the Joomla! media manager obsolete. With the K2 Media Manager you can upload, rename, delete any allowed file type, you can create compressed archives in zip format, uncompress archives and the list goes on (image resizing is coming in v2.0 stable of elFinder which we will incorporate into K2 when the time comes). And we've also integrated this media manager into all "server file browsing" needs in K2 (item image/media/attachment tabs and category image).
Other improvements include the slight redesign of the item and category edit forms. For example, the "title" box is now longer and uses bigger fonts so you don't scroll left/right with the mouse cursor.
We also added the option to directly use a file on your server as a K2 item attachment (yes, the file is moved into K2's folder structure). The image gallery tab now supports the newest Simple Image Gallery Pro versions and you can even attach remote Flickr photosets in your K2 items. The "video" tab is now the "media" tab as we have enabled the rendering of video AND audio files there (by using both AllVideos features for the frontend playback). Rating and hits can also be reset at the top-right block when editing an existing item.
Assigning an item to another user is no longer restricted to backend users only. This means you can edit any item in the backend and assign its ownership even to frontend users only. This comes handy when you want to moderate content contributed by users in the frontend. Before K2 v2.5.0, you would not be able to edit such an item and restore its original author, as you simply could not select that (frontend) author.
The category edit form is upgraded to include "metatag information" parameters, a much requested feature in the K2 Community. We have also extended the parameters for "related items by tag" (in the "Item view options" slider), adding switches to show/hide the title/author/category/introtext/fulltext/image (any size)/media/image gallery of the related items. Think "visual" related items in your frontend. The parameters for the social icons and the "tweet this" link in the frontend have been replaced by native social buttons from the 3 current major social networks: Twitter, Facebook and Google+1. You can still keep the old icons in your frontend overrides but there are no options to control these anymore. You'll also see 2 new blocks for the width and height of the audio player, in case you upload audio files in your K2 items.
An important change in the category edit form is item ordering in the "Category item layout" slider (the first one in the right). We have added a new option called "Featured first". If you set this ordering option, your featured items will break away from the ordering of items in a category. Think of this option as "pinned" or "sticky" items.
In the categories list you will also notice that there is now a new column, indicating the category from which some category inherits parameters from. This just makes troubleshooting parameter inheritance faster when you're switching tabs in your browser between frontend and backend.
There is now a "copy" function in the categories list to quickly multiple existing categories.
In Joomla! 1.6/1.7, the items and category lists have the language switch.
The user manager further improves Joomla! user management as you can now perform talks like batch user moving to new Joomla! and/or K2 user groups, and batch user enable/disable. Yes, these are actions missing from the Joomla! user manager (both in Joomla! 1.5, only the first in Joomla! 1.7).
There are no changes in the User Groups.
In "Extra Fields", we have added 3 new "extra field types":
- CSV (uploading) to display tabular data in the frontend
- Searchable Labels: these are basically "tags" for extra fields. If you add such labels in items, you will see that they are "linked" in the frontend, meaning you can click on them and K2 will display all items matching this label. This extra field type is very handy for creating rich catalogs and directories.
- Date: This extra field type will allow your users to add formatted date fields into extra field data, so you can process it as you see fit in the frontend.
There are no changes in the Extra Field Groups.
The Information page has been slightly enriched.
2. Backend / K2 ParametersThe K2 Parameters (launched from the button top right in all backend lists) have had a major facelift, with new options being added to improve on existing functionality.
The first major change you'll notice is the use of tabs, to make editing these parameters easier. And this is constant across all Joomla! versions. The tabs organize options in "major logical groups", like Layout & Views, Content, Images and so on. Since K2 now uses jQuery, you will see options to enable/disable it in the Layout & Views tab. In the "Content" tab we have added an option to secure your users email addresses in RSS feeds. You see, there is a somewhat wrong approach used in Joomla! regarding the use of email addresses in RSS fields. The feed specs for RSS or Atom "require" the use of the author's email address. But this exposes users' email addresses in public and especially in bots collecting email addresses to send you spam email later on. To bypass that "somehow", Joomla! allows you to just use your site's email address, as entered in the Global Configuration options. You don't wanna use a bogus email address there as various extensions may use it (e.g. newsletter components). So we added the option "Use bogus email address to prevent spam bots from collecting author email addresses from feeds" which pretty much does what is says… If you don't enter anything there, K2 feeds will simply inherit whatever value you have setup in your Joomla! Global Configuration options. Good luck with the latter…
In the "Images" tab you'll notice an "advanced image settings" section. The first option allows you to use K2 with CDNs trouble-free, the second one allows you (if supported) to increase the memory limit of your server, as we've noticed large images (e.g. bigger than 8MP) may need more than 32MBs of memory for PHP.
In the "Social" tab there's a new option for "Facebook image size". This sets the image size all your K2 items will "transmit" to Facebook when "liked".
In the "Comments" tab, we've added options for comment reporting (to any email address you choose), plus an option to allow "inline comment moderation" in the frontend (approve/remove comment). The default "comment form notes" have moved into language files, but you can override them with your own message.
In the "Advanced" tab you'll notice that we've moved there the reCaptcha options under the "Anti-spam Settings" section. reCaptcha is now also integrated with the user registration form, under popular K2 users request.
Continuing in the "Advanced" tab, a new setting allows you to filter items in the K2 Items page (in the backend) by tag. This makes managing your tag-centric content a lot more useful. Don't wanna show the "import" buttons to fellow super admins? There is now an option to hide them completely in the backend. The "Cookie domain" option allows you to set a cookie containing a logged in user's ID. This comes handy especially in high traffic sites with CDNs, that require an additional method for checking a user is logged in. Something which we consider should be standard in Joomla!, to be honest. Finally we have extended the integration with sh404SEF by adding new options used by the popular SEO/SEF extension.
You'll also notice that we now have 2 distinct options for hiding the item form sidebar, one for the frontend and one for the backend. So you can use them separately...
3. Backend / K2 Menu OptionsIn v2.5.0 we're introducing a new menu type for K2: "Item edit form". This menu type allows you to create a menu for your registered/logged in users pointing to the creation of new items, with the category preselected. See how we use it here on the new getk2.org (you need to be a registered user).
Please note that this menu type was created to primarily be used with the "K2 User" module (mod_k2_user - which will soon replace mod_k2_login). You see, mod_k2_user allows you to render any Joomla! menu inside it, along with the default options to add a K2 item, moderate own comments etc. This means you can use this module to essentially create a "user toolbar", like we do here on getk2.org. All links in that rendered menu pointing to the "Item edit form" will open in modal boxes. If you render the same menu through the Joomla! menu module, you'll notice that the item edit forms open up in a new tab/window.
(Paragraph edited October 25th) The last 2 important changes in the K2 menus relate to the "tag" and "user page/blog" menu types and the new flexibility you can have by selecting a specific sub-template to use for different menu links. This means 2 things for tags: a) We have split the tag layout from the generic.php template and now it's inside the "default" template folder in K2. b) You can now have completely different layouts between tag listings, a much requested feature, especially on more complex K2 site creations. For "user pages/blogs" it means you can now apply different layouts. The user.php template is not chnaged, but it's moved into the "default" sub-template folder.
Also check out the new "K2 featured items first" ordering option in the K2 category/categories menu type.
4. Frontend / EditingCoupled with the new menu type for "Item edit form", frontend editing in K2 has become slightly better. We have also improved the form designs to make them more neutral (item edit form and comment moderation) and consistent across all Joomla! versions. Part of the frontend editing process is inline comment moderation, the parameters of which were mentioned as part of the K2 parameters a few paragraphs above. Permissions are tighter regarding the use of the new K2 Media Manager, e.g. a user cannot delete existing files on your server's primary image folder (e.g. in /images or /images/stories). Just make sure you also block similar activity in your preferred Joomla! editor as well (e.g. JCE allows you to restrict uploading files in the frontend, so should other editors).
The "add item" and "edit item" links are now presented as buttons. The latter is right-aligned to the item title by default, as previously it was easy to confuse for which K2 item the edit link was, e.g. in an item listing case (category).
The frontend item edit form layout has been moved into the "Default" sub-template folder. This means you can have different item edit form overrides per site section, user group and so on. Imagine different submission forms for "blogs" and "documentation" posts!
5. Frontend / Component Layouts (Templates)As already mentioned in the backend component forms and parameters, we've extend the content options for related items. By default, all these options (except the title option) are disabled so they don't break any layouts. Check out the default K2 templates for a hint in the code at item.php (and the K2 CSS), on how to create a horizontal scroller for related items with title, image and much more, all beautifully integrated to existing designs and Joomla! templates.
There are the new social buttons (all native) from Twitter, Facebook and Google+1, all configurable on a per category basis. We have moved the "hits" counter on the left of the "modified date". The "tweet this" link and small social icons are gone.
(Paragraph edited October 31st, 2011) If you enable comment reporting, public or registered users can report bad comments to some moderator. reCaptcha makes sure the report form is not abused. All HTML in comments is now filtered, except for valid URLs which are processed as links.
The video block is now the media block, as you can use both video and audio with the help of AllVideos (as usual).
Attachments also got an interesting and useful update. We no longer use a generic "attachment id" in the download link. Previously, this made it easy to guess and therefore download other attachments from your site. So it was practically impossible to use the attachments feature in a site that required membership to allow file downloading via K2 attachments. In this new version of K2, attachment download links (URLs) contain scrambled characters so it's impossible to guess nearby attachments, "opening the door" to K2 extensions making use of attachments e.g. for allowing/selling digital downloads (K2 Store?).
The tag layout has been separated from the generic layout and is now inside the "Default" sub-template as tag.php. We highly recommend you migrate your tag styling from the old layout to the new one. If you haven't styled the tag layout, you don't need to do that. The tag layout now uses its own set of CSS rules.
(Paragraph added October 25th) The user.php layout has also been moved into the "default" folder (see K2 Menu notes above), but the layout is not changed and there's backward compatibility for those who still have user.php one directory above the "default" folder in their overrides. In other words, if you have already created an override for user.php, it will still work.
User registration can be additionally secured with the inclusion of the (free) Google reCaptcha anti-spam system.
As you can understand, the frontend layouts have changed very little, with the exception of the tag layout and the inline comment moderation controls, so existing websites (and Joomla! templates) will not look different after the upgrade. You may not see all the new functionality if you have custom overrides, but the process to migrate the changes is a matter of a few hours tops (not days!).
6. Frontend / ModulesAll modules now have a common "user image/avatar" control. No need to resort to CSS hacks anymore just because you want to show user avatars different in 2 different module instances of the same page.
The K2 Comments module is now able to display a commenter's real name or username. In the "latest comments" option, commenters who are not members of your site will still get a link in their name to the URL they declared. Don't worry, there's a rel="nofollow" under the hood to avoid whetting the apetite of spammers.
The K2 Login module has now be cloned to the K2 User module. Technically speaking, "K2 User" is better that just "K2 Login", especially when if you consider this module primary "talks" to com_user and that it offers a logout option… I know, terminology FTW! In any case, you don't need to update anything right now, just bear in mind that v2.6 (coming in months from now) will only have "K2 User" in. You just need to swap any module instance you have with "K2 Login" to "K2 User". The code in both modules is identical. An improvement to these modules is that you can now render any Joomla! menu inside them. So you can easily use the "K2 User" module to create a user toolbar with predefined "actions" coming though some Joomla! menu. Any menu links pointing to K2 item forms open up in modal boxes. Add to that the ability to now override the item edit form and you can start connecting the dots on how to build a cool community with diverse user generated content, all in K2...
The K2 Tools has had a significant improvement in its "search" option. You can now use this module as a search box and restrict all search queries to certain, preselected K2 categories. This is ideal when you have distinct sections in your site, e.g. one for public user and one for registered users (intranet?). You don't want either group to search and see results from all K2 categories but only from the ones they are allowed. Clean and simple. The search box can also function as a live search box, e.g. you see search results/suggestions as you type your search query. Finally, we have added a new functionality: a simple text box to insert any custom HTML/JS/CSS or even PHP code you want. The text box even supports plugin processing (parsing), so if you wanna display e.g. a video in a side column, you can use AllVideos plugin tags to do just that, the easy way. It's just a complimentary feature to mod_custom in Joomla!.
K2 Users remains the same.
In K2 Content which simply extended the option of adding a link at the bottom of the module. Instead of a hard-coded link, you can now select to link directly to some menu item. And if you add a "custom link title", it will override the menu item's title. So now you can now, e.g. fetch a list of items from your latest news category in K2 and also attach a link to that category at the bottom of the module that says something like "more in this category". Linking to a menu item instead of a hard-coded link just makes it easier when you migrate a K2 site from one folder/server/domain to another.
7. Under the hoodPERFORMANCE
- Improvements of up to 500%, more noticeable in complex site structures (e.g. sites like OnSports.gr).
- We now use better K2 component caching in the frontend when users are logged in. This is actually one of the major bottlenecks in Joomla! component design regarding performance. You see, Joomla! will turn off caching by default on all components and modules, when a user is logged in. This is actually bad practice from a "performance" aspect, if you think about it. Users may log into your site because you require user registration to allow e.g. comments. In that case, there is no reason NOT to cache the component's parts that, well, don't need caching. All the content except the comments do not need to be freshly generated from the database. We call this "K2 exteme caching". However we turn off part of this extreme caching option if a user has editing rights in K2, as in that case, you do want your user to see cached content where they have editing rights! We still maintain separate item caching if a specific user does not have the rights to edit it.
If you don't have any editing rights in the frontend, we cache the shit out of everything where we can, cause every database query counts. And that's why K2 can serve content to millions of users in big deloyments that cost a lot less compared to similar implementations with Joomla! core article system and of course way better compared to Drupal or Wordpress. You need a cluster to run a site like OnSports.gr in Drupal with dozens of millions of visitors per month. With K2 it just needs 2 VPSs that cost as much as 1 physical server… Beat that D!
- Removed all script blocks inside the <body> tag, in both the frontend and the backend of K2.
IMPORTING JOOMLA! ARTICLES
- When you import your Joomla! articles (com_content), we make sure to convert any meta keywords (as entered in "meta information") into K2 tags. If you are migrating a site with dozens of thousands of Joomla! articles, we highly recommend you increase PHP's memory and execution time limits.
- "Uncategorized" articles in Joomla! 1.5 are properly migrated into a K2 "Uncategorized" category.
- Added rel="nofollow" to print and e-mail links in item.php to avoid indexing of duplicate content.
- Added rel="nofollow" to external commenter URLs in latest comments lists.
- Added rel="author" wherever in K2 we have a link to a K2 user page.
- Fixed template/layout bugs relating to non-existent or half-complete checks (if/else statements)
- Fixed all reported frontend and administration bugs, up to (late) Sept 2011.
- K2 has reached a significant milestone here. We are happy to have more than 40 translation teams in the K2 project on Transifex. A big thank you to our translators!
Enjoy K2 v2.5!