Jump to content

* * * * * 1 votes

IP.Content 2.0 Dev Update: More Database Improvements

Posted by bfarber , 24 February 2010 · 3,191 views

While we work to wrap up some of the IP.Content 2.0 changes we'll be discussing in upcoming blog entries, I wanted to take a moment to give everyone a quick update on some of the smaller changes and tweaks we've already implemented in IP.Content 2.0. These small, but useful, tweaks and feature enhancements are sure to allow you to take IP.Content databases in new directions.

Add and edit hookpoints

Based on requests from users integrating IP.Content into their website, we have added two new hook points to the database handler: postSave() and postSaveEdit(). These are called immediately upon saving the record to the database (for add and edit requests, respectively), and can be utilized to take action on a record after it has been saved. This could be used, for instance, if a file is uploaded or linked, and you need to take action on this file, but don't want to until the record itself has been accepted.

Format numerically

We have added a new field formatting option that will allow you to automatically format fields numerically, based on your selected locale. This option will automatically apply thousands and decimal separators to the value supplied in the field.

"Bump" records with comments

There is a new per-database configuration option that will allow you to tell IP.Content that when a new comment is made on a record, that record should be "bumped" to the beginning of the list. For this to work, you must be sorting your database by "last update". When this option is enabled and a new comment is made on the record, the last update timestamp for the record will also be updated, moving that record to the top of the list.

Other contributors

If you have a database configured that allows wiki-style editing, and you have revisions enabled for this database, a new line will be displayed below the "Submitted by:" field showing all members who have contributed to the record. This is useful in a true collaborative environment to allow you to see all users that have modified the record. You can still utilize the revision manager in the ACP for details of each revision, as well.

Attached Image

Random database feeds

You will now be able to order database record and comment feeds randomly, making these feeds more consistent with the other feeds you can create using the block manager. You can use this ability to show a block with 10 random records, for instance, helping your users to discover the content in your databases easier.

Database category feeds

You will now be able to create feeds of the categories within a database. The feed template has some slight modifications made to it in order to display the categories in a more natural display than you would use for records. Hierarchy is preserved with the feed.

Attached Image

More consistent linking

In IP.Content 1.2 and below, many of the links to the databases require using a "redirecter" link to get there. By that, I mean that instead of linking directly to a category or record on the page it is actually located on, we link to "app=ccs&module=pages&do=redirect&database=1&record=1" (for example). This is effective and efficient, however it is not the most desirable setup naturally. In IP.Content 2, the actual link to the resource is correctly used instead. Primarily, you will notice the changes in feeds.

Canonical tags

And while we're on the subject of SEO and consistent linking, the next feature we'd like to announce for IP.Content 2.0 is that of canonical tags. Canonical tags will be automatically determined and added to pages and databases (including category and record display pages in databases). This will help to ensure that any additional links that may load a page or database record will pass it's link value through to the correct canonical URL.

New field type: uploads

The attachments field shipped with IP.Content 1 works well, and is very consistent with IP.Board posting. Your users will find it familiar, and indeed in most cases this may be the best field to use for your specific needs. However, many users have requested the ability to upload single files, often because they would like to be able to manipulate these files from the listing template (for example), or because they want more control over how the files are embedded into the actual record.

IP.Content 2.0 introduces a new single file upload field which you can use to upload single files. You can add more than one of this field type to a database (there is no hardcoded limit), and the value that will be seen by IP.Content is simply the URL to the file you've uploaded. There is no image resizing or other functions executed with this particular field type - it is a simple field to allow you to upload a file easily. You can use this field type for any file type as well (you can define which file types are allowed with the field when configuring the field in the ACP). When editing records, a note will be displayed below the upload field to let you know if a file is already present and will be overwritten by uploading a new file. A checkbox will also be available to allow you to easily remove the file without uploading a new one.

Resize image template plugin

When implementing the single file upload field, we begin experimenting with ways to embed the content within the record, and found that it would be useful to be able to dynamically resize images that were uploaded, even if we didn't resize the file itself. Even just specifying width and height parameters to the image would allow us to manipulate the display for our specific purposes.

To this end, we've added a new template plugin that accomplishes just that. Note that template plugins can be used all over IPB and are not restricted to IP.Content specifically. You use the template plugin by embedding the following:

{parse resize_image="url or path to image" maxwidth="100" maxheight="100"}

The plugin will determine the proportionately resized width and height values that fit within your constraints, and return the string "width='x' and height='x'" to suit your request. Note that maxwidth and maxheight are both optional parameters (you could restrict based on width only, for instance), however at least one must be supplied.

Multipage records

We have added a new custom bbcode that can be used within IP.Content to create multi-page records. The bbcode is very easy to use. Below you will find an example:

This is the text for page 1


This is the text for page 2


This is the text for page 3

Effectively, you just insert "[page]" where you want a page break inserted. The custom bbcode takes care of the rest, inserting page links (which you can style independently of the main IP.Board pagination links) below the article content for the specified page. Here's a screenshot that will make this a little clearer (in this screenshot, we are on page 2).

Attached Image

Moderator "add record" permission

While IP.Content does allow for some separation of authoring and editorial duties, many of the lines are blurred and a true editorial process is not always clear within this environment. We made some small enhancements to the moderator duty capabilities in IP.Content 2 to overcome this.

