Information - Browsing Features
-
CDN for Assets
AtomSite supports content delivery networks for improving the performance of asset downloads. A CDN allows you to spread the assets your site needs across multiple servers. Web browsers can download the site faster because it can make multiple calls when assets are separate domains.
Adding New CDN Locations in AtomSite
You can add CDN locations in AtomSite by adding a <cdn> element in the service.config <service> element. For example:
<svc:cdn>
<svc:asset name="jquery.tools-1.1.1.min.js" url="http://cdn.jquerytools.org/1.1.1/tiny/jquery.tools.min.js"/>
</svc:cdn>If there are multiple locations for the same asset, AtomSite will always use the first location.
Default CDN Locations
The default CDN locations in AtomSite (for version 1.3) are shown below.
<cdn xmlns="http://atomsite.net/info/Service">
<!-- These are the default CDN asset locations, when multiple, always uses first one -->
<!-- These locations can be overridden in the <service> element of the service.config -->
<asset name="reset-fonts-grids-2.7.0.css" url="http://yui.yahooapis.com/2.7.0/build/reset-fonts-grids/reset-fonts-grids.css"/>
<asset name="jquery-1.3.2.min.js" url="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"/>
<asset name="jquery-1.3.2.min.js" url="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js"/>
<asset name="jquery.tools-1.1.1.min.js" url="http://cdn.jquerytools.org/1.1.1/tiny/jquery.tools.min.js"/>
</cdn>
-
Annotations and Comments
Overview
AtomSite has full featured support for annotations (also known as comments). Annotations can be turned on/off at the collection level or individual entry level. You can require annotations to be approved before they are visible. AtomSite is built to support paging and threading of annotations. AtomSite supports annotations in accordance with Atom Threading Extension.
Control
AtomSite supports multiple methods for controlling if an entry supports annotations. The first method is by modifying the configuration setting called annotationsOn on the collection.
- annotationsOn
- true = annotations are on
- false = annotations are off
You can gain granular control over who is allowed to annotate by changing the role matrix at either the service, workspace or collection level. As shown below, the default role matrix allows anyone to annotate.
<svc:roleAction name='Annotate' admin='True' author='True' contrib='True' user='True' anon='True'/>
You can also control annotations at the entry level by the allowAnnotate setting on each entry.
Finally, annotations can be controlled by an expiration date set by the annotateDaysOpen setting.* Annotations on an entry will appear closed after X number of days past the published date.
Approvals
When an annotation is created, the annotation may be automatically approved depending on their role. As seen below in the default role matrix, users and anonymous users comments must be approved by an administrator, author, or contributor.
<svc:roleAction name='ApproveAnnotation' admin='True' author='True' contrib='True' user='False' anon='False'/>
Annotations that have not been approved will only show to authorized users. The unapproved annotations will show up as red. When the annotation is successfully approved, it fades to green (via jQuery). The website supports approving individual annotations or all annotations at the same time.
Paging
AtomSite was designed to support paging comments. This is valuable when an entry has too many annotations that may slow the page down. The backend and service layer already support paging. In the future, a theme will be available that supports this paging on the front-end.
Threading
As mentioned earlier, annotations are created by posting an entry to any existing entry. Since every annotation is an entry, this allows you to thread the entries. In the blogosphere, this is known as nested comments.
The backend does support threading comments. However, there is not yet first class support for this on the front-end. It is scheduled for a future release.
Technical
AtomSite supports new annotations by posting an entry to the address of any existing entry. The user's browser talks directly to the service using an ajax request.
POST /blog/2008/08/24/BlogSvcNowSupportsComments.atom HTTP/1.1 x-requested-with: XMLHttpRequest Accept-Language: en-us Referer: http://atomsite.net/blog/2008/08/24/BlogSvcNowSupportsComments.xhtml Accept: application/xml, text/xml, */* Content-Type: application/atom+xml;type=entry UA-CPU: AMD64 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Win64; x64; .NET CLR 2.0.50727; SLCC1; .NET CLR 3.5.21022; .NET CLR 3.5.30428; .NET CLR 3.5.30729) Host: blogsvc.net Content-Length: 196 Connection: Keep-Alive Pragma: no-cache Cookie: ASP.NET_SessionId=fr1fix55vfyqiivzypp05b55 <entry xmlns='http://www.w3.org/2005/Atom'> <title>Comment</title> <author> <name>Test</name> <email>test@test.com</email> <uri>http://test.com</uri> </author> <content type='html'>Test</content> </entry>HTTP/1.1 201 Created Cache-Control: private Content-Type: text/plain Location: http://atomsite.net/blog/2008/08/24/BlogSvcNowSupportsComments/Comment.atom Server: Microsoft-IIS/7.0 X-AspNet-Version: 2.0.50727 X-Powered-By: ASP.NET Date: Sun, 24 Aug 2008 20:47:19 GMT Content-Length: 67 ..snip..
The response will now contain a cookie to remember anonymous user details. If the request is from an AJAX call it will return the html to add the web page, otherwise it will return the Atom entry.
$.ajax({ type: "POST", url: "<%= AnnotationHref %>", data: "<entry xmlns='http://www.w3.org/2005/Atom'> <title>Comment</title> <author> <name>" + parse($('#txtName').val()) + "</name> <email>" + encodeURI($('#txtEmail').val()) + "</email> <uri>" + encodeURI($('#txtWebsite').val()) + "</uri> </author> <content type='html'>" + parse($('#txtComment').val()) + "</content> </entry>", contentType: "application/atom+xml;type=entry", dataType: "xml", complete: function(req) { if (req.status == 201) { reset(); $.ajax({ url: "/blog/<some entry>.atom" + req.responseText, success: function(html) { $(html).hide().appendTo("#annotations").addClass("annotationSelf").fadeIn("slow"); } }); } else { alert('Failed to post comment: ' + req.statusText); } } });*This feature will be available in future version.
-
AtomSite Overview
AtomSite is built with extensible web standards that unleash your social website and blog
AtomSite is search engine optimized and performance optimized for quick page loads
Start a blog, manage a website, and publish your great content online. With extensibility built in, the possibilities are endless.
What's New in AtomSite 1.4?
- Manage Widgets. The new widget management page allows you to add, edit, and configure widgets.
- Inline Widgets. Add a widget (poll, contact form, etc) into the content of an entry.
- Manage Users. In AtomSite Manager, users can be filtered, added, or updated.
- Medium Trust. You can now run AtomSite on more shared hosting providers.
AtomSite has the features you expect from a modern day content management system.
First rate blogging with support for
- Multiple-authors and contributors
- SEO and performance optimizations
- Drafts, approvals, and scheduled publishing
- Trackback and Pingback support
- Anti-spam features
- Comments with Gravatar and OpenID
- XHTML compliance even with rich html comments
- Fully theme-able
- FTP deploy on IIS7
- Setup wizard
- Full AtomPub based management
- Familiar AtomSite Manager administration dashboard
- Full extensibility with plugins, widgets, macros
-
Ratings
BlogSvc supports rating entries. Rating count, rating sum, and raters data is stored as extension elements on each entry.
Ratings can be turned on/off via the ratingsOn setting on the collection. The default value is on (true).
The website uses jQuery Rater Plugin to supply a great front-end experience. The website will automatically update the rating via Ajax once a user has rated the entry. Note: it also supports tracking who rated an entry by IP to reduce the possibility of users rating an entry multiple times.
-
Features
Read MoreAtomPub Extensions
Service Document
WSSE Authentication
Atom Threading Extension
Setup Wizard
Multiple Workspaces
Multiple Collections
Multipart Media Creation
Simple/Full Themes
Internal Categories
External Categories
Comment Approval
XHTML Compliance
Collection Feed
Media Support
Ratings
Extended Entries
Etags
Draft Control
Authorization
OpenID