<?xml version="1.0"?>
<rss version="2.0"><channel><title>Invision Community Blog: Invision Community</title><link>https://invisioncommunity.com/news/invision-community/page/28/?d=34</link><description>Invision Community Blog: Invision Community</description><language>en</language><item><title>IP.Content 2.0 Dev Update: Improvements to Databases</title><link>https://invisioncommunity.com/news/invision-community/4151-ipcontent-20-dev-update-improvements-to-databases/</link><description><![CDATA[<p><strong></strong><span><strong>Database "Tweaks"</strong></span><strong></strong><br>
The database functionality in IP.Content is quite powerful at its core. You can do a lot of things with the database feature that would normally be laborious coding yourself. A lot of addon applications add common features: rating, comments, sorting options, etc. IP.Content takes all of this legwork out of the picture by providing it for you with just a few clicks in your admin control panel. But there's always room to improve! We have focused on some small but useful tweaks and improvements to the core database features that we think will benefit everyone.<br><br><br><br><strong>Specify The Text</strong><br><br>
IP.Content databases refer to stored entries as "records". This is a generic term that can be used for just about any database, which is why we chose to use this originally. It is understandable, however, that some of you want to personalize the interface a bit more. "Records" isn't exactly the clearest term in all cases to all users, so it makes sense that you might want to refer to the entries as "articles," "pets," or "recipes", for instance.<br><br>
With IP.Content 2.0 you will be able to define the text bit to use to represent "records" in a database right from the database configuration form in the ACP. Four fields will be presented to allow you to define the singular and plural versions of the words in both lower-cased, and first-letter-capitalized versions. I know this probably reads a little confusing, but basically it allows you to define "record", "records", "Record" and "Records" independently. While PHP has many useful functions that can handle this just fine for the English language, in an effort to better-support our international customers we felt it prudent to allow you to define all of these versions of the word yourself.<br><br><br><br><strong>Specify The Content</strong><br><br>
In IP.Content 1.x we provided an option on the database configuration page to allow you to indicate which field represents the "title" of a record. Because databases are so configurable, we needed to give you a way to specify this field so it can be re-used properly throughout IP.Content. In IP.Content 2.0, you will now also specify which field represents the "body" or "content" of a record. Some databases may have no use for this, but if you are setting up a database of articles, you will surely want to specify which field represents the "content". This designation is then used to determine which field to show as the "body" in a database feed, and in our next new feature we'll talk about...<br><br><br><br><strong>RSS Feeds</strong><br><br>
Yes, you can now allow automatically generated RSS feeds in your IP.Content databases. Even better, RSS feeds are supported at both the database and the category level, automatically. You can also disable RSS feeds individually on a per-category level, should you wish to. This is useful if you have a private staff-only category of articles, for instance, which you do not want to publish via RSS with the rest of the articles in the database.<br><br><a href="http://community.invisionpower.com/uploads/blogentry-46197-126530262346.png"><img src="http://community.invisionpower.com/uploads/blogentry-46197-126530262346_thumb.png" data-fileid="21898" loading="lazy"></a><br><br><br>
Settings have been added to both the database and the category configuration forms to enable/disable RSS feeds, specify how long (if at all) you wish to cache the feeds, and to specify how many records to include in the feed. The category configuration form also has a setting to exclude it from the global RSS feed, as mentioned previously. Feeds are cached, if configured to do so, for performance reasons.<br><br><br><br><strong>Duplicated Sort Form</strong><br><br>
In the ACP record management screen, we have duplicated the sort/filter form to the top of the page. If you have a lot of record management duties to perform in the ACP, this can help you to more quickly drill down to find the records you need to work on by eliminating the need to scroll to the bottom of the screen each time you wish to change the returned records.<br><br>
We have also added a "Save and Reload" button to the record add/edit form. You can stop with the PMs now Ditchmonkey! :lol:<br><br><br><br><strong>Save and Reload</strong><br><br>
We've added a button to the add/edit record form in the ACP that will allow you to "Save and Reload" the record. If you are making may small changes to a record (for instance, you want to refresh the record on the front end to verify how it's displaying), this is useful as it will save your changes, and then immediately reload the form so you can continue editing the record, instead of forcing you to save, find the record, and click edit on it again to bring the form back up.<br><br><br><br><strong>Meta Tags</strong><br><br>
Configuration fields have been added to the database and category forms in the ACP to allow you to define your meta keyword and description tags for your databases and categories. For records, meta tags by default will be automatically determined, just the same as happens in topics in the forum. You can, however, also manually override the meta tags on a per-record basis from the ACP by editing the record, should you need to.<br><br><br><br><strong>Display Subcategories</strong><br><br>
Similar to how the board index will list subcategories underneath their parent forums, IP.Content 2.0 will now (by default) display subcategories of a category underneath the category title when viewing categories.<br><br><a href="http://community.invisionpower.com/uploads/blogentry-46197-126530262818.png"><img src="http://community.invisionpower.com/uploads/blogentry-46197-126530262818_thumb.png" data-fileid="21899" loading="lazy"></a><br><br><br><br><strong>And more to come!</strong><br><br>
These are just a few of the changes we've made to the databases system in IP.Content 2.0 that we believe will make your databases more useful, more configurable, and more "your own". The changes better integrate IP.Content with the forums, providing a more seamless feel to the site, while at the same time enhancing IP.Content-specific functionality to let you better control your content.<br><br>
Be sure to stay tuned for our future updates on IP.Content 2.0! We have a lot of other useful changes in store you'll surely want to take advantage of.</p>]]></description><guid isPermaLink="false">566</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>Spam Monitoring Service Update</title><link>https://invisioncommunity.com/news/invision-community/4123-spam-monitoring-service-update/</link><description><![CDATA[<p>Last year we introduced a Spam Monitoring service to combat the increasing problem of registrations on communities from spam accounts and the response to this service has been great!  The spam service has been a great success so far and we would like to take the time to share some stats about how effective the service has been.<br><br>
The service is only as effective as the number of communities that sign up and report data back to our system, so we are happy to report that thousands of communities have joined the service and are helping each other to reduce the amount of spam each receives.  If you have not yet signed up, we would encourage you to take this opportunity to do so: <strong>the Spam Monitoring service is free to all active IP.Board license holders!*</strong> It is a great way to improve and protect your community while saving you time.<br><br>
Thanks to the network of communities that have joined this service, we have been able to block tens of thousands of spammers from registering on communities that participate in this service!  The spam service itself receives thousands of requests per hour and continues to build its database from that data. As always, your registration data is kept safe and is not permanently stored as transmitted data is only used to detect spammers.<br><br>
We are continuing to monitor everything that is reported and look for trends to help the system better identify spammers that are registering on your communities.  If you are signed up for the service and a spammer does register, please remember to use the <strong>Mark as Spam</strong> feature (both in the IP.Board AdminCP and the front-end for moderator use) so that we can receive that data and use it to improve the service for everyone.<br><br>
If you are signed up for the spam service, please take a moment to check your logs (in the IP.Board AdminCP) and make sure that the service is working for you.  We have noticed that some sites do not have the correct URL for their site so their requests to the service are not working as a result.  If you are having any issues, please open a ticket and let us know.<br><br><span style="text-decoration:underline;"></span><span><span style="text-decoration:underline;"></span></span><strong><span><span style="text-decoration:underline;">New in IP.Board 3.1</span></span></strong><span><span style="text-decoration:underline;"></span></span><br><br>
Most of the processing for the service is handled by IPS servers but we are adding two enhancements in IP.Board 3.1: reporting false-positives and statistics.<br><br><strong>Reporting False-Positives</strong><br><br>
Just as your email client sometimes flags a legitimate email as a spam message, our service sometimes tries to be a bit over-protective and will flag a legitimate account as belonging to a known spammer. You can currently "un-flag" that account and restore it to normal but that information is not passed back to IPS so the service could learn that a particular account was actually legitimate. In IP.Board 3.1, removing a spam status on an account will be reported back to IPS to improve the service.<br><br><strong>Statistics</strong><br><br>
IP.Board 3.1 will include reports and graphs on how the service is protecting your individual community.<br><br><br>
We hope you continue to enjoy the protection the service offers and if you have any suggestions, please post in our <a href="" rel="external nofollow">feedback forums</a>. Thanks!<br><br><br><br><br><span>*The following packages include the services option, which the spam service falls under, and qualify to use the service at no cost:</span><br><br></p><ul><li><span>IPS Hosting clients
</span></li><li><span>IP.Board Standard License
</span></li><li><span>IP.Board Business license
</span></li><li><span>IP.Board Community Suite license</span><br></li></ul><span></span>]]></description><guid isPermaLink="false">565</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Content 2.0 Dev Update: Useful updates to feed blocks</title><link>https://invisioncommunity.com/news/invision-community/4111-ipcontent-20-dev-update-useful-updates-to-feed-blocks/</link><description><![CDATA[<p>IP.Content 1.x has turned out to be a very solid, stable, and extensible application, allowing for a vastly diverse number of implementations that showcase many of it's capabilities. We're thrilled to see so many of our customers using IP.Content in different and creative ways. We've been gathering feedback from all of you to help shape the future of IP.Content, and to that end we want to share with you some changes you can expect to see in IP.Content 2.0.<br><br><br><br><br><strong></strong><strong><strong>Feed Blocks</strong></strong><br>
Feed blocks are a very powerful tool in IP.Content. You can create blocks that feed data from any application in IP.Board (that supports IP.Content), as well as from any RSS feed. In fact, much of the data you will want to show on IP.Content pages is easily returned through a feed block (latest gallery images, recent topics, top posters, etc.) of one kind or another. With each release we put some effort into improving the feed blocks further to make them as useful as possible.<br><br><br><br><strong>Database Comments</strong><br><br>
Some of you have requested a new feed block type that will allow you to pull database comments from IP.Content databases, and IP.Content 2.0 will now feature this capability. Some practical uses for such a feed type include a "Latest Article Comments" block, or a "Comments Awaiting Approval" block for moderators. Use your imagination, and let IP.Content do the rest.<br><br><br><br><strong>Forum Feed: Honor Permissions</strong><br><br>
Presently in IP.Content, if you create a feed block and restrict the forums that content can be pulled from, the topics and/or posts are pulled, regardless of whether the user has permission to view the content. This was done by design, to allow you to have a hidden forum for news entries (for example) and still feed this to your home page. Some users have requested that we allow them to honor a user's view permissions when filtering content by forum, however, and this will now be supported in IP.Content 2.0. When creating a feed from the forums, there will be a checkbox to allow you to honor the forum permissions, and only content a user is able to see will be returned. This only impacts forum feeds where you have explicitly restricted which forums to pull content from (if you do not restrict the forums that content can be pulled from, the user's view permissions are already honored).<br><br><br><br><strong>Filtering Database Feeds</strong><br><br>
Database feeds were implemented in IP.Content 1.x, however the filtering options are relatively restrictive. It is logical that some of you may want to restrict records returned in a database feed based on custom fields, providing you with more opportunities to define the parameters used to determine what content to display. With IP.Content 2.0, you will now be able to restrict database feeds to filter content based on most of your custom fields (the same ones you can use to sort/search within a database presently). You will be able to define up to 5 custom filters based on your custom fields. This opens up many opportunities for you to introduce creative new database feed blocks on your site.<br><br><br><br><strong>Gallery Feed Improvements</strong><br><br>
Virtually everyone creating Gallery feed blocks will ultimately want to display the image thumbnail. While this is entirely possible in the current version of IP.Content, it requires you to add some code to your template manually; code that everyone ends up adding. To make Gallery feeds easier to use for everyone, the code to generate the image thumbnail is now automatically executed in the feed, and the thumbnail is available to the template as $r['thumbnail'].<br><br><br><br>
Additionally, we've added a new filter setting under the category multi-select box. Enabling this new checkbox will tell the feed to also check in any albums (that the user has permission to view) under the selected categories. This means you could, for example, select the Member's Gallery and check this checkbox, and not have to manually select every album contained within the Member's Gallery (and it also means you won't have to continuously edit the block configuration to continue selecting new albums as they are created).<br><br><br><br><strong>And a few other tweaks</strong><br><br>
In addition to the changes above, we've been going through some of the feed blocks to try better respect the returned data you expect to see. For instance, in a topic feed, the last_poster_id can sometimes be the last poster id in the forum, rather than the topic. We're taking some time to try to normalize the data returned from feed blocks so that you have better access to the data you want to use.<br><br><br><br><br><strong>And a lot more to come...</strong><br>
We have a lot more in the pipelines for IP.Content 2.0 as well, and we can't wait to reveal what else we've got up our sleeves. We're hard at work improving the interface, performance, and usability of the system, and we are taking all received feedback into account while we work to make IP.Content the best tool of it's kind! We're very proud of IP.Content and hope that you are enjoying it so far. If you have any features you're just dying to see included, please be sure to post them in the feature suggestions forum. Similarly, if you have any questions or feedback about the changes discussed in this blog, please feel free to leave your comments. What we've discussed here is just the tip of the iceburg. We think you'll be even more excited to hear what else we've got in store when we roll out our next blog entry. Stay tuned!</p>]]></description><guid isPermaLink="false">564</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Board 3.1.0 Dev Update: Soft Delete</title><link>https://invisioncommunity.com/news/invision-community/4081-ipboard-310-dev-update-soft-delete/</link><description><![CDATA[<p>IP.Board already has many moderation tools, including the ability to "approve" and "un-approve" posts and topics to make them hidden from the general community. IP.Board also has a "Trash Can" forum which collects all deleted topics and posts giving you a chance to keep them and manually move them back if you wanted to do so.<br><br>
Recently, we've had several requests for a "soft delete" option. This would work in a similar manner to the "approve" and "un-approve" system but with an extended permission set. Essentially, when you "soft delete" a topic or post, it vanishes for the general community (by default) but is still visible to moderators and administrators in-line. You can also add a reason why the item was deleted and it records the time stamp. If you have permission, then you can restore the post if desired with a click of a button.<br><br>
The permissions model works like this:<br><br>
Per Member Group:<br>
- Can Soft Delete All Topics<br>
- Can Soft Delete All Posts<br>
- Can Soft Delete My Topics<br>
- Can Soft Delete My Posts<br>
- Can See Soft Deleted Items<br>
- Can See Soft Deleted Content<br>
- Can Restore Soft-Deleted Topics<br>
- Can Restore Soft-Deleted Posts<br><br>
Per Moderator: (Will override member group selection in the forum(s) they moderate)<br>
- Can Soft Delete All Topics <br>
- Can Soft Delete All Posts<br>
- Can See Soft Deleted Items<br>
- Can See Soft Deleted Content<br>
- Can Restore Soft-Deleted Topics<br>
- Can Restore Soft-Deleted Posts<br><br>
This gives you many options. For example, you could allow your members to "soft delete" their own content allowing you the chance to restore it. Conversely, you may also want your members to see that some items have been deleted, but not see the actual content of what was deleted. The choice is yours.<br><br>
Here's a few screen shots detailing the feature:<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20100129-155523.png" loading="lazy"><br>
When the delete button is clicked, a new dialogue appears giving you the option to "remove from view" (aka, soft delete) or "Delete Now" which will either remove it from the database, or move it into the Trash Can forum if it is set up.<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20100129-160134.png" loading="lazy"><br>
How the deleted post looks if you have "See Deleted Items" permission. The toggle button is visible for those with "See Soft Deleted Content" permission.<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20100129-160535.png" loading="lazy"><br>
The forum's topic list shows a pink background with a delete icon for topics with "soft deleted" posts. Clicking the delete icon brings up a list of the deleted posts.<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-253-20100129-160955.png" loading="lazy"><br>
Clicking on the delete icon (that appears when you mouseover the cell) brings up a dialogue similar to the post one.<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20100129-160844.png" loading="lazy"><br>
Showing the deleted item in the forum's topic list. Clicking the topic title link will take you to the topic if you have "See Soft Deleted Content" permission.<br><br>
This feature also works with the multi-moderation allowing you to "soft delete" or "restore" many posts or topics at once.<br><br>
Please keep in mind that the screenshots shown are based on a pre-beta build of IP.Board 3.1 and will likely receive a little polish before release.</p>]]></description><guid isPermaLink="false">563</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Board 3.1.0 Dev Update: Ad Code Integration Part 2</title><link>https://invisioncommunity.com/news/invision-community/4072-ipboard-310-dev-update-ad-code-integration-part-2/</link><description><![CDATA[<p>Yesterday we showed IP.Board 3.1's ad code integration for the first time, today we'd like to give a quick update on the status of this new feature.<br><br>
First of all, we were excited to read all of the positive feedback and great suggestions.  We like to write these blog entries before features are 'set in stone', so that we can more easily and quickly include suggestions from our customers.  <br><br><strong></strong><span><strong>Group Setting</strong></span><strong></strong><br><br>
In response to your feedback, we've included a new setting that will allow you to hide ads for specified groups.<br><br><a href="http://community.invisionpower.com/uploads/blogentry-12-126470995041.jpg"><img src="http://community.invisionpower.com/uploads/blogentry-12-126470995041_thumb.jpg" data-fileid="21753" alt="blogentry-12-126470995041_thumb.jpg" loading="lazy"></a><br><br><strong></strong><span><strong>Ad Placement</strong></span><strong></strong><br><br>
Another common concern was the placement of ads within topic view. While we are not going to add an additional setting that gives you the option of showing the ad inside the first post, we do want to show you how easy it is to accomplish this.  The ad code is passed into the template bit along with the first post, so you can move it any place you like within in that first post.  Here is the code to display the ad:<br><br></p>
<p></p>
<pre class="ipsCode">

