-
Posts
70,143 -
Joined
-
Last visited
-
Days Won
649
Content Type
Downloads
Release Notes
IPS4 Guides
IPS4 Developer Documentation
Invision Community Blog
Development Blog
Deprecation Tracker
Providers Directory
Projects
Release Notes v5
Invision Community 5 Bug Tracker
Forums
Events
Store
Gallery
Everything posted by Matt
-
We've added a lot of exciting new functionality to IP.Board 3.2.0 already, such as tagging, shared media, enhanced calendars, "like" for posts and much more but we also haven't forgotten the most important part of the user experience: the interface. A good example of re-working certain interface elements to improve work flow or to make a common task less daunting is the forum management screen in the admin CP. We've not added a bunch of new features or radically altered how it works but we feel that we've made a significant improvement on the interface and thus the experience. We felt that the current forum management screen was very cluttered and the forms to create or edit a forum were a little confusing and not a little daunting as you are presented with a whole page of configurable settings and buttons. Here's what the new overview screen looks like: Better use of color and spacing makes it much cleaner and more readable. The create a forum form is now split into three distinct sections to break down the information: Of course, all the usual functionality is still present: the ability to re-order forums and categories, resynchronize data, etc. This is just a single example of our commitment to improve the user experience in all areas of the board. Feel free to comment on this blog entry below or, if you have feedback unrelated to this blog entry, start a new topic in our feedback forum. Be sure to check the What's New in IP.Board 3.2 topic for a running list of announced changes!
-
We added a notifications system in IP.Board 3.1.0 and it's been a very popular addition allowing your members to select the type of notification they receive for specific events like a new personal message, quoted post, etc. However, we've received a lot of feedback since and we wanted to make some enhancements to address some common issues. I'm happy to say that we've completed a lot of interface work in this area and we feel we have a much better system. The actual functionality hasn't changed. You can still elect to receive and/or a personal message, email or inline notification for certain events and you can still elect to receive an inline 'pop-up' (it's actually an inline javascript modal box but we've retained the familiar phrasing) when you receive a new inline notification. Many members set their notifications up so they receive an inline notification with pop-up when they get a new personal message, for example. Interface As IP.Board 3.2.0 has a completely revamped skin, the actual "PM count" and "Notification" boxes have been removed from the drop down icons and placed with a high visibility count. Please keep in mind that IP.Board 3.2.0 is still in heavy development so this interface may change between now and the first release. Here's what you'll see with some new personal messages and new notifications: And here's what you'll see without any notifications: Regardless of if you have any new messages or not, clicking the inbox link will bring up a list of recent personal messages: Likewise, regardless of if you have any new notifications or not, clicking the notifications link will bring up a list of recent notifications: The inline 'pop-up' has been re-styled: Enhancements The eagle eyed among you may notice that the new inline pop-up contains the proper personal message text and not simply a copy of an email that could be sent out. We've made it so each notification can have 'meta data' attached to link the notification to the piece of content. This means that the pop-up can correctly fetch the live data without any additional mark-up or text. More excitingly, we now mark the notification as read when the personal message has been read. This was a long standing complaint about the system and I'm pleased to say that we've now addressed this. We've also changed how the 'red alert' counts work. In the old system, when you viewed the notification drop down, the count and the menu contents were removed so that on the next click, it would tell you that there were no notifications to view. We've now changed that so the count will disappear when you click the link, but the actual contents will remain so you can go back after a page reload and view it again. Likewise, previously the 'new' personal message counter didn't vanish when you viewed your inbox. Now, when you click the inbox link the alert count will disappear but the drop down will show you the recent messages still. They are highlighted with a blue background in the screenshots above. We feel this makes the alert system much more useful as you truly only get alerted when there is new content you've not acknowledged without losing the read/unread status of each item. Recap To recap the new functionality: - Redesigned inline pop-up window - Inbox link available at the top of the page at all times - Notification link available at the top of the page at all times - 'Alert count' for each only shows content you've not acknowledged. - Once you've viewed the drop down list the alert count is removed until fresh content arrives. - Reading a personal message will mark any associated notification as read. We really hope you enjoy these enhancements and that you find them very useful to keep track of new content or items requiring your attention. Feel free to comment on this blog entry below or, if you have feedback unrelated to this blog entry, start a new topic in our feedback forum. Be sure to check the What's New in IP.Board 3.2 topic for a running list of announced changes!
-
As work progresses on the new interface for IP.Board 3.2.0, we can now go into some more detail about the new functionality that's already been added. I must of course stress that the only screen shots I can show are closely cropped to not reveal too much and please keep in mind that IP.Board 3.2.0 is still very much in development so some details may change before the public reveal. Tagging An incredibly popular request has been the ability to 'tag' content with special keywords and then find other content tagged with the same keywords. This gives a secondary way to organise data beyond the administrator defined 'categories' and 'forums' set up. We're very pleased to say that this functionality is now available in IP.Board 3.2.0 and we've spent some time to make sure we have a robust and thoughtful implementation. A tale of two modes Our tagging implementation is available in two modes: - Open Mode: Where allowed, your members can create new tags on-the-fly and add them to content. - Closed Mode: Where allowed, your members can select from pre-defined tags and add them to content. We feel this gives you the best of both worlds. Some communities may not need a full tagging system, but you may wish to enforce secondary categorisation via pre-set tags that you as the administrator control. Alternatively, you may wish to throw the doors open and let your members tag their content as they see fit. The choice is yours! As you'd expect, this feature comes with many controls. You can define the minimum and maximum number of tags per item, the minimum and maximum length of each tag and more. You can even override the pre-defined tags on a per app (and thus per-forum) basis giving full control over the tagging system. Prefixes Another very popular feature request is the ability to assign a custom or pre-defined prefix to a piece of content such as a topic or blog entry. In many ways this works very similarly to tagging so we've created a single system that allows the use of a tag as a prefix! As you'd expect, you can disable prefixes and tagging on a per member or per group basis giving you complete control over your members' permissions. You can even set the system to be used solely for prefixes by limiting the number of tags to one and enforcing the use of pre-defined tags. It really is a very flexible system. This screen shot shows how you add tags when creating a new topic. This is in 'open' mode with prefixes enabled. This shows a topic that has been tagged and a prefix added. This shows the search page which is shown when you click a prefix or tag. This shows the Admin CP settings page. This shows the per-forum settings. We hope you enjoy this new functionality. We'll be rolling out tagging in our applications once IP.Board 3.2.0 has been released! Feel free to comment on this blog entry below or, if you have feedback unrelated to this blog entry, start a new topic in our feedback forum. Be sure to check the What's New in IP.Board 3.2 topic for a running list of announced changes!
-
Of all the features we receive feedback on, view new content receives the most. To many this is their primary browsing page and it's vital that it works accurately. We've had database level topic tracking for many years. It was introduced in 2.0 and has gone through many refinements for efficiency and accuracy. We rewrote the system in IP.Board 3.0.0 as a global framework that all applications can use via a small extensions file. This provided great flexibility and a centralized storage area for the marking data. However, there were some technical limitations which made 'View New Content' a little unreliable in certain situations due to the partial reliance on cookie data to provide a full picture of what is unread. Another common complaint is that partially read topics 'vanish' from the view new content list as they are marked read even when some pages are left unread which leads to confusion about which topics have been fully read. As always, we listen very carefully to feedback from our customers and this feature kept coming up time and time again so I'm very pleased to say that we've tackled these issues head on in IP.Board 3.2! Improved View New Content Tracking We have rewritten large sections of the view new content tracking and parsing to make it much more accurate. We now fetch the data in a large chunk and then post process it against the topic marking table to ensure complete accuracy. This means that you won't have 'read' topics showing up in your view new content list again. Sphinx Usage We have added a setting to enable Sphinx users to use plain SQL View New Content to avoid the 15 minute 'delay' in the results due to the delta indexes being cycled. The SQL view new content is incredibly efficient so you can still use Sphinx for the general search areas but give your members instant view new content results. Improved Topic Marking Purely based on the feedback we've received from our customers, we've implemented a change so that a topic with many pages isn't marked as read until the last page has been loaded. This means you can partially read a topic and come back to it later. We've made it even easier to locate your last read position with a handy link on the topic page. Improved View New Content Overview Another common source of confusion was our two areas "View New Content" and "View Active Content". Most people were confused by the difference and ended up loading the wrong view to locate their unread content. We have now merged these views into one single "View New Content" page. This will instantly resolve that confusion and make it much simpler to fetch the data you are looking for. The view new content page remembers your last selection preferences and stores them in the database so next time you load the view new content page, it'll automatically use those preferences. There's no need to go into your User CP to set them anymore! Filter by "Followed" items only In a future blog entry, we'll discuss the change from "Watched Topics/Forums" to "Follow" but for the purpose of this entry, assume that they are synonymous. In IP.Board 3.2.0 you can now elect to filter the view new content result set by items you follow. This will search forums and topics you are following (in other words, 'watching') and present topics inside forums that are new or topics that you're following that have new posts. This makes the view new content area much more useful as it is delivering just the content that you want to read. Please remember that the screenshots are taken from my development board and I've made little effort to 'style' the new additions as we're planning an interface update to some of these areas. This shows the view new content page showing all unread content from items that I follow. I am following the forum "A Test Forum 2" and the topic "Test counters" but I am not following the forum "Sub Forum". This shows the 'view first unread post' link available on partially read topics. Clicking it takes you to the first post that you haven't read based on marking data stored in the database. We really hope that you enjoy these new features and improvements and please keep posting your feedback, we really do listen. Feel free to comment on this blog entry below or, if you have feedback unrelated to this blog entry, start a new topic in our feedback forum. Be sure to check the What's New in IP.Board 3.2 topic for a running list of announced changes!
-
In IP.Board 3.0.0 we added a reputation system. This allowed your members to "up-vote" and "down-vote" a post's "reputation". This not only allows you to quickly identify "valued" replies but you can also elect to filter out replies below a certain threshold. This system has worked very well over the past few years and our own community receives many hundreds of positive votes for good or helpful content. It's a nice visual way of saying "Thanks!'. We have extended this system in 3.2.0 to add a new reputation 'mode' selectable from the Admin Control Panel. This new mode works in the same manner as a "like" system often seen on social networking sites. This "like" system is an even better visual way for identifying good content and makes it more personal by leaving your name in the "like" list rather than it being an anonymous donation. Here are some screen shots: Note: the following screen shots have been taken from my local development board. Expect the final interface to change Here you can see that I've "liked" this post along with some other members. Clicking the '1 other" link brings up an inline pop-up showing exactly who has "liked" this post. Here's a brief video showing the system in action: We hope that you "like" this new enhancement to our reputation system and find it brings a new level of interaction with your members. Feel free to comment on this blog entry below or, if you have feedback unrelated to this blog entry, start a new topic in our feedback forum. Be sure to check the What's New in IP.Board 3.2 topic for a running list of announced changes!
-
IP.Board 3.2.0: Text Editor Part III / Live Topic Replies
Matt posted a blog entry in Invision Community
This entry rounds up our series of blogs on the new text editor and how we've enhanced other areas of the interface that use it. I recently introduced the new text editor and then showed you some basic integration such as fast reply and instant quote. I want to now show you the last piece of this feature set and resolve a common issue when making a reply. Quite often you're on a busy board such as ours and you're using the fast reply to make a post and when submit the post you realise that others have posted in the mean time making your reply either redundant or out of context. To solve this, IP.Board now checks at regular intervals to see if any new posts have come through and if so, you can add them to the page. This screen shot shows the inline notification stating that there are new replies. Clicking on the link adds the replies into the topic. This video shows the system working. Note, for this demo I increased the polling frequency to every few seconds. So how does it work? Will it crash my server? It's a bit clever and no! When you start typing you trigger the polling action which checks every 3 minutes for new posts. This is a very fast and light query that requires far fewer resources than a simple page refresh. It will continue polling until you either add the reply or an hour has passed. We added this upper limit to prevent instances where a reply is started but then the member changes tabs, etc. I hope you enjoy this feature and all the new functionality we've added in this crucial area. Making posts is the very lifeblood of your forum and making it easier to contribute can only increase the number of posts made. Feel free to comment on this blog entry below or, if you have feedback unrelated to this blog entry, start a new topic in our feedback forum. Be sure to check the What's New in IP.Board 3.2 topic for a running list of announced changes! -
One of our main goals for IP.Board 3.2.0 is to streamline the interface and make it easier to work with. We're also taking full advantage of modern techniques to ensure that IP.Board has more of an application feel by eliminating page reloads and using rich web technologies. We've revamped the photo editor to make it easier and simpler to use. The first thing you'll notice is that if you've connected your forum account to Twitter and/or Facebook, you can quickly select to synchronise your photo with the service on the same page. We're also using square cropped images for the user's photo for a more uniform feel and you can adjust the crop viewport if the default center crop doesn't catch all the detail. Here's the new photo editor complete with all the options available to me for my photo. After uploading a new custom image, I can quickly re-crop it to better capture the relevant portion of the photograph. And finally, here's a little video of it in action! We really hope you enjoy this new interface and we're sure it'll make changing your photo an easier and more pleasant experience!
-
I recently introduced the new text editor in 3.2.0. This new text editor brings a robust rich text editor coupled with custom BBCode and an auto-save feature. Today, I wanted show some user interface and usability improvements we've made in this area. Firstly, where space is tight or where you don't want to be overwhelmed with the text editor, it is shown 'minimised'. The screenshot below shows this minimised state and the editor looks just like a regular HTML text area that everyone is familiar with. Upon clicking the text area to begin making your post, it'll expand into the full editor ready for use: We've also gone ahead and added 'Ajax reply' and 'Ajax quoting'. This improves the responsiveness of IP.Board by removing the page reloads and gives it more of an 'app' feel by posting and updating the page instantly. I've taken a short video of this in action. Please note that you are viewing an in-development feature so the final design is not set for both the board and the editor and also that I'm currently working in "development" mode with CKEditor which means that there is a slight pause as it loads. This will not be the case when we package it up for release. We hope that you enjoy these enhancements to commonly used areas and that it makes a common task more enjoyable. Please do keep in mind that cosmetic style issues and such will be addressed in future blog entries.
-
Nearly ten years ago, IP.Board shipped with a pretty advanced functional editor that allowed you to quickly format your text in a rough "WYSIWYG" format. This was an exciting technology. As the main browsers started adding better support for this functionality we updated our own code to keep up. The internet is a constantly evolving space and web browsers and technology rise and fall and keeping up with these changes gets harder and harder. This is why we've added a new editor to 3.2.0 that is developed by a dedicated team outside of Invision Power Services. IP.Board 3.2.0 will come with the excellent CKEditor as standard. It's a well developed and well tested editor that is very extensible. It's constantly updated which means that we simply have to update the version that comes with IP.Board to get all the latest fixes. In general use, the new editor is much better at "WYSIWYG" (rich text editing) than our own current implementation and we've extended it further. Please keep in mind that the screenshots and videos below are using a very early development copy of IP.Board 3.2.0 and the editor will likely be skinned in a little more to match IP.Board before we release. All the usual IP.Board tools are present We've written a lot of plug-ins so that no functionality is lost. You can still create custom BBcodes and add buttons to the editor easily via the Admin CP and you can still use your own smilies. Switching between modes We love the new editor and as it supports nearly all major browsers, it's the first choice for replying and adding new topics. However, there are times when you want to edit the BBCode directly and with that in mind, you can switch between rich text editing mode and simple text mode without a page reload. Auto Saving Text A new and really handy feature we've added is auto save. As you type, the editor checks to see if there's any new content and if there is, it'll ping off via Ajax to save what you've written. If anything happens to your page, upon reloading you'll see it's stored your content and you can quickly restore it. You won't lose another post to a browser crash or server time out. IP.Board saves as you go. A refresh without posting allows you to view and optionally restore any content that has been auto saved. We hope that you enjoy the new editor in IP.Board 3.2.0 and the extra functionality we've added. We're excited to use it ourselves!
-
As the beta process for Gallery continues, I've found the time to implement the mobile theme that can be used by any mobile handset's browser or by the iPhone app we have available for free in the App Store. The mobile theme is lightweight as expected and makes good use of the small cropped thumbs as well as the new 'small' image that is created. This saves a lot of bandwidth which will be a huge relief to those that don't have a good 3G signal. I'll be updating Gallery here later today so you can see this live. The mobile theme will be available with Gallery 4.0 Beta 3. The Gallery homepage: If you scroll down you can access the global and member albums: Album view: Viewing an image: I hope that you enjoy this new functionality when it's available!
-
IP.Gallery 4.0 is now available to use on our forums! Please keep in mind that this is beta software and still very much work in progress so expect to come across bugs and such. As there is bound to be a lot of feedback, I'll close this blog for comments and kindly ask that you post any feedback in the Gallery forum Please report all bugs in the tracker as usual Please let us know your thoughts!
-
I've seen a few topics in our feedback forum asking how media uploads are handled in IP.Gallery 4. The current version allows you to upload certain video files via a separate upload interface and displays them using basic embed tags which may ask the viewing user to download special plug-ins such as Quicktime to view them. Video encoding is beyond the scope of IP.Gallery 4.0 as such functionality would need server level software to be installed. Similarly, to fetch a keyframe or thumbnail from a video file needs the same server level functionality. However, media uploading and viewing has been much improved in Gallery 4.0. You can upload videos alongside normal photos and quickly add a thumbnail to the video. If you upload a m4v, certain mov files and flv files, these are played in a Flash video player much like YouTube. I've recorded a quick screencast of the process used to upload a video taken from my iPhone to IP.Gallery 4.0. As always, full screen HD is recommended.
-
It's been a while since the last video so I wanted to take a moment to run through the interface and explain a little more about the album types we have in IP.Gallery now. The video below takes you through the major screens and notes some of the important functionality available. I recommend you watch in HD and at full screen. Feel free to comment below or make a topic in the Gallery feedback forum.
-
I blogged previously about updates to Gallery which include a brand new commenting system. This new commenting system is a core feature in IP.Board 3.1.3 and although we've not fully implemented it in the forums, it is in use by Blog, Gallery and Downloads. As it's a core feature, you can easily add it into your own application just by writing a plug-in class. A feature recap for the new commenting system: - Makes full use of "ajax" so that there are no page loads between adding a reply, editing a reply, etc - It makes full use of the new 'hovercard' system present in IP.Board 3.1.3 to allow mouseover pop-ups - Automatically sends "like" notifications if enabled When you mouse over a user link, it pops-up with the mini profile card. I have written up some basic documentation on how to implement this here: http://community.invisionpower.com/resources/documentation/index.html/_/developer-resources/custom-applications/comments-r523
-
I blogged in a previous entry about the new "like" system that is coming to IP.Gallery, IP.Downloads and IP.Blog. This is a brand new feature in the core of IP.Board and even though we plan to make more use of it in the actual forums in 3.2, it is ready to be used by modification authors in 3.1.3. Before I get into the mechanics of the system, I wanted to give you a brief overview of how it works. This screen shot shows the "like" bar directly underneath the image. The pop-up overlay shows who has "liked" the image. This is opened when you click on the "1 other" link. When you like an image, you can elect to receive notification of 'updates'. Updates can be various things, in this example it is when a comment is added. You can also elect to 'like' the item anonymously so you can receive updates without showing on the "liked by" list. All content you "like" is added to your "like center". From here you can bulk remove or update the type of notification. We do plan to make this "like center" more extensive in 3.2.0 with a tabbed interface and more filters but it is ready to use in 3.1.3. You can quickly access the "like center" from your username drop down at the top of the page. Implementation You can add "like" to almost any object by adding a single PHP class into /extensions/like/. I'll take you through the "like" class for Gallery. This file is situated in /admin/applications_addon/ips/gallery/extensions/like/images.php The class name is as follows: class like_{app}_{type}_composite extends classes_like_composite So, for Gallery, this is: class like_gallery_images_composite extends classes_like_composite There are only three methods that need to be defined: The first two are very straight forward: * Return an array of acceptable frequencies * Possible: immediate, offline, daily, weekly * * @return array */ public function allowedFrequencies() { return array( 'immediate', 'offline' ); } /** * return type of notification available for this item * * @return array (key, readable name) */ public function getNotifyType() { return array( 'comments', 'comments' ); } /** Note: If this "like" will notify of new comments, then the only allowed frequencies are 'immediate' and 'offline'. The last is getMeta * Returns the type of item * * @param mixed Relationship ID or array of * @param array Array of meta to select (title, url, type, parentTitle, parentUrl, parentType) null fetches all * @return array Meta data */ public function getMeta( $relId, $selectType=null ) { $return = array(); $isNumeric = false; if ( is_numeric( $relId ) ) { $relId = array( intval($relId) ); $isNumeric = true; } $this->DB->build( array( 'select' => 'i.*', 'from' => array( 'gallery_images' => 'i' ), 'where' => 'i.id IN (' . implode( ',', $relId ) . ')', 'add_join' => array( array( 'select' => 'a.*', 'from' => array( 'gallery_albums_main' => 'a' ), 'where' => 'i.img_album_id=a.album_id', 'type' => 'left' ) ) ) ); $this->DB->execute(); while( $row = $this->DB->fetch() ) { /* Title */ if ( $selectType === null OR ( is_array( $selectType ) AND in_array( 'title', $selectType ) ) ) { $return[ $row['id'] ]['like.title'] = $row['caption']; } /* URL */ if ( $selectType === null OR ( is_array( $selectType ) AND in_array( 'url', $selectType ) ) ) { $return[ $row['id'] ]['like.url'] = $this->registry->output->buildSEOUrl( "app=gallery&image=" . $row['id'], "public", $row['caption_seo'], "viewimage" ); } /* Type */ if ( $selectType === null OR ( is_array( $selectType ) AND in_array( 'type', $selectType ) ) ) { $return[ $row['id'] ]['like.type'] = 'Image'; } /* Parent title */ if ( $selectType === null OR ( is_array( $selectType ) AND in_array( 'parentTitle', $selectType ) ) ) { $return[ $row['id'] ]['like.parentTitle'] = $row['album_name']; } /* Parent url */ if ( $selectType === null OR ( is_array( $selectType ) AND in_array( 'parentTitle', $selectType ) ) ) { $return[ $row['id'] ]['like.parentUrl'] = $this->registry->output->buildSEOUrl( "app=gallery&album=" . $row['album_id'], "public", $row['album_name_seo'], "viewalbum" ); } /* Parent Type */ if ( $selectType === null OR ( is_array( $selectType ) AND in_array( 'parentType', $selectType ) ) ) { $return[ $row['id'] ]['like.parentType'] = 'Album'; } } return ( $isNumeric === true ) ? array_pop( $return ) : $return; } /** This method returns meta data about either a single item or an array of items. This is used to generate the data in the "like center". To add the like bar in your own applications, all you need to do is add: require_once( IPS_ROOT_PATH . 'sources/classes/like/composite.php' ); $likeClass = classes_like::bootstrap( '{app}', '{type}' ); $like = $likeClass->render( 'summary', $itemId ); $like now contains the HTML which you can use in your templates like so: <div>{$like}</div> I will go into more detail on this in our documentation and please watch out for the "comments" class blog entry as it ties in with this class to auto-send comment notifications without any additional coding!
-
Chrome will work on 3.1+ as we do not rely on the Facebook JS. It will not work with 3.0.x because we do use the Facebook JS.
-
Arguably the most crucial part of the gallery system is the upload system. A cumbersome and slow upload system deters people from uploading new images. Certainly, the current Gallery doesn't make it very easy to upload multiple images and filling out the meta data such as caption, etc is a chore. We've had a lot of feedback over the years on the Gallery's upload system and I wanted to take the opportunity to write a fast and intuitive upload system. The following video takes you through a typical scenario: You've taken a bunch of pictures, labelled them and you're ready to share them with the community. I recommend that you click the full screen button or use a powerful magnifying glass.
-
Late last week I left a teaser image of the 'view image'. I have taken a short video to explain some of the larger changes and features of this page for Gallery 4. I recommend clicking the full screen icon and ensuring the "HD" icon is blue to avoid excessive squinting. This video will also give an indication for the direction of future IP.Board releases as we'll integrate "ajax" replies into 3.2 along with the new favorites system which I'll go into in more depth in a future blog entry.
-
Starting from next week I'll be going into more detail about the user interface changes for Gallery 4.0, but until then, enjoy... I'm sure you'll have a lot of questions, so to keep things ordered, please leave feedback for this blog entry in the Gallery feedback forum. See you next week!
-
Following on from my manifesto blog entry, I wanted to discuss some of the changes to structure that Gallery 4.0 introduces and explain why we have made those changes. This blog entry does get a little technical, but even if you are not a technical person, please bear with me and feel free to skip over sections that are not relevant to you. I feel it is important to explain in detail the challenges faced when re-writing Gallery. Overview I want to completely re-focus Gallery and make the media the center of the application. I want users to view the images without being so concerned as to where they belong. I want to focus on organic discovery over being forced to browse pages of user albums or pages of categories. The Problem Although competent, it's no secret that the current Gallery has become a little confusing and over complicated. Over the years features and settings have been added too appease a small demand that has undermined the "flow" of the product. I have reviewed a lot of our customer's gallery installations and in most cases a lot of the more complex functionality in Gallery is not being utilised. For example, the current Gallery allows for very complex permission based hierarchical structures that mixes albums and categories. Programatically, this is incredibly hard to maintain and almost impossible to work with beyond a superficial level. Consider the following: - Category A (Global viewing permission) -- Category B (Restricted viewing permission) ----User Album A (Public) ------ User Album B (Private) This allows for great flexibility but a severe cost to code maintenance and efficiency. The only way to fetch images that the current user has permission to view is by loading all the categories and albums into memory and iterating over each; testing view permissions and finally constructing a large list of permissible IDs which is passed into an SQL query. This is an "expensive" operation and once you get past 10,000 albums you quickly run into issues with MySQL not being able to parse the query as it is too large. This is a wall and the current model allows for no way around it. The Solution Categories and albums are almost alike. They are both containers that can accept uploads. For this reason, I have merged them into a more pragmatic "albums" model. Administrators can set up "Global Albums". These behave much like categories used to in that you can set them to be containers only or allow uploads. You can restrict access permission based on member permissions much like you do with forums. Users can create "Albums". These are almost identical to the current user albums in that they can be set to "Public", "Private" or "Friend Only". These are no longer restricted to the 'Members' category or being children of categories. They are created at "root" level and are not included in the hierarchy unless attached to a category. This creates two different spaces. The Admin defined strict hierarchy and a more social public space. There are hard rules on user created album use and the software deliberately restricts the freedom of use so that order is maintained and a simple flowing permission model is employed. In practical use, you shouldn't notice these limits but the code is much simpler if you box in their usage. When creating a user album, you can elect to attach it to a category. When you do attach it to a category, it automatically inherits the permission of the parent category. You will be unable to set it to friend only or private. You cannot attach a sub-album to an album attached to a category. - Category A ---- Category B ------ User Album X (Inherits permission from Category B) This small change makes selecting images much simpler as you do not have to consider a dozen different possible permutations. We can now cache permissions with the image which makes selecting them outside of an album a quick and efficient task. This allows us to quickly query "streams" of images without having to learn about their album which frees up what we can do with the interface. I will begin to reveal more specific interface implementation over the coming weeks. Please let me know if you have any questions!
-
Evolution Six years ago, before Twitter existed and before Facebook became popular we launched "Invision Gallery". It was a simpler time. Not everyone 'surfed' the web with javascript enabled and in general interfaces were fairly basic. The Gallery mimicked a forum structure. It had categories which the administrator set up and allowed members to upload images. Other members could comment on those images and it worked great. A little further down the road we added albums so members could create their own albums. These went inside a special category called "Members". This worked great. A few years back when we upgraded Gallery to be IP.Board 3 compatible we added a newer front-end that did away with the normal category view and added the "boxes" that we're used to seeing now. This was great. Although Gallery was starting to show its age. The web has moved on. Interfaces are more fluid and dynamic. People don't want to click through a dozen links to upload a picture. The additional functionality added over the years started to cripple the interface so that many found it confusing. Even setting up the basic permissions and categories caused a few to reach for technical support in frustration. Clearly it's time to take Gallery apart and start again. Revolution The "truth" of the application is very simple: Upload some media into an album View, discuss and share that media. Our aim is to streamline those processes so that they are intuitive and modern. We're not content with basic static pages anymore. We want to interact with the site like we would a desktop application and the new Gallery delivers that experience. IP.Gallery 4.0 is a huge upgrade; the single biggest upgrade it has ever seen. We're blasting out the cobwebs and introducing a slick new interface that never loses sight of what a Gallery should be. We're simplifying permissions and accessibility to remove the clutter and confusion. We want you to fall in love with Gallery again. Over the coming weeks I'll be discussing the new functionality in more depth, but until then, I'll leave you with a few teaser images: For this one blog entry, I'm going to close comments and ask that you post your feedback in the Gallery forum. We'd love to hear what you think.
-
In IP.Board 3.1.0 we added a 'step through' form that users registering via Twitter and Facebook were prompted to complete before being fully registered. This was so that the user could choose their own display name and complete an email address when it wasn't available from the service (such as Twitter). If a member chose not to complete this form then their registration would not be complete and their account would be missing some data such as a display name and valid email address. This led to some confusion when viewing the member list in the Admin CP. Was this a bug? Was IP.Board mysteriously deleting member information? To prevent this confusion, we've removed these 'incomplete' members from the member list and added a new section to manage them. This new section clearly lists those members that are still in the process of completing their registration. It also identifies which service they used to start the account creation process. If you choose to delete these partial accounts, the member can always re-sign in to repeat the process. We hope this little feature cuts down on confusion and removes 'clutter' from the Admin CP member list.
-
What's new in IP.Board 3.1.2? ACP Live Search and Dashboard
Matt posted a blog entry in Invision Community
One of the most commonly used features in the Admin control panel is the live search feature. This is a great way to quickly locate settings and even Admin CP pages. In IP.Board 3.1.0, we did have quick search boxes for forums and members on the dashboard but these were not always to hand. Often you need to search for a member or forum and have to navigate through to the correct section. In IP.Board 3.1.2 we have extended the live search to include matches from forum names, group titles, group settings and members (display name and email address). Simply tapping in a phrase will return all the relevant matches. In this example, we can see that "admin" has matched a member's email address, a forum name and group settings as well as an Admin CP page and some settings. Simply clicking on the link will take you to the relevant page. In the case of a member, this is the edit page for them; likewise you are taken to the edit page when clicking on a group's name. By moving these search features into the global search bar, we've created a much cleaner ACP Dashboard. We've also made the dashboard warnings and new version notifications much more prominent, so you can clearly see when there is an issue requiring your attention. In addition, in an effort to ensure there are no dashboard warnings on a fresh install, the installer will automatically lock itself (thus not prompting you to delete admin/install/index.php) and new users will be able to (optionally) enter the license key into the installer. Little usability tweaks such as these really make daily tasks more efficient which makes administrating your IP.Board even more pleasant! -
Moved topic redirect links A common request from our customers over the years is the ability to have those redirect links that are added when moving a topic to automatically 'expire' and be removed. This is one of those features that was on our lists for years but never made it into the feature set due to time constraints and other factors. Happily, we found time to implement this for IP.Board 3.1.2. The administrator can specify a number of days before the redirect links expire in the Admin CP settings page. The daily clean out task now checks for any deletable redirect links and removes them automatically. Archive Personal Conversations Another common request we've seen since we introduced the new 'personal conversation' feature was the ability to somehow archive off conversations. Now that these conversations are much like personal topics that can have many replies from many different participants the old system of simply allowing a downloadable text file isn't an option. In 3.1.2 you'll be able to email yourself a copy of the conversation. This will be sent as a HTML file attached to the email which you can download and store on your computer. When you're viewing a personal conversation, you'll see a new box: "Archive Conversation" Clicking this will send the email via 'ajax' meaning the screen doesn't refresh and you don't lose your place on the page. The email is shown with the attachment Which is a lo-fi copy of the conversation suitable for printing Open ID: Email no longer required We have removed the "email" requirement for OpenID logins, which should allow for many more OpenID services to work (including Google, TypePad and Wordpress). While this change is in effect immediately for new users, for existing users you will need to edit the login method to enact the change. In the ACP, visit System -> Log In Management. Next to OpenID click the button and choose "Configure Details". Clear "email" from the "Required args to pull", and then add it to the "Optional args to pull" (which should appear as "nickname,dob,email" once you are finished). Save the configuration and you're all done!
-
It's an unfortunate fact that something may go wrong with your hosting environment at some point. MySQL is sensitive to many things and often this results in an error being thrown. This can be confusing for you and your members and getting support for this can take time as our technicians often have to request FTP details so they can log in and check the error logs written to disk. A lot of the time, our technicians discover that there isn't an issue with IP.Board but rather something has happened with your MySQL database or server. This can delay you getting your board back up. With this in mind, IP.Board 3.1.2 separates out "server level" errors such as a crashed table, 'out of memory' issues and more into its own error page which is displayed. This instantly informs you of the problem and directs you to contact your host or troubleshoot the issue further if you run a dedicated server. In the Admin CP, we have written a log viewer which lists all the generated SQL error logs. It also keeps a record of the latest error of the day which is displayed above the list of logs. Of course, these logs can get quite large, so when you view a log, it is "tailed" and only shows the most recent 300 lines. We hope these features help speed up getting the correct support for when you need it most.