<?xml version="1.0"?>
<rss version="2.0"><channel><title>Invision Community Blog: Invision Community</title><link>https://invisioncommunity.com/news/invision-community/page/19/?d=34</link><description>Invision Community Blog: Invision Community</description><language>en</language><item><title>Developer Documentation</title><link>https://invisioncommunity.com/news/invision-community/7509-developer-documentation/</link><description><![CDATA[<p>While working toward the release of IP.Board 3.3.0 and IP.Content 2.3.0, the development team took some time to refresh our developer documentation, aiming to provide useful information for our third party developers in order to help them update their work as necessary.  We are still very much working on expanding and updating the developer documentation we have in place, but we wanted to go ahead and reveal the new documents that are ready to give you a head start.<br><br><span style="font-size: 17px;font-weight:bold;">PHP Docs</span><br><br>
We have refreshed the phpdoc export using <a href="http://www.stack.nl/~dimitri/doxygen/index.html" rel="external nofollow">doxygen</a>.<br><br><a href="http://community.invisionpower.com/resources/doxygen/" rel="external nofollow">View the phpdoc documentation</a><br><br><br><span style="font-size: 17px;font-weight:bold;">Developer Documentation</span><br><br>
In addition to the generic phpdoc export, the development team has written several more specialized articles aimed at helping developers utilize our framework.  While we have had developer documentation in place for some time, these articles are up to date and based on IP.Board 3.3.0.  We have a list of several more articles we intend to publish over the coming weeks, and relevant developer documentation already available will be retained or updated as needed.<br><br>
For now, you can view the new articles in the <a href="http://community.invisionpower.com/resources/documentation/index.html/_/developer-resources/pending-dev-docs/" rel="external nofollow">Developer Docs (New)</a> category.  Over time, these documents will be merged back into the main <a href="http://community.invisionpower.com/resources/documentation/index.html/_/developer-resources/" rel="external nofollow">Developer Resources</a> category.  We have some cleanup and reviewing of our documentation structure to tackle first, but we didn't want this to hold up our valued third party developers in the mean time.<br><br><br>
We are working hard at bringing all of our documentation up to date, and we hope that our community find these resources useful.  More information to come!</p>]]></description><guid isPermaLink="false">782</guid><pubDate>Mon, 26 Mar 2012 11:30:00 +0000</pubDate></item><item><title>Additional IPS Community Enhancements</title><link>https://invisioncommunity.com/news/invision-community/7484-additional-ips-community-enhancements/</link><description><![CDATA[<p><em>Following on our </em><a href="http://community.invisionpower.com/blog/1174/entry-7478-ips-community-enhancements-and-ipboard-33-note/" rel="external nofollow"><em>previous blog entry</em></a><em> about our enhancements to the IPS Community here at </em><a href="http://community.invisionpower.com" rel="external nofollow"><em>http://community.invisionpower.com</em></a><em> ...</em><br><br>
A few more things to note that you may be interested in that we recently changed. These changes are related to us getting ready to release IP.Board 3.3 and generally our continual process of review and refinement of everything we do.<br><br><strong>Enhanced Access for Expired License Holders</strong><br><br>
We have opened up previously restricted areas to expired license holders as mentioned in our previous blog entry. Expired license holders can also now read and post in our feedback forums and can now also have full access to the <a href="http://community.invisionpower.com/files/" rel="external nofollow">IPS Marketplace</a>! We are sure that everyone will enjoy a larger user base with access to the IPS Marketplace from both clients and those that contribute to the IPS Marketplace while still ensuring that the security and trust-level is maintained in the IPS Marketplace by restricting access to known persons.<br><br><strong>Visitor and Guest Access</strong><br><br>
Guests and Vistors (those with an account but who have never been a client) can also now read and post in our feedback forums. They can also now read (but not post) in the support forums. Note that sometimes feedback from non-clients could be moderated as we often get off the wall feedback from people who have never actually used our products. We even sometimes get feedback from people who think we run our clients' sites! It's hard to explain to someone who is confused that we provide the community software but don't run the community.<br><br><strong>Upcoming Documentation </strong><strong>Improvements</strong><br><br>
We are investing a lot of time and effort into our documentation section to go along with 3.3's launch. We admit and own the fact that right now our documentation is weak and really want to make this a key area of improvement. Rather than try to document every button and function in our software (which really is pointless and impossible) we will be doing a lot of tutorial based documentation. Yes, as if often requested, narrated video demos will be heavily used. We all know that a 30 second video can explain things better than pages of text.<br><br>
There are many obvious things we can document and once those obvious areas are finished under our new format we will be opening suggestions up to our community on what areas could use some more explanation. Also, once the core documents are done, we plan on merging in the community article sections so all the great knowledge in our client community can be harnessed. Our clients come up with unique solutions to specific situations that are sometime really fun to read.<br><br>
Finally, one area we think will benefit all in the long run is a greater link between development and documentation. Once we get into client feedback on documentation we are going to keep internal track of areas that, while they work just fine, cause our clients to have to stop and scratch their collective heads. I am sure you have all had to pause at times and say "ok now how do I do this?" when trying to customize your community. One of our long term goals that we started on with IP.Board 3.3 was making things more obvious and flow better. One could easily argue that if a feature <em>needs</em> documentation then we didn't make that feature very easy to use. That is an area we will continue to work on in future updates.<br><br><strong>Mobile Apps</strong><br><br>
Yes we are in the process of making all new mobile apps. The iOS version will be out soon after IP.Board 3.3's release. No details yet (sorry!) but the app is shaping up very nicely. I personally cannot wait.<br><br><br><br><br>
So yes boring stuff and some future plans in this blog entry but I hope you all enjoy the overall approach we are taking. We are very proud of IP.Board 3.3 and want to be sure that all the other areas around a release (documentation, future planning, spotting client trends, etc.) are of the same quality and attention to detail you expect from IPS.</p>]]></description><guid isPermaLink="false">781</guid><pubDate>Fri, 09 Mar 2012 19:25:00 +0000</pubDate></item><item><title><![CDATA[IP.Board 3.3 and IP.Content 2.3 Coming Soon&#33;]]></title><link>https://invisioncommunity.com/news/invision-community/7480-ipboard-33-and-ipcontent-23-coming-soon33/</link><description><![CDATA[<p>We are well into beta testing for IP.Board 3.3 and IP.Content 2.3 and so far it's going very well. Practically no bugs are being reported and often times our staff have literally 0 open general bugs in our bug tracker. That is quite an accomplishment and something of which we are very proud!<br><br>
If you are an IPS Client and are comfortable beta testing we would love for you to take some time in the next day or two and visit the <a href="http://community.invisionpower.com/forum/460-pre-release-testing/" rel="external nofollow">pre-release testing</a> forum. There you can download the latest beta releases to try out yourself. Please report bugs to the bug tracker so we can fix any issues before we go for the final, supported release.<br><br><br>
One of our primary goals for these releases, in addition to feature changes and enhancements of course, was to fix as many issues as we possibly could. While there will always be bugs and such in any software package, we are very proud that we have been able to address every general operational bug report that has come in. That's not something many can say. Of course once this release is used by thousands of people we will need maintenance releases but going out of the gate with basically no known issues is a great way to start!<br><br>
Thank you to everyone who has assisted in beta testing so far. The final, supported releases will be here before you know it thanks to your help.</p>]]></description><guid isPermaLink="false">780</guid><pubDate>Wed, 07 Mar 2012 16:33:00 +0000</pubDate></item><item><title>IPS Community Enhancements and IP.Board 3.3 Note</title><link>https://invisioncommunity.com/news/invision-community/7478-ips-community-enhancements-and-ipboard-33-note/</link><description><![CDATA[<p>We are happy to announce that we have made a few changes to enhance the community experience here on the IPS Community.<br><br><strong>Access to Support Forums</strong><br><br>
Based on client feedback and the mass of good will from many helpful clients who want to assist others, we have opened up access to our support forums to both current, active license holders and those that may have a license but it is expired. As our support forums are peer-to-peer we thought this only fair. Please keep in mind that IPS Staff do not actively post in the support forums but many helpful clients do and it is a great place to get help from your fellow clients. If you ever need official support from IPS please submit a ticket in the client area.<br><br><br><strong>Community Tips</strong><br><br>
We have created a new <a href="http://community.invisionpower.com/forum/477-community-administration-tips/" rel="external nofollow">Community Administration Tips</a> forum that we hope everyone will use to learn and share your experience. We already have some great discussion going on in this new forum and encourage you to post a topic with your own ideas. Feel free to link to your own community as a great way to promote your own community. Share your experience and learn from others!<br><br><br><strong>OpenID in IP.Board 3.3</strong><br><br>
Just a quick note regarding IP.Board 3.3:<br><br>
IPS is removing support for OpenID as a login method in IP.Board 3.3. While OpenID seemed to show promise several years ago it has been overtaken by other login methods. More importantly, the PHP libraries that we use to connect to OpenID have been all but abandoned by those that created them and they do not work on the latest versions of PHP. As more and more people will start upgrading their PHP versions, OpenID will start to work on fewer and fewer installs due to the incompatibles in these abandoned libraries. Therefore we will be removing support for OpenID in IP.Board 3.3.</p>]]></description><guid isPermaLink="false">779</guid><pubDate>Tue, 06 Mar 2012 15:59:00 +0000</pubDate></item><item><title>IP.Board 3.3 Dev Update: New SEO Tweaks Roundup</title><link>https://invisioncommunity.com/news/invision-community/7452-ipboard-33-dev-update-new-seo-tweaks-roundup/</link><description><![CDATA[<p>We released IP.Board 3.3.0 as beta yesterday to our clients and I wanted to just round-up some of the very latest SEO changes we've made this week.<br><br>
We've invested a lot of effort into making sensible non-invasive changes to IP.Board to encourage search engines to spider pages we want them to spider and to remove extraneous links, potential crawler errors and non-desirable keywords. We routinely check progress on this forum in Google Analytics and Google Webmaster tools to identify any areas that need further work. I spotted a few things which I've fixed which include the following.<br><br><strong>Tags</strong><br>
We added tags back in 3.2 and we've continued to make improvements including adding 'other items tagged' which is now an option when viewing a topic. However, guest and search engine access to tags was largely blocked and the URL to fetch a list of matching items wasn't very friendly.<br><br>
This has now been changed. The old format URL was 'index.php?app=core&amp;module=search&amp;do=search&amp;search_app=forums&amp;search_tag=tagName'. It's now a much snappier '/tags/forums/tagName/'.<br><br>
Search engine bots now have access to the tag results page within the search engine so they can spider the results of specific tags. This should increase good keyword density.<br><br><strong>Guests and 'unread' links</strong><br>
The default setting in 3.3.0 is to disallow topic tracking for guests. This means this setting applies to search engines too. However, the 'last topic' link when viewing a list of forums still retained the '/unread/' parameter. This is fine as it sends a soft redirect header which Google correctly picks up. That said, it is an unnecessary hoop for Google to jump through and as topic marking is disabled, there is no benefit to this parameter.<br>
This has now been removed in 3.3.0.<br><br><strong>Title tags</strong><br>
We've also gone through and removed some more unnecessary title attributes from links such as the 'Go to latest unread' which preceded almost every 'last topic' link when viewing a forum, search results and sub-forums. This further reduces undesirable keywords.<br><br><strong>Soft 404s</strong><br>
On reviewing the crawler errors listed within Google Webmaster Tools, I noticed a lot of largely irrelevant pages were listed as being 'soft 404s'. Google declares a page a soft 404 if it sends a standard OK header (200) but it seems to contain no valuable data such as a generic 'No data to show' message within a table. This occurred with regularity with the 'Who Posted' feature as well as the 'Display Name History' button on user's profiles. I've now removed both links to Guests as arguably they serve little purpose to a non-member.<br><br><br><strong>Ratings</strong><br>
I've added schema data to the IP.Board topic rating system so Google will detect and show the relevant rating with the search result.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120228-132016.jpg" loading="lazy"><br><br>
These are all fairly little changes but they'll further improve your forum's SEO which can only be a good thing! We're looking forward to seeing these new changes and features in action on your forums.</p>]]></description><guid isPermaLink="false">778</guid><pubDate>Wed, 22 Feb 2012 18:15:00 +0000</pubDate></item><item><title>IPS Anniversary - 10 Years Online</title><link>https://invisioncommunity.com/news/invision-community/7408-ips-anniversary-10-years-online/</link><description><![CDATA[<p>Ten years ago today Invision Power Services was born and we continue to go strong today providing community software to thousands of clients. Ten years on the web is practically forever and we are proud to have reached this milestone!<br><br>
IPS has grown over the years to one of the leading providers of community software. To our many thousands of clients including large, well-known brands like NBC, NFL, NHL, many music artists and more we have been able to offer a quality community experience.<br><br>
Our staff, past and present, have made this possible through their dedication to providing quality software and great support for our clients. We apply the feedback we receive from clients, experience from running our own site, and information from running our own hosting to our product line to create a community suite that is stable, innovative, and easy to use.<br><br>
Thank you to all of our dedicated clients who both give us the feedback we need to improve and also promote us to their friends and colleagues as the best choice for community software.<br><br><br>
The future is bright for online community solutions. After all: from day one the web was all about communicating and sharing information. Through the crazes of newsgroups, personal web pages (Geocities anyone?), everyone having a blog, MySpace, Second Life, Facebook, Twitter, and whatever is next the common theme has always been communicating and sharing. IPS will continue as it has for the past 10 years with a focus on connecting people so they can share their world online.</p>]]></description><guid isPermaLink="false">777</guid><pubDate>Sat, 11 Feb 2012 13:18:00 +0000</pubDate></item><item><title>IP.Board 3.3 Dev Update: Microformat and Schema Updates / SEO</title><link>https://invisioncommunity.com/news/invision-community/7401-ipboard-33-dev-update-microformat-and-schema-updates-seo/</link><description><![CDATA[<p>IP.Board has made use of <a href="http://microformats.org" rel="external nofollow">micro formats</a> and <a href="http://schema.org/" rel="external nofollow">schema data</a> since IP.Board 3.0. We added to this in 3.2 to include breadcrumb data in our navigation. This enabled Google to display our navigation links within search results.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120207-161145.jpg" loading="lazy"><br>
The schema data has been read from our page which enables the green navigation links and post/author data.<br><br>
We've further extended the schema data for 3.3 which is great news for SEO:<br><br></p>
<blockquote data-ipsquote="" class="ipsQuote"><p>Many sites are generated from structured data, which is often stored in databases. When this data is formatted into HTML, it becomes very difficult to recover the original structured data. Many applications, especially search engines, can benefit greatly from direct access to this structured data. On-page markup enables search engines to understand the information on web pages and provide richer search results in order to make it easier for users to find relevant information on the web. Markup can also enable new tools and applications that make use of the structure.</p></blockquote>
<br><br><strong>Topics and posts</strong><br>
At the head of each topic, we've added schema information to the title and author details. This will help search engines locate the title of the topic.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120207-152824.jpg" loading="lazy"><br><br>
We've also tagged up the posts to help search engines extract relevant information.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120207-153042.jpg" loading="lazy"><br><br>
As we can see, Google can read this schema data very easily and quickly locates the data we want it to focus on.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120207-154316.jpg" loading="lazy"><br><br><strong>Forum View</strong><br>
We've added schema data to the forum view also. This will help search engines locate relevant data. The screen shot below shows the data Google extracted from the forum view page.<br><br><img src="http://www.mattmecham.com/skitch/Shades-2303-20120207-162033.jpg" loading="lazy"><br><br>
As you can see, there is a row for each topic in the forum.<br><br><strong>Events</strong><br>
We've added schema data to calendar events and even the sidebar 'Forthcoming Calendar Events' block so they display correctly when your site is searched. Here's the result of Google's rich snippets tool preview. Note the 'Meeting!' event underneath.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120207-163645.jpg" loading="lazy"><br>
These unobtrusive changes should greatly assist search engines in locating relevant content which is good news for everyone!
]]></description><guid isPermaLink="false">776</guid><pubDate>Wed, 08 Feb 2012 13:30:00 +0000</pubDate></item><item><title>IP.Board 3.3 Dev Update: Auto-share on posting</title><link>https://invisioncommunity.com/news/invision-community/7400-ipboard-33-dev-update-auto-share-on-posting/</link><description><![CDATA[<p>IP.Board was one of the first commercial products to make use of Facebook integration to allow logged in Facebook users instant membership. We extended this in subsequent releases to include the ability to share status updates and links from the board such as topics. During this time, we also added Twitter as an authentication system and the ability to tweet out links and status updates.<br><br>
You don't have to be an active Facebook or Twitter user yourself to appreciate the advantages of tapping into the millions of users these sites receive daily. It's a great way of driving more traffic to your site and to encourage activity.<br><br><strong>Auto Sharing</strong><br>
In the current version of IP.Board, you can quickly share and 'like' content such as topics, gallery images and blog entries when you read them. In IP.Board 3.3.0, we've taken this a step further and added the ability to auto-share content during creation.<br><br><img src="http://www.mattmecham.com/skitch/Fullscreen-20120207-083139.jpg" loading="lazy"><br><br>
You simply check the boxes for the services you want to share with and it'll share the content as soon as its been saved. You can even make the current preferences default so you don't have to remember to check them each time.<br><br>
Of course, these buttons don't show if you've disabled sharing for that forum and you can optionally disable the entire feature from the Admin CP.<br><br><strong>Authentication Flow</strong><br>
In the current version of IP.Board, you have to be connected to Facebook before you can share status updates and links. This means you'd have either registered with a Facebook account of you'd have linked them via your UserCP. Not everyone will be aware of this functionality so there's a chance that some of your members will never make use of those features.<br><br>
In IP.Board 3.3, we've utilised the Facebook Javascript SDK into our own code so you can connect to your Facebook account without leaving the page.<br><br>
The Facebook auto-share button is visible even if you're not currently connected (assuming of course that the feature is enabled and you've set up Facebook via the Admin CP). When you click the checkbox, if you're not connected, the request for permission dialogue loads automatically. Once allowed, the connection is finished in the background and you're all set up ready to share without leaving the page.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120207-082822.jpg" loading="lazy"><br><br>
This drastically reduces the barrier for connecting your Facebook accounts with IP.Board and further encourages sharing.<br><br><strong>Changes to meta data</strong><br>
When you share a link, Facebook checks the page for specific Open Graph meta tags. Once of these determines the image that is shown next to the link. By default this is the IP.Board logo. In IP.Board 3.3 when you attach images to a post, these are used as the shared image bringing context to the link.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120207-082939.jpg" loading="lazy"><br><br>
These changes will no doubt increase the number of topics shared with Facebook which in return will increase visitors to your forum for those that embrace social media as a way to drive traffic.</p>]]></description><guid isPermaLink="false">775</guid><pubDate>Tue, 07 Feb 2012 13:00:00 +0000</pubDate></item><item><title>IP.Board 3.3 Dev Update: A few more SEO tweaks</title><link>https://invisioncommunity.com/news/invision-community/7383-ipboard-33-dev-update-a-few-more-seo-tweaks/</link><description><![CDATA[<p>Our core goals for IP.Board 3.3 where to clear up the moderator tools, make IP.Board more efficient for larger communities and improve SEO.<br><br>
We've already <a href="http://community.invisionpower.com/blog/1174/entry-7066-ipboard-33-dev-update-seo-improvements/" rel="external nofollow">blogged</a> <a href="http://community.invisionpower.com/blog/1174/entry-7376-ipboard-33-dev-update-banning-and-more-seo-tweaks/" rel="external nofollow">twice</a> on our SEO improvements outlining tweaks to improve good keyword density, reduce crawl errors and improve good keyword placement.<br><br>
Our own company forums are very busy and get a lot of traffic and we monitor the data via Google's Webmaster Tools and Google Analytics. As we upgraded to IP.Board 3.3.0 last week, I was curious to see how the data looked even though it's too early to really spot any differences, a few things did become obvious.<br><br><em></em><strong><em>Duplicate TITLE tags</em></strong><em></em><br>
I noticed that Google had recorded thousands of 'duplicate title tags'. This is where separate content shares the same &lt;title&gt; tag in the HTML document. This can weaken the impact of the page within its algorithms so it made sense to clean that up.<br><br>
There were three very common areas that accounted for nearly 99% of all these errors:<br><br><em></em><strong><em>Profile Tabs</em></strong><em></em><br>
When viewing a user's profile in IP.Board, you can click the side-bar tabs to view recent topics, posts, gallery images and more. This is handled by javascript where available with a linked back-up. Google naturally selects the linked back-up which has the correct content, but the actual document title still says "Viewing Profile {name}" hence the duplicate title tags warning. The simple fix is to add the tab name in the title 'Viewing Profile: Topics {name}'.<br><br><em></em><strong><em>Skin Selector and Language Selector</em></strong><em></em><br>
At the footer of each page is a skin and language drop down selector. When you have more than one visible skin, the drop down is visible allowing you to move between them. This is completely lost on search engines and they crawl the links leading to more duplicate content.<br>
As of IP.Board 3.3.0, they are no longer shown for search engines.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120130-130504.jpg" loading="lazy"><br><br><em></em><strong><em>Direct post links</em></strong><em></em><br>
Each post in a topic has its own post number and this is a link to that particular post. Currently, this is a unique link (page__findpost__12345) which flags up as a warning because it is not unique content. The easy solution is to simply use a standard HTML anchor tag. This doesn't flag up as a warning as it is using basic HTML as intended. As an addition, I removed the generic "Link to post" title attribute to something more suitable.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120130-131603.jpg" loading="lazy"><br><br>
An interesting topic was started a few days ago about a possible <a href="http://community.invisionpower.com/topic/356062-ipboard-seo-paging-issue/" rel="external nofollow">SEO pagination</a> issue. The author feels that our pagination method could do with a few more links in to encourage Google to crawl deeper into your forum. While I feel the user/search engine trade off wasn't worth it, I make it simple enough to change.<br><br>
As of IP.Board 3.3, simply add:<br></p>
<p></p>
<pre class="ipsCode">$INFO['show_x_page_link'] = 9;</pre>
<p><br>
into your conf_global.php file to tailor how many pagination links are shown so you can find the best balance for your needs.<br><br><br>
These changes will help reduce crawl errors and strengthen your ranking. It's the little additions like these that really add up over time.</p>]]></description><guid isPermaLink="false">774</guid><pubDate>Mon, 30 Jan 2012 13:21:00 +0000</pubDate></item><item><title>IP.Board 3.3 Dev Update: Performance Enhancements</title><link>https://invisioncommunity.com/news/invision-community/7379-ipboard-33-dev-update-performance-enhancements/</link><description><![CDATA[<p>During each release cycle we often take some time out to assess performance and look at ways to improve in this area. We're also in a unique position to have first hand experience at hosting tens of thousands of IP.Board installations via our <a href="http://www.invisionpower.com/hosting/" rel="external nofollow">own hosting network</a>.<br><br>
We also work closely with our clients who constantly give us feedback on how IP.Board is performing and let us know about any areas that need further examination.<br><br>
All of this data is very useful when it comes to profiling and testing IP.Board and making performance improvements for the next major version.<br><br>
In this this blog entry, I'd like to discuss some of the improvements we've made for IP.Board 3.3.<br><br><strong>Topic Markers</strong><br>
IP.Board has had a centralised database drive topic marking system since 3.0. As IP.Board is only part of the suite, we wrote the system to be extensible and flexible so that our own apps and apps written by others can use the system without maintaining their own tracking databases.<br><br>
We wrote the system to use two tables. One of which can be considered a 'deep storage' table. This contains permanent tracking data in the format of one row per member per parent. So this means that if you had 200 forums, each member would take up 200 rows.<br>
The second table can be considered the 'active' table. When a member is loaded from the database and no 'active' row is found, the markers are pulled from deep storage and written in a serialised form to the 'active' table.<br>
When the member is no longer active, the data is removed from the 'active' table and written back to the 'deep storage' table ready for the next time they visit.<br><br>
In theory, this is the perfect solution. You only have to read and write to a smaller table which should make the system more efficient. However, we discovered that trying to keep the tables synchronised when you have a very busy site negated the benefit. The sheer number of SQL inserts and deletes often caused bottlenecks affecting the whole board.<br><br>
Another downside was that all the marking data had to be loaded when the member was loaded. This could be up to 200k of marking data - most of which wouldn't be needed. If the member was viewing a topic, they wouldn't need marking data for Blog, for example.<br><br>
We've tweaked the system to remove this SQL bottleneck. We've removed the 'active' table and simply write to the main tracker table. Now we don't have tables to synchronise, we can simply write back to the 1 row that needs updating and not have to periodically update all 200 rows.<br><br>
Furthermore, we've removed the need to load all markers at once. A new function in 'coreExtensions.php' dictates which markers to load. You can still load all as this may be more efficient (as is in the case of the board index when you have a lot of sidebar hooks)<br><br>
If you choose not to load the marker data on member initiation, you can use the new built in JOIN methods to fetch the marking data along with your dataset.<br><br>
In testing, this has dramatically reduced write overhead and the memory footprint required per page view by up to 150k.<br><br>
We're testing this out right now on our company forums and many people have already commented that 3.3 is <em></em><strong><em>seriously</em></strong><em></em> faster.<br><br><strong>Post Table Access</strong><br>
The largest table in your database is almost certainly the post table. We have clients with millions of rows in this one table alone. It makes good sense to keep reads to a minimum where possible.<br><br>
In older versions of IP.Board, we had different views such as 'threaded'. These were removed in 3.2 as these older legacy views were rarely used and not really applicable in a modern context. However, some of the older code remained which meant that the post table was being queried twice per topic view. Once to fetch a list of post IDs and again to fetch the data.<br><br>
We've rewritten this bit of code to use a new API and now we only query the table once. This alone will drop read access to your post table by almost 50% in normal daily use. This is a significant change.<br><br><strong>Today's Top Posters</strong><br>
This fairly innocuous feature is accessible via a link in the board footer and on most boards doesn't get a deal of traffic. However, we've found that clients with larger boards notice a significant slow down when this feature is used which can cause another SQL bottleneck.<br><br>
This is because the query is fairly complex due to the flexible permission IP.Board offers. The query causes the creation of a temporary table to sort the data which isn't desirable for larger boards.<br><br>
We've added a new caching table which caches recent post IDs. This makes this feature much quicker (over a second in SQL terms in testing) and as an added plus, it doesn't have to query the post table to generate the list which again saves read access on that large table.<br><br><strong>Conclusion</strong><br>
There are many other, smaller changes in additions to those listed here. Some of these changes may seem trivial but they quickly stack up. It only takes one or two slow queries to bring a site to a crawl while SQL catches up with queued queries. These changes will make a significant different to everyone but especially those working with large databases. Your IP.Board will be faster, consume less memory and be more SQL efficient. Those are changes we can all appreciate!</p>]]></description><guid isPermaLink="false">773</guid><pubDate>Sun, 29 Jan 2012 19:15:08 +0000</pubDate></item><item><title>IP.Content 2.3 Dev Update: Odds and Ends</title><link>https://invisioncommunity.com/news/invision-community/7377-ipcontent-23-dev-update-odds-and-ends/</link><description><![CDATA[<p>While we have discussed many great things you can expect to see coming in IP.Content 2.3 already, we've got a few miscellaneous changes that we wanted to let you know about, but that weren't necessarily grouped into a single "theme".  Still, we felt you would be interested to hear about these changes, so I've taken a moment to compile this blog entry, discussing some of these odds and ends for those interested.<br><br><br><strong></strong><span style="font-size:18px"><strong>Default Install Content</strong></span><strong></strong><br><br>
The content that is inserted and available during the installation process is important.  It helps users understand how the product works, gives them some examples of the product in action, and lets the admin start using the product right out the door with minimal configuration necessary.  We have taken a moment to review our default installation, and have made some minor changes.<br><br>
Firstly, we have updated the screenshots that are shown with the default articles to reflect the IP.Board 3.2 skin.  The screenshots in IP.Content 2.2 were based on IP.Board 3.1, and the skin has since changed.  Additionally, I've touched up the article content here and there to bring it up to date, and I have added one new article about the new navigational menu system.  This is all simply default content to show you how the system works, but we felt it was important to make a good first impression, and it is useful using the articles system as a sort of "how to" for users installing the product for the first time.<br><br>
At the same time, we have moved the articles system to a different page (articles.html) and we have made the default page IP.Content display a portal.  A portal page is simply a page that brings in content from various parts of your community, usually used as a homepage so users can get a quick and easy overview of what is going on or what is new.  This is very easy to set up in IP.Content, since its goal is to allow you to pull data from various parts of your community with ease, and as we get a lot of requests for a simple portal-style page in IP.Content, we have decided to make this the new home page.  Blocks are set up to pull content from Blog, Gallery, Downloads, Calendar, Articles and the Forums by default, but if you don't have one of those applications installed don't worry - the block will simply not display and the page will function as normal.  At the same time, this allows us to show off how the new block templates system works, as most of the blocks on this new portal are feed blocks utilizing new block templates.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/2e2c67da-c0f5-49d1-9ffe-b3e6b3dd3b05/2012-01-26_1214.png" loading="lazy"><br><br><br><strong></strong><span style="font-size:18px"><strong>Content Pending Approval / Moderator Changes</strong></span><strong></strong><br><br>
It can be challenging finding the content that needs to be approved in IP.Content 2.2.  While ACP-based tools help with this necessity, there are few tools available to your moderators on the front end to find this content that requires their attention.  We have addressed this with IP.Content 2.3 in a tiered approach.<br><br>
First and foremost, IP.Content is now integrated into the ModeratorCP.  You can easily view database entries (and articles) pending approval, comments pending approval, database entries that have been hidden and comments that have been hidden.  You can edit, approve and delete as needed right from the moderator control panel with ease.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/30f6bad0-81c3-480b-bb9b-8b4d33b41785/2012-01-26_1216.png" loading="lazy"><br><br>
You will note in this screenshot that when you select "Database Records" that you can then (and must) filter by database to view the entries pending approval within that database.  The same goes for viewing hidden content in the Trash Can section of the ModeratorCP.  In contrast, all comments pending approval or hidden can be displayed at once without the need to view them separately per-database.<br><br>
Going beyond this central tool, however, we have also added indicators throughout the IP.Content templates themselves when something is pending approval.<br><br>
Frontpage and archive templates will show you if there are comments pending approval (if you have permission to approve them)<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/6b8df037-c05d-4489-bcae-5d70d0b7fcfc/2012-01-26_1219.png" loading="lazy"><br><br>
So do the category listing templates<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/81225307-90f6-47e6-bd1f-5bc474f18d72/2012-01-26_1220.png" loading="lazy"><br><br>
And if you follow one of these links, the listing will be filtered so that you ONLY see the content pending approval.<br><br>
To remain consistent with IP.Board, we use badges in the various listings to show you when something is hidden or unapproved.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/0492e074-f3bc-408d-81b0-2622fb7d3a63/2012-01-26_1220.png" loading="lazy"><br><br>
We believe these changes when used together should help your moderators better find and manage the content that requires their attention throughout the front end.<br><br>
Finally, we have gone through and made IP.Content moderator processes more consistent with IP.Board 3.3.  If an article or comment is requiring approval, it is considered unapproved and you can approve or delete that comment or article.  If the article or comment is approved, you can delete or hide that article or comment.  Some time was spent with IP.Board to clarify these actions and make working with them more logical (what is soft delete?  what is hard delete?), and we wanted to bring those same improvements over to IP.Content.  And, if you haven't picked up on it throughout this paragraph, IP.Content now supports soft deleting articles and comments (which is called "hiding" in IP.Board 3.3).  These are the items that will show in the trash can of the ModeratorCP.<br><br><br><strong></strong><span style="font-size:18px"><strong>Administrative Logging</strong></span><strong></strong><br><br>
While not an overly exciting change, we have gone through the entire ACP codebase and added administrative logging to IP.Content.  Now, when "Admin Joe" deletes a page from the page manager, or alters your most important database template, you will quickly be able to see this through the Admin Logs page of the ACP.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Article Teaser Paragraph</span></strong><span style="font-size:18px"></span><br><br>
We have added a new default field to the articles system (upgraded installations will also get this new field) called a "Teaser Paragraph".  This field allows you to define the teaser paragraph to show to users in the various listings (e.g. the archive view or the frontpage templates).  When this field is populated, its entire contents will be displayed as given (it is an editor field, so bbcode parsing will also occur).  When the field is not populated, we will default back to the current functionality, which is to show a certain number of characters from the article body field (without any bbcode parsing occurring).  It should be noted that when viewing the article itself, the teaser paragraph is shown, and then the article body is shown after it, so the two fields are "combined" visually, however you can always edit the article view template to remove the teaser paragraph field if you do not wish for it to display.  You do not need to use this field if you don't want to, however many customers have requested a way to better control the content shown in the listing and this new field will allow you to do just that.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Further Interface Polish</span></strong><span style="font-size:18px"></span><br><br>
We are also presently working through the default templates to further refine and polish the interface before release.  We have made many minor changes already - often times using a different CSS class to add some padding, or adding an extra line break (or removing one!) can make really make the templates appear more professional.  We've worked on some various areas that we felt we could improve through minor changes, and we have ensured that the default templates make use of the IP.Board default CSS to the extent possible, removing IP.Content-specific CSS definitions that are no longer necessary in the process.  The end result is a more refined interface for your users, less for skinners to have to customize, and more consistency between IP.Content and IP.Board pages.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">In Closing...</span></strong><span style="font-size:18px"></span><br><br>
We are working hard to prepare the best IP.Content release we have ever made, and we are eager to get your feedback on the new and improved product.  <a href="http://community.invisionpower.com/blog/1174/entry-7038-ipcontent-23-what-to-expect/" rel="external nofollow">We are expecting a spring 2012 release</a>, and we are working through many of the last few pieces of the puzzle to deliver a product we know you will be excited to use.  If you have any feedback about changes you would like to see in the product that we haven't <a href="http://community.invisionpower.com/blog/blog-1174/cat-34-ipcontent" rel="external nofollow">already announced</a>, please feel free to share them in our <a href="http://community.invisionpower.com/forum/427-ipcontent/" rel="external nofollow">feedback forum</a>.  If you have any comments about the changes discussed above, please leave your comments below!</p>]]></description><guid isPermaLink="false">772</guid><pubDate>Fri, 27 Jan 2012 13:08:15 +0000</pubDate></item><item><title>IP.Board 3.3 Dev Update: Banning and more SEO tweaks</title><link>https://invisioncommunity.com/news/invision-community/7376-ipboard-33-dev-update-banning-and-more-seo-tweaks/</link><description><![CDATA[<p>Anyone that runs a lively and thriving community knows that now and again you have to make the hard decision to ban a member. IP.Board has a powerful set of tools built in to manage this for you and you can ban a member for a set number of days or permanently with a few clicks via the warning system or the ACP member management system.<br><br>
Currently, there are two ways to ban a member. One is to flag them as banned and the other is to move them into the pre-defined banned group. They both act very similarly and there's a lot of overlap which leads to some confusion as to what the differences are.<br><br>
Flagging a member as banned will prevent them from viewing the board and contributing to the community. Moving a member to the banned group does the same but at a group level and also removes the member from the member list. This isn't immediately apparent and we do find some administrators get confused. "Do we have to flag as banned and move to the banned group?".<br><br>
We've simplified this in 3.3 by removing the pre-set banned group for new installations. Now when you flag a member as banned, they are removed from the member list and any friends lists they may be on. Additionally, only super moderators and admins can then view their profile.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120126-074902.jpg" loading="lazy"><br><br>
I've also ensured that spammers are treated in the same way. When you flag a member as a spammer, they are removed from the member list and any friends lists they may be on.<br><br>
It's worth noting that existing installations do not get their banned group removed, but any members in the banned group are automatically flagged as banned. You can, if you choose, remove the banned group yourself.<br><br>
I've taken this a step further to consider the impact on SEO when you flag a member as a spammer or ban a member. You don't really want your members and search engines following profile links that lead to an error, so I've removed the hyperlink for banned members and spammers for anyone that is not a super moderator or admin. This means fewer crawler errors and more importantly less keyword pollution. We all know that most spammers choose keyword rich user names that you don't want associated with your community!<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120126-074802.jpg" loading="lazy"><br><br>
The new warning tools have been updated to allow you to move banned members into a group of your own choosing if you'd like to keep group-level organisation.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120126-075313.jpg" loading="lazy"><br><br>
I'd like to wrap up this entry with a quick mention on some other SEO tweaks. I read a great little entry by <a href="http://community.invisionpower.com/user/147321-enkidu/" rel="external nofollow">Enkidu</a> yesterday on his <a href="http://community.invisionpower.com/blog/4133/entry-7284-seo-tweaks-for-ipb-32-board-index-page/" rel="external nofollow">blog</a>. He suggested some quick tweaks to remove unimportant keywords like 'category' and 'forum'. I've gone ahead and implemented his suggestions.<br><br>
This will help reduce keyword noise and increase keyword density for keywords you want to focus on. The screenshot below shows the changes in action. Note how many times the category name is now repeated:<br><br><img src="http://www.mattmecham.com/skitch/Shades-20120126-075111.jpg" loading="lazy"><br><br>
These changes and updates further our goals to increase SEO, improve moderator tools and clean up interface elements in IP.Board 3.3.0!</p>]]></description><guid isPermaLink="false">771</guid><pubDate>Thu, 26 Jan 2012 13:30:30 +0000</pubDate></item><item><title>IP.Content 2.3 Dev Update: Introducing Block Templates</title><link>https://invisioncommunity.com/news/invision-community/7355-ipcontent-23-dev-update-introducing-block-templates/</link><description><![CDATA[<p>As part of our goal to improve the usability of IP.Content, particularly for non-coder administrators, we've used the 2.3 release to look at ways of reducing or eliminating the amount of code that needs to be written in order to create great websites.<br><br>
In the current version of IP.Content, blocks require individual templates (entered as part of the wizard process), and the default, unedited HTML is generic and not ideal for most blocks you'd want to create. This clearly left room for improvement, so we're pleased to introduce our solution: block templates. Block templates give us two primary benefits:</p>
<ul><li>Make it easier for IP.Content users to set up a good website, without needing to code
</li>
<li>Make it possible for those who <em>can</em> code to share interesting block interfaces either directly or through the IPS Marketplace<br></li>
</ul><br><strong>Reusable Block Templates</strong><br><br>
In IP.Content 2.3, the templates that feed blocks use are created separately, using a new Block Template manager, and then assigned to blocks when they are created:<br><br><img src="https://img.skitch.com/20120124-1d7speqfpraawyfnd3xyt7bf1n.png" loading="lazy"><br><span style="font-size:12px"></span><span style="color:#696969"><span style="font-size:12px"></span></span><em><span style="color:#696969"><span style="font-size:12px">The block template manager</span></span></em><span style="color:#696969"><span style="font-size:12px"></span></span><br><br><br>
What does this mean in practice? Firstly, it means that block templates can be used by more than one block, without recoding them, and when changes are made to the template, all blocks update at once. More importantly, it means block templates can be created, exported, shared and imported, so that those with the skills to create them can share them with those who can't. We hope this will spur some great block interfaces from our modding community, to benefit all IP.Content users.<br><br><strong>How does it work?</strong><br><br>
Templates are linked to a feed type and a content type. For example, you might create a template designed for "Topics" in the "Forums" feeds, or "Albums" in "Gallery". In addition, you can create generic templates based on a content type alone, for example "Comments", which can then be used with any feed that shows comments.<br><br><br><em></em><img src="https://img.skitch.com/20120124-twqgtqyjus545jwje3dnra7ufj.png" loading="lazy"><em></em><br><span style="font-size:12px"></span><span style="color:#696969"><span style="font-size:12px"></span></span><em><span style="color:#696969"><span style="font-size:12px">Adding a new block template</span></span></em><span style="color:#696969"><span style="font-size:12px"></span></span><br><br>
When feed blocks are created, you are presented with a gallery of all suitable templates. Clicking one previews the template with the real data that the block will generate, so you can see exactly what the block will look like on your pages:<br><br><br><img src="https://img.skitch.com/20120124-fqcsgpdmmfku2d8ehbkm8be46c.png" loading="lazy"><br><span style="font-size:12px"></span><em><span style="font-size:12px"></span></em><span style="color:#696969"><em><span style="font-size:12px">Creating a new feed block using a block template</span></em></span><em></em><br><br>
Of course, if you still wish to provide a custom template for a particular block, you can do so - the process will be exactly the same as before.<br><br><strong>A Javascript &amp; CSS framework provided</strong><br><br>
To go with block templates, we've created a mini Javascript and CSS framework. This means that all block templates, whether they are provided by us or by our modification community, can maintain a consistent style.<br><br>
The required framework files are automatically injected into <em>all</em> IP.Content pages, whether you use the IP.Board wrapper or your own HTML wrapper.<br><br>
The javascript side of things is powered by jQuery, and based on the jQuery UI Widget Factory. Block templates can include their own assets, such as javascript widgets, CSS files and images. IP.Content automatically compresses all the JS and CSS files from all templates into a single minified file to help keep websites loading quickly and cut down on HTTP requests.<br><br><strong>Sharing templates</strong><br><br>
As mentioned above, block templates can be exported and shared with other IP.Content users. To make this process very simple, when a template is exported, it's built as an XMLArchive - that means all of your CSS, JS and other assets are compiled into one file for you to distribute (a little like an IP.Board skin is).<br><br><img src="https://img.skitch.com/20120124-cumi1imwk2xpsb9abuian4jta7.jpg" loading="lazy"><br><em></em><span style="font-size:12px"><em></em></span><span style="color:#696969"><span style="font-size:12px"><em>Exporting a block template into one XML file </em></span></span><em></em><em></em><br><br><strong>Conclusion</strong><br><br>
To give you a taste of what is possible with block templates, here's a demo page I've created using some of the default templates we'll be providing. No code - other that putting template tags into a page and adding a div to make the right column - was typed to build this page!<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-1094-0-77341300-1327442793.jpg"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-1094-0-77341300-1327442793_thumb.jpg" data-fileid="36877" loading="lazy"></a><br><span style="font-size:12px"></span><em><span style="font-size:12px"></span></em><span style="color:#696969"><em><span style="font-size:12px">An example page using default templates</span></em></span><em></em><br><br><br>
Our aim with block templates is to allow all IP.Content administrators to have interesting, useful, interactive blocks, without needing to write the code themselves. The addition of a new standardized JS and CSS framework also means that blocks can maintain consistent styling, regardless of who authored the template.<br><br>
We'll be including a number of pre-made templates with IP.Content 2.3, and hope that the modification community and other coders will embrace the new possibilities offered by block templates, and create many more to be shared via the IPS Marketplace. Once IP.Content 2.3 is released, we'll publish some developer documentation to help you get started with the new tools.<br><br>
We think block templates are a huge step forward in making it easier to create websites using IP.Content. We hope you exploit their full potential!<br><br><br><span style="color:#282828"></span><span style="font-family:helvetica, arial, sans-serif"><span style="color:#282828">We look forward to your suggestions and ideas for improving the software in our </span></span><a href="http://community.invisionpower.com/forum/427-ipcontent/" rel="external nofollow">feedback forum</a><span style="color:#282828"></span><span style="font-family:helvetica, arial, sans-serif"><span style="color:#282828">. We heavily rely on feedback from all of our clients to shape the future of our software, and even if we don't reply to every topic, rest assured they are all read. If you have any comments on the new block templates feature in IP.Content 2.3, please share your thoughts below!</span></span>]]></description><guid isPermaLink="false">770</guid><pubDate>Tue, 24 Jan 2012 22:30:00 +0000</pubDate></item><item><title>IP.Content 2.3 Dev Update: Nexus Blocks</title><link>https://invisioncommunity.com/news/invision-community/7360-ipcontent-23-dev-update-nexus-blocks/</link><description><![CDATA[<p>As part of our continued effort to <a href="http://community.invisionpower.com/blog/1174/entry-7038-ipcontent-23-what-to-expect/" rel="external nofollow">strengthen existing functionality in IP.Content 2.3</a>, and bring about a more consistent and reliable experience for novice and advanced users alike, we have implemented support for IP.Nexus blocks in IP.Content 2.3.  <a href="http://www.invisionpower.com/products/nexus/" rel="external nofollow">IP.Nexus</a> is our powerful e-commerce application, allowing you to monetize your site through the use of many great features such as a storefront, user subscriptions, hosting and support helpdesk functionality.  Beginning with IP.Content 2.3, you will now be able to pull much of the great content IP.Nexus contains in unique and useful ways through feed and plugin blocks.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Donations Plugin Block</span></strong><span style="font-size:18px"></span><br><br>
IP.Nexus ships with a "donations" sidebar block that can appear on the board index sidebar.  If the hook is enabled, the block shows up automatically once you have configured a donation goal.  We have duplicated this functionality as a plugin block in IP.Content 2.3, allowing you to show the same donation block anywhere you want, on or off site.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/3025c0a1-4fbc-4c10-a94c-37d1ee9fea20/2012-01-16_1155.png" loading="lazy"><br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Nexus Feed Block</span></strong><span style="font-size:18px"></span><br><br>
And, of course, we have included a Nexus feed block.  While many of our applications have more than one data content type you can pull (for instance, you can pull files, categories or comments when you create an IP.Downloads feed block), our IP.Nexus feed block supports a whopping <span style="text-decoration:underline"></span><em><span style="text-decoration:underline">6 content types</span></em><span style="text-decoration:underline"></span>.  As we mentioned at the start of this entry, IP.Nexus is a very powerful application, and we wanted to allow you to pull the most commonly needed data through the new IP.Content feed block.  While we will evaluate feedback and improve this block over time as needed, we feel we have captured the most useful data feeds in our initial implementation here.<br><br>
You will be able to pull the following data from IP.Nexus:</p>
<ul><li>Packages<br></li>
<ul data-ipsbbcode-list="true"><li>
</li>
<li>Filter by stock quantity
</li>
<li>Filter by "show on registration" setting
</li>
<li>Filter by "show in store" setting
</li>
<li>Filter by "is physical item" setting
</li>
<li>Filter by "is subscription" setting
</li>
<li>Filter by "allows upgrading" setting
</li>
<li>Filter by "allows downgrading" setting
</li>
<li>Filter by price (minimum and maximum)
</li>
<li>Filter by "is renewable" setting
</li>
<li>Sort by name, in stock, upgrade charge, downgrade refund, price, renewal price, ACP-specified position, featured status, or random</li>
<br><br><ul></ul><li>Filter by product
</li>
<li>Filter by member (e.g. to show the viewing user purchases they have made, or purchases their friends have made)
</li>
<li>Filter by active status
</li>
<li>Filter by cancelled status
</li>
<li>Filter by purchase date
</li>
<li>Filter by expiration date
</li>
<li>Sort by name, active status, cancelled status, start date, expiration date, renewal price, package name or random</li>
<br><br><ul></ul><li>Filter by department
</li>
<li>Filter by status
</li>
<li>Filter by severity
</li>
<li>Filter by member
</li>
<li>Filter by replies (minimum and maximum)
</li>
<li>Filter by open date
</li>
<li>Filter by last reply date
</li>
<li>Sort by title, start date, last reply date, last new reply date, last staff reply date, number of replies or random</li>
<br><br><ul></ul><li>Filter by status
</li>
<li>Filter by creation date
</li>
<li>Filter by paid date
</li>
<li>Filter by total (minimum and maximum)
</li>
<li>Sort by title, amount, date, date paid or random</li>
<br><br><ul></ul><li>Filter by status
</li>
<li>Filter by date
</li>
<li>Filter by method
</li>
<li>Filter by member
</li>
<li>Filter by amount total (minimum and maximum)
</li>
<li>Sort by amount, date or random</li>
<br><br><ul></ul><li>Filter by status
</li>
<li>Filter by order date
</li>
<li>Filter by ship date
</li>
<li>Filter by ship method
</li>
<li>Sort by date, ship date or random</li>
<br><br></ul></ul>[*]Purchases[*]Support Requests[*]Invoices[*]Transactions[*]Shipping
<br>
As you can see, most of the bases are covered here.  If you want to pull a block of "all transactions the viewing user has made, most recent to oldest" you can.  If you want to pull a block "random product available in our storefront" you can.  If you want to pull "all customer service tickets that are on hold", you can.  And remember some special tips with IP.Content - date fields accept any regular date string (e.g. "today" or "last year"), and member fields support two special values: "myself" (restrict to viewing user) and "friends" (restrict to friends of the viewing user).  These special options available in all IP.Content feed blocks can lead to some really creative and unique blocks.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Time out for a techy moment</span></strong><span style="font-size:18px"></span><br><br>
If you are not a developer, feel free to skip this section.<br><br>
Beginning with IP.Content 2.3, support has been added for pulling blocks from the application folder.  In IP.Content 2.2 and below, block files for third party applications must be uploaded to the IP.Content folder (admin/applications_addon/ips/ccs/sources/blocks/*).  This works fine, however it is ideal to allow applications to keep their files self-contained to the extent possible.  As such, you can now store feed blocks for your third party applications in (application_folder)/extensions/content/feed_blocks/ and plugin blocks in (application_folder)/extensions/content/plugin_blocks/.  Behind the scenes, IP.Content will first check application folders, and then check its current block directories.  A block in an application folder will override any included in the IP.Content directory.  This will allow you to better self-contain your application files while still making use of all the features our application suite provides.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">What the future holds</span></strong><span style="font-size:18px"></span><br><br>
We are certain there will be other types of data in IP.Nexus you will want to be able to feed through IP.Content blocks over time, and look forward to your feedback and suggestions on ways to improve this new block type in future releases.  We hope this initial release, however, covers most of your needs and that you find ways to make use of this powerful tool in IP.Content 2.3.<br><br>
We look forward to your suggestions and ideas for improving the software in our <a href="http://community.invisionpower.com/forum/427-ipcontent/" rel="external nofollow">feedback forum</a>.  We heavily rely on feedback from all of our clients to shape the future of our software, and even if we don't reply to every topic, rest assured they are all read.  If you have any comments on the new IP.Nexus feed or plugin blocks available with IP.Content 2.3, please share your thoughts below!
]]></description><guid isPermaLink="false">769</guid><pubDate>Mon, 16 Jan 2012 16:50:00 +0000</pubDate></item><item><title>IP.Content 2.3 Dev Update: Improved Relational Fields</title><link>https://invisioncommunity.com/news/invision-community/7351-ipcontent-23-dev-update-improved-relational-fields/</link><description><![CDATA[<p>IP.Content 2.3 development is progressing nicely.  We are sticking to the <a href="http://community.invisionpower.com/blog/1174/entry-7038-ipcontent-23-what-to-expect/" rel="external nofollow">four core points</a> we wanted to address with the release of 2.3, namely: usability, consistency, SEO, and strengthening the existing feature set.  All of these points tie in together and compliment each other nicely, and addressing these points together will allow for an easier to use and understand yet even more powerful product in the end.  One of the existing features we have taken some time to improve with the release of IP.Content 2.3 is the relational database field capability available in any database (and in the articles system).<br><br>
If you are not familiar with relational database fields, they allow you to easily "link" two databases together.  A common example I like to give involves having a database of actors and a database of movies.  Rather than typing out the actor names every time you add a movie, it makes more sense to add all of the actors to an <em>actors database</em>, and then simply select the actors when you add a new movie.  Doing this allows us to link the database records behind the scenes, maintaining an association between the movie and the actors in the movie, in this example.  While this association has not been capitalized upon to date, IP.Content 2.3 now provides some new functionality to make the relational fields much easier to use and much more useful.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Linked field is not the displayed field</span></strong><span style="font-size:18px"></span><br><br>
One common complaint with relational fields is that no matter which field you select to link to, the title field is always what is displayed on the front end.  Keeping with our actor database example, you might have the title field set to the actor name, but allow a separate field for stage name (which would often be the same as the actor's real name of course).  When configuring your relational field, you choose to link to the stage name, as this is what users are going to know and look for, yet the dropdown/multiselect option on the submission forms and the displayed value when viewing the record after submission always show the actor name (because it is set as the title field in this database).  This is not what our clients are expecting when they link to the specific field in the relational database, and we've heard you loud and clear.  Beginning with IP.Content 2.3, the field you link to (in this example, the stage name) is what will be accepted on the submission form, and is what will be displayed when viewing the record upon submission.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Dropdowns and multiselects not always ideal</span></strong><span style="font-size:18px"></span><br><br>
Naturally when you have specific allowed inputs, you have to implement a way to enforce the values sent are values that are allowed.  If a user is adding a movie and you use a relational field to accept the actors for this movie, you want to ensure that they only supply names that are in your actors database.  Dropdown fields are ideal for this purpose (or when accepting more than one value, multiselect fields), however what happens as the actor database grows?  Eventually, you may have thousands of actors stored, at which point a dropdown or multiselect field will become virtually unusable.<br><br>
Enter the type-ahead field.  Relational fields will now have a third option for "Type of field" called "Type-ahead".  When choosing this option, instead of a dropdown field or a multiselect field, you will see a regular text field.  As you begin typing in an actor name, suggestions that match the characters typed will be displayed and will be selectable for the user.  The new type-ahead field accepts more than one value, so after you select your first value and it is inserted into the text field, you can start typing the next value you wish to insert and select it as well.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/f463b80d-407b-4053-a543-eb7faee03a74/2012-01-13_1704.png" loading="lazy"><br><br>
Upon submission the values will be verified (to ensure that the names are valid for the relational field configuration), so you don't have to worry about random values that are not found in the remote database being stored.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Linking</span></strong><span style="font-size:18px"></span><br><br>
Some users have expressed interest in linking the displayed relational field values to their associated records in the remote database.  To continue with our actor and movie database examples, if you associate 3 actors with a movie, when viewing that movie it would be nice if the actor names linked back to the actor bio page automatically.  Some users have attempted clever workarounds to generate the links themselves in the templates, only to find out that natural sorting is performed and thus ids and displayed values do not necessarily line up.<br><br>
We have added a new option on relational fields (when configuring the field in the ACP) to automatically link the selected values back to their records in the related database.  You should only enable this option if your related database is actually accessible on a page via the front end (remember that you can create databases that are ACP-only), however in this configuration (which is most common), this new option will make it much easier to cross link the values, giving much more value to linking to related databases.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/4582efa0-6835-4a5e-944f-655ad2371547/2012-01-13_1710.png" loading="lazy"><br><br>
As you can see in this screenshot, the values I submitted from my last screenshot are automatically resorted to be in alphabetical order, and they are linked to their related records in the actors database.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">And reverse linking</span></strong><span style="font-size:18px"></span><br><br>
So far the improvements described are all about fleshing out the relational fields to make them more useful and easier to understand.  The last thing I want to talk about, however, will really enhance the usefulness of relational fields.  You can now have records in the related database automatically reverse cross-link back to records pointing to them.  As with the descriptions of the above changes, let's use a move and actor example to clarify what we mean by this.<br><br>
You have a movies database and an actors database.  When adding movies, you use a related field to point back to the actors in the movie.  When viewing the movie record, it can now even link to the actor pages.  Reverse linking takes the next logical step - it will automatically show all movies that the actor is associated with when viewing the actor page.  This is a per-relational-field setting, so you do not need to make use of this feature if you don't want to, however it now gives relational fields much stronger value beyond their current implementation.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/64386fe3-704c-44be-afa5-6ade88e99c00/2012-01-13_1720.png" loading="lazy"><br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">The future</span></strong><span style="font-size:18px"></span><br><br>
Relational fields are a very powerful yet under-utilized feature of databases in IP.Content.  We have been evaluating much feedback related to this feature, and as you can see above we have implemented many of the most commonly requested changes for this specific field type.  We hope you find value in these updates, and look forward to your feedback and further suggestions on how to make this field even more powerful and useful.<br><br>
Please feel free to share your suggestions for further improvements to relational fields or other areas of IP.Content in our <a href="http://community.invisionpower.com/forum/427-ipcontent/" rel="external nofollow">feedback forum</a>.  Otherwise, if you have feedback about the changes described in this blog entry, we look forward to your comments below!</p>]]></description><guid isPermaLink="false">768</guid><pubDate>Fri, 13 Jan 2012 21:49:00 +0000</pubDate></item><item><title>IP.Board 3.3 Dev Update: Reputation Enhancements</title><link>https://invisioncommunity.com/news/invision-community/7285-ipboard-33-dev-update-reputation-enhancements/</link><description><![CDATA[<p>IP.Board has featured a reputation system since 3.0, allowing users to give positive or negative reputation to posts, as well as content in other apps in the IPS Community Suite (blog entries, gallery images, etc.) as well as content in third party applications.<br>
In IP.Board 3.2, we enhanced this by adding a new way of viewing the reputation system, in terms of "liking" content as opposed to giving reputation, which is a more common social feature on websites today.<br><br>
In IP.Board 3.3, we're adding two features to utilise the reputation system in content discovery.<br><br><br><br><strong>Reputation in user's profile</strong><br><br>
We've added a new tab to the profile which allows you to see both the content that the user has most recently liked, as well as content the user has made which has been most recently liked.<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-75666300-1325775858.jpg"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-75666300-1325775858_thumb.jpg" data-fileid="36464" loading="lazy"></a><br><br>
This of course supports both reputation modes (the "Like" system and the traditional reputation system).<br><br>
The tabs at the top allow you to choose which application you want to view content from (in the screenshot only Forums and Calendar are viewable, but of course, support will be added for other apps and 3rd party developers can also add support), and also toggle whether you want to see reputation given or reputation received.<br><br><br><br><strong>Content with the highest reputation</strong><br><br>
In addition to the profile tab, we've also created a new page (the link to which appears in the footer next to the top posters, etc.) which shows the content which has the highest rating, or has been liked the most.<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-21592000-1325776849.jpg"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-21592000-1325776849_thumb.jpg" data-fileid="36467" loading="lazy"></a><br><br>
Just like on the profile tab, you can toggle between which application you want to view the content for.<br><br>
Both systems of course also work exactly the same with the traditional reputation system:<br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-78882100-1325777240.jpg"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-78882100-1325777240_thumb.jpg" data-fileid="36468" loading="lazy"></a><br><br><br><br><br><em>Feel free to comment on this blog entry below or, if you have feedback unrelated to this blog entry, start a new topic in our feedback forum. </em></p>]]></description><guid isPermaLink="false">767</guid><pubDate>Thu, 05 Jan 2012 16:00:00 +0000</pubDate></item><item><title>IP.Board 3.3 Dev Update: Miscellaneous Enhancements</title><link>https://invisioncommunity.com/news/invision-community/7281-ipboard-33-dev-update-miscellaneous-enhancements/</link><description><![CDATA[<p>With every release of our products, we like to spend some time identifying areas which can be improved slightly, and small feature suggestions we can use. 3.3 is no exception, and I wanted to write a quick blog entry to highlight just some of the smaller enhancements we've made to 3.3 to make the product more powerful and easy to use.<br><br><br><br><strong>Login autosave</strong><br><br>
In 3.2, we introduced a login popup box when you click "Sign In" to make logging in faster. Previously, the content for this popup was loaded by AJAX which meant some browsers would not automatically fill in your username and password like they normally would.<br><br>
In 3.3, we've changed the way this is loaded so that this is no longer the case. It still works exactly as it did before, except browsers will now be able to autofill your login details.<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-46100500-1325682131.png"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-46100500-1325682131_thumb.png" data-fileid="36417" loading="lazy"></a><br><br><br><br><strong>Emoticons in sigatures</strong><br><br>
Emoticons (smilies) are now supported in signatures.<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-25154700-1325682130.png"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-25154700-1325682130_thumb.png" data-fileid="36416" loading="lazy"></a><br><br><br><strong>Log in as member</strong><br><br>
Sometimes it is useful to log into your community as a member if they're experiencing issues, or to check you have set permissions up correctly.<br><br>
Previously, you would have to change the user's password and then log in as them normally in order to do this.<br>
In 3.3, we've added a button to the "edit member" page in the Admin CP which will log you straight into the community as that user, without you needing to know their password.<br><br>
This is of course protected by Admin CP Restrictions, so you can choose which of your administrators have access to this function.<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-49284000-1325682132.png"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-49284000-1325682132_thumb.png" data-fileid="36418" loading="lazy"></a><br><br><br><br><strong>Duplicate forum</strong><br><br>
Sometimes you want to set up several similar forums. This can be a real hassle having to create every forum, and set the settings and permissions for that forum manually.<br><br>
In 3.3, we've added an option in the drop-down menu in the forums management screen which allows you to "duplicate" a forum, so that you can easily create multiple forums with similar settings and permissions.<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-83527800-1325682127.png"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-83527800-1325682127.png" data-fileid="36414" loading="lazy"></a><br><br><br><br><strong>Remove ability to create status updates</strong><br><br>
Sometimes, you might want to remove a user's ability to post status updates. Previously, this could only be done in the Admin CP, however, in 3.3, we've added this option to the "edit member" screen on the front-end, so moderators can toggle this setting without having to log into the Admin CP.<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-00106900-1325682135.png"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-00106900-1325682135_thumb.png" data-fileid="36420" loading="lazy"></a><br><br><br><br><strong>Tasks as cron</strong><br><br>
IP.Board features a powerful task manager which is used to run certain tasks throughout the day to perform cleanup, send emails, etc. The task manager has always supported running tasks using cron for sites which would prefer to do so or perhaps do not receive enough activity for tasks to be triggered by users.<br><br>
Previously, each task had to have its own cron job set up. In 3.3 however, you can create a single cron which will execute any tasks that need to be ran.<br><br><br><br><strong>Delete guest posts</strong><br><br>
IP.Board has always had the ability to delete all posts by a certain member. However, if you allow guests to posts, there was no tool to delete all posts made by a particular guest. In 3.3, we've added this feature.<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-25878200-1325682126.png"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-25878200-1325682126_thumb.png" data-fileid="36413" loading="lazy"></a><br><br><br><br><strong>Rebuild reputation</strong><br><br><br>
When you delete a post, the user's post count does not go down as this is representative of how many posts the user has made. IP.Board however, does have a tool to rebuild post counts based on what's currently in the database to set the post count for each user to be the current number of posts on the community.<br><br>
Reputation has a similar problem - when a user receives reputation, if the post which received reputation is deleted, their reputation does not go down - this is by design. Up until now however, there was no way to "rebuild" this like you can do with post counts.<br>
In 3.3, we've added a tool to rebuild reputation based on what's currently in the database, just like the tool to rebuild post counts.<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-79159400-1325682133.png"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-79159400-1325682133_thumb.png" data-fileid="36419" loading="lazy"></a><br><br><br><br><br><br><strong>Upgrader custom script</strong><br><br>
This is a change which only applies to application developers. In 3.3, we've added support for two scripts which are executed before and after an upgrade, respectively. Developers can use this to verify the application is compatible with the IP.Board version, and to run any post-upgrade rebuilds that may be necessary.<br><br><br><br><strong>Email tester</strong><br><br>
We've also added a tool in the "Support" section of the Admin CP which will send a test email so that you can verify your community is sending emails correctly.<br><br><a href="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-02774000-1325682129.png"><img src="http://community.invisionpower.com/uploads/monthly_01_2012/blogentry-108264-0-02774000-1325682129_thumb.png" data-fileid="36415" loading="lazy"></a><br><br><br><br><br><br><em>Feel free to comment on this blog entry below or, if you have feedback unrelated to this blog entry, start a new topic in our feedback forum. </em></p>]]></description><guid isPermaLink="false">766</guid><pubDate>Wed, 04 Jan 2012 13:00:00 +0000</pubDate></item><item><title>IP.Content 2.3 Dev Update: Navigation Bar</title><link>https://invisioncommunity.com/news/invision-community/7261-ipcontent-23-dev-update-navigation-bar/</link><description><![CDATA[<p>We hope that everyone is enjoying reading about the upcoming changes you will see in IP.Content 2.3.  As we <a href="http://community.invisionpower.com/blog/1174/entry-7038-ipcontent-23-what-to-expect/" rel="external nofollow">outlined originally</a>, our focus is on four primary goals: usability, consistency, SEO and strengthening our existing feature set.  One common usability issue our clients have pointed out is that after they create a page, there is not an easy way to link to the page in the primary navigation bar.  While you can certainly edit the skin to accomplish this (and indeed, this is what most clients ultimately do), we have decided to build into IP.Content 2.3 a more robust and easier to use solution.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Our new primary navigation menu manager</span></strong><span style="font-size:18px"></span><br><br>
Beginning with IP.Content 2.3, there will be a new link under the IP.Content 'Settings' module labeled "Navigation Menu".  In order to use this new feature, a hook (provided in the IP.Content download and installed automatically for you) must be enabled - if it is not, the page will show you an error message indicating that the hook must first be enabled before you can utilize the navigation menu manager.  Otherwise, you will be presented with a list of the applications installed in their current positioned order (which determines the tab order on the front end).<br><br>
You can edit these applications from here to perform the following functions:</p>
<ul><li>Change the tab 'title' (the text that shows when you mouse over the tab)
</li>
<li>Change the application's public title (be aware that third party language packs can override this)
</li>
<li>Toggle whether the tab is hidden or not
</li>
<li>Change the tab permissions (who has access to see the tab)
</li>
<li>Add custom attributes to the anchor tag that is drawn.  This is a feature unique to IP.Content, allowing you to add custom onclick handlers, rel attributes, and other similar attributes to your tabs if you have a need.<br></li>
</ul><br>
In addition to being able to manage your existing applications, you can add custom tabs to your navigation bar from this page.  Your custom tabs can be normal tabs that link to a page, or a dropdown menu (and you can choose whether to activate the dropdown menu when clicked, or when moused over).  If you choose to make the tab a dropdown menu, you will be presented with an area to provide the links to display in this dropdown menu.  As with applications, you can define the text to display on the tab, the 'title' or mouseover text, which groups can see the tab, and custom attributes to append to the HTML anchor tag.  Additionally, you will need to supply the URL as well.<br><br>
You can reorder your tabs in any order you like, putting them before, after, or intermingled with your regular application tabs.  A handy preview window at the top of the screen allows you to quickly and easily see what the end result will look like, without having to visit the community front end and refresh the page.  This preview is shown inside an iframe and is updated automatically whenever you reorder your tabs.<br><br>
Tabs will automatically highlight when you are viewing that page, and disable associated application tabs from highlighting, if appropriate.  For instance, if you link to an IP.Content page, the 'Pages' tab will no longer highlight, since a more appropriate tab has been lit up.  Database strings are ignored, so any category or record you view on that page will still cause the tab to light up.  Additionally, if you view a page that is linked to within a submenu, the submenu tab will light up.<br><br>
Here are a few screenshots to give you an idea of the interface<br><br>
Here is the overview screen, showing the tab bar preview, list of applications, and list of custom tabs you may have added.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/cc44b9ec-9544-4e6c-8c61-6a8720740627/2011-12-28_1731.png" loading="lazy"><br><br>
Editing an application allows you to manage tab and link related details<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/2aa8ca16-6d92-4557-95bb-9548b2495008/2011-12-28_1732.png" loading="lazy"><br><br>
Adding a custom tab allows you to create a submenu if you wish to, with an unlimited number of links in it<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/2a95a26e-9bdf-4d10-a6bd-18b6715e4cfe/2011-12-28_1733.png" loading="lazy"><br><br>
New tab bar on the front end, complete with custom tabs and a dropdown menu<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/ba15ec1d-686c-4c27-8aa4-a97f0cb1428e/2011-12-28_1734.png" loading="lazy"><br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Wrapping up</span></strong><span style="font-size:18px"></span><br><br>
And no, that's not a pun based on the fact that Christmas just passed. :wink: It's a natural action for a new client to add a page and proceed to want to place a tab link to that new page on the front end, only to find that this requires navigating to the template manager and jumping into the HTML code to accomplish.  This new module in IP.Content should make it much easier for new users and advanced users alike to quickly add navigational tabs to their custom pages (or any link they want!) in IP.Content.  We will be monitoring feedback on this new module to look for ways to improve it in future releases, so please share your thoughts in the <a href="http://community.invisionpower.com/forum/427-ipcontent/" rel="external nofollow">IP.Content feedback forum</a>.  And we look forward to your comments on this new feature below!
]]></description><guid isPermaLink="false">765</guid><pubDate>Thu, 29 Dec 2011 13:53:51 +0000</pubDate></item><item><title>IP.Content 2.3 Dev Update: Tagging</title><link>https://invisioncommunity.com/news/invision-community/7145-ipcontent-23-dev-update-tagging/</link><description><![CDATA[<p>Tagging is a powerful feature made available through the IP.Board framework that allows you to collect "tags" for submitted data, either through an ad-hoc system whereby the members provide tags at will, or through a closed system where the available tags are pre-defined.  Tag support in IP.Content is, arguably, the number one requested feature, and since we try to listen to our customers and deliver software with the features <em>you</em> have asked for, we have chosen to include tag support for IP.Content in version 2.3.0.  Read on to learn about how tag support will work in the next release of IP.Content.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Configuration</span></strong><span style="font-size:18px"></span><br><br>
While your global configuration serves as the basis for IP.Content tags (just as it does elsewhere throughout our suite of addon applications), you can override the global options on both a per-database and per-category basis.  When configuring your databases (or your articles section), you can choose to enable tags, disable prefixes, and specify the pre-defined tags to use if you wish to use a closed system.  When configuring categories in your databases, you can optionally override the per-database configuration.  That is to say, all of your categories by default inherit the configuration from the database, but you can disable tagging, prefixes, or specify different pre-defined tags (or none at all) on a per-category basis if you wish.  You can do this for individual categories, or for all of your categories - the choice is yours.<br><br>
If you do not disable prefixes, they will be available to you and your members based on your global configuration in the System Settings.  Similarly, if you do not define per-database or per-category pre-defined tags, the ones you configure globally in the System Settings will be utilized instead (or the system will be an open system where users can submit whatever tags they want).  Global group options and per-member overrides (for instance, disabling tag abilities for a specific member) are all honored in IP.Content.<br><br>
These options will allow you to enable and disable tagging as you see fit throughout your article and database sections, giving you full control over how tags function.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Tag Collection</span></strong><span style="font-size:18px"></span><br><br>
Tag collection on the front end works just the same as it does for topics.  The input capabilities are dynamically set based on your configuration, so the "Use first tag as prefix" option is shown if allowed, and the tag input field will turn into a select box if you have a closed tagging system.  The same input capabilities are available in the ACP when you add or edit articles or database records from there, instead.<br><br>
Additionally, the tag input field is available if you promote a post to an article, and taking the system one step further - we even default the tags associated with the topic on the new article form for you.  You can of course remove them, add to them, or change them, but you won't have to try to remember what tags were used for the topic, and neither will your members.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Display and Searching</span></strong><span style="font-size:18px"></span><br><br>
Just as with topics, the tags will display in the database record listings (including the article "Archive" view).  If a prefix was set, it will show before the article or record title.  When you mouse over a tag, a helpful tooltip is shown to let you know you can click the tag to search for it.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/81b50db5-d91b-414e-bad1-c4ad66c62dc0/2011-12-20_1535.png" loading="lazy"><br><br>
The tags will also display in frontpage templates in a similar fashion.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/fb1713a2-73e7-4efd-aee7-27ad824d5fcc/2011-12-20_1537.png" loading="lazy"><br><br>
When viewing an article or database record, the tags are of course shown here as well<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/ea52a257-3c4a-454e-921b-1e5d89f45678/2011-12-20_1537.png" loading="lazy"><br><br>
And to round everything off, we show the prefix and tags when viewing records in the ACP as well<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/1d939267-6a18-4da1-993d-dee440d0147c/2011-12-20_1538.png" loading="lazy"><br><br>
Tags are also displayed in search results, if applicable.  And, of course, you can search for tags within the IP.Content application in the global site search, allowing you to easily find the articles and other database records that you have tagged.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">New Plugin Block: Tag Cloud</span></strong><span style="font-size:18px"></span><br><br>
With the introduction of tagging in IP.Content, we decided to go ahead and include a new plugin block to allow you to display a tag cloud block anywhere throughout IP.Content or IP.Board that you like.  This plugin block could, as well, be included externally on any webpage on the internet using our external widget code if you so wished.<br><br>
The block will display exactly as it does on the forum board index.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/70cf6fca-a6e4-487d-bbe4-39d662f80b9f/2011-12-20_1550.png" loading="lazy"><br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">More To Expect</span></strong><span style="font-size:18px"></span><br><br>
We are happy to be able to deliver one of the most requested features for IP.Content 2.3, and we hope you are looking forward to the release.  We have a lot more in store, so stay tuned for future blog entries outlining other changes you can expect to see with IP.Content 2.3.  If you have suggestions for other improvements to IP.Content, please don't hesitate to share them in our <a href="http://community.invisionpower.com/forum/427-ipcontent/" rel="external nofollow">IP.Content feedback forum</a>!</p>]]></description><guid isPermaLink="false">764</guid><pubDate>Sun, 25 Dec 2011 14:29:02 +0000</pubDate></item><item><title>IP.Content 2.3 Dev Update: New Toys</title><link>https://invisioncommunity.com/news/invision-community/7140-ipcontent-23-dev-update-new-toys/</link><description><![CDATA[<p>Development of IP.Content 2.3 continues, and while we have many more great things in store for this release, we wanted to take a moment to tell you about two new features you can expect to see in this release.  Many of the recent blog entries have described consistency improvements, SEO improvements, and other integration changes, but we wanted to make sure you knew that this release would have a couple of new "fun" features that you can use on your site as well.  Certainly, we are not yet done with our IP.Content 2.3 changes, and you can expect several more blogs detailing further improvements you will see with this release, but to tide you over until then, here are two new features that we hope you will find useful.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">New Plugin Block: Currently Viewing</span></strong><span style="font-size:18px"></span><br><br>
Many users have asked us to add a "Currently viewing" block to our database and article pages, perhaps even to other IP.Content pages.  If you are not clear on what I am referring to when I mention a "currently viewing" block, it is the block you see in many applications (the forums included) that tells you who is also viewing the current page.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/b14d602b-de17-4308-a5e2-d5689d770315/2011-12-19_1655.png" loading="lazy"><br><br>
Rather than give you an option to add this capability to individual databases or pages, we decided to take it one step further.  We have implemented a new plugin block that you can create in IP.Content to generate a "currently viewing" block, which you can now integrate onto any page you like in IP.Content (databases/articles included), as well as any other page throughout the entire IP.Board suite!  Remember that IP.Content blocks can be embedded into any IP.Board skin template, allowing you to easily add "currently viewing" blocks throughout your site, at your discretion.<br><br>
Note that while blocks can be embedded into external pages using a javascript widget, this particular block will not properly track page viewing on those external non-IP.Board pages (because it relies on session data in IP.Board), and we do not recommend using this block on external pages as a result.<br><br>
With that said, you can now add a currently viewing block to your databases, articles, other IP.Content pages...and anywhere else throughout IP.Board you feel it would be useful!  You can even use this block in your third party applications, though support for viewing individual pages will vary by application based on how they have configured their session plugins.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Shared Media Field</span></strong><span style="font-size:18px"></span><br><br>
The shared media button, available in the WYSIWYG editors throughout IP.Board, is a powerful tool that allows you to quickly and easily insert content from across your entire suite of applications (and many third party applications!) anywhere you can post content with the WYSIWYG editor.  You can share calendar events, attachments, gallery images, download manager files, and more anywhere that you can post.<br><br>
We have decided to make use of this powerful functionality and take it a step further with IP.Content 2.3.  You can now add a "Shared Media" field to any database (including your articles section), which will act as a separate way of inserting these shared resources into your submission.  The items do *not* insert into the available RTE (you can already do that by using the button available on the editor) - instead they show and list separately.  You can use this powerful new capability to link your database records logically to any other content in the suite - link a database record to a calendar event, or link it to a particular file in your download manager.  Reuse your attachment or gallery images in your articles.  Link to blog entries about upcoming software changes in a particular version when posting an article about that version.  The possibilities are vast.<br><br>
We have taken a quick video to show you the functionality in it's most default form - this is a brand new database with no template customizations, to give you an idea how the feature will work right out of the box.<br><br><a href="http://screencast.com/t/reRAhmzC0yE" rel="external nofollow">http://screencast.com/t/reRAhmzC0yE</a><br><br><br><strong></strong><span style="font-size:18px"><strong>More To Come</strong></span><strong></strong><br><br>
We have a lot more in store for IP.Content 2.3, and we can't wait to tell you about some of the other changes you can expect to see.  We are working hard to better integrate the features available in the IP.Board framework, allowing you to make use of some of the great capabilities the framework offers in unique and powerful ways.  We hope that you find these two new features useful, and we we welcome your feedback about them in the comments below.  If you have other suggestions to enhance IP.Content, please be sure to leave them in the <a href="http://community.invisionpower.com/forum/427-ipcontent/" rel="external nofollow">feedback forum</a>.</p>]]></description><guid isPermaLink="false">763</guid><pubDate>Thu, 22 Dec 2011 14:28:03 +0000</pubDate></item><item><title><![CDATA[IP.Content 2.3 Dev Update: Commenting &#38; Other Consistency Updates]]></title><link>https://invisioncommunity.com/news/invision-community/7139-ipcontent-23-dev-update-commenting-38-other-consistency-updates/</link><description><![CDATA[<p>Commenting is a powerful and important feature available with all of your IP.Content databases, 'Articles' included.  Not only can you allow your users to comment on the database records, you can require approval of comments before they become public, you can moderate the comments as needed, and your users can get notified of new comments made on database records that they follow.  Still, commenting in IP.Content was missing some important functionality that we felt was overdue to be implemented.<br><br>
In the process, we wanted to implement some other functionality changes to make the databases and article sections of IP.Content more powerful on the front end, and to better integrate the entire software package with the IP.Board suite.  Read-on to learn about these changes, available in IP.Content 2.3.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Full-Featured Comments</span></strong><span style="font-size:18px"></span><br><br>
In earlier versions of IP.Content, your users could comment on articles and other database records, and that was about it.  Moderators could delete, approve, and unapprove the comments from the front end, but if you wanted to edit a comment you had to go into the ACP to do so.<br><br>
We are happy to announce that we have fully fleshed out the commenting system in IP.Content to make it consistent with every other application, without losing the flexibility you enjoy now (that is to say, you can still use the forums to host your comments if you so choose).  We have integrated the IP.Board framework global commenting system into IP.Content, which gives us many of the capabilities you expect from a powerful commenting engine:</p><ul><li>Your moderators and your users can now edit comments on the front end, where permitted.  A new per-moderator permission option has been added to let you determine which moderators are allowed to edit comments.
</li><li>Your users can now report comments in IP.Content (as well as database records and articles!)
</li><li>The commenting engine now allows the AJAX-powered "quote" option, the same as you see with the comments below this blog entry
</li><li>Multi-moderation has now been implemented, allowing you to check off the comments you wish to moderator and act on them all in one go.
</li><li>Keeping in line with the <a href="http://community.invisionpower.com/blog/1174/entry-7075-ipboard-33-dev-update-moderation/" rel="external nofollow">moderation changes coming in IP.Board 3.3</a>, an unapproved comment can be either "approved" or "deleted".  An approved comment can either be "hidden" or "deleted".  A hidden comment can now be "unhidden" or "deleted".
</li><li>Commenting is fully AJAX-powered (when available).  This means quoting, adding, editing and other actions all get processed by an AJAX request, rather than traditional page refreshes, creating a smoother user experience for your users<br></li></ul><br>
For our technical-minded and modification author readers, we are now using the central commenting system plugin capability to it's fullest.  Indeed, because of the multiple-database capability and the forum options for storing comments available in IP.Content, we needed to implement some small but useful changes in the central comment handler to achieve this.  And, on a related note, IP.Content 2.3 will now be fully using the IP.Board classPost API to post topics, update topics, and post comments to those topics, allowing for more consistent back-end handling of data being sent to the forums.<br><br>
Note that there is some more work to do with comments, and we are not done just yet, but the above changes should prove useful for any site that allows comments in IP.Content.<br><br><br><strong></strong><span style="font-size:18px"><strong>Guests Welcome!</strong></span><strong></strong><br><br>
Since version 1.0, IP.Content has not allowed guests to comment on database records and articles.  We are happy to report that as of IP.Content 2.3, guests will now be allowed to comment on these database records, where-permitted.  As with other areas that allow commenting, guests will be prompted for a username and to fill in a CAPTCHA (if enabled), when submitting a comment on a database record.<br><br>
Similarly, guests can now rate database records and articles, where-permitted.  If you allow guests to rate an item, we will use the IP address of the guest to verify they only rate the record once.  With these two changes in place, we have removed the notice displaying above the database permission matrix in the ACP, alerting you that the permissions for rating and commenting are not honored for guests, as it is no longer needed.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Database and Article Improvements</span></strong><span style="font-size:18px"></span><br><br>
As mentioned above, we have integrated the ability to report articles and database records in IP.Content 2.3.  Your users will now be able to report objectionable content so that moderators can be alerted and more easily track and handle these items.<br><br>
Additionally, we have implemented the reputation system (e.g. the "Like" button available throughout IP.Board, or the plus/minus system if you opt to use that instead) for database records and articles.  You can now issue likes and reputation against these items, beginning with IP.Content 2.3.<br><br>
Many of our users have asked for a way to allow more data collection for articles and database records on the front end.  Specifically, you cannot collect meta tags, change an article's author, or provide a static FURL name for these records, while you are able to when submitting the same record from the ACP.  We are happy to announce that this will now be possible beginning with IP.Content 2.3.  There is now a per-moderator/editor option to allow extra data collection from your moderators/editors (keep in mind that super moderators on your site get all moderator capabilities automatically).  If you wanted your members to be able to submit this data too, you could add your members group as a 'moderator' and <em>only</em> give them this permission, however we feel that these sorts of capabilities are usually best left to your site staff in real-world use.  After all, you can't care about the SEO of your site on one hand, and then leave these SEO tools to use your members' discretion.<br><br>
The data you can now allow to be collected on the front end are: author, meta description, meta keywords, static FURL name and article template (for articles only).  Authors still must be members of the site, and the field utilizes the auto-complete type-ahead available elsewhere in IP.Board.<br><br>
Finally, with regards to our database and article systems, you can now view, compare, edit, delete and restore revisions right from the front end!  When viewing articles and database records on the front end, moderators with permission to "restore revisions" (again, super moderators already have this permission) will now be able to fully manage the revisions without anyone ever having to visit the ACP.  And, as before, you can add any group you wish as a moderator, and give them only this permission if you wanted to allow members or other special users on your site the ability to manage article revisions.  Front end management of revisions will allow you to better utilize IP.Content as a wiki, where desired.<br><br><br><strong></strong><span style="font-size:18px"><strong>Quick Navigation Panel</strong></span><strong></strong><br><br>
The quick navigation panel, a great new enhancement in IP.Board 3.x, allows you to easily jump around the site to areas you wish to reach without having to navigate there page by page.  All applications can integrate into the quick navigation panel if they desire to, and we are happy to report that IP.Content 2.3 now makes use of this central functionality.<br><br>
The quick navigation panel will now show all of your pages (that you have permission to access), followed by all of your databases, and all of the categories in those databases (again, where permitted to access).  Because our feedback and focus groups indicated that some pages, while technically accessible, should not necessarily show in the quick navigation panel, we have added a new per-page option that you can uncheck if you wish to exclude a page from the quick navigation panel, regardless of the user's permission to access the page.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Consistency Is Key</span></strong><span style="font-size:18px"></span><br><br>
As you can see, we are working hard to ensure your IP.Content user (and moderator) experience is consistent with the rest of our software suite.  At the same time, we want to ensure common actions that moderators should be able to perform, but must currently be performed by administrators, are available through the front end with IP.Content 2.3.  No longer will you need to visit the ACP to tackle routine duties, or provide extra details, or edit user comments - everything can now be handled inline on the front end utilizing the powerful tools available to you and your moderators.<br><br>
We are working hard to bring other consistency and functionality improvements to the IP.Content front end, many in the form of better integration with the IP.Board framework.  We will be blogging about these changes in due-course, and in the mean time, we hope you look forward to the improvements already discussed in this and other blog entries.<br><br>
If you have suggestions on how to improve the software, please post them in our <a href="http://community.invisionpower.com/forum/427-ipcontent/" rel="external nofollow">IP.Content feedback forum</a>.  If you have comments about the changes discussed in this blog entry, please provide them in the space below!
]]></description><guid isPermaLink="false">762</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>Converter Update and Suite Promotion</title><link>https://invisioncommunity.com/news/invision-community/7122-converter-update-and-suite-promotion/</link><description><![CDATA[<p>Since the very start of our company IPS has offered <a href="http://www.invisionpower.com/suite/convert.php" rel="external nofollow">free scripts you can download</a> to assist in converting from other forum or community software to our platform. Thousands of you have taken advantage of this over the years and we are happy you have chosen to be part of the IPS family.<br><br>
We have put great effort into modernizing our community suite and that, combined with clients able to make clear comparisons with how IPS approaches community solutions against others, has resulted in the pace of conversions seeing a marked increase. As you can imagine we are thrilled and honored by this increase!<br><br><br><strong>Updates to Converter Scripts</strong><br><br>
We were fortunate to have some clients with complicated conversions recently who were gracious enough to allow us to work with their database to make improvements to our conversion scripts that will benefit all of our clients.<br><br>
Converting from another data source is a complicated process and is never an exact science. In addition to fixing many minor issues with the converter, we were able to greatly increase the speed a conversion takes to complete.<br><br>
Example 1: 170,000 post community conversion reduced from 3 hours to 20 minutes<br>
Example 2: 10 million post community conversion reduced from a week to 2 days<br><br>
Of course these numbers will vary based on the hardware of your server but these are significant improvements we are happy to be able to bundle in the software.<br><br>
Beyond speed improvements, these changes also mean less memory and processing power is used by the converter scripts so it impacts overall stability of your server less than before.<br><br>
The bundled redirection scripts we include for popular forum softwares for SEO purposes are also updated to take advantage of other structural changes in the conversion routines to mean faster lookups of old vs. new locations so the redirect takes place with less delay. Though a small change every bit counts when you may have just moved millions of posts!<br><br>
New features in a a converter script are rare since it is, let's be honest here, a pretty boring bit of software :smile:. However we were able to include support to transfer vB tags to the new IP.Board tagging system by popular request from the incredible number of converts we receive each week from that software.<br><br><br><strong>Conversion Service</strong><br><br>
For many years IPS offered free converter scripts but also offered a paid conversion service if you preferred for our staff to do the conversion process for you. Because of the great increase in conversions I mentioned above (good thing), we also of course saw a huge increase in paid conversion service requests. The problem was we had so many our level of service dropped to the point we were not proud of what we were offering (bad thing) so we decided to stop offering paid conversion services a couple months ago.<br><br>
The good news is that our great client community has stepped in and many clients who are long-term clients of IPS are now offering conversion services for those of you considering switching and would like some help. Check out our <a href="http://community.invisionpower.com/resources/marketplace/custom_services.html" rel="external nofollow">custom services directory</a> for this information and for other services provided by our client community. There is a lot of great talent in our client community!<br><br><br><strong>Full Suite Promotion</strong><br><br>
Are you ready to jump in and join the IPS family? We have made it technically easy to convert to IPS, now we want to make it even more enticing for you...<br><br>
When you purchase multiple IPS products at one time you always get a bundle discount. When purchasing our entire Suite at once this discount is 25% off the total price (calculated as 5% off per-suite app you purchase). We are increasing the discount you get for each bundled app from 5% to 7% through the end of the year. That equates to an extra 10% or $43.99 off when purchasing our entire Suite!<br><br>
This is a great time to purchase a brand new full license of IPS Community Suite and join or expanding client base and modern community software!<br><br><br><em>Feel free to email sales@invisionpower.com if you have any questions about IPS software or services. You can also post in our </em><a href="http://community.invisionpower.com/forum/305-pre-sales-questions" rel="external nofollow"><em>pre-sales forum</em></a><em> to get impression from existing IPS clients.</em></p>]]></description><guid isPermaLink="false">761</guid><pubDate>Wed, 14 Dec 2011 15:14:04 +0000</pubDate></item><item><title>Pricing Changes and Volume Discounts</title><link>https://invisioncommunity.com/news/invision-community/7124-pricing-changes-and-volume-discounts/</link><description><![CDATA[<p>IPS is making some changes to our pricing to streamline our offerings and recognize changing business needs.<br><br><strong>That Pesky One Cent</strong><br><br>
It gets pretty old saying "it's nine ninety nine" so we are going to round up all prices to their nearest dollar. So, for example, our community hosting Basic 10 service will now be $10 rather than $9.99 or IP.Blog will become $50 instead of $49.99.<br><br>
Yes, we realize it's only $0.01 but really you have to admit $10 looks so much cleaner than $9.99. Rikki, our interface designer, is very happy at being able to clean up the web site design accordingly.<br><br><br><strong>Business Needs</strong><br><br>
We introduced the IP.Board Standard and Business licenses toward the end of 2006 and have not adjusted the prices since then. That was over 5 years ago and as with everything else in the world, the cost of doing business for IPS has increased.<br><br>
In addition to costs, we offer more free services included with the licenses (spam monitoring service, IP.Chat 5, IP.Tracker, Marketplace, free installs/upgrades, etc.) than we certainly could have dreamed up 5 years ago. Therefore, we are changing the price of the IP.Board Standard license to $175 and the IP.Board Business license to $400. The renewal pricing for these two licenses remains unchanged for all existing clients.<br><br>
We will not be actually implementing these pricing changes until January 2012 so if you are considering using IPS software now is the time!<br><br><br><strong>Multiple Licenses</strong><br><br>
We introduce a discount program for those with multiple licenses back in 2009 and it has been a huge success with clients purchasing often dozens of licenses to our software. The program we introduce in 2009 has remain unchanged and is simply if you have more than two full price licenses then the third and so on is $99.<br><br>
That has worked great but we want to change it up so more clients can benefit. The new multiple license discount structure is as follows:<br><br>
License 1: full price<br>
License 2: 10% off<br>
License 3 - 5: 30% off<br>
License 6 - 25: 50% off<br>
License 26+: contact us for special pricing<br><br>
Best of all these discounts apply to all product licenses!<br><br><br><em>All of the changes listed will go live in January 2012.</em></p>]]></description><guid isPermaLink="false">760</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Content 2.3 Dev Update: SEO Improvements</title><link>https://invisioncommunity.com/news/invision-community/7108-ipcontent-23-dev-update-seo-improvements/</link><description><![CDATA[<p>Development of IP.Content 2.3 continues, and as mentioned in the introductory <a href="http://community.invisionpower.com/blog/1174/entry-7038-ipcontent-23-what-to-expect/" rel="external nofollow">"What To Expect" blog entry</a>, one area of the software we wanted to place a focus on was search engine optimization.  While this particular subject can bring about heated debates regarding what is "good" and what is "bad", there are a few areas of IP.Content that we felt could use some specific improvements.  Today we're going to discuss a few of the SEO improvements you can expect to see in IP.Content 2.3.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Header Codes</span></strong><span style="font-size:18px"></span><br><br>
There is no denying that sending the appropriate header response code based on the results of a page request is important.  If the page loads normally, as typically happens while browsing around a website, a 200 response code is returned to the browser (and spiders) to let it know everything is ok.  When the page cannot load correctly for some reason, a more appropriate response code is required.  If the content cannot be found, this response code should be 404, and if you do not have permission to view the content it should be 403.  As Matt reported in the <a href="http://community.invisionpower.com/blog/1174/entry-7066-ipboard-33-dev-update-seo-improvements/" rel="external nofollow">IP.Board 3.3 Dev Update: SEO Improvements</a>, other non-specific errors will now return a 401 header code.  This is the default that IP.Board uses, so if a more specific response code is not specified, an error page automatically issues this 401 response code now.<br><br>
We have taken the time to go through all IP.Content actions to update the response codes that are returned.  Previously, no response code was specified, so all error pages would return the default (previously a 500, though this has changed with IP.Board 3.3, as mentioned).  Now, pages that are "not found" will return a 404 response, and pages you do not have permission to access will return a 403 response code.  Pages, by the way, also include database categories, articles, and other database-specific views that can be delivered (such as a request to add a new article).<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Meta Tag Configuration</span></strong><span style="font-size:18px"></span><br><br>
While this change really relates to improving the usability of the product more than SEO, we'll include it here since the change we are discussing relates to configuring your database meta tags.  In IP.Content 2.2, each database (including the articles database) allows you to configure meta tags for that database specifically.  The problem here is that you can also configure them at the page level (e.g. you can specify the meta tags for each individual page in the Page Manager area).  So, once you embed a database into the page, which meta tags should be used?  The ones you configured for that page, or the ones you configured for the database?  When viewing categories and articles (or other database records), there are specific meta tags available for these areas as well, although they are still relevant and there is still value in customizing these separately.<br><br>
The decision has been made to remove per-database meta tags, and instead utilize the meta tags you configure for the page itself, in an effort to clarify the interface and remove duplicate configurations that have proven to be unnecessary and confusing.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Page Titles</span></strong><span style="font-size:18px"></span><br><br>
One of the more relevant and controllable areas of search engine optimization is your page titles.  IP.Content utilizes your "Page Name" as the page title (the text inserted into the &lt;title&gt;&lt;/title&gt; tags of the page), which works well in most scenarios.  When you embed a database into a page, however, IP.Content 2.2 uses the database name as the page title.  When navigating further down into the database, the category name or article/record name is instead used as the page title.<br><br>
Customers have requested a change in this behavior and better control of this experience, and we are happy to announce there will be several changes coming in IP.Content 2.3 to allow you better control of your page titles across the software.<br><br>
Beginning with IP.Content 2.3, the default page title format for databases will be as follows:</p>
<ul><li>Index page: Database name - Page name - Website name (or board name, if no website name)
</li>
<li>Category page: Category name - Database name - Page name - Website name (or board name, if no website name)
</li>
<li>Record page: Record name - Category name (if available) - Database name - Page name - Website name (or board name, if no website name)<br></li>
</ul><br><br>
We have not stopped there, however.  We have separated the function that handles this out so that it is now possible to write hooks to override this functionality, allowing developers to come up with other ways to enhance or modify the page title formatting.  And, additionally, we have also built in a custom formatting system that power users who require further control or refinement, or simply believe a different format works better for page titles, can now utilize for complete control.  If you wish to change the format of the page title beyond the default, you can now do so by adding 3 constants to your conf_global.php file, and within these constants you can use macros to create different page title formats.  While more information will be posted in our documentation section on this closer to release, here is the general code to give you an idea:<br><br><p>
	 * define( 'CCS_PAGE_TITLE_CAT', '' );
	 * define( 'CCS_PAGE_TITLE_RECORD', '' );
	 * // Following variables will be replaced:
	 * // {page_name} = Page name
	 * // {database_name} = Databae name
	 * // {category_name} = Category name (only available for CCS_PAGE_TITLE_CAT and CCS_PAGE_TITLE_RECORD)
	 * // {record_name} = Record name (only available for CCS_PAGE_TITLE_RECORD)
	 * // {website_name} = Website name as configured in ACP
	 * // {board_name} = Board name as configured in ACP</p>
<pre class="ipsCode">	 * define( 'CCS_PAGE_TITLE_HOME', '' );<br><br><br><br><br><br><br><br><br></pre>
<p><br><br>
You could thus specify "(Website Name): Record Name - Category Name" for records, or you could have "Record Name - Page Name (And some custom text here)".  Ultimately, if you wish to redefine your page titles, you can now do so with relative ease, and without having to worry about future updates reverting your tweaks.<br><br><br>
But wait, there's more!  We didn't want to make a few minor changes to the format of the page title and call it a day.  Many users have explained that while they want to name a page something simple (i.e. "News"), because that name is used in many places across the software, they may want their page title to say something different (i.e. "News - everything you need to know about my website subject matter").  How can we accommodate this as well?<br><br>
We have added a new option to the page form that allows you to optionally specify a page title that is different from the page name.  To be clear - the page name will continue to be used throughout IP.Content, while the page title you specify will ONLY be used in the &lt;title&gt;&lt;/title&gt; tags, allowing you to completely control it.  It should be noted, as well, that this new field is optional, so you aren't required to fill in the same name twice for all of your pages, or edit each of your pages upon upgrade to give it a separate title.<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/19693fff-d3f5-4ce7-a201-bc2f66eadd2f/2011-12-08_1933.png" loading="lazy"><br><br>
When you uncheck the box, you can now specify a separate page title<br><br><img src="http://content.screencast.com/users/bfarber/folders/Jing/media/499883a3-c9c2-42d0-9046-026aae3484fa/2011-12-08_1934.png" loading="lazy"><br><br><br>
We have implemented this same new functionality for categories as well, so you can now define a category page title separate from the category name, should you wish to do so.<br><br><br>
In the process of making these changes, we noticed that the breadcrumbs within databases would use the page name on the database home page, however once you navigated within the database, the database name was used in the breadcrumbs instead.  We have changed the breadcrumb navigation to always use the page name, and not the database name, to improve consistency and maintain hierarchy definition of the site.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Redirecting Duplicate Page Requests</span></strong><span style="font-size:18px"></span><br><br>
While working through the system we found that page requests that are different, but load the same page, do not redirect to the correct form of the URL.  For instance, if I have IP.Content at "www.site.com" and my default index page is "index.html" (and I have <em>not</em> enabled the option to remove the page name from the URL for this page), then I can access the same page via the URL "www.site.com" or via "www.site.com/index.html".  The same page is loaded from two different URLs.  As a general rule for SEO, this is bad, and all URLs that point to a page should redirect to the correct form of the URL for that page.  We have enhanced IP.Content to detect this scenario and it will now 301 redirect these duplicate requests to the correct form of the URL.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Pages Tab</span></strong><span style="font-size:18px"></span><br><br>
The "Pages" tab in IP.Board, if you have not hidden it, links to "index.php?app=ccs" by default.  The system is designed to load your default page (with a fresh install, this would be "index.html" in the root of your Page Manager), and while we have already implemented a feature to redirect duplicate URLs to the correct form of the URL as described above, we took this one step further for the Pages tab.  A new hook will be included with IP.Content 2.3 that rewrites the "index.php?app=ccs" URL used for the Pages tab by default so that it links to the correct form of the URL for your default page.  This will reduce the number of duplicate URL requests that have to be redirected and help ensure only one URL is used to refer to any one given page (especially your index page, likely the most important and trafficked page of your IP.Content installation).<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Memory System</span></strong><span style="font-size:18px"></span><br><br>
IP.Content gives you a lot of flexibility and control, allowing you to fully define the URLs of your pages.  You can define the full folder and page name structure for your pages; you can define the FURL string to use for your database categories; you can even define static FURL strings for your articles and other database records.  This allows you to remove any ids from all of your URLs, but the tradeoff is that if you ever change your mind and rename a page, or a category FURL string, or an article FURL string, the system has no way to know where an old URL should point.<br><br>
For example, say you gave a database category a FURL string of "information".  Your URL to this category is "site.com/articles/_/information/".  A year down the road, you want to change this information page to an FAQ, and you want to update the FURL string to reflect this.  The URL to this category becomes "site.com/articles/_/faq/".  After a year, search engine spiders have surely indexed the previous URL, and visitors may click it in a search engine listing to reach your site.  The problem is, that old URL no longer exists, and because it was a static piece of information without an ID, IP.Content has no way of knowing where the request should be pointed to now.<br><br>
We have eliminated this problem with a URL memory system, automatically available for pages, categories and records/articles with a static FURL string (if you do not explicitly define a static FURL string for articles a dynamic one is used with an ID, so this problem does not exist in this scenario).<br><br>
If you rename a category/page/article in IP.Content 2.3, it will remember the old URL behind the scenes.  If a request is received and cannot be processed, IP.Content checks it's memory system to determine if the URL previously was valid, and if so, where it pointed to.  IP.Content will then 301 redirect the request to the new URL, eliminating problems with broken links when you change your pages after they have been indexed.  This was a highly requested feature, and we hope it makes managing your URLs easier, and more forgiving when you change your mind later on.<br><br><br><span style="font-size:18px"></span><strong><span style="font-size:18px">Wrap Up</span></strong><span style="font-size:18px"></span><br><br>
We are continuously monitoring feedback we receive from clients, and we understand that SEO is important to you.  We wanted to take the time to implement useful functionality changes in the software that will help your site grow.  At the same time, we want to focus on proven areas that have a real measurable effect, and that will benefit all of our customers.  We believe the changes discussed in this blog entry will improve both the user experience, as well as the experience search engine spiders have while indexing your website.  It should be noted, as well, that every single one of these ideas stemmed from feedback suggestions in our <a href="http://community.invisionpower.com/forum/427-ipcontent/" rel="external nofollow">IP.Content feedback forum</a>, where we encourage you to share your thoughts with us!  We welcome your comments on these changes below!</p>]]></description><guid isPermaLink="false">759</guid><pubDate>Fri, 09 Dec 2011 00:06:00 +0000</pubDate></item></channel></rss>