&lt;if test="adCodeCheck:|:$post['post']['_adCode']"&gt;

	{$post['post']['_adCode']}

&lt;/if&gt;

</pre>
<p>


By default, we have this setup so that the ad is placed after the first post is completely printed.  However, if you would like the ad displayed inside the first post, all you need to do is move that display code and place it after this code:

</p>
<p></p>
<pre class="ipsCode">

&lt;if test="postSignature:|:$post['post']['signature']"&gt;

	{$post['post']['signature']}

&lt;/if&gt;

</pre>
<p>


The same is true of the other ad codes, it's very easy to move them to any place in the template that you would like.


<strong></strong><span><strong>Modification Developers</strong></span><strong></strong>


There are also a few functions that may be of interest to modification developers.  If you want to give users the ability to show ads in your mods, you can easily check permissions before displaying the ad using this new function: IPSAdCode::userCanViewAds().  This will return true/false depending on if the user can view ads or not.


Much like the board index, forum view, and topic view, you can have your modification set it it's own global header/footer ads by using a simple function:

</p>
<p></p>
<pre class="ipsCode">

IPSAdCode::setGlobalCode( 'header', $yourHeaderAd );

IPSAdCode::setGlobalCode( 'footer', $yourFooterAd );

</pre>
<p><br><br><br>
Once again, thank you for the great feedback!</p>]]></description><guid isPermaLink="false">562</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Board 3.1.0 Dev Update: Ad Code Integration</title><link>https://invisioncommunity.com/news/invision-community/4059-ipboard-310-dev-update-ad-code-integration/</link><description><![CDATA[<p>Advertising integration has been an often requested feature for a long time, so we're pleased to announce that IP.Board 3.1 will include this feature!  We've create a simple system that will allow you to insert ad code at various locations throughout the forum.  The integration is not specific to any ad platform, so you can use this for Google AdSense, or any other platform that you may use for your site. We did not want to choose any specific advertising platform to keep the system flexible plus IPS would never get between you and your advertising revenue.<br><br>
There are several predefined ad spots, all you need to do is paste the code for your ads into any of these locations.<br><br><br><strong></strong><span><strong>Header and Footer Ads</strong></span><strong></strong><br><br>
The first two locations you can place ads are in the global header and footer, these ads will show on every page in the forum, except for redirect screens.<br><br><a href="http://community.invisionpower.com/uploads/blogentry-12-126461942339.jpg"><img src="http://community.invisionpower.com/uploads/blogentry-12-126461942339_thumb.jpg" data-fileid="21723" alt="blogentry-12-126461942339_thumb.jpg" loading="lazy"></a><br><br>
As you can see in the screen shot, this system uses a simple settings page for adding ad code, you can paste anything you want into these boxes.  In addition, there are several areas that can override the global header and footer code with page specific header and footer code.  The Board Index, Forum View, and Topic View are able to use this override feature, so that you can either not show ads on one of those areas, or show different ads.<br><br>
Aside from the headers and footers, there are three other locations that you can place ads:<br><br><strong></strong><span><strong>Board Index Side Bar</strong></span><strong></strong><br><br>
A simple hook will allow you to place ads in the sidebar of the forum index, you can use the existing hook ordering system to determine where on the sidebar the ad will be displayed.<br><br><strong></strong><span><strong>Forum View &amp; Topic View</strong></span><strong></strong><br><br>
You can also specify ad code that will be displayed inline with topics in forum view and posts in topic view, these ads will be displayed after the first topic or post.  Here's a screenshot of each:<br><br><a href="http://community.invisionpower.com/uploads/blogentry-12-126461942937.jpg"><img src="http://community.invisionpower.com/uploads/blogentry-12-126461942937_thumb.jpg" data-fileid="21724" alt="blogentry-12-126461942937_thumb.jpg" loading="lazy"></a><br><br><a href="http://community.invisionpower.com/uploads/blogentry-12-126461943348.jpg"><img src="http://community.invisionpower.com/uploads/blogentry-12-126461943348_thumb.jpg" data-fileid="21725" alt="blogentry-12-126461943348_thumb.jpg" loading="lazy"></a><br><br>
As you can see, this is a basic and easy to use system for placing ads in IP.Board. We have ideas for future enhancements to this system and will be improving things as we go but, even with this basic implemenation, you can now easily disperse advertisements throughout your community.<br><br>
We hope that you find this helpful, and as always, we look forward to your feedback and suggestions!</p>]]></description><guid isPermaLink="false">561</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Board 3.1.0 Dev Update: Skin Upgrader</title><link>https://invisioncommunity.com/news/invision-community/4031-ipboard-310-dev-update-skin-upgrader/</link><description><![CDATA[<p>One of the neat new features of IP.Board 3.0 was its integrated application/hook installer and upgrader. Using this took a lot of the headache out of updating modifications when the author produced a new version as you would have either needed to use a custom installer script or install a component dedicated to modification installations. This has helped out with the installations of modifications, but skins still install in essentially the same way, and there is nothing built in to the product to let you upgrade skins.<br><br>
Currently, when a new third party skin gets updated by its author, it can involve a lot of work for board owners who use that skin to upgrade the copy of it on their site. The old procedure was to import the new version of the skin, move everyone who was using the old version onto the new version, and delete the old version. If you had customized anything to do with that skin template prior to initially installing it, you'd have to keep track of what changes you had made so that you could apply them to the new version of the skin. It should go without saying, this procedure was clunky at best.<br><br>
Recently I stumbled across <a href="http://community.invisionpower.com/topic/302804-cleancut-305/page__view__findpost__p__1901896" rel="external nofollow">a post</a> where this frustration was mentioned. This got me thinking about the issue. Surely there must be a way to upgrade a skin just like hooks and applications can be upgraded, right?<br><br>
Right now I'm developing some additional functionality in the Skin Import/Export feature in IP.Board 3.1 to take care of this. Essentially how it will work is this: when you import a skin set, the skin info is checked to see if a 'skin set key' has been set. If it has, it checks if this key matches the key of a skin you already have installed. If it does match, and you check a box indicating you want to try and upgrade, it will attempt to upgrade your existing skin. Any replacements/CSS/templates that this new skin XML has will be checked against the existing items from the old version of the skin to see if changes are needed.<br><br>
Thus far, I have it coded to show you the check box to indicate whether or not an upgrade will be attempted:<br><br><a href="http://community.invisionpower.com/uploads/blogentry-44642-12644422719.png"><img src="http://community.invisionpower.com/uploads/blogentry-44642-12644422719_thumb.png" data-fileid="21681" alt="blogentry-44642-12644422719_thumb.png" loading="lazy"></a><br><br>
I also have a lot of the back end work done where it will see if it needs to upgrade an existing item instead of just inserting a new version of the item. There's a lot of checking involved to be sure I'm not duplicating elements, so this will require a lot of testing.  I've got a few bugs to work though on this, but it should be in place pretty soon. <br><br>
I think that this will be a feature that will be appreciated by a lot of folks. I welcome any feedback you may have. :)</p>]]></description><guid isPermaLink="false">560</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Board 3.1.0 Dev News: Twitter Integration</title><link>https://invisioncommunity.com/news/invision-community/4007-ipboard-310-dev-news-twitter-integration/</link><description><![CDATA[<p>I had previously blogged about the <a href="%22http://community.invisionpower.com/blog/1174/entry-3882-ipboard-310-dev-update-status-updates/%22" rel="external nofollow">status update improvements</a> coming in IP.Board 3.1.0. This blog runs through some exciting new integration features with Twitter.<br><br>
As IP.Board already has Facebook integration, it makes sense to also integrate Twitter. This further lowers the bar when registering a new account on your forum. If your visitors have have a Twitter account, they can use this to register a new forum account or to "connect" their existing account with their Twitter account.<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20100122-143348.png" loading="lazy"><br><br>
Integrating your Twitter account allows you to use your Twitter profile picture and description on the board.<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20100122-142332.png" loading="lazy"><br><br>
You can also import your latest Twitter status onto the board, or post your board status to Twitter. If your forum status is longer than 140 characters, it will cut the status off and automatically add a Bit.ly URL pointing to your forum status update.<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20100122-142758.png" loading="lazy"><br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20100122-143050.png" loading="lazy"><br><br>
You may note that each status update on the forum has a little icon showing where the status originated.<br><br>
These improvements should increase registrations on your board and generate more traffic to it.</p>]]></description><guid isPermaLink="false">559</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Board 3.1.0 Dev Update: Modification Development Enhancements</title><link>https://invisioncommunity.com/news/invision-community/3977-ipboard-310-dev-update-modification-development-enhancements/</link><description><![CDATA[<p>There are a lot of enhancements being made to the application/hook system in IPB 3.1, many of which were discussed in a <a href="http://community.invisionpower.com/blog/1174/entry-3884-ipboard-310-dev-update-hook-system/" rel="external nofollow">previous blog post</a>.  While that post focused on the hooks system, there have been many other changes made throughout IPB 3.1, and we'd like to highlight a few of those in this blog post.  We hope that our modification community will find these changes helpful and can't wait to see what they do with this new version!  As always, if there are any suggestions or comments, we would love to hear them.<br><br><strong></strong><span><strong>Template Hooks: Replace Output</strong></span><strong></strong><br><br>
A new optional function has been added for template hooks called replaceOutput(), which receives the entire content of the page and replaces it with what is returned from your hook.  This allows your hook to replace tags with whatever content you need, here's an example that adds the pid of a post next to the multiquote button:<br><br></p><p></p><pre class="ipsCode">