There is a new permission option for moderators: "Add Records". Utilizing this permission, you can easily create a true editorial review process for all articles posted on your site. You can now create "moderators" who have only "add record" permissions. These moderators can post new records into the database, but cannot edit or approve those records. Then, you setup your editors as moderators with enhanced permissions in the database. These are the users that can edit, delete and approve records. Your authors will then add the records, and your editors will edit, review and approve the records the authors add. By utilizing a multi-step process, you cut down on grammatical, spelling, and factual errors in the content posted on your site.

Share links

A week or two ago, Matt blogged about the new sharing links functionality we can expect to see in IP.Board 3.1. This new sharing link functionality will be integrated with IP.Content 2, as well, allowing you to easily share (or email/print/download) any record in your IP.Content databases.

Attached Image

Comment reputation

Going along with the last feature, in keeping consistent with IP.Board we have integrated reputation into IP.Content database comments. You can now leave reputation for database comments, just like comments in other areas such as IP.Blog, and these comments will automatically be hidden or displayed based on your configured reputation preferences. You will be able to quickly view comments hidden through negative reputation filtering by clicking a link presented with the comment.

Subscribe to records and categories

And last, but not least, for today: the ability to watch categories and records in IP.Content 2.0. You will be able to click a watch icon (which will change to "Stop watching" if you are already subscribed) in categories and when viewing records starting with IP.Content 2.0. Upon clicking the button, you will begin receiving notifications of new records in categories you subscribe to, and new comments made to records you have subscribed to. These notifications honor your configured notification preferences in IP.Board 3.1.


As you can see, there are a lot of exciting changes coming to IP.Content 2.0. We feel that many of these changes round out the database features significantly, bringing its functionality in line with that of IP.Board, both for consistency, and to allow you to offer your users more functionality that they are already familiar with.

We still have some more great features we can't wait to tell you about, but we hope these tidbits will tide you over while we work to finish up those other enhancements. We're working hard to make IP.Content 2.0 a great release. We hope you're as excited about the upcoming changes as we are!

Some VERY nice additions here! Some of which I was going to enquire about anyway.

Thanks for the update Brandon :)

Cool update.
That's very important updates!
Now I'm really considering buying IP.Content :)
Sounds good :)
Bryan Sammers
Feb 24 2010 05:34 PM
Sounds extremely good. Integrating the reputation, share links is nice. All looks good and the elements all play well together. Seems to be good product management behind all this!

A minor suggestion: The page bbcode could be enhanced to: [page="This page is about pets"]

Sounds extremely good. Integrating the reputation, share links is nice. All looks good and the elements all play well together. Seems to be good product management behind all this!

A minor suggestion: The page bbcode could be enhanced to: [page="This page is about pets"]

WAY too many complexities attempting that. What if your page had a double quote in it for instance?

[page="This page is about "pets""]

The parser would have no way to parse it. And that's not even considering once you start using other bbcodes inside the content. Cleaner (and more reliable) to just have a simple single page break bbcode tag.
    • IP.iBaLLiN and Bryan Sammers like this
Bryan Sammers
Feb 24 2010 06:33 PM
That's true. Or a [page]This page is about "pets"[/page]? But then you have to write [page][/page] for an empty pagination. 

Anyway, great implementation. I like that you program and think about that it is going to work and not possibly producing unintended bugs. 

Some excellent enhancements. Well done :)
Single image upload field type and postSave hook :) Really good to see the customers are being listened to. Thanks :D

Everything else sounds awesome too. Nice work!
And just think....we've saved the best for last....
    • TrixieTang and Brian Griffin like this
Definitely :D
Question about Share links: Now we have share links in blogs. Is the same or share links in IP.Content will be other feature? Because I already added some my links to list, and if those my links will appear in IP.Content or I have to add them again manually.
Great work I think most of my suggestions for IP.Content have now been implemented. I'm really excited for the 2.0 release which should really give this product a jump start.
The share links integrate with the new IPB 3.1 functionality discussed in this previous blog entry:

will you be able to put 2 or more databases on a page/template in version 2?
Good to see multi-page articles is coming. Wish that had been announced two months ago.
I have a question regarding the resize image template plugin. While this is a vast improvement over what was there I really think dynamically generating a new image based on the paramaters passed to the template plugin. Something along the lines of Darren Hoyt's TimThumb might be an improvement?
Random database feeds

Would there be an option to generate 10 random records from the last 50 records added (and not from all)?
Apr 08 2010 09:20 AM
When, when when....:rolleyes:

with so many new additions, it will be a pleasure to recode... great stuff, i can't wait..

sign me up for the beta, lol

October 2014

19202122 23 2425

Latest Visitors

  • Photo
    20 minutes ago
  • Photo
    Lewis Cheney
    37 minutes ago
  • Photo
    Roger A. Smith
    39 minutes ago
  • Photo
    51 minutes ago
  • Photo
    Today, 06:22 AM
  • Photo
    Today, 06:11 AM
  • Photo
    Diego R
    Today, 06:06 AM
  • Photo
    Timur Tskhovrebov
    Today, 06:04 AM
  • Photo
    Today, 05:45 AM
  • Photo
    Today, 05:24 AM

Recent Comments

Search My Blog