Jump to content
View in the app

A better way to browse. Learn more.

Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Invision Community Blog

IP.Nexus allows to you to create packages with a variety of options and even create custom packages for your users.
In this blog entry we wanted to go through some of the options available to you.

Please note that the interface shown in the screenshots is not finalised subject to change.


Package Groups

IP.Nexus allows you to split your packages into package groups. You can have as many groups as you like, and groups can be children of other groups going as deep as you like.
This is the main "Manage Package" screen in the Admin CP:


You can click on a group to view the packages within that group:


And click on a package to edit it:



Physical Items

You can set an item as physical or not. If an item is physical you can also specify the shipping methods available. Shipping options can be flat rate or based on the weight of items being shipped.
When a user orders a physical item, a shipping order will be created which the Administrator can marked as filled. Shipping orders will be discussed in a future blog entry.

If a user makes an order with multiple items, IP.Nexus will work out which items have the same shipping methods available and group them into as few shipping orders as possible.




Associated Items

You can specify that one package can (or must) be associated with another package. For example, if you are selling software and also have an addon product, you could specify that the addon must be associated with the main product.
If a user purchases both the main product and the addon product at the same time, IP.Nexus will automatically work out that they are to be associated, and if the association is required, the user won't get an error message telling them they need to purchase the main product first.

When a purchase is associated with another purchase, this will be indicated both on the customer page, and in any support requests the user creates.




Discounts

IP.Nexus includes two discount options for packages. We call these "bundle discounts" and "loyalty discounts".

"Bundle discounts" allow you to specify a discount if the item is purchased with a different item. For example, here at IPS, if you purchase an IP.Blog license with an IP.Board license, you get a 5% discount on the total order - that would be possible within IP.Nexus.
You can specify whether the discount can only be used alone or if it can be combined with other bundle discounts. If it can only be used alone, IP.Nexus will automatically calculate the best discount applicable according to what is in the user's cart.

"Loyalty discounts" allow you to specify a discount if the user already owns a certain number of a certain item.
For example, you could make it so that if the user already owns 2 of an item, they get the third cheaper - or if the user has purchased a special item (for example some kind of premium membership) they get a discount on all products.
You can build up tiers so that if the user owns x items, they get y price, but if the user owns even more of the item, they get an even cheaper price - IP.Nexus will automatically work out the best discount.
If you have a loyalty discount set up so, if for example, the user gets a cheaper price if they already own 2 items, and the user tries to purchase 3 of that item at the same time - IP.Nexus will still take the loyalty discount into account, and provide the discounted price for the third item.




Upgrading Member Groups

You can specify that a user be moved into a different user group (primary or secondary) or have an additional permission mask assigned to them when they purchase an item.

You can also specify a renewal term for your license (the renewal price does not have to be the same as the base price) and have the user automatically demoted if they do not renew their item.




Upgrades & Downgrades

If in a product group you have different levels of a package, you can allow members to upgrade or downgrade between packages, which they can do themselves through their User CP.

You can specify whether to allow upgrades or downgrades (you can allow both, neither or either of the two) but also, you can specify whether or not the user needs to pay the difference between the prices when upgrading.
If this is set, when the user attempts to upgrade, they will need to pay the difference, and then be automatically upgraded. If this is not set, the user will be upgraded with no intervention.

On the other side, you can also set it to issue users with a refund of the difference when they downgrade their product, this is given in the form of account credits.




Custom Page

You can provide custom content that the user will see when they select their purchased item in the User CP. This could be used to display download instructions, hidden content or anything else you like.

In addition, you can also choose to display a "Submit Support Request" form on this page, and specify the support department it should be routed to.
We'll discuss support requests in more detail in a future blog entry.




Custom Package Fields

You can specify "custom fields" that the user can (or must) fill out when purchasing an item. An example of how this might be used is if you're selling clothing and you need the user to select their size; or you're selling software and you want to force the user to provide the URL they will be installing the software on.

Textbox and dropdown field types are supported, there are also two special field types: "username/password" and "ftp information" which allow you to ask for what we expect will be frequently requested information but without using 2 or 3 custom fields.