public function replaceOutput( $output, $key )

{

	$tag		= '&lt;!--hook.'.$key.'--&gt;';

	$lastFound	  = 0;


	foreach( $this-&gt;registry-&gt;output-&gt;getTemplate('topic')-&gt;functionData['topicViewTemplate']['post_data'] as $pid =&gt; $post )

	{

		$pos = strpos( $output, $tag, $lastFound );

		$strToInsert = 'PID: ' . $pid;


		if( $pos )

		{

			$output = substr_replace( $output, $strToInsert . $tag, $pos, strlen( $tag ) );

			$lastFound = $pos + strlen( $tag . $strToInsert );


		}

	}


	return $output;

}

</pre><p><br><br><strong></strong><span><strong>memberSync Changes</strong></span><strong></strong><br><br>
We've made a few changes to memberSync, in order to make a few of the functions a little more useful.<br></p><ul><li>onGroupChange: The old member group is now passed into this function
</li><li>onLogin: The plain text password is now passed into this function
</li><li>onCreateAccount: The plain text password is now passed into this function<br></li></ul><br><br><strong></strong><span><strong>Extensible Forms</strong></span><strong></strong><br><br>
One of the new features we introduced with IPB3 was the ability for applications to extend the member and group edit forms in the ACP.  We've now expanded that functionality to include the forum edit form as well.  This works in the same way as the group edit form, by allowing your application to add a tab to the edit forum form.  We've also updated the member form extender to determine tab ids automatically, exactly as the group form extender does in the 3.0.  So you'll no longer have to worry about your member form conflicting with another applications member_form.<br><br><strong></strong><span><strong>Attachment Plugins and Profile Tabs</strong></span><strong></strong><br><br>
Our goal with applications is to make them as independent of each other as possible, toward that end we've moved the attachment and profile tab plugins into the application extension directory of each application.  Profile tabs will now be placed in YOUR_APPLICATION/extensions/profileTabs and attachment plugins will now be placed in YOUR_APPLICATION/extensions/attachments.  The file and class names have remained the same, the only difference is their location within the file structure.<br><br><strong></strong><span><strong>New Setting Type: Autocomplete Member Name</strong></span><strong></strong><br><br>
This new setting type will allow you to create fields that will then be turned into member name autocomplete fields by IPB.
]]></description><guid isPermaLink="false">558</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>PHPDoc Developer Documentation</title><link>https://invisioncommunity.com/news/invision-community/3936-phpdoc-developer-documentation/</link><description><![CDATA[<p>We'll keep this blog entry short and sweet, since there's not a whole lot to say.<br><br>
Developers have asked for further documentation of IP.Board (and addon applications), specifically source code-level documentation of the various classes and methods that can be reused.  Those of you familiar with phpdoc will know that it's the perfect tool for the job, and thankfully we wrote IP.Board 3 using phpdoc-style comments to facilitate this job.<br><br>
After a lot of cleanup and tweaking, we have made the phpdoc developer documentation available for all.  Please be aware that this is the first "release" of these documents, and there are likely going to be some oddities and under-documented functions.  Please let us know where we can expand on the documents.  We intend to add more code examples and to clean up the class-level documentation a little over time, but if you have any specific requests we'll focus on those first.<br><br>
http://community.invisionpower.com/resources/phpdocs/index.html</p>]]></description><guid isPermaLink="false">557</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Board 3.1: Notifications</title><link>https://invisioncommunity.com/news/invision-community/3911-ipboard-31-notifications/</link><description><![CDATA[<p>It's a well-known fact that one method of ensuring continued visitation of your site is to email members frequently to send reminders and notifications.  For instance, if a user posts in a topic, they may forget that they posted after a day or two.  If an email is sent to that user after someone else replies, however, it can remind the original user to return to your site to check on the updates.<br><br>
IP.Board has a strong system of notifications, however we found that much of the code to handle this is scattered and duplicated throughout many files in IP.Board 3.0.  The methods of managing your notification preferences are also inconsistent, making it confusing and difficult for new users to determine how to control notification preferences.  If you are a moderator, you manage your report center notification preferences in the report center.  You are only able to get email notifications of tracked topics.  You can select to get email or PM notification of new comments and friend requests in your user control panel.  Through these few examples, you can see that managing notification preferences can be made easier.<br><br>
IP.Board 3.1 introduces many improvements to notifications, both on the backend and within the user interface of the board itself.<br><br><strong>Inline Notifications</strong><br>
In overhauling the notification management options in IP.Board 3.1, we decided to add inline notifications.  Essentially, this is a notification within the board itself, without actually issuing a private message or an email.  There are many instances where a visitor might want to be notified of an action, but might not want an email to be sent to their email address, or they might not want a private message for such notifications (especially if your board has limits on the number of private messages an individual can store).<br><br>
Visually, when an inline notification is first triggered, it will look identical to the existing private message popup.  In fact, private messages no longer directly initiate the popup you have become familiar with - instead, they issue an inline notification (which initiates this popup).  This was done on purpose for consistency, and for code reduction and reuse purposes.<br><br>
A "Mark Read" button has been added to the popup so that, in addition to closing or viewing the notification, you can mark it as being acknowledged without having to leave the page.<br><br><a href="http://community.invisionpower.com/uploads/blogentry-46197-126343330427.png"><img src="http://community.invisionpower.com/uploads/blogentry-46197-126343330427_thumb.png" data-fileid="21502" loading="lazy"></a><br><br>
A new option has been added to the profile dropdown to allow users to quickly access their inline notifications, as well.<br><br><a href="http://community.invisionpower.com/uploads/blogentry-46197-126343338528.png"><img src="http://community.invisionpower.com/uploads/blogentry-46197-126343338528_thumb.png" data-fileid="21503" loading="lazy"></a><br><br>
Administrators can control how many inline notifications a single user can store on a per-group basis.  If a user is allowed to store 50 inline notifications, and notification number 51 is issued, the user's oldest notification is automatically pruned.  The user will see a notification popup on the board the next time they click a link.  There is also an area in the user control panel where each user can list, view and prune their notifications.  Additionally, a new board index hook will show up when a user has unread notifications (and automatically disappear once all of their notifications have been acknowledged).<br><br><a href="http://community.invisionpower.com/uploads/blogentry-46197-126343347543.png"><img src="http://community.invisionpower.com/uploads/blogentry-46197-126343347543_thumb.png" data-fileid="21505" loading="lazy"></a><br><br><strong>Stronger control of notifications</strong><br>
A new area of the ACP has been added to allow administrators to better control notifications as well.  Any registered notification events will be listed, and the administrator can control which methods to use by default for each notification event, which methods cannot be used at all, and will also have the ability to disallow users from overriding the admin-defined selection.  For example, an administrator might want the default notification method for new private messages to be inline notifications (show a popup on the board).  Administrators may also want to disallow users from electing to get an email notification when comments are made on their profile to reduce the number of email messages sent from the server.  An administrator may also want to enforce that all users (with appropriate permissions) get an email notification when content on the board is reported.  All of these things, previously not possible, can be configured from one page within the ACP of IP.Board 3.1.<br><br><a href="http://community.invisionpower.com/uploads/blogentry-46197-126343344389.png"><img src="http://community.invisionpower.com/uploads/blogentry-46197-126343344389_thumb.png" data-fileid="21504" loading="lazy"></a><br><br><strong>Easier user configuration options</strong><br>
In addition to the new UserCP page to view your inline notifications, there is a new notifications page where all notification settings and options have been consolidated.  New configuration options are available to control your notification preferences, as well.  Each user will be able to select whether they want to receive email, PM, or inline notifications (or a combination of the above, or none of the above) for each notification event from one page.  Methods that are not available per the ACP-defined preferences are removed from the user's options, while notification events that an administrator does not allow users to override are disabled but still displayed (so that a user can know how they will be notified when one of those events occur).  A couple of screenshots should help clarify this.<br><br><a href="http://community.invisionpower.com/uploads/blogentry-46197-126343351951.png"><img src="http://community.invisionpower.com/uploads/blogentry-46197-126343351951_thumb.png" data-fileid="21506" loading="lazy"></a><br><br>
If an administrator makes the following configuration in the ACP<br><br><a href="http://community.invisionpower.com/uploads/blogentry-46197-126343357319.png"><img src="http://community.invisionpower.com/uploads/blogentry-46197-126343357319_thumb.png" data-fileid="21507" loading="lazy"></a><br><br>
A user can expect to see the following in their notification preferences<br><br><a href="http://community.invisionpower.com/uploads/blogentry-46197-126343362513.png"><img src="http://community.invisionpower.com/uploads/blogentry-46197-126343362513_thumb.png" data-fileid="21508" loading="lazy"></a><br><br>
You'll also note from these last 2 screenshots that we've added the ability to get notified when someone quotes a post that you made.<br><br><strong>Easier for developers</strong><br>
IP.Board 3.0 has well-abstracted code to make sending <a href="%22http://community.invisionpower.com/resources/official.html?record=140%22" rel="external nofollow">private messages</a> and <a href="%22http://community.invisionpower.com/resources/official.html?record=141%22" rel="external nofollow">emails</a> easy for developers.  While this is true, code is duplicated throughout IP.Board 3.0 that is meant to handle sending either PM or email notifications.  As a general rule, duplicated code is not a good thing to have.  We also had to find a way to easily implement inline notifications (without adding yet more if/else style statements everywhere that sends notifications).<br><br>
We have created a new notifications class which developers can easily use to allow third-party applications to plugin to the new notifications system.  This reduces the workload needed to set up notification capabilities (and management) for new applications significantly.<br><br>
A developer will first need to create a plugin file for their application to define notification events.  A sample plugin file might look like this<br><br></p>
<p>
/**
 * Notification types
 */
$_NOTIFY	= array(
					array( 'key' =&gt; 'report_center', 'default' =&gt; array( 'email' ), 'disabled' =&gt; array() ),
					);
</p>
<pre class="ipsCode">&lt;?php<br><br><br><br><br><br><br><br></pre>
<p><br><br>
(Yes, this is the actual code for the "core" application of IPB to handle report center notifications).  You define the default selections, and the options to disable by default.  For example, you would not want a private message to issue a new notification by private message.  This allows the developers to define the default handling of notifications for their applications.<br><br>
Then, to send a notification, the following code can be used<br><br></p>
<p>
// Notifications library
//-----------------------------------------
$classToLoad		= IPSLib::loadLibrary( IPS_ROOT_PATH . '/sources/classes/member/notifications.php', 'notifications' );
$notifyLibrary		= new $classToLoad( $this-&gt;registry );
$notifyLibrary-&gt;setMember( $user );
$notifyLibrary-&gt;setFrom( $this-&gt;memberData );
$notifyLibrary-&gt;setNotificationKey( 'report_center' );
$notifyLibrary-&gt;setNotificationText( 'This is the text to show to the user' );
$notifyLibrary-&gt;setNotificationTitle( 'This is the title of the notification' );
try
{
	$notifyLibrary-&gt;sendNotification();
}
catch( Exception $e ){}</p>
<pre class="ipsCode">//-----------------------------------------<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></pre>
<p><br><br>
The most common implementation will be to use the email library to first "build" an email, and then to assign the subject as the title, and the message as the text.  As you can see, however, it is quite easy to use the notifications class.  The class itself will determine what the administrator has defined as being allowed and disallowed, and what the user has selected for their notification preferences, and issue all appropriate notifications automatically based on the ACP and user preference selections.  You don't have to worry about ACP settings or user cp settings either, using this method.  All of it is taken care for you!<br><br><strong>Closing</strong><br>
Through implementing the new notification capabilities, we hope to be able to expand the notification capabilities in IP.Board easier in future versions.  As you can see, we've already added one more area where a user can get notified of changes in activity, and have some ideas of other areas where we would like to have the ability to issue notifications as well.  With the refactored code and easier configuration management, implementing these changes will be easy.<br><br>
Also, please keep in mind that the screenshots you are seeing are very early screenshots taken of a development build.  Rikki hasn't had a chance to put his magic touch on these pages, so most likely the final look and feel will be touched up a bit.  We just wanted to share the new capabilities, complete with some screenshots to help you visualize them, as soon as we possibly could.<br><br>
Please let us know if you have any suggestions or feedback about the new feature.</p>]]></description><guid isPermaLink="false">556</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Board 3.1.0 Dev Update: Status Updates</title><link>https://invisioncommunity.com/news/invision-community/3882-ipboard-310-dev-update-status-updates/</link><description><![CDATA[<p>I <a href="%22http://community.invisionpower.com/blog/1174/entry-3756-ipboard-310-development-news/%22" rel="external nofollow">blogged just before Christmas</a> about the improvements to the status update feature in IP.Board.<br><br></p>
<blockquote data-ipsquote="" class="ipsQuote"><p>During the latter stages of IP.Board 3.0.0's development, we added in very basic status updates in users profiles that was further enhanced by the index page sidebar hook. We've seen this feature get a lot of use on our own community and we wanted to take it to the next logical step and allow archived statuses and status replies.</p></blockquote>
<br><br>
A recent addition is the ability to locks a status update. A normal member can lock their status to prevent comments from other members, although a super moderator (and admin) can over-ride this and reply and/or unlock the status. When a super moderator (and admin) lock a status, it means that in addition to other members being able to reply, the status owner can not unlock it.<br><br>
I have also improved the sidebar hook to allow on-the-fly commenting, updating and deleting without leaving the page.<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20100111-162904.png" loading="lazy"><br><br>
You can see it in action, here:<br><br><div class="ipsEmbeddedVideo"><iframe width="459" height="344" src="http://www.youtube.com/embed/I5CZpDSMxyo?feature=oembed" frameborder="0" allowfullscreen loading="lazy"></iframe></div>
<br><br>
We feel these minor 'social networking' style features add interest and a secondary reason to re-visit your forum. Members can receive email notifications when a reply is made to their status, or a reply is made to a status they have commented on. This will continually drive traffic back to your site and encourage more interaction between members.
]]></description><guid isPermaLink="false">555</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Board 3.1.0 Dev Update: Hook System</title><link>https://invisioncommunity.com/news/invision-community/3884-ipboard-310-dev-update-hook-system/</link><description><![CDATA[<p>In IP.Board 3, we introduced the hook system, the goal of which was to cut down on file edits from modifications and make modifications easier to install.  We designed the system to be as flexible as possible, primarily using the HTML logic feature to create hooks in virtually every portion of the output generated.  However, we knew there were still cases where a file edit was needed, to access certain data or to reach any area of the board that was not a template or an action file.<br><br>
One of our primary goals with IP.Board 3.1, is to expand the hook system to further reduce the need for file edits, as well as to make installing them even easier.  We've read all the feedback on hooks from modification authors and are incorporating as much of it as possible into 3.1.  Here's a quick rundown of the changes that we have mode so far:<br><br><strong></strong><span><strong>New Hook Types</strong></span><strong></strong><br><br>
Our first goal was to extend the hook system to cover areas of the forum that are not currently accessible to hooks.  Toward that end, we are introducing two new hook file types to address this issue:<br><br><em>Data Hooks</em><br><br>
Modifications often need access to add their own data to insert/update queries that are run by IPB, at the moment that data is not accessible and must be queried separately and then hook has to run another insert/update query.  To address this issue, we have added a new hook file type called a Data Hook.  This type of hook allows you to access certain data arrays before they are inserted into the database.  For example, you can create a hook that will receive the $post array before it is inserted into the posts table, this will give your hook a chance to add any data it needs or modify any data being saved.  Technically, a Data Hook does not even have to modify the actual data array, you can use them as a simple code execution point as well.<br><br>
Unlike Template Hooks, which are essentially generated automatically, Data hooks are manually specified in the code, so if you have suggestions on where you would like to see these placed, please reply to this blog post and let us know.  At the moment, data hooks are used in the posting library, the messenger library, and some areas of the profile screen.<br><br><em>Library Hooks</em><br><br>
There are many classes used within IPB that are inaccessible to hooks, as they are not actions or templates.  However, it is often useful to be able to modify these classes with your own methods or to add on to existing methods.  This leads to the second type of hook file that we are adding in 3.1, the Library Hook.  This type of hook will allow you to extend the libraries that we use throughout IPB, a common example would be class_forums.  This works in exactly the same way as an action overloader, your hook will extend the library you have selected and allow you to add to it or replace method calls with your own.  Like the action overloaders, you will need to remember to call the parent method from your overloaded method.  <br><br>
In order for a library hook to work, we have to update the require call that includes that library.  We're going through the code to try and find as many of these require calls as possible, but during beta you should check any includes that you are interested in extending to make sure we haven't missed them.<br><br><strong></strong><span><strong>Other Changes</strong></span><strong></strong><br><br><em>Hooks in AJAX requests</em><br><br>
In the current release, any output returned via AJAX is not passed through the hook system.  This has been changed in 3.1, now all returned output is properly run through the hooks system, allowing you to hook into any AJAX generated output.<br><br><em>Export CSS Files</em><br><br>
There is a new option when exporting a hook that will allow you to specify CSS files that is used by that hook.  The CSS files will be included in the hook xml and then imported along with the hook and cached to the file system.<br><br><em>Access Function Data</em><br><br>
One of the most frequent requests we've seen is for a way to access template function data, with IP.Board 3.1 this will now be possible.  Any active hooks within a template function will be able to access the function data through a special class property called functionData.  To save resources, this data is not saved for any template function that does not contain active hooks.  Here's an example of how to access function data inside of the topicViewTemplate function:<br><br>
Function Declaration:<br></p><p></p><pre class="ipsCode">