If several of your items are going to have the same custom profile field (for example, if you're selling several different T-Shirts and they all need a custom profile field for "Size" - you only need to create it once and assign it to all fields.




Removing Packages

When you remove a package, you may also want to cancel the service for any members who have purchased that item, or even switch them to a different package.

IP.Nexus allows you to remove a package from all members in the way you choose.




Managing Purchases

Once a user has purchased an item, you can edit the purchase to change the renewal terms for that member - this allows you to for example, create custom variations of a package for different users.

You can also of course manually edit the custom fields, cancel a purchase (this will revert them to their original usergroup if applicable) and even transfer a purchased item to another member.





Custom Packages

Not only can you customise purchased items but you can create a custom package for an individual user through the Admin CP, specifying a package name, cost and renewal terms.


  • 5,719 views
IPS is changing the name of our new IP.Commerce (as yet unreleased) application to IP.Nexus.

We have received an exceptional amount of interest in this product to date and many have been a bit confused with the name. The major confusion lies in the fact that this application is not just an ecommerce application but also used for advertising, metrics, customer interaction, and more. So, we thought that a more generic name suited well and hope this will remove the "commerce-only" connection that the old name created. Also, there are many similarly named products out there that we wish to avoid confusion with.

As the product has not yet been released this is the best time for such things. Note that all previous blog entries have been updated.

Long-time IPS customers may be familiar with the IP.Nexus name as it was the name of a previous product (fairly similar to this one) that we decided not to release. We thought the nostalgia factor would be a great benefit to this new product. Thanks for your interest!
  • 4,750 views
We're very pleased to announce that beta 3 of IP.Board 3.1.0 and its applications are now available!
Please read through this announcement for information on where to download and what is available.

What's Available?
The following releases are available:

IP.Board 3.1.0 Beta 3 IP.Gallery 3.2.0 Beta 3 IP.Blog 2.2.0 Beta 3 IP.Downloads 2.2.0 Beta 3 IP.Content 2.0.0 Beta 3 IP.Chat 1.1.0 Beta 3



Where can I download these?
Please log in to your client center. Click on 'Downloads'. The beta releases will be in the 'Development Releases' category.
Please note that you must have an active license for IP.Board before you can download. Likewise, you must have an active license for the application (Blog, Gallery, etc) you wish to test.

What is a beta?
A "beta" release is a version that is considered ready for extended testing. This is a feature complete release that needs as much testing as possible so that we find and fix any bugs that are found. It is possible that we will further refine some features based on feedback. We do not expect to add any features to these releases.

Can I upgrade from a previous 3.1.0 beta?
Yes, simply upload the files as normal and run /admin/upgrade/

Can I use it on my live site?
We strongly recommend that you do NOT use this version on your live site. Although it has been internally tested and used on this forum, we cannot recommend that you use it on a live site as there may be undiscovered bugs which may impact stability.
Furthermore, while we will assist on the forums where possible, beta releases are not supported officially. This means that you cannot receive technical support on these releases and we will not offer any installation or upgrades on these beta releases.

Can I install it as a test board?
You may install a test version of 3.1.0 beta. You do not need to purchase another license to do this. Please ensure that you take every effort to keep your test board private. It is acceptable to allow select members register to help in testing, but you may not use it as a second community.

I've found a bug!
Please report all bugs to the relevant section in our bug tracker. We will investigate all reports made. Please try and give as much detail as possible when making a report. Browser versions and operating system versions are especially relevant when reporting skin/interface bugs.

What's new in 3.1.0?
For a complete list of what's new for IP.Board and its applications, please see this topic. We've also been maintaining a regular blog of all new features. Please see this category for a list of recent blogs detailing recent feature additions.

I have feedback
Great! We always love to hear from you. Please use the special beta releases forum for feedback and other discussion on the beta releases.
  • 2,207 views
I had previously blogged about the API in IP.Nexus allowing other applications to process payments using IP.Nexus. We have implemented this in IP.Downloads to bring paid file support.

You can specify which groups can add paid files, and which groups (for example the admin group) can download paid files without paying.

You can also specify how much commission to take from sales and what to give to the user who submitted the file when it is purchased.

A member who has permission will be able to specify how much to charge for a file when submitting it.


When viewing a paid file, instead of the "Download File" button, users will see a purchase button.


When clicking this button, the user will be taken to the payment screen and payment will be taken. If payment is successful, the user will be taken straight back to the download page where they will now see the normal "Download File" button.



The commission to be given to the member who submitted the file will be applied in the form of account credit, which, if allowed, he can request be paid out. This will be discussed in a future blog entry.

As you can see, the IP.Nexus & IP.Downloads integration is very simple to set up and use but allows IP.Downloads to be used by those selling digital files without the need for a complete billing system.
  • 4,327 views
We're very pleased to announce that beta 2 of IP.Board 3.1.0 and its applications are now available ! Please read through this announcement for information on where to download and what is available.

What's Available?
The following releases are available:

IP.Board 3.1.0 Beta 2 IP.Gallery 3.2.0 Beta 2 IP.Blog 2.2.0 Beta 2 IP.Downloads 2.2.0 Beta 2 IP.Content 2.0.0 Beta 2 IP.Chat 1.1.0 Beta 2


The CleanCut skin will be updated early next week for beta 2. (You're welcome, Ian).

Where can I download these?
Please log in to your client center. Click on 'Downloads'. The beta releases will be in the 'Development Releases' category.
Please note that you must have an active license for IP.Board before you can download. Likewise, you must have an active license for the application (Blog, Gallery, etc) you wish to test.

What is a beta?
A "beta" release is a version that is considered ready for extended testing. This is a feature complete release that needs as much testing as possible so that we find and fix any bugs that are found. It is possible that we will further refine some features based on feedback. We do not expect to add any features to these releases.

Can I upgrade from a previous 3.1.0 beta?
Yes, simply upload the files as normal and run /admin/upgrade/

Can I use it on my live site?
We strongly recommend that you do NOT use this version on your live site. Although it has been internally tested and used on this forum, we cannot recommend that you use it on a live site as there may be undiscovered bugs which may impact stability.
Furthermore, while we will assist on the forums where possible, beta releases are not supported officially. This means that you cannot receive technical support on these releases and we will not offer any installation or upgrades on these beta releases.

Can I install it as a test board?
You may install a test version of 3.1.0 beta. You do not need to purchase another license to do this. Please ensure that you take every effort to keep your test board private. It is acceptable to allow select members register to help in testing, but you may not use it as a second community.

I've found a bug!
Please report all bugs to the relevant section in our bug tracker. We will investigate all reports made. Please try and give as much detail as possible when making a report. Browser versions and operating system versions are especially relevant when reporting skin/interface bugs.

What's new in 3.1.0?
For a complete list of what's new for IP.Board and its applications, please see this topic. We've also been maintaining a regular blog of all new features. Please see this category for a list of recent blogs detailing recent feature additions.

I have feedback
Great! We always love to hear from you. Please use the special beta releases forum for feedback and other discussion on the beta releases.
  • 1,801 views
One of the first things I wanted to talk about with IP.Nexus is how easy it is for third-party developers to integrate with IP.Nexus.
You could for example, have an area of your application that you only want available to users who pay a fee. IP.Nexus makes this possible.

There is a special class in IP.Nexus called commerceApi that allows you to generate an invoice, and check if an item has been purchased.
In addition, you can make use of special extension files to automatically run when an item from your application is purchased, expires or is renewed - and your items can appear in the Admin CP "Generate Invoice" page.

For example, we have written integration for IP.Nexus with IP.Downloads using this functionality, which we will demonstrate in a future blog entry.


For developers, to generate an invoice, you simply call the commerceApi::generateInvoice() method. This is the code we use within the donation module of IP.Nexus:

try { $title = "Donation: {$goal['d_name']}"; $invoiceID = commerceApi::generateInvoice( $title, $this->memberData['member_id'], array( array( 'act' => 'charge', 'app' => 'commerce', 'type' => 'donation', 'cost' => $amount, 'itemName' => $title, 'itemID' => $goal['d_id'] ) ) ); } catch( Exception $e ) { $this->registry->output->showError( "An error occurred while trying to generate your invoice. Please try again or contact an administrator. ({$e->getMessage()})", 12345 ); } $this->registry->getClass('output')->silentRedirect( $this->settings['base_url'] . 'app=commerce&module=payments&section=pay&id=' . $invoiceID );





















As you can see, the code passes some information about the item(s) being purchased. At this point, commerceApi generates an invoice, and then the user is sent to the payment screen.
Once payment has been processed, the user will be sent right back to the file.

Using this functionality you can:
Specify a base cost for your item Specify renewal terms Provide a URL to the item which will be linked to on the invoice screen Specify a member who should get commission for the purchase and how much commission to give them (for example, if the item was added by another member) Specify a URL to return the user to once payment has been received


Later in your code, to check if a user has purchased an item (for example, when they try to access a restricted area) you just call commerceApi::itemIsPurchased() to check if they have paid for the item.
if ( commerceApi::itemIsPurchased( $this->memberData['member_id'], 'myapp', 'item_type', $data['id'] ) != 'ACTIVE' ) { // Item not purchased... }







commerceApi::itemIsPurchased() will return a value indicating whether the item was purchased, and if the renewals are active.


As you can see, the API is very simple to use and means mod authors do not have to worry about implementing payment systems in their own applications. We're really excited to see how mod authors will use this functionality and as always, if you have any questions, please post them in our feedback forum.
Our next blog entry will demonstrate how we used this functionality to implement paid files within IP.Downloads.
  • 3,855 views
Our IP.Board 3.1 beta testing stage is well underway, and so far things are looking pretty good. We want to take a moment to thank everyone for their time and effort helping us to test IP.Board 3.1. Your contributions are appreciated and only help to ensure the quality of the software is nothing less than you would expect from us upon final release.

While IP.Board 3.1 is feature locked, we recently took some time to work on the URL parsing routines to deal with a couple of issues, and thought you might like to hear about these updates.

Auto parsing of media tags

IP.Board 3.0 introduced the new [ media ] tag, which is used to embed multimedia, like YouTube videos and more, into posts and other areas. This tag works just great, but we've heard from many of you that you think it would be better if media that works within the special tag was parsed and displayed automatically, even if the media tag was omitted.

As of IP.Board 3.1, this is now the case. If you copy and paste a link that would correctly parse inside the media tag into your post without media tags, IP.Board's bbcode parsing routine will recognize this and automatically embed your YouTube video or other media right in the post without any other user intervention!


Parsing of URLs with commas

We've had some passionate discussions spring up across the forums over the past couple of months discussing whether a comma character that would seemingly be part of a URL should be parsed as part of the URL. IP.Board 3.0 originally did so, however this was changed during an early 3.0 release due to a posted bug report. Regardless of the history, many of our customers felt that if a URL has a comma contained within it, that comma should be treated as part of the URL. If it contains a comma at the end of the URL, it should not.

You'll be happy to know that IP.Board 3.1 will now present commas as part of the URL appropriately. Here are some example scenarios (the URL bbcode tag was not used to post these) so you can see how it will work:

http://community.invisionpower.com/index.php?test=1
http://community.invisionpower.com/index.php?test=1,2
http://community.invisionpower.com/index.php?test=1,2&something=3
I like http://community.invisionpower.com/index.php?test=1, and that's all!

This is a relatively minor change, but one which we feel many of our customers will be happy to hear will be included in 3.1. Just a note: if you don't know, don't care, or don't know why commas in a URL should matter to you then you can ignore this small change :)


International Domain Names

ICANN (the body that regulates domain names) has recently begun approving (and examples are popping up in the wild) domain names that contain non-latin characters in them (known as IDNs). While this won't affect many of our customers, we decided to take this opportunity, before 3.1 is released, to ensure that IP.Board will correctly parse such URLs.

Some examples:

http://παράδειγμα.δοκιμή/
http://وزارة-الأتصالات.مصر

If you expect such domain names to be used on your board, you should expect that IP.Board 3.1 will be able to correctly parse such URLs. We always want to try to stay "ahead of the curve", and this is just one example where we'd rather implement expected functionality now, before our members are affected by any legacy limitations.


These changes have been applied to our board here as of the time of this posting, so feel free to try out the new changes in the test posting forum. As always, we look forward to your feedback, and if you happen to find any bugs, please report them to our bug tracker.
  • 9,872 views
IPS has a fully featured community suite of products including forums, blogs, image galleries, file management, live chat, and content management. We felt the clear missing piece to this product line was an application that allowed you to monetize and promote your community.

We are happy to introduce IP.Nexus to fill that space!

The new IP.Nexus application is designed to help you earn money from your community both directly and indirectly. Direct options include features such as payment processing and shopping carts whereas indirect methods may be banner tracking and donations. Everyone here at IPS is very excited to introduce this new application and hope our customers will be able to take advantage of the variety of features in the product such as:


Shopping cart functionality. Pre-defined packages and custom packages for purchase. Custom fields for package definition for great flexibility when creating packages to purchase. Purchase standalone items. Purchase packages to upgrade to a "higher" member group and automatic downgrades on expiration. Support ticket system including incoming email parsing. Community donation system with goal support. Ability to give members "credits" for commissions, awards, or other purposes. Credits can be used for future purchases or member can request a payout. Payout support included. Members can give out a referral link and can earn commission on sales that members they refer make. Multiple payment gateways including PayPal, Authorize.net, and offline payments. More gateways will be added based on feedback. Global search box on every page of IP.Nexus admin area to easily lookup customers, invoices, or support tickets. Stock actions/replies for support ticket system on admin side. Multiple status types for tickets. Ability to track tickets for future follow-ups. Upload banner images for display and tracking using IP.Board's ad management system. Customer overview page showing complete customer history, current orders, and options. Audit new transactions and purchase to catch fraud. Integration with IP.Downloads to handle purchasing of files. Support for sales commission in the IP.Downloads integration. Functions available for third-party developers to initiate payment processes in other applications. Payments are handled by IP.Nexus creating a central payment system.


We are quite sure you will want to see it to believe it and, over the next few weeks, we will be posting individual blog entries going over the features listed above (and others) with screenshots and videos. Subscribe to the IPS Company Blog to get email updates when an entry is posted or subscribe to the Blog RSS feed.

When will it be available?

As always that's very hard to say. The good news is that every single feature listed here is already completed! We are not announcing a future product being worked on: we are announcing a product nearly done. In fact, IP.Nexus will be given to our internal beta testing team very soon. From there we will collect the feedback from you and integrate any features we missed. We expect a final release before the end of summer 2010 and beta releases within the next month.

How much will it cost?

No price has been set as yet but you can expect it to be priced similarly with our other applications. As is our tradition, we will offer a very good early-adopter discount price.

What about Subscriptions Manager?

We have a product, Subscriptions Manager, available for free for IP.Board that handles upgrading/downgrading member group permissions with paid packages. Nothing will change with this product and it will be available just as it is today. We will continue to make maintenance and compatibility releases. Those of you who are currently using Subscriptions Manager and may want to upgrade to IP.Nexus will be able to do so without data loss.

I have a question, comment, cheer, or suggestion...

Great! One reason we are announcing IP.Nexus now is to get feedback on how our customers may see themselves using a product such as this. We want to create a system you will want to use that suits your needs. Obviously handling the profit and promotion aspects of your community is something we are taking very seriously and we will be actively seeking your feedback on the best way to do this. You will notice comments are disabled on this blog entry as we do expect a lot of feedback so please use the newly created IP.Nexus feedback forum. Looking forward to hearing from everyone!
  • 6,455 views
We're very pleased to announce that IP.Board 3.1.0 and its applications are now available for beta testing! Please read through this announcement for information on where to download and what is available.

What's Available?
The following releases are available:

IP.Board 3.1.0 Beta 1 IP.Gallery 3.2.0 Beta 1 IP.Blog 2.2.0 Beta 1 IP.Downloads 2.2.0 Beta 1 IP.Content 2.0.0 Beta 1 IP.Chat 1.1.0 Beta 1

MySQL: New installation and upgrades from previous versions (1.3+) are available for testing
MSSQL: New installations are available for testing. The upgrade system will be available in beta 2.

Where can I download these?
Please log in to your client center. Click on 'Downloads'. The beta releases will be in the 'Development Releases' category.
Please note that you must have an active license for IP.Board before you can download. Likewise, you must have an active license for the application (Blog, Gallery, etc) you wish to test.

What is a beta?
A "beta" release is a version that is considered ready for extended testing. This is a feature complete release that needs as much testing as possible so that we find and fix any bugs that are found. It is possible that we will further refine some features based on feedback. We do not expect to add any features to these releases.

Can I use it on my live site?
We strongly recommend that you do NOT use this version on your live site. Although it has been internally tested and used on this forum, we cannot recommend that you use it on a live site as there may be undiscovered bugs which may impact stability.
Furthermore, while we will assist on the forums where possible, beta releases are not supported officially. This means that you cannot receive technical support on these releases and we will not offer any installation or upgrades on these beta releases.

Can I install it as a test board?
You may install a test version of 3.1.0 beta. You do not need to purchase another license to do this. Please ensure that you take every effort to keep your test board private. It is acceptable to allow select members register to help in testing, but you may not use it as a second community.

I've found a bug!
Please report all bugs to the relevant section in our bug tracker. We will investigate all reports made. Please try and give as much detail as possible when making a report. Browser versions and operating system versions are especially relevant when reporting skin/interface bugs.

What's new in 3.1.0?
For a complete list of what's new for IP.Board and its applications, please see this topic. We've also been maintaining a regular blog of all new features. Please see this category for a list of recent blogs detailing recent feature additions.

I have feedback
Great! We always love to hear from you. Please use the special beta releases forum for feedback and other discussion on the beta releases.
  • 3,916 views
Invision Power Services is seeking a knowledgeable and industrious individual to join its support team as a part time support technician.

Successful applicants will be responsible for answering general support tickets, including providing customers with information, troubleshooting problems and performing maintenance. You would be expected where appropriate to interact with other technicians and developers to resolve issues.

Requirements:
Must be familiar with IPS applications. Must have a basic knowledge of PHP and SQL. Must be able to work remotely. Must speak fluent English and possess strong verbal and written communication skills.

Preferable, but not required:Knowledge of server administration and experience working for a web hosting company. Knowledge of additional web technologies such as JavaScript, CSS, XML, etc. Experience of working in customer support.

Working hours are flexible and salary will be based on knowledge and experience.


Thank you to all who applied. Applications are now closed.
  • 1,637 views
The first release of our Skin Generator tool was quite successful, and the feedback we got from everyone was very valuable. We've worked on taking that feedback into consideration in our continuing refinement of this tool. While development of this is certainly not done (there's a lot more cool stuff we are working on adding!), we would like to roll out our next major update to this tool. In this update you'll find the following new features and enhancements.

Page reorganization
We started to realize as we were planning out some of the things we'd like to do, that the system may require many more options. With the old way of showing all of the options on the left all the time, it soon became clear that adding more future options there would stretch that area down even further, and would soon get overwhelming. What we decided to go with for cleaning this area up was to organize the various settings into categories, and place them in an 'accordion' style menu:



You can click on each section of this menu to expand that section and collapse the rest, so that your overall menu area stays relatively small, and you only get presented with the options relevant to the type of settings you are changing. Another neat little feature you might note on the 'Pick Colors' menu is that each option there has a reset button to the right of the color picker. If you are fiddling with the colors and you get them just so out of whack that you can't make them look right anymore, do a quick reset to send that color back to the default.

You'll also notice that the Preview button is gone. The Preview window on the right will now automatically update as you make changes. Pick a different color from one of the color choosers and the Preview updates instantly to reflect that change. The same also applies to the settings on the 'Choose Options' menu.

More Views
Being able to preview the skin you're making on just a few standard views is nice, but it's also helpful to be able to see how that skin looks on other pages of IP.Board and the various applications. In this new update we've added several new views to the list:



Like the color pickers, changes here are automatic: pick a different view from the list and the Preview will update to show that new page. In addition, you can even choose new versions of the applications the skin will be used for on the 'Select Applications' menu and the changes will be relected there. You can see this in things like the IP.Downloads file view since it appears different in the most recent versions of this application.

Support for the Community Projects
We've added in support for the skin exporting the correct info for the Community Projects: IP.Tracker, IP.Shoutbox & IP.Links. Simply select which version of each of these that you need for your skin and the export that is built will contain the appropriate templates/CSS/images all recolored based on your selected options.

Branding options
This new version includes a couple new features dealing with branding your forum. First, in the 'Choose Options' menu, you are presented with a setting that lets you remove the default IP.Board logo. This is useful if you want to remove that logo entirely, to replace it with your own. In addition, the download will include a blank version of the logo, recolored based on your color choices. This blank logo is just like the standard logo that would be recolored and included in the images folder, but doesn't have the default IP.Board logo text on it. You can use this file to put your own text, or image, or anything else you need on it.

Extensibility improvements
Lastly, and least exciting from an end user perspective, we've done a lot of improvements on making various elements of this system more extensible. Previously, doing things like adding new colors or settings would require an awful lot of coding to add the item into the settings menus and to get the source code to find and deal with those inputs. Improvements have been made to move all color settings, applications, views, and other options into XML files. Those files get read to build the page, and then used again to build the preview and the download. This means that additions to the system can be made quickly, with minimal additional coding.

All told, we feel these enhancements make this system a lot easier to use, and give us a lot of flexibility to further improve the system. As always, we welcome what feedback you have, so let us know what else you'd like to see this tool do in future updates. :)
  • 5,681 views
A common problem for all administrators that have skin customisations is having to apply them after each upgrade. This is often time consuming and laborious. One has to pour over a difference report and manually copy and paste the new code into existing templates. A major upgrade such as 3.1 can mean dozens of changed templates.

I'm pleased to say that we've added a new tool to greatly assist in this process. Indeed, skins with just a few minor customisations such as colours can almost automate the upgrade process.

Introducing the Template Merge Center
This new tool will check for differences and attempt to perform a merge on your templates and CSS files.

For those interested in the technical details, a three way merge works like this: A diff(erence) off the old default and new default is performed, and a difference of the custom skin and the new default is performed. The differences are examined and merged into one text. if a change is detected in both the old > new and the custom > new, this is flagged as a conflict.

Anyone who has worked with version control systems will be familiar with the concepts.

If you'd like to see a practical demonstration, please see this video:



Apologies for the quiet audio.

A typical work flow would be as follows:

Run the merge report on a skin set Automatically or manually resolve the conflicts Commit the merged items Tweak the final result by hand if required


Let's run through that:
This screen shot shows a 3.0.5 skin from a customer running on a 3.1 board. As you can see, there are several problems such as missing items and incorrectly styled items.


When we run the tool, it checks all the templates for differences:


This produces a list of all templates that have differences and we can filter the result set further:


We can preview the conflicts:


And we can edit the conflicted text manually:


Once we have resolved the conflicts, we can commit these changes:


The end result is pretty good. We'd need to tweak the CSS to change the border colour of the notifications box but we've done a lot of the hard work with a few mouse clicks:


Of course, this tool isn't a magic wand, but it will greatly assist in the manual upgrading of a skin an as we've seen here, skins with simple customisations may require little manual intervention.

We hope that you find this tool useful when upgrading to IP.Board 3.1.
  • 11,629 views
We introduced IP.Chat 1.0 in January of 2010 and our servers have already processed over 6 million chat messages in just a few short months and the rate of adoption of IP.Chat continues to accelerate. Many communities are making good use of the chat software and we hope you are enjoying the IP.Chat product so far.

Logs of your chat room are an important tool for moderation of your community. Presently, you can download your chat logs from your client area, and while this is fine, it limits access to the account owner only. Wouldn't it be nice if you could access your chat logs right from your IP.Board ACP?



Beginning with IP.Chat 1.1.0 you will be able to review chat logs right from the ACP.

The Interface

Chat logs will be styled similar to how you see the chats appear right from the chat room. Background coloring helps to identify /me messages, moderator actions, user has entered/left room messages, and private chats.



Here, you can get an idea of how the log messages appear. There's not a lot to explain here. BBcodes and smilies will be parsed similarly to the front end, and the rows will be styled similar to the front end.

Searching and Filtering

By default, private chats will NOT be displayed. We debated how to handle private chats early on. We knew that some users would want them to appear in the chat logs, and some users would feel it's a breach of privacy. The way the chat logs work is that private chats are hidden by default. There is a search/filter bar at the bottom of the chat logs table allowing you to control which chats you wish to see, as well as search your logs.



By default "Public" is checked, so you will only see private chats if you choose "Private" or "Both". Your selection will be remembered when browsing from page to page, but you can reset it at any time using the form at the bottom of the page. If you don't wish to review private chats made on your community that is absolutely fine - just don't check the radio button to do so and they will be kept private.

In addition to controlling which types of chat messages are displayed, you can search for keywords (and/or usernames), and restrict the logs to a specified date range. You can also fill in only the "from" or "to" field (to get all chats after a specified date, or all chats up until a specified date). The javascript date picker is used to help you supply a from and to date.

Pruning

A new setting has been added to allow you to specify how far back to keep chat logs. By default, chat logs will be kept for 30 days, and then a task will prune any logs older than 30 days. You can increase or decrease this retention period, or disable pruning altogether.

The Backend

Chats are still processed through our central servers, so in order to provide this functionality, we have introduced a method for allowing you to retrieve the chat logs for your chat room from our servers. A task is added with IP.Chat 1.1.0 that will download chat logs from our servers every 30 minutes. The task will only retrieve logs saved after your most recent log entry to reduce bandwidth consumption and processing time (and to prevent pruned logs from returning at some future point).

Further to this task, you can manually refresh the logs by clicking the "Refresh Logs" button you'll see in the chat logs window. This effectively executes the task immediately, downloading any logs available on the server but not yet stored in your local database.



Conclusion

As IP.Chat's popularity continues to grow and our customers continue to make use of the software, we felt that this small addition would aid administrators and moderators in managing their communities. Having the logs available locally to your site means anyone with ACP permissions on your board can access the logs, and review anything they need to. You also have control over how long your logs are retained this way, and don't need to visit your client center to review them. We hope you find this new feature useful in the upcoming IP.Chat 1.1.0 release.
  • 5,568 views
The first public beta release of IP.Board 3.1, applications, and related services is fast approaching. This blog entry will let you know what to expect and what you can do to help us in the process.

We believe, as most other responsible software development companies do, that releasing beta versions is the best way to ensure that the software is as stable as it can be before a final, supported version is released. These beta releases are for testing purposes and allow our customers who are interested in testing them prior to release a chance to let us know what problems they may find so we can fix them before the software goes out to the many thousands of casual users all over the web.

A beta release will always have issues with the software that need to be addressed so, as always, we do not suggest using beta software on your live site. Please do not use the beta software unless you are comfortable working with software that may have various issues that will need to be addressed in updates.

Over the next two weeks you can expect to see public beta releases of the following:


IP.Board 3.1 (see this announcement for a list of what's new) IP.Gallery 3.2.0 (maintenance release for IP.Board 3.1 compatibility and bug fixes) IP.Blog 2.2.0 (maintenance release for IP.Board 3.1 compatibility and bug fixes) IP.Downloads 2.2.0 (maintenance release for IP.Board 3.1 compatibility and bug fixes) IP.Content 2.0 (please see our blog to find info on what's new) IP.Chat 1.1.0 (please see our blog to find info on what's new) CleanCut Skin for IP.Board 3.1 MS-SQL Database Driver for IP.Board 3.1 and Applications


As you can see, that is quite a list of new versions coming out so we will certainly appreciate everyone assisting with testing and reporting any issues you come across in our bug tracker. The announcement for these beta releases will be made here on our company blog so be sure to track or subscribe to the RSS feed for this blog. Beta versions will be available to those customers with an active license to those products.

The announcements of each beta release in this blog will also contain information on what you should (and should not) do with the beta releases. We will also let you know if there will be upgrade options from Beta 1 to Beta 2 of the various products. Please (we beg of you) read those announcements very carefully before downloading the betas to save yourself time.

Take this time between now and the beta releases to prepare your testing environments on your hosting and make backups of everything so you are ready to go on beta day. We are very exited to be entering the public beta phase as this means the final release is just around the corner!
  • 6,157 views
On Wednesday at the F8 conference, Facebook unveiled their new "Graph" API.

This is brand new set of APIs including a new oAuth based log in system. There is much speculation in the media about the current (now old) APIs like Facebook Connect, which IP.Board currently uses. Some sites are reporting that Facebook will simply kill it off while other more optimistic journalists envision a long grace period to allow developers update and migrate their applications.

We didn't want to hang around and find out, so today I recoded our Facebook integration using the new oAuth 2.0 methods using FQL as much as possible which is more likely resistant to change.

What does that mean for you?
First off, apart from adding your Facebook application ID (this is listed on your "Edit my application page") into your Admin CP after upgrading, you don't have to do much else. Your currently 'connected' members will just have to re-log in once to accept a new token which is saved in the database. All the new permissions 3.1 needs will be asked for in a single page at the first Facebook log in from an IP.Board page.

All of the features we added have been updated for the new API including: logging in, synchronizing profile data, publishing links to your wall and importing/exporting status updates.

An example of a permission request actioned when you log in for the first time


The Facebook 'Connect' Page using the new APIs.


Some test status updates and links published to my test Facebook account.


Any improvements?
Actually yes. The new APIs are much more streamlined which have allowed a lot of the inline JS and mark-up to be removed. Better yet, as we're no longer using Facebook Connect, we are not shackled by Facebook's Connect TOS which mean that now when you log in using Facebook and you don't have a current forum account, you are asked to enter a display name rather than having your real name used automatically.

We've even added a few default hooks (that are disabled by default) to show off some of the new Facebook API features.

Facebook has an activity feed widget which lists all Facebook related activity on your forum


You can now like any publicly viewable topic


Of course we understand that not everyone requires these new Facebook features which is why they are disabled by default.

To re-cap:
- 3.1 now uses Facebook's new oAuth / Graph APIs (and FQL)
- You only need to add your application ID to your Facebook settings in the ACP to use this once you upgrade
- Your current Facebook members will not have to do anything other than log in once via Facebook from the log in form or from the Facebook settings page in their UserCP
- Your members can now set their own display name when they log in with Facebook and they don't have a local account

We felt it pertinent to move quickly on this so that IP.Board 3.1 was released with the very latest APIs possible.
  • 12,962 views
The new mobile skin for IP.Board 3.1 is now available for viewing right here on our community! Just visit on a popular mobile device and the skin will load automatically.



Separate Skin

The mobile skin shows as a separate skin in your AdminCP so you can edit it as you see fit. Change the colors, put up your own logo, or even put in mobile ads to monetize your community.



Support for Popular Mobile Devices

IP.Board 3.1 has built in support for a list of many popular mobile devices. Keep in mind it's easy to add support for even more right in the AdminCP.




Included with IP.Board 3.1

This new mobile skin is included for free with IP.Board 3.1 when it is released. It will install right along with the upgrade and be available for your members to enjoy.

If you find any issues please report them to the bug tracker. Enjoy!
  • 10,348 views
Since first unveiling the notification changes coming in IP.Board 3.1 we've received a ton of feedback from our customers to further improve the system and make the notifications more useful. We've been listening to your feedback (and often agreeing with your points) and have decided to implement many great ideas to the make the notifications system cleaner, easier to use, and less intrusive.


Better defaults upon upgrading

With our first beta release, nearly everything that can issue a notification did. While inline notifications were set for various less important notifications (such as "Your friend has updated their status"), this quickly proved to be intrusive for users who were regularly active on the board. We have not removed any of the notification options available, however we've defaulted many of the less important notification options to not issue notifications initially upon upgrade. Users who wish to receive notifications for these actions may still visit their user control panel and enable them.

This should lead to a less intrusive (and thus, more useful) inline notification setup when you first upgrade, while still allowing users to stay informed of everything happening on the board should they wish to.


Shut the popup off

Another option that has been introduced is the ability to disable the popup, should you not wish to see it whenever you receive a new notification. There is a per-user setting added to the notifications configuration section of the user control panel to allow you to enable and disable the popup. If you disable the popup, your notifications are still available in your user control panel.

This is a small addition that we felt would give each user more control over their browsing experience.


Review all of your unread notifications in the popup

Another change requested frequently since we first introduced the new system is the ability to review all of your unread notifications from the popup. Presently, only your latest notification is shown, and a link is provided to allow you to visit your notifications log area. Now, there are buttons to allow you to jump through your unread notifications directly from the popup so that you can view all of your unread notifications at once.

We've made a short video to demonstrate how this works:




This is another small, but useful, change that has been oft-requested, and that we're happy to provide in the next 3.1 beta release.


Better accessibility

And now we've saved the best for last. Many of our customers have requested that in-lieu of an intrusive popup window to alert you when you've received a new notification, that we implement a menu inline in the page, and show a count on this menu. The menu would provide for quick access to your latest notifications, providing an easy way to review new notifications, while not issuing a popup on every other page load.

We're happy to report that you will see such a menu introduced in the next IP.Board 3.1 beta release, with a few extra touches to further enhance your browsing experience.



A new menu has been added next to your username dropdown in the top right corner of the page. The number of unread notifications is listed on this menu so that you can quickly see how many unread notifications you have.



When you click on the menu, a dropdown is loaded via AJAX displaying your last 10 notifications. Unread notifications are bolded to help you quickly identify them in the list.

You'll notice that we've additionally added icons to represent each notification type. These icons can be changed per-skin, and third party developers can add and specify their own icons for their own notifications that they issue.

(Please note that the icons you see in this screenshot may not be the icons used in IP.Board 3.1 final)

There's a "View All" link at the bottom of the menu, allowing you to quickly go to your notifications list should you need to review further back than the last 10 notifications you received.

An important note to make here - when you open your menu, all of your unread notifications will be marked as read. This is a small change that we feel helps make the notifications system more useful. It's natural to assume that when you open the menu and review the list of notifications, you've acknowledged them and no longer need them to reflect an "unread" status. You can still, of course, review them even after they've been marked as read.

And finally, once you have no unread notifications, the styling of the menu will change so as to prevent it from drawing your attention as readily as when there are unread notifications for you to view.




Coming in the next refresh

All of these changes will be present in the next refresh of the IP.Board 3.1 beta which will be applied to our community forum later next week. We look forward to your feedback on the enhancements we've made to the notifications system. We expect these changes will prove useful and help to further polish an already powerful and exciting new feature.

(Note that a beta of IP.Board 3.1 is not yet available for download while we finish polishing off these features based on your feedback. Once we have a stable product we will be releasing public betas. Keep an eye on this blog for an announcement.)
  • 10,299 views
Development is under way (and wrapping up, in fact!) on IP.Chat 1.1.0, so we wanted to take a few moments to illustrate what new functionality you can expect to see with the next update of IP.Chat.

If you are not already familiar with IP.Chat, we offer a javascript-based chatroom solution that any customer with an active IP.Board license (or support and services contract) can add to their site. The first level of service for the IP.Chat product allows for you to host up to 5 simultaneous chatters, and is available at no cost to you while your license is active. Other packages are also available for sites that expect more traffic to their chatroom. For more information on IP.Chat, please see our IP.Chat product information page.


How many people are in the chatroom?

While IP.Chat does include a hook that shows the number of users in the chatroom on the board index, many users felt that the display of this hook was too hidden (it is at the bottom of the screen, along with the other board stats), and only shows on the board index. As a result, users are frequently unaware when someone enters the chatroom, limiting the amount of activity the chatroom gets.

We've implemented the most popular suggestion to counter this problem: we've added a count to the 'Chat' tab at the top of the screen that displays how many users are currently in the chatroom. This has been implemented as a hook, and as such can be disabled in the Manage Hooks page of the ACP if you have no use for the feature. You will also have the option to disable the count if no one is in the chatroom, and to hide the count on the tab when you are actually viewing the chatroom page itself.




If you allow the count to display while viewing the chatroom itself, the count will dynamically update as users enter and leave the chatroom, allowing you to easily and quickly tell how many people are still in the room just by looking at the tab at the top of the page.

We feel this is a small, but useful, addition to the chat software which should help spur activity in your chat room.


Private Chatting

Another highly requested feature has been implemented for IP.Chat 1.1: private chats. You will now be able to chat within the chat software privately with other users who are logged into chat.

A new ACP setting has been added, allowing you to control which groups are allowed to initiate private chats (note: anyone can receive private chats). When your group is allowed to initiate private chats, the username menu that exists presently for moderator actions will have an option to "Start Private Chat". When clicked, a small popup box appears to allow you to fill in the private chat text you wish to send to the user.




When a new private chat is started, a new tab is created within the interface.



And if new messages are received for inactive tabs, a count is displayed to let you know.



As the name of the feature implies, private chats are a one-to-one relationship between two users only.


What if I don't want to talk to you?

It's natural that you may not wish to converse privately with certain members of a community you are a part of. A "block user" feature has been added to allow you to prevent specific users from sending you private chats within the chat room.

There is a new user control panel page where you can block and unblock users.



You can also block and unblock users directly within the chat interface. AJAX is used to save the option, and your preferences are updated dynamically (users will be blocked immediately). The user is not made aware that you have blocked them. Instead, any private chats will simply be ignored on your part, as if it was never initiated.





Wrap-up

IP.Chat has proved to be a stable, useful, and popular addition to our community software line-up. Many of you are making good use of the chat software on your site, and we hope these new additions improve and expand the functionality available in the software in useful ways for you and your users. We have some good ideas for future features, however we wanted to keep a focused approach for 1.1.0 first. Stability and security is of the utmost importance to us. The new functionality introduced for IP.Chat 1.1.0 lays the foundation for many new useful features in the future.
  • 8,038 views
Having a great forum skin is something every forum owner craves. A great skin is a big selling point, as it gives visitors a good first impression, and it colors (pun intended) the overall experience of using that forum. While a great many sites are perfectly happy with the stock IP.Board forum skin, getting something new is often a top priority for sites that are trying to make it big. Up until now, you've had a few options for this:


Download or purchase a skin from IPS Resources, or a third party resource site Pay a skinner to make you a custom skin Teach yourself how to skin
While all of these options are certainly good choices, we'd like to introduce another option for you: our Skin Generator service. This is a brand new service we have developed and made available to those with active IP.Board services licenses as a special little perk.

The way the tool works is that it presents you with several options for customizing your skin, such as choosing different color choices:



Clicking on one of the color text boxes there gives you a small UI (from jscolor.com) to choose different colors. You can either use that dialog, or type in a hex color there. There is also an option to apply our 'contrast limiting' function, which attempts to ensure light colors aren't too light, and dark colors aren't too dark; it can be used, or not, to try and get the skin looking the way you want. Once you have chosen colors and any other options, click the Preview button to show what that skin will look like; that shows in the main part of the page. Here's a quick one I created to demonstrate this preview:



Note the tabs at the top for the different views, you can preview your choices in a couple of different forum views there. Here's a Topic View preview of this same skin:



Previewing the skins is cool enough, but it wouldn't be a very good skin generator if it wouldn't let you get the skin you created for use on your own site, would it? Below the options for choosing your skin colors, there is a box for choosing some options to build your skin download:



In here, you can name your skin, and choose the IPS applications you have installed, and their versions. By choosing all of these, your downloaded skin will contain all of the appropriate CSS, templates, and image files for all of these apps. No more worrying about whether the skin you got from a resource site has been coded to work with your IP.Gallery install!

Once you fill out this box, click Export, and it'll prompt you to download the .zip file of that skin; the Skin Set and Skin Image Set files will be included in that zip, ready for you to import into your site. Here's one I created and installed on my test board:



Please consider this a beta service at this point. As this is a brand new service plus it is doing something rather difficult (creating a skin automatically) we do expect many bugs. Right now this is designed for IP.Board 3.0.5. We will be upgrading it to IP.Board 3.1 when it is released. Please post any bugs you find or ideas you may have!

That about wraps it up, please let us know what you think, or any other features you'd like to see introduced in future updates! :)
  • 17,790 views
IP.Content has many features, and indeed it's quite possible to create a rather useful articles system using the custom databases feature introduced in IP.Content 1.1, however many of our users have been requesting a true "articles" feature since the first release of IP.Content. In typical IPS fashion, we've listened, and you will be happy to hear that IP.Content 2.0 introduces a new "Articles" module.



Building on existing functionality

As I mentioned, you can create a very useful and workable articles section using the existing databases features in IP.Content. The database feature accomplishes so much of what needs to be implemented for articles, in fact, that articles actually "build on" databases behind the scenes. Much of the interfaces will feel familiar, because indeed much of the code is shared between the two modules. This helps ensure consistency is met between the various sections of the site, and helps to ensure that bug fixes for one area are automatically and immediately carried over to the other. Many of the ACP pages will feel nearly identical to the databases section, and the majority of the features are available in your own custom created databases as well. We feel that the similarities with the existing functionality will help you to get started with articles quickly and efficiently, while the new features and functionality will help to set it apart from the rest of your databases.

Navigational flow and frontpages

In a generic custom database within IP.Content you will have a "categories" template (which displays a list of your categories, akin to the forum index page), a "listing" template (which shows the listing of records, similar to viewing a forum), and a "display" template (which facilitates displaying the actual record itself, similar to viewing a topic). The articles module separates here from the databases functionality a little, giving you some more options and flexibility.

The homepage uses a new template type we refer to as a "frontpage" template. When you first visit the articles section, this frontpage template is used to show you the landing page content. By default, articles that are flagged to show on the homepage will display on the frontpage, however you can naturally change the template to manipulate the data however you like. We will ship with 3 default frontpage templates:


1x2x2
This template displays a large article summary block at the top. The next 2 rows have 2 article summary blocks side by side. Finally, two more rows can display showing article summary blocks side by side. Blog
The blog-style template displays one article per row, showing the entire article text (or the first page of the article text, if it is a multi-page article). This is similar to what you might expect to see when you visit a blog. Single Column
This template displays one article per row as well, however instead of displaying the full article (or first page of the article), it only displays a small summary. This is similar to what you might expect to see on a typical news site.


You can of course also create your own frontpage templates, or modify our defaults to suit your own needs. It is entirely up to you, however we have included a few to help get you started.

Now, a user is likely to enter an article directly from the front page, since we bring articles to the forefront with the frontpage template. If so, they will reach a "display" template, just like they would with a standard custom database. However, if a user instead clicks through to a category, they will see a layout similar to the homepage, since you now will also assign a frontpage template to each category. The category will display articles in a fashion similar to the homepage (although you can use different frontpage templates per-category), instead of just providing a listing of articles as would happen in a standard custom database.

We do still have a "categories" template within the articles module, which is linked in our default site from the category block. You can make use of this if you want, however we believe you will find it secondary to the main navigation structure, instead of a primary focus as it is in other custom databases. There is also an "archives" template, which is similar to the "listing" template in any other custom database. It will list all articles within your articles section, and features sorting, filtering and pagination as appropriate.

Managing articles

The ACP interface for managing articles has similarly been overhauled, allowing for an easier and more efficient process of managing your articles. You can dynamically sort the listing of articles both in a lowest to highest and highest to lowest order, you can change the status of an article to published or draft using AJAX, and you can filter articles via multiple characteristics to allow you to easily and quickly find the content you need to edit. The form to add and edit articles has been cleaned up and condensed, making it a much quicker process to add or update an article.



When adding or editing an article, you will be able to set certain characteristics about the article. You can control whether the article shows on the frontpage or not. You can control whether the article will allow users to comment on it or not. You can also specify a comment cutoff date, after which comments will no longer be allowed. You can control when the article itself "expires", after which it will only be available when viewing the archive listing. You can change the article author to another member (using AJAX). You can even control, per-article, which article view template to use. This means that you can create a set of pre-defined article view templates (for instance, maybe one which displays the screenshot image on the left, and one which displays it centered at the top of the article), and then when adding your article you just select which template to use from a dropdown menu. Overall, you have a lot of control to ensure that your article is presented exactly how you intend. It is important to note that, just like with your other custom databases, you can create additional custom fields for your articles if you find that you need a field which is not presented by default.

There is also a frontpage manager page in the ACP, where you can quickly see all articles set to display on the front page, with the ability to remove any articles that should no longer be available on the front page. It is important to note that you can also control how many articles are displayed on the front page, and that your template can further control how many articles are displayed, based on certain conditions of the template. Thus, while you may have 20 articles set to display on the front page, only 10 may actually display. Your front page manager can help you control which articles, exactly, should display.



Promoting forum content

Along with the new articles section of IP.Content in version 2.0, we have added a "Promote to article" hook to the forums. Users allowed to use this new button will be able to promote any post on the forums to the new articles section of IP.Content 2.0.

The promotion feature has several options to ensure that it is flexible enough to meet your needs. Firstly, as the administrator, you can control which user groups are allowed to use the feature. You can allow both copying and moving of posts to the articles section. When you allow copying of posts and a user clicks on the promote button, a new article will be posted as a copy of the post. When you allow moving of posts and a user uses the feature, instead of copying the post to the articles section, it will be moved (with the original post in the forum being deleted).

You can optionally have a link left behind in the forums pointing to the new article. When a post is copied, this link is added to the end of the post. When a post is moved and a link is left behind, the post isn't actually removed, but rather replaced with the link to the new article. As the administrator, you can allow your users to specify whether to leave a link behind each time a post is promoted, or require that the link always be left behind.

This new feature should help facilitate promotion of valuable content on your site, and help enable easier content discovery by your vistors, registered or otherwise. As the search engine industry often says, "content is king". The content on your site is its most valuable asset, and this feature helps you better manage that content, to ensure it is benefiting your site as best as possible.



Before we move on, I would like to take a moment to mention that the articles section can also allow comments to be stored in the forums, just like your other databases. This new feature in IP.Content 2.0, discussed in a past blog entry, supports databases and articles alike.

New default site

By itself, we believe the new article section will help you better manage your site, and get you started using IP.Content quicker than ever. No longer will you need to manually create a database, create database templates, tweak them to suit your needs, add the database to a page, and so on. Instead, the articles section takes care of the majority of the legwork for you. So now that we've made everything easier to use from the outset, where can we go from there?

Well, not content to sit back even for a moment, we have redesigned the default site that ships with IP.Content to better highlight some of the features of IP.Content 2.0. By default, you will have two "pages". One hosts the new articles section, while the other is a demo of another custom database: a media section, linking to various youtube videos. We feel that the new demo site better shows off many of the capabilities of IP.Content, so that you can better understand how to use the system. Some of the things the new default site shows off:

Some default pages Some CSS "pages" Custom blocks holding variables An article category feed A "latest articles" feed A "latest article comments" feed A separate custom database


The default site will also populate some basic content for the above areas so that it is not empty upon installation.

We will not be inserting this default site for upgrading users (the expectation is that if you are upgrading, you're already familiar with the software and would only be deleting the default site content anyways), so we've decided to host a demo of the new default site so you can click around and see how it works. We will post some articles describing how we created some of these areas for you to benefit from near the release of IP.Content 2.0, in case you are curious how we accomplished certain functionality (such as the media database).

Take a look for yourself!

And with that said, head on over to our demo installation so you can take a look! This is an early look at the actual default site that will be presented with IP.Content 2.0 upon installation. We look forward to hearing your feedback, and we hope you are as excited as we are about the latest feature announcement for IP.Content 2.0. Overwhelmingly, the one thing our customers have requested for IP.Content 2.0 is a "true article system". We've listened, and a true article section is on its way.
  • 15,166 views
When we developed IP.Board 3, one of the main goals was to centralize searching and simplify it to provide results cleanly and concisely. Since then we have had a lot of emphatic feedback on how to develop the search further and to improve the interface.

We've have taken all that feedback on board and completely overhauled search making it more flexible and more useful. This blog entry lists the major improvements. There's a lot to get through, so lets get started.

Search Form

The search form has been redesigned with separate applications in mind. Right away you'll notice that there are radio buttons to select which app you want to search in which then presents its own filtering options.


As the filter and sort options are unique to the application, you can request to sort by very specific fields such as topic title, views, etc.


Full boolean searching is supported with the ability to choose the search mode between "match all words" and "match any words". Phrase searching is also available, for example searching for "roses are red" will find topics or posts that match that phrase precisely.

Search Results

This screen shot shows the search results as a topic list. You'll notice immediately two things; first it now shows hidden or soft deleted topics in the result stream (assuming you have permission to see them) and also a multi-moderation checkbox to the right.


As when viewing a normal forum, you can select multiple topics and perform moderation on them in a few clicks. This makes it much easier to moderate the board especially as the same functionality is applied to both "View New Content" and "Active Content" and User's Content.


We've also implemented the topic preview when you mouse over the topic row.


This screen shot shows the same search but listed as posts. You'll note it uses the familiar post template and also has multi-moderation available.

Multiple Content Types

Now that applications have more control over the search itself, you can specify multiple content types that can be searched. The 'members' tab allows you to search through members or profile comments.


This screen shot shows the result of searching in profile comments.

Finding User Content
As of IP.Board 3.1, "Find my posts" and "Find my topics" have been merged into a more useful view "User's Content". This works across all applications so you can quickly view all of the content the user has created. Remember that hidden and soft deleted items are also shown where permission allows making moderation even easier.


The new button on the user's profile.


The forum application's "Users Content" view. Note that this first view shows all topics the user has started and all topics the user has posted in, much like a "My Activity" feed.

This works across all applications, like IP.Gallery


Sphinx Integration
We added Sphinx integration into IP.Board 3 to provide a way to offset the resources used when members search. However, it was a very simple implementation and many filtering options were removed.

I'm happy to say that I've completely overhauled Sphinx integration so that it is identical to the regular search. Indeed, Sphinx is running on my local test board and all these screen shots are taken with Sphinx activated.

I'm also pleased to say that Sphinx is now used for searching, active content, new content and user's content views so you can take full advantage of the fast and efficient searching it provides.

That concludes our search updates. I hope that you enjoy these updates and that you find searching less of a chore in IP.Board 3.1.0 We genuinely appreciate all the feedback that we get and we've really listened with your search feedback.

Oh, one last thing...
If you'll excuse the Jobzian finale, there is one other improvement to the search system:


The global search box is now context sensitive so that when you are viewing a forum or topic, you have the choice to restrict your search.
  • 18,351 views
IP.Content is an extremely flexible system. While considering the possibilities with IP.Content and feeding content to your external pages, we knew that there were multiple options.




Using a database
You can create a database to store content such as articles, and then allow commenting on these articles directly. In doing so, you keep your articles and your topics separated. Using a blog
You could create a blog, and then create a feed block that pulls entries from this specific blog to your homepage. In doing so, you could create a dynamically updated homepage which is fed from a specified blog. You would not easily be able to allow commenting on the entries on the homepage, but the blog itself would still allow commenting. Using a forum
You could create a forum and then post your "news" topics in this forum. Then you can create a forum feed block to pull these topics to your homepage. This allows for easy syndication of topics you wish to show elsewhere, although you will again face limitations when it comes to allowing comments. Raw pages
You could certainly create new pages manually, and update them on your homepage. You could even create a topic manually associated with each page, and then feed replies from that topic to the page using a forum reply feed block, if you wanted.

Many users have expressed interest in a hybrid method not listed above. Specifically, many users have requested a way to use the forums to facilitate commenting on database records. As of IP.Content 2.0, this will now be possible.



Overview

Databases are segregated from your forums on purpose. They are their own "section", and are designed to run independently of the forums. Still, there's no reason that the two can't play nicely together, right?



With IP.Content 2.0, you will now be able to turn on and off the forum integration at a per-database (and per-category) level. When you do, submitting a record to the database will post a topic in a forum of your choosing. You can also optionally choose to use that topic as the comment storage container. If you choose to do so, comments made in the database will actually be posted as replies to the topic, and the comments displayed on the page will be the replies pulled directly from the topic.



Specifics

For each database, you can enable and disable the forum integration. You will be able to turn the forum integration on, specify which forum the topics should be posted in, specify a topic title "prefix" and "suffix", specify if the topic should be deleted if the record gets deleted, and enable the feature to use the topic to host the comments for the record.








Further to this, you can override these settings at the category level as well. By default, the categories will inherit the forum settings, but you can edit each category and override any of the above settings.








This allows you to create some interesting combinations. You could use the built in database functionality for all categories except for your news category, for instance. Or you can have IP.Content post the topics in an appropriately mirrored category structure in the forums. It's up to you!



You can also allow IP.Content to remove the automatically generated topic (and any replies to the topic) when you delete the record, as well. Additionally, any standard moderator actions (delete comment, approve comment, unapprove comment, etc.) will work seamlessly from IP.Content, both from the front end and from the ACP, regardless of whether you use the forum integration or not. While you can manage comments from the forum as well (for instance, if you delete a reply to the topic, that "comment" will no longer show up when viewing the IP.Content record), we recommend you use IP.Content to manage the comments. In some instances, IP.Content may need to take additional actions which will only be triggered when the moderator action is initiated from IP.Content.



Comments

When you enable the forum integration for comments, any comments made on the record are not stored in the IP.Content database tables, but instead are posted as replies to the automatically created topic. When displaying the comments in IP.Content, instead of checking it's local tables it will instead pull the replies to the topic and display them on the record page. Users will be able to comment on the record directly, OR post a reply to the topic (provided you give them appropriate permissions in the forums). Either way, the comment will be displayed appropriately when viewing the record in IP.Content.



Note that IP.Content will be able to post to the topic even if you do not allow any permission masks to access the forums you have told IP.Content to use. This means you can create hidden forums to host the topics if you want, or you can create forums that are open to everyone. Some users may prefer to navigate your main website (powered by IP.Content), while some users may find navigating your forums more familiar. Using this new integration option, you can cater to both demographics on your site easily, all the while without increasing your workload or duplicating the content inappropriately across your site.



The comments as displayed in IP.Content when using the forum integration appear the same way they would if you stored the comments locally. Your users won't know the difference. Note that if you leave reputation on a comment that comes from the forum, the reputation is associated with the forum post (so the user will not be able to visit the topic and rep a post again). Just for completeness, here's an example of comments being fed from the automatically generated topic anyways.








Upgrading

When you upgrade to IP.Content 2, naturally your existing articles won't have topics stored in the forums, thus comments won't be stored in the forums either. Any record that does not have a topic associated will automatically fallback to using it's local built-in commenting system, while new records submitted will use the forums as configured. This means that when you upgrade, you don't have to worry about any of your comments disappearing if you decide to make use of the new functionality.



Everything should work seamlessly so you don't have to worry about rebuilding records or missing comments. When you upgrade, you can optionally make use of this new feature, but it won't affect your previously saved records.



Wrap Up

We feel that this new capability in IP.Content solidifies the forum integration capabilities available with IP.Content, allowing you to create unique and creative site configurations. You can allow visitors to view the content from both IP.Content and the forums, or only from IP.Content, or only from the forums. You can opt not to embed the database into any pages, and instead just allow members to read the records and comment on them from the forums only. You can let IP.Content post a topic and all comments to a hidden forum to make moderation easier for your old-time moderators who aren't familiar with IP.Content. You have many options; this is the goal with IP.Content. To allow you to decide how your site should function. We look forward to hearing your feedback regarding this new feature!

  • 7,015 views
Templates in IP.Content are a useful tool that can save administrators a lot of work managing their site. They are utilized to facilitate displaying database content, and can be utilized to normalize the display of multiple pages through a shared template. We have made a few small tweaks to templates to make them easier to manage and easier to use in IP.Content 2.0.


Separation of templates

In IP.Content 1.x database templates and page templates were displayed on the same page. While they technically use the same backend system to render the templated HTML, it can be confusing for users to associate page templates and database templates on the same page. Utilizing containers can help separate the two types of templates, but we felt we should go a step further. In IP.Content 2.0, database templates and page templates are not displayed on the same page. Database templates now have their own page under the generic Templates header.


Container grouping

Within the template areas you can create containers to "contain" your templates. This is primarily used as a form of categorization and grouping, allowing you to group similar templates together. This is useful when viewing the templates on the template manager page, however templates are not similarly grouped when viewing them in dropdowns elsewhere throughout IP.Content.


We have enhanced the template dropdowns in IP.Content to display the appropriate template containers you have created in the dropdown menus, allowing you to more easily identify the templates you wish to use. The template containers are rendered as "optgroup" tags, so they will be unselectable (you won't be able to accidentally set a template container as your page template, for instance).


Developers may be interested to know that in implementing this change, we have enhanced the IP.Board admin CP output library formDropdown() method to accept an optional array of opt groups. You will be able to make use of this new optgroup functionality in your third party applications starting with IP.Board 3.1.


Identifier storage

Previously in IP.Content, we recorded whether a template was a database template or page template, however we never recorded what kind of database template you were saving (i.e. a "category" template, a "listing" template, or a "record display" template). Starting with 2.x, we now store what kind of database template you are creating, and in doing so we can better streamline IP.Content's options elsewhere.


When you create a database, only listing templates will be displayed in the listing template dropdown menu, for instance. This will help prevent users from accidentally setting a category display template as their listing template (in which case, no records are ever listed). Additionally, when clicking the link to display database variable help, we can now show you the variables directly related to the template you are editing, without having to ask you to select what kind of template it is first.


While this isn't an exciting change, for sure, we believe you'll find it streamlines management of your IP.Content installation, and makes your available options much clearer.


Template comparisons

We are introducing a template comparison tool for your database templates starting with IP.Content 2.0. When you upgrade to IP.Content 2.0, you will need to make template changes to take advantage of some of the newer features. For instance, to show the button to "watch" a record or category, the HTML for this button needs to be added to the template. It can be tedious and time consuming for you to have to manually create a new template and then copy over the customizations you have made to your previous template.


We have added a template comparison tool that will compare your database template to the default database template for that template type (i.e. to compare your database listing template to the default database listing template) so that you can quickly see what is different in your custom template compared to the default.


We believe this tool will help ease upgrades moving forward, especially upgrades where new features are introduced to the databases functionality in IP.Content.


Until next time...

We realize this isn't the most exciting blog entry about IP.Content 2, but we wanted to finish telling you about some of the smaller changes you should expect to see in IP.Content 2 before we get into the bigger things. Stay tuned for the next few blog entries. We think you'll like what we have in store!
  • 4,823 views
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. 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. 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:
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.


































































{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:











[/page][page] This is the text for page 2 [/page][page] This is the text for page 3
This is the text for page 1







Effectively, you just insert " 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, 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. 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. AND THAT'S NOT ALL! 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!




" 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).
















Matt blogged about the new sharing links functionality




















[contentpagination=4]
  • 5,735 views

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.