function topicViewTemplate($forum, $topic, $post_data, $displayData) {

</pre><p>


All of this data will be accessible to your hook via $functionData:

</p><p></p><pre class="ipsCode">

$this-&gt;registry-&gt;output-&gt;getTemplate('topic')-&gt;functionData['topicViewTemplate']['forum']

$this-&gt;registry-&gt;output-&gt;getTemplate('topic')-&gt;functionData['topicViewTemplate']['topic']

</pre><p><br><br><strong></strong><span><strong>Wrapping up</strong></span><strong></strong><br><br>
We've also made quite a few minor tweaks throughout the hook system, these changes include updates to the ACP interface, performance enhancements, a toggle to quickly disable/enable all hooks, changing hook positions without IN_DEV enabled, and more.  If you have any suggestions regarding these changes or the existing hook system, please do not hesitate to reply to this entry and let us know about them.  We're very excited to see what our community will do with these new features!</p>]]></description><guid isPermaLink="false">554</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Gallery 3.1.0 Wrap Up</title><link>https://invisioncommunity.com/news/invision-community/3885-ipgallery-310-wrap-up/</link><description><![CDATA[<p>IP.Gallery 3.1.0 will be released soon, so we'd like to take a moment to summarize all the new features we've added in this new release.<br><br><strong>Friendly URLs</strong><br><br>
We've integrated gallery into the global FURL system used by IP.Board 3, this will allow gallery to create friendly URLs for categories, albums, and images.<br><br><strong>Category/Album Covers</strong><br><br>
When viewing an image, you will have a new option to set that image as the 'cover' for the category or album that contains the image.  When a cover image is specified for a category or album, that image will always be displayed, in place of the last uploaded image thumbnail.<br><br><strong>Sub Albums</strong><br><br>
Albums now support unlimited sub albums, which work exactly like gallery sub categories.<br><br><strong>Profile Picture Album</strong><br><br>
You can now create a new kind of album, a 'Profile Picture' Album. After this album has been created, any images that you upload to it will be displayed on the change picture page in your User CP, making them easy to select as your profile image.<br><br><strong>Image notes</strong><br>
Image owners are now able to add notes to sections of their images, positioning and resizing them to suit. Other members will be able to see the notes when hovering over the image. (An example)<br><br><strong>Image rotation</strong><br>
Images can now be rotated in 90</p>]]></description><guid isPermaLink="false">553</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Blog 2.1.0 Wrap Up</title><link>https://invisioncommunity.com/news/invision-community/3881-ipblog-210-wrap-up/</link><description><![CDATA[<p>As we near the release of IP.Blog 2.1.0 final, I wanted to run through some of the new features you can expect to see after upgrading. This is a very substantial upgrade that gives your blog a major facelift as well as drastically improving functionality.<br><br><strong>User Interface</strong><br>
The user interface has had a complete facelift to bring it up to standard. The new look feels more 'bloggish' and enhances the experience. I've added drop down menus at the top so that you can quickly access common areas and start new entries where you have permission to. The post screen has been overhauled to add functionality. You should find the new version much easier to navigate and easier to use.<br><br><strong>Group Blogs</strong><br>
This is a new feature that allows you, the admin, to set up a group-wide blog. This blog is a normal blog in every other way. For example, you could set up a blog for your staff and everyone in the staff group will instantly be able to start writing new blog entries and managing comments, etc.<br><br><strong>Blog This!</strong><br>
This is a brand new feature that adds a "Blog This" button to every post. This allows you to use post content in your blog entry. Furthermore, the relationship is remembered and all linked blog entries appear at the bottom of the topic when viewed.<br><br><strong>Per-Entry Rating</strong><br>
You can now rate each blog entry rather than just the entire blog itself. The blog rating is still shown on the homepage as an aggregate of all rated entries.<br><br><strong>Report Item and Reputation</strong><br>
You can now report an entire blog entry, or just a single comment. You can now also give someone a reputation increase/decrease in comments.<br><br><strong>List View</strong><br>
A common request was the return of a fully sortable and filterable list view for blogs that emulated a forum view. I have added this in. You'll notice you can click the table headers to sort on that column and click again to reverse the sort. There is also a "List Blogs" sidebar block to quickly filter and list the blogs.<br>
There's even a little 'preview the latest entry' icon that shows the entry excerpt in a pop-up so you don't have to leave the page to preview it.<br><br><strong>Dynamic Sidebar</strong><br>
I've moved some the footer links (Top 10 bloggers, etc) into a dynamic sidebar along with Recent Entries. This makes it easier to locate and saves a bit of space.<br><br><strong>RSS Imports</strong><br>
Another long requested feature was to be able to create entries from an RSS feed. This is now a feature. You can control which member groups have access to this as well as limit the number of items imported on each cycle.<br><br><strong>Banish Entries</strong><br>
You can now banish entries from the front page to remove any 'clutter' such as 'testing' blogs or other unsuitable content.<br><br><strong>ACP Clean-up</strong><br>
I've gone through and cleaned up some of the Admin CP pages to make them a little easier to understand and navigate. I've added explanations to the 'Headers' / 'Dynamic Headers' pages so it's clear what they do.<br><br><strong>Efficiency</strong><br>
I've removed several slow queries and introduced several more caching layers to substantially reduce SQL overhead when dealing with large numbers of blogs.<br><br>
We hope you find the updates useful, and we look forward to your feedback to continue improving the product.</p>]]></description><guid isPermaLink="false">552</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Downloads 2.1 Wrap-Up</title><link>https://invisioncommunity.com/news/invision-community/3818-ipdownloads-21-wrap-up/</link><description><![CDATA[<p>As we near the release of IP.Downloads 2.1.0, we wanted to take a moment just to summarize the changes in this release and to point out the new features you can expect to see upon updating.<br><br><br><strong>Friendly URLs</strong><br><br>
Friendly URLs have been implemented into IP.Downloads starting with version 2.1.<br><br><br><strong>Ability to shut off "Resume breakpoints"</strong><br><br>
Most download accelerator clients support downloading multiple pieces of a file simultaneously.  While this means that the file can download faster for the user, it also means that you can have multiple connections open from one user downloading a single file.  Beginning with IP.Downloads 2.1 you can disallow requests for individual file parts to help control the number of open connections to your server.<br><br><br><strong>Download sessions</strong><br><br>
Beginning with IP.Downloads 2.1, you can enable functionality that will cause IP.Downloads to create a unique URL for each file download request.  The URL will expire once used (or after 24 hours, whichever comes first), helping to prevent users from sharing direct download links to the files.<br><br><br><strong>Global settings</strong><br><br>
IP.Downloads 2.1 will allow you to configure maximum file size and screenshot dimension settings globally, while still allowing you to override those settings on a per-category level should you need to.  This can help simplify updates to your download manager configuration for these particular settings which are commonly configured the same across all categories.<br><br><br><strong>Support for link "types"</strong><br><br>
When submitting screenshot and file links, you will now be able to select what type of link you are submitting.  The link types are configurable in the ACP so administrators can add and alter link types to better suit their site.<br><br><br><strong>Upload progress meter</strong><br><br>
Through integration with the flash uploader used for uploading attachments to IP.Board posts, the download manager now supports a true progress bar for all uploads (if the user is using the Flash uploader as specified in their user control panel).<br><br><br><strong>One record, many files</strong><br><br>
To date, IP.Downloads was designed to allow you to submit one file at a time (and one screenshot, depending on the configuration).  IP.Downloads 2.1 takes the next step and allows you to submit multiple files and multiple screenshots per record.<br><br><br><strong>Interface updates</strong><br><br>
The interface for the download manager has been tweaked and updated to provide a more polished feel, while distinguishing the user interface from the rest of the board. <br><br><br><strong>Wrap Up</strong><br><strong>
</strong><br>
The primary focus of IP.Downloads 2.1 was expansion of the file storage methods to include support for important new functionality: multiple files per record and support for the flash uploader tool used by IP.Board.  To that end, we decided to focus development on this core functionality in order to provide a solid foundation for future functionality changes in IP.Downloads.  We hope you find the updates useful, and we look forward to your feedback to continue improving the product.</p>]]></description><guid isPermaLink="false">551</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IPB 3.1: Search Engine Optimization Part Deux</title><link>https://invisioncommunity.com/news/invision-community/3814-ipb-31-search-engine-optimization-part-deux/</link><description><![CDATA[<p>Earlier this week we discussed some of the changes you can expect to see with regards to search engine optimization in IP.Board 3.1.  Mostly, the changes are basic tweaks that will have great impact.  These are the best kinds of changes.<br><br>
Based on the feedback received, we've implemented a few other changes related to optimization of your site for visiting search engines.  As before, most of these changes are pretty basic.  In the end, the goal is to help streamline your site for purposes of search engine indexing.  We want to promote the content that is valuable and worth indexing, de-emphasize the content that isn't, and overall adhere to common industry standards and protocols for purposes of ensuring IP.Board does everything it should to help your site position appropriately.<br><br><strong>Removal of a setting</strong><br><br>
We have removed the "Use 301 for friendly URL redirects" setting from the ACP.  After reviewing the functionality and purpose of this setting, we have decided it is unnecessary.  If you enable friendly URLs and decide to redirect the wrong urls to the correct friendly URL version, you will always want to use a 301 header.  By removing the setting, we have effectively hard-coded this to "Yes".  The purpose of this is to remove unnecessary options, in favor of presenting you with the options that truly are important for optimizing your site.<br><br><strong>Centralize SEO-related settings</strong><br><br>
We have created a new "Search Engine Optimization" setting group in the ACP to better pull out and separate settings meant for this purpose.  We have moved the existing friendly URL settings to this new setting group, and have added some other new settings we will discuss later on in this blog entry.<br><br><strong>Addition of "canonical" meta tag for board index</strong><br><br>
This is an addition we feel is very important and beneficial.  A "canonical" meta tag identifies the proper URL for a webpage to a search engine spider.  For instance, all of the following urls will load the IP.Board forum index<br><br></p><p>
http://yoursitehere.com/forums
http://yoursitehere.com/forums/index
http://yoursitehere.com/forums/index.php
http://yoursitehere.com/forums/index.php?
http://yoursitehere.com/forums/index.php?act=idx</p><pre class="ipsCode">http://yoursitehere.com/forums/<br><br><br><br><br></pre><p><br><br>
There are many other variations that will do the same.  But which one is correct?  How can a spider know which version to index, or should it index them all?  At the end of the day, they are all different urls, and can potentially be treated differently by a search engine spider. With dynamic software, such as IP.Board, it is often difficult to ensure that the URL used to reach a page is the "correct" version and to redirect appropriately.  It is not difficult, however, to tell a search engine which version of the URL SHOULD be used.  When a search engine reaches the board index page in IP.Board 3.1, through any URL listed above, or any other variation not listed, the canonical tag will instruct the spider to use one specific version of the URL for that given page.  This will help consolidate inbound link weight to the single/correct version of the page, and consolidate duplicate results in search engine listings to the single/correct version of the page.<br><br><strong>More improvements for the board index</strong><br><br>
Many users have requested that we provide a way for them to specify the page title to be used on the board index page.  The board index page is going to be the most important page of your forums (in the eyes of a search engine spider), and having complete control over the page title is important.  Prior to IP.Board 3.1, the "Board Name" setting was used for the board index page title.  This works well for many users, however it is also appended to the end of the page title for many other pages, so depending upon your specific needs, you may want to use different text for the two locations.  IP.Board 3.1 has a setting to allow you to change the page title for the board index page specifically.  If left blank, the board name will be be used, just as with previous versions.<br><br>
Additionally, we have added settings to allow you to specify the meta keywords and meta description tag values in the new Search Engine Optimization setting group mentioned earlier.  The end result is that you now have much more control over SEO aspects of your board index, arguably the most important page of the forums for search engine spiders.<br><br><strong>De-emphasize unimportant pages</strong><br><br>
IP.Board 3.1 will now issue a meta robots tag with the value "noindex" for some common non-content pages.  Examples include the login page, the register page, and the lost password request page.  The purpose of the tag is to suggest to the search engine not to index the page at all.  Every IP.Board installation on the internet will have effectively the same login, registration and lost password pages, and these pages have no valuable content that search engine spiders want to index anyways.  By de-emphasizing unimportant pages, more emphasis is placed on the content-heavy pages we want search engine spiders to spend their time on.<br><br><br><strong>Wrap up</strong><br><br>
We've got some more feedback and suggestions we would like to take into account and implement in a future version of IP.Board, however we feel that for 3.1 we've taken the most important changes that do not require many invasive core changes to the software and implemented them in a manner that will benefit customers the most.  We are working hard to ensure we've done our part to help your forum stand out from the crowd, and are confident that the changes made to IP.Board will have actual, useful benefits to your forum with regards to search engine indexing.</p>]]></description><guid isPermaLink="false">550</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IPB 3.1: Search Engine Optimization</title><link>https://invisioncommunity.com/news/invision-community/3809-ipb-31-search-engine-optimization/</link><description><![CDATA[<p>Many of our customers have expressed interest in optimizing their forums for search engines, and to that end IPB 3.0 introduced many great features to facilitate this.  You may recall from our blog entries leading up to 3.0 that we introduced friendly urls, canonical tag, dynamic meta tag support, and many other useful changes to make indexing your website easier for search engine spiders.<br><br>
Here are a few blog entries detailing the new features in IP.Board 3.0.<br><br></p><ul><li><a href="%22http://community.invisionpower.com/blog/1174/entry-2705-ipboard-3-friendly-url-enhancements/%22" rel="external nofollow">IP.Board 3: Friendly URL Enhancements</a>
</li><li><a href="%22http://community.invisionpower.com/blog/1174/entry-2610-IP-Board-3-0-Search-Engine-Optimization/%22" rel="external nofollow">IP.Board 3.0 Search Engine Optimization</a>
</li><li><a href="%22http://community.invisionpower.com/blog/1174/entry-2594-ipboard-3-friendly-urls-at-last/%22" rel="external nofollow">IP.Board 3: Friendly URLs at last!</a><br></li></ul><br><br><br>
For IP.Board 3.1 we have consulted with an industry specialist to determine some areas of IP.Board where we can optimize the software to better adhere to standards and facilitate easier discovery of content.  By making some minor changes to how the software behaves, we can help search engine spiders more easily index your forums, and more easily filter out content that should not be indexed.<br><br><strong>Appropriate header codes for errors</strong><br><br>
Error pages do not need to be indexed by search engine spiders, as they provide no real <em>content</em> that one would expect to search for using a traditional search engine.  We have changed IP.Board 3.1 to issue a 500 header code ("Internal Server Error") for most generic error messages.  Errors that are indicating the user does not have appropriate permissions will now be delivered with a "403 Forbidden" header code, while error messages that indicate the content could not be found (i.e. an invalid topic id) will issue a "404 Not Found" header code.  By using more appropriate header codes, search engines will more easily be able to identify that certain pages should not be indexed, as they are true errors.<br><br><strong>The infamous "icon" alt attribute</strong><br><br>
XHTML Strict standards dictate that an alt attribute must be supplied with every image.  The idea is that the alt attribute can be read by screen readers and other assistive technology (as well as by search engine spiders) to better identify what an image represents.  Many images in IP.Board are used merely for visual "eye candy" purposes and don't have specific meaning.  The title attribute used for anchor tags wrapping the images is more than sufficient to dictate what the link itself is used for, while the image is routinely nothing more than an icon used in place of text to look nicer.<br><br>
As such, IP.Board 3.0 frequently used "icon" as an alt attribute for many images, because that is what the image was.  However, search engine spiders are seeing this as an increasingly relevant term on many IP.Board forums as a result, when clearly many (if not most) forums are not really about "icons".  To that end, we have removed "icon" as an alt attribute (in some places, specifying no text as the alt attribute) to de-emphasize the unimportant term.  We will be making similar tweaks to other textual and meta data on the page to better help search engines identify what is truly important within any given page.<br><br><strong>Cash in on social networking</strong><br><br>
Social networking is all the craze these days.  Love it or hate it, it is hard to deny that social networking is changing the landscape of the internet.  Sites like <a href="%22http://www.facebook.com%22" rel="external nofollow">Facebook</a> and <a href="%22http://www.twitter.com%22" rel="external nofollow">Twitter</a> are serving millions and millions of users on a daily basis, making them excellent places to promote your own website to garner interest and put out word of mouth advertising for free.<br><br>
While IP.Board 3.0 already supports Facebook Connect out of the box, making it easy for users with a Facebook account to simply login to your site using their Facebook credentials, we decided we wanted to do something more for IP.Board 3.1.  Pulling IN content is great, but pushing OUT content is even better.<br><br>
IP.Board 3.1 will feature buttons when viewing a topic that will allow you to quickly push out any given post to Twitter and/or Facebook, making it easier for you and your members to share specific content on your website with large audiences.  What's great about this is that this sort of content sharing is much more targetted than generic advertising.  If a member shares a specific post on his Facebook "wall", it's much more likely that his friends and colleagues will be interested in the content, and more prone to following the link to your website, than an advertisement block on a random website, or within search engine result listings.  Friends and colleagues often share similar interests, after all.<br><br><strong>Even more to come</strong><br><br>
While we feel the above changes are simple but useful tweaks to the existing software, there are some more similarly simple changes we intend to implement to IP.Board 3.1 in order to better position your site to stand out from the crowd.  We hope that you feel, as we do, that these improvements will only improve your site, both for search engines, and for your actual users.
]]></description><guid isPermaLink="false">549</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Blog Y2K10 Bug</title><link>https://invisioncommunity.com/news/invision-community/3805-ipblog-y2k10-bug/</link><description><![CDATA[<p>For those of you having issues posting a blog entry using IP.Blog with a year of 2010 a patch has been posted to fix these issues.<br><br>
Please <a href="%22http://community.invisionpower.com/topic/300859-rc-releases-for-ipblog-ipgallery-ipdownloads-and-ipchat/page__view__findpost__p__1895335%22" rel="external nofollow">see this post</a> for patch information and instructions.</p>]]></description><guid isPermaLink="false">548</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Content 1.2.0 on its way</title><link>https://invisioncommunity.com/news/invision-community/3777-ipcontent-120-on-its-way/</link><description><![CDATA[<p>Not content just sitting back and letting our latest product IP.Content stagnate, I've been hard at work getting version 1.2.0 ready for everyone very soon. In the mean time, I wanted to put up a blog entry to discuss some of the changes you will see with this new release.<br><br><strong>Field default values</strong><br>
There is now a per-field option to define the default value for the field. This default value will be used when the "add new record" form is displayed as the default value to place in the field. The user can still, of course, change this value while configuring their record.<br><br><strong>Disable fields in listing and display templates</strong><br>
Many have requested a method of disabling specific fields from displaying in listing and display templates without having to modify the default templates (i.e. to exclude certain fields in the foreach loop, or to manually define the layout). As of 1.2.0 there are two new settings when configuring your fields to do just that. If you disable a field in the listing template, it simply won't show up there. You can even disable a field in the listing and display template and have a hidden field attached to the record, if you wish.<br><br><strong>Additional sorting for database feeds</strong><br>
You will now be able to sort database feeds by meta-data fields (record id, last updated, submitted date, comment count, etc.). This will allow you to more easily create database feeds to show latest records, for instance.<br><br><strong>Text formatting options for text input fields</strong><br>
There are now per-field settings on text-input fields (only) to allow you to define the following automatic formatting options:<br><br></p><ul><li>Capitalize all letters</li><li>Lower-case all letters</li><li>Capitalize just the first letter of the string</li><li>Capitalize the first letter of each word in the string</li><li>Remove excess punctuation</li></ul><br>
You can mix and match, using more than one option, but of course some options will have no effect when used together (i.e. capitalize all letters, and lower-case all letters).<br><br><strong>Attachment parsing for forum and blog feeds</strong><br>
Attachment parsing has been added for forum and blog feeds (provided you do not use the default strip tags and truncate calls in the template for the content value).<br><br><strong>Attachment data available programatically</strong><br>
Some users have expressed interest in having access to attachment data in a more robust manner than simply passing the field through the IP.Content attachment parser. For instance, you may want to display 1 image from an attachment field in the listing, without having to worry about whether there are more than 1 images associated with the field.<br><br>
Attachment data has now been added to a global cache during normal parsing routines, so that you may be able to programatically access the attachment data for the record and do more unique things with the data. A resource article on how to access this data will be forthcoming following the release.<br><br><strong>WYSIWYG and Code Highlighter Support</strong><br>
We have added support into IP.Content to integrate with the following WYSIWYG and Code Editors:<br><br><ul><li>TinyMCE</li><li>CKEditor</li><li>CodePress</li><li>EditArea</li><li>(None/default textarea)</li></ul><br>
You can select which editor interface you would like to use (be careful using WYSIWYG editors when editing certain content, as they will strip special tags) and the editor will be available when editing templates and content throughout the ACP. Even better, the code highlighters will be "smart" and recognize what type of content you are editing (javascript, css, html or php, depending on the block, template or page details). If you have a favorite editor that you would like to see integrated let us know. We've designed the system to make it easy to drop in (and remove) editor types as needed, so if we can integrate with your favorite editor, we're happy to do so.<br><br><br><strong>The wrap up</strong><br>
Undoubtedly you will notice that most of these features aren't big features, however we feel they will be extremely useful and relevant features as members continue to explore IP.Content and how to use the software to enhance their websites. Every feature listed above was requested by you (our customers), and were culled from tickets, feature request topics, and support topics in the peer to peer forums. Keep on suggesting things you would like to see in IP.Content, and we'll do our best to get those features in place appropriately!
]]></description><guid isPermaLink="false">547</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Board 3.1.0 Development News</title><link>https://invisioncommunity.com/news/invision-community/3756-ipboard-310-development-news/</link><description><![CDATA[<p>Laurel resting isn't an activity we do at IPS and we're all very hard at work on IP.Board 3.1.0 now that we've finished primary development on our suite of applications. We've got lots of exciting things planned and progress has already been made on a few key features.<br><br>
As an early Christmas present to our community and to continue our honest and open development, I wanted to show you one of our already completed 3.1.0 features:<br><br><strong>Enhanced Status Updates</strong><br>
During the latter stages of IP.Board 3.0.0's development, we added in very basic status updates in users profiles that was further enhanced by the index page sidebar hook. We've seen this feature get a lot of use on our own community and we wanted to take it to the next logical step and allow archived statuses and status replies.<br><br>
There is a new tab in a member's profile for recent status updates and recent status actions.<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20091223-121326.png" loading="lazy"><br><br>
 As one would expect, this is all handled via Ajax with normal post operations for those who do not have javascript enabled. Replies appear instantly, comments are deleted instantly and even status updates are removed instantly. See it in action below:<br><br></p>
<div class="ipsEmbeddedVideo"><iframe width="480" height="270" src="http://www.youtube.com/embed/Rp3XHU72YME?feature=oembed" frameborder="0" allowfullscreen loading="lazy"></iframe></div>
<br><br>
There is also a new page for all status updates:<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20091223-121145.png" loading="lazy"><br><br>
You can even receive email notification on any replies to your statuses or any replies to statuses you've replied to:<br><br><img src="http://www.invisionpower.com/uploads/sshots//Shades-20091223-121452.png" loading="lazy"><br><br>
This takes a minor feature and gives it a little more focus and should help increase traffic between user profiles and give more of a social feel to your bulletin board.<br><br>
Your status can also be updated automatically from Facebook if you are using Facebook connect.<br><br>
As always, please keep in mind these are early preview screenshots and may change between now and the first public release of IP.Board 3.1.0. As always, we'd love to know what you think.
]]></description><guid isPermaLink="false">546</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Downloads 2.1 Installed Here</title><link>https://invisioncommunity.com/news/invision-community/3741-ipdownloads-21-installed-here/</link><description><![CDATA[<p>While <a href="%22http://community.invisionpower.com/blog/1174/entry-3573-IP-Downloads-2-1/%22" rel="external nofollow">we announced planned features for IP.Downloads 2.1 in October</a>, we've been a bit quiet about it since then. This wasn't because we had forgotten about IP.Downloads, or because we had some secret thing going on in the background we didn't want to relay to you just yet. We simply wanted to take the time to test out the changes a little bit before applying them live to our site. We know everyone would be quite upset if the resources section was down for a prolonged period of time, so we knew we had to get it right.<br><br>
I'm pleased to inform you that we've now updated IP.Downloads here to version 2.1, and it seems to be running quite well. There's going to be bugs here and there, given that this is a pre-final release (please report all bugs you find to our bug tracker, as always), however on the whole we think you'll like what you see.<br><br>
So head on over to the <a href="%22http://community.invisionpower.com/files/%22" rel="external nofollow">resources section</a> and take a look at the new and improved download manager.<br><br><br>
For those of you who contribute, you'll find a few nice features in this release which you might wish to take advantage of. While these are highlighted in the previous blog entry I linked to, a quick summary is as follows:<br><br></p><ul><li>You can now submit multiple files at one time per file record.</li><li>You can now submit multiple screenshots per file record</li><li>When submitting links you can identify a link "type" (i.e. a mirror, for instance)</li><li>Due to the improved file uploading process, a progress bar is now shown for all files uploading</li></ul><br>
We look forward to your feedback!
]]></description><guid isPermaLink="false">545</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Chat beta testing now open</title><link>https://invisioncommunity.com/news/invision-community/3684-ipchat-beta-testing-now-open/</link><description><![CDATA[<p>The beta testing for the new IP.Chat service is now open to all active IP.Board and IPS Community Hosting customers. For full information please <a href="%22http://community.invisionpower.com/topic/299705-ipchat-beta-testing/%22" rel="external nofollow">read the topic</a> in the IP.Chat forum.</p>]]></description><guid isPermaLink="false">544</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item><item><title>IP.Blog 2.1.0 Development Update</title><link>https://invisioncommunity.com/news/invision-community/3675-ipblog-210-development-update/</link><description><![CDATA[<p>You may have noticed that I've updated our blog installation again. This brings many new features sine the last update. This update pretty much wraps up principle coding for new features and although there are a fair few tweaks and bugs to be fixed, we should see a beta release fairly soon.<br><br>
The new feature highlights are:<br><br><strong>List View Returns</strong><br>
A common request was the return of a fully sortable and filterable list view for blogs that emulated a forum view. I have added this in. You'll notice you can click the table headers to sort on that column and click again to reverse the sort. There is also a "List Blogs" sidebar block to quickly filter and list the blogs.<br>
There's even a little 'preview the latest entry' icon that shows the entry excerpt in a pop-up so you don't have to leave the page to preview it.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20091130-160120.png" loading="lazy"><br><br><strong>Dynamic Sidebar Block</strong><br>
I've moved some the footer links (Top 10 bloggers, etc) into a dynamic sidebar along with Recent Entries. This makes it easier to locate and saves a bit of space.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20091201-054054.png" loading="lazy"><br><br><strong>RSS Imports</strong><br>
Another long requested feature was to be able to create entries from an RSS feed. This is now a feature. You can control which member groups have access to this as well as limit the number of items imported on each cycle.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20091201-054145.png" loading="lazy"><br><br><strong>Banish Entries</strong><br>
You can now banish entries from the front page to remove any 'clutter' such as 'testing' blogs or other unsuitable content.<br><br><img src="http://www.mattmecham.com/skitch/Shades-20091130-160200.png" loading="lazy"><br><br><strong>ACP Clean-up</strong><br>
I've gone through and cleaned up some of the Admin CP pages to make them a little easier to understand and navigate. I've added explanations to the 'Headers' / 'Dynamic Headers' pages so it's clear what they do.<br><br>
Please have a click around and let us know what you think. We've tried very hard to incorporate a lot of commonly requested features in this release and we'll continue to do so over several subsequent releases.<br><br>
As always, this is late alpha software so please report any bugs into the Blog bug tracker as normal.</p>]]></description><guid isPermaLink="false">543</guid><pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate></item></channel></rss>
