Style sheets can be specified at the site or page level and based on the browser filter.
Style sheets can be specified at the site or page level and based on the browser filter.
We have 3 status: Published, Offline, and A previous version is live for articles and sites
And 4 status: Published, Offline, Publish Scheduled and Offline Scheduled for pages
The default image editor used in TinyMCE
The CMS automatically handles SEO requirements such as sitemaps and permanent redirects when a page is renamed.
See the full list here.
The standard article editor includes find/replace option.We use TinyMCE for the editor, any of the TinyMCE buttons can be enabled.
The menu item page links are automatically updated when the page URL changes. The menu items for external URLs are not automatically changed.
The system has a central Contact Relationship Management (CRM) module. The standard features include bulk emailing and email templates.
Email templates with "mail merge" substitutions is a standard feature.
All reports can be exported.
New contacts can be entered. Sections of the standard forms can be hidden as required or new forms can be created.
Easily import contacts using the import wizard, which includes a number of predefined templates. Custom layout can also be used.
Pages and menu items are easily re-ordered, by changing the items sequence number.
The standard article editor includes find/replace and search options. We use TinyMCE for the editor, any of the TinyMCE buttons can be enabled.
Images can be resized and style set from the page authoring user interface.
All images can be compressed on the server side (reducing the size of the image downloaded to the client) by using the standard FORMAT URL parameter. The image will be converted on the server side and cached for performance reasons.
1) When authoring a new article the user selects the type of article (specific article types can be customized as required).
2) Edit the newly created article.
3) Publish the article once ready
By setting a future date as the published time the article will not be published until that time.
The standard components for task and events can be used or any number of external events management components.
The web safe characters of the article title are used to automatically create a friendly URL. Unicode characters and non-web safe characters are converted to "look alike" web safe characters.
Site designers may enter friendly URLs for their pages.
A full audit trail is automatically recorded for every change in the system. Selecting records as they were at any point of time is standard functionality.
On each standard screen there is a log tab which shows the changes to this and related records.
Each transaction record every change to every record within that transaction.
The journal can be searched using a number of very suffocated commands.
Any transaction or set of transaction can be reversed by an administrator.
Variables can be used with CMS components to reduce duplication and easy maintenance
Below is an example of using variables in an ActiveHTML component.
Types of Variables:-
1.Site Config XPath Variable
This variable uses xpath statement to fetch values from the site configuration xml.
Below is an example of site configuration XML that should be used for site scope.
2.Page Config XPath Expression
This variable uses xpath statement to fetch values from the page configuration XML.
It looks and behaves similar to 'Site Config XPath Variable' except that the XML configuration has a page scope.
3.SQL Variable
This variable uses SQL statement to fetch data from the database.
Below is an example of fetching the company name from the database.
4.Url Variable
To make a site the default for a domain or set of domain names a comma separated list of host name patterns is entered.
The default site is calculated to be the first PUBLISHED site with a matching host name pattern, if no matching sites then the first site will a blank host name list.
The domain name registry itself must be done as normal to point to the system with providers such as goDaddy or Netregistry
Each site has a series of pages and menus. A page can be taken offline or scheduled to be taken on/off line at a certain time. The menu and site maps will automatically adjust accordingly.
The download of large images to the client browser which will be later resized to be a smaller image is very wasteful and slow.
Let the server dynamically resize and cache your images with NO overhead to subsequent calls. To use in your HTML just add the desired behaviour to the URL e.g "?max-width=100"
The sample large image is a landscape image of 1,000px × 667px which is 1.1m in size.
You can resize the image while maintaining the same aspect ratio. The width by height of the resized image can not exceed 2 million pixels.
The width of the image, in pixels.
/docs/web/st/help/resize/landscape.jpg?width=100
( 19k PNG image resized to 100x66 pixels)
The height of the image, in pixels.
/docs/web/st/help/resize/landscape.jpg?height=100
( 41k PNG image resized to 149x100 pixels)
The quality of the image, quality can be a number between 1..100, the default is 100.
/docs/web/st/help/resize/landscape.jpg?quality=5
( 15k JPEG image 1000x667 pixels of quality 5%)
DPI=72,96,300,600
The dots per inch for the generated image, the default is the source image DPI
/docs/web/st/help/resize/landscape.jpg?DPI=96
( 157k JPEG image 1000x667 pixels at 96 DPI)
Each image format has its advantages and disadvantages:
Format | Plus | Minus |
---|---|---|
GIF | Supports animation, and transparent pixels |
Supports only 256 colours and no translucency. Supports only 72 DPI |
PNG | Better alternative than GIF or JPG for high colour lossless images, supports translucency | Doesn't support animation |
JPG | Great for photographic images | Loss of compression, not good for text, screen shots, or any application where the original image must be preserved exactly |
The maximum width of the image, in pixels.
/docs/web/st/help/resize/landscape.jpg?max-width=100
( 19k PNG image resized to 100x66 pixels)
The maximum height of the image, in pixels.
/docs/web/st/help/resize/landscape.jpg?max-height=100
( 41k PNG image resized to 149x100 pixels)
Server-side image resizing provides incredible ROI. It can save web masters several hours each day, and gives you the ability to change the resolution of an image without having to hunt up the original.
Representational State Transfer (ReST) has gained widespread acceptance across the Web as a simpler alternative to SOAP- and Web Services Description Language (WSDL)-based Web services.
Representational State Transfer (ReST) is an architectural style for designing distributed systems, not a standard, but rather a set of conventions
Different actions are defined for each of the HTTP methods GET,DELETE,POST,PUT. Since some browsers do not support sending PUT and DELETE requests there is a simple work around for this limitation by including a _method parameter in the query string or parameters of an HTTP request.
HTTP has provisions for several mechanisms for "content negotiation" - the process of selecting the best representation for a given response when there are multiple representations available.
— RFC 2616, Fielding et al.
Content negotiation is the process of selecting one of multiple possible representations to return to a client, based on client or server preferences.
For example, given the following Accept
header:
application/json, application/xml
The returned results will be in JSON format.
The order of the Accept formats matter the first compatible format will be returned. Given the following Accept
header:
application/pdf, application/xml
The results will be returned in XML format for ReST services that don't natively return PDF.
The _accept parameter will override the Accept HTTP header.
http://shorten.stsoftware.com.au/ReST/V1/shorten?q=So%20happy%2C%20hitting%20the%20keyboard%20to%20buy%20a%20plane%20ticket%20for%20the%20sixteenth...%20supposed%20to%20be%20sunny%20with%20no%20clouds!%20%20&min=100&max=140
ReST services without any permissions defined can be called by any user whether logged in or not. If any permissions are defined for a service and the client call is not logged in a 401 ( unauthorized ) will be returned. If the client is logged in but without sufficient permission to run the ReST service 403 ( Forbidden ) will be returned.
Magic numbers gives access to this ReST service based on a special unique random key. The “magic number” can be limited to a period or number of calls. The properties of a “magic number” override any parameters in the ReST service call.
ReST services are used by external clients, notice of deprecated services and the removal must be done with care. When a service is marked as deprecated a message and the EOF ( end of life) date (if specified) will be added to the response
A Java plug-in can be defined to override the default behaviour of the system.
The stSoftware API attempts to return appropriate HTTP status codes for every request.
Code | Text | Description |
---|---|---|
200 | OK | Success! |
304 | Not Modified | There was no new data to return. |
400 | Bad Request | The request was invalid or cannot be otherwise served. An accompanying error message will explain further. In API v1.1, requests without authentication are considered invalid and will yield this response. |
401 | Unauthorized | Authentication credentials were missing or incorrect. For a ReST definition which requires a login. |
403 | Forbidden | The request is understood, but it has been refused or access is not allowed. An accompanying error message will explain why. |
404 | Not Found | The URI requested is invalid or the resource requested, such as a user, does not exists. Also returned when the requested format is not supported by the requested method. |
405 | Method not allowed | The ReST definition was found but there is no command for the request method |
500 | Internal Server Error | Something is broken. |
Error Messages
When the Twitter API returns error messages, it does so in your requested format. For example, an error from a JSON method might look like this:
{"errors":[{"message":"no ReST definition FOO","code":"400.1"}]}
Each CMS site could have one default article template, you can set it in the Admin tab of the site data entry screen.
Select Handlebars as the default article parser, then enter the handlebar template
When you insert an article compoent in a page, it will look like:
Then you can add your style sheet to change the looking of the article
To distribute a published article via email firstly you have to enable the Distribution module and you'll need to have Admin level access. You can find the Distribution module in Modules tab of Admin/Settings screen:
Go to the main menu and click on Articles/List Articles, find the published article you want to distribute, go to Distribution tab, and check "Enable" checkbox.
Once Distribution for this article is enabled, you can add Distribution Methods. You don't have to select Email Template or enter Subject, the default template will be entered once the method is saved. But make sure the Account is entered, and enter the recipients.
If you would like to use your own email template, you may want to know the following variables can be used in the template:
${rest.title} - title of the article
${rest.subTitle} - sub title
${rest.encoded} - html body of the article
${rest.description} - html summary of the article
${rest.textDescription} - text summary of the article
${rest.creator.content} - author name
${rest.thumbnail.url} - url of the thumbnail image
${rest.pubDate} - published date
Once the Distribution Method is entered, the status is On Hold. Now, you can click the "Distribute" button on top of the page to put this article into the job queue, the email will be sent soon.
The edition status is changed to "Sending Started" and method status is "Distributing".
Refresh the screen, the status is changed to Completed, that means the email was sent. If there's any error when sending the email, the status will be changed to Error.
Finished! You have distributed your article to a list of email recipients.
Learn about other functions and modules by visiting our blog
We check that our custom websites and content complies with http://www.w3.org/TR/WCAG and checked with http://achecker.ca/checker
Accessibility checks are built right into the WYSIWYG text editors and validation messages are given when known issues are detected in the site.
Our custom sites comply with WCAG 2.0 AAA. There is no need for alternative "accessible" versions of the custom sites as we do not use or recommend the use of unfriendly technologies such as flash or Java applets.
When a HTML component is changed validations for the validity and for accessibility will be performed.
Below is the table editor screen
Content can be pasted in paste, "paste as plain text" and "paste from word"
All articles are published via an enhanced RSS feed. The content of these articles is then reused in multiple locations using XLST throughout the site.
The site designer can create template pages and then extend these pages to reuse the template page content.
The user can choose which type of article they would like to create, the article form contains the required fields. Additional article types and fields may be added to match your requirements.
The simple user interface allows you to organise all types of content, including text such as manuals, photos and videos into pre-designed Articles.
Your content contributors can quickly edit existing content or upload new articles, and preview. New content can be set for publishing at a later date or publish immediately.
The Site designer (which designs the website where your published articles appear) is much more complex to enable the creation of sites without limitations.
Insert/Remove bullet List and Insert/Remove Numbered List buttons are available in the HTML text editor.
The Anchor button can insert and edit anchors.
Article titled with non URL friendly characters will be automatically translated to a friendly path when published.
Users may access all allowed data via the Web Forms or via Industry standard protocols such as:
All requests for data or modification to data goes via the DAL ( Data Access Layer) no matter which protocol is used. There is NO direct access to the underlying data store. The DAL checks the ACLs ( Access Control Limits ) for each data request and performs all validations on each data modification. When data is modified the DAL will broadcast a message to other servers in the cluster so that optimistic locking and caching can be done within the server cluster.
There is over 100 standard commands that can be called via the predefined web services.
The page meta data can be set in the configuration tab for each page. All elements in the "head" element will be copied to the generated page head section.
The image meta data can be set in the "Appearance" and "Advanced" tabs of the image editor.
The CMS Site builder has multiple page statuses to enable you to control the publishing of webpages while they are being developed or changed.
Page status is easy to use and gives website developers very effective control of the publishing process across the site. You can utilise different page status to manage the publishing of individual pages. For example by setting the status of a page which is under development, to 'Offline', this page will not be published (not visible on your public site) when you next publish your website.
There are four main page status; Offline, Published, Published Scheduled, Offline Scheduled. There are two modifiers; "locked" and "dirty".
Status Codes;
and Modifier Codes;
Articles
The publishing work flow of Articles can be customised to your requirements including permission to publish based on user group.
Standard publishing controls allow for immediate publishing or set by future date.
By setting a future date as the published time the article will not be published until that time.
When in CMS design mode, when the designer mouses over a component an EDIT button is shown for 5 seconds. A orange dotted line will outline the component that will be edited.
Editing a breadcrumb component:-
Editing a text component:-
Editing a HTML component:-
The system comes with a number of standard components but any valid script/HTML can be added as a component using the ActiveHTML component.
The system will detect the different form factors and apply different Cascading Style Sheets accordingly.
Each component in the site can be hidden or shown based on the browser's form factor.
When designing a page (which is different to a user authoring an article) an edit button for each component appears as the designer mouses over the component.
When the designer moves the mouse to the top right of the page the "page edit" icon appears
Articles can be published, publish scheduled or offline.
Pages can be online, offline or hidden
On each save of a component validation is performed. Menu links to pages are always synchronized.
External links (not under the control of the CMS) are scanned using http://validator.w3.org/
The simplest way to create a new site is to clone an existing site. A site can be created for a specific host name or for "intranet only".
The site designer allows for any valid HTML/CSS to be used.
Dynamic HTML components can be edited in a HTML editor.
Cascading Style Sheets can be edited in a CSS editor.
Rich text components can be edited in a text editor.
The standard JSON component will return the images for the banner.
The design mode of the CMS is the standard page/URL with an additional parameter DESIGN_MODE. The system checks if the user has CMS access and then will show the site in design mode.
yes, the site owner can/should be able to change anything.
And technically they can as it's all just JavaScript/HTML/CSS.
An example is SRL when they publish an article the banner image is placed on the carousel and linked to the article. The page reads this information from the RSS feed.
Every page can define a script and/or include a number of script modules.
Each script module can have many versions of the JavaScript.
Each script version can specify what is the maximum and/or minimum browser version compatible with this script. The page can specify the a maximum version number for inclusion or just the script module. The script manager will include the highest compatible script version.
Mobile platforms (mac and android) are compatible with system forms and online applications and integrated to automatically process the data into system work flows.
Here is a form on an iPhone, this example shows the ability to have forms which have a further action (apply and also create a free online trial of software).
Social media feeds are seen here on on iPhone in the footer.
Social media feeds for mobile platforms and PC's are edited or added through the CMS Design function using simple mouse over Edit
Here the social media feed is designed as a footer element on all pages
The designer can show or hide any component on a page based on the browser form type.
Once the site is marked as a "Progressive Web App" a new tab will be displayed "Manifest". This allows the developer to change the default values.
Below is the current lightouse report for the template app-contract-list
There is a lot of fuss nowadays about search engine optimisation (SEO). Apart from sounding cool and highly complex what is SEO? Well to tell you the truth it is quite simple in fact.
Lets start with the first part "search engine". Most obvious examples of these are Google Search, Yahoo, Microsoft Bing, Yandex and many others. Search engines are in fact web applications that contain information about your site and hence when a user searches for some keywords or phases the search engine can match those against information it has to provide the web user with a link to your site. This gradually brings us to the second part - "optimisation". Optimisation is adaptation of your site to the way a particular search engine works. This therefore increases the chances of correctly matching keywords to pages of your web site and places your website higher on the pages of search results. Luckily most of the Search Engines look for clues described by best practices of HTML.
So what are the best practices?
This list is far from being exhaustive but the points above represent the main things that must be done correctly before anything else is attempted. Anything beyond this in fact would be search engine specific implementations and hence are beyond the scope of this article.
Pages can have any number of aliases. When a page's path is renamed the system will automatically add an alias from the page's previous path to the current page.
This prevents 404 errors which are a well known cause of user frustration and lower SEO rankings.
When a user requests a URL first a matching page is searched then the page aliases are searched, if a matching page alias is found then that page is used. There are NO 301/302 errors returned there is just many paths to the same page.
See more at:-
The system comes with a number of standard components but any valid script/HTML can be added as a component using the ActiveHTML component.
When articles are published the built in social integration automatically posts the article to the requested social sites.
When posting to twitter the title and subtitle are automatically shorten to within the 140 character limit.
All published articles are automatically published via the RSS feed.
The CMS automatically generates an XML Sitemap which can be submitted to search engines for faster indexing of new content.
To set up Google Analytics tracking of your web site.
Every form in the system is created with the form painter and can be easily customized to suite the changing needs of the system.
stSoftware systems are built from the ground up on a unique multi-layered database structure which allows documents, articles, business rules and all other types of data to be selectively and securely shared across many systems and sites.
A layered database system is the aggregation of the layers below by selectively placing data and documents in different layers they can be securely shared across the different systems.
Detailed design of a layered database system Multi-Layered DB Application-document
Supported field types include :-
Simple search form
Sample Advanced search form
Events and actions can be defined on any class in the system including Articles and Pages.
The system requires every user to have a unique login and indeed can be configured to logout other sessions when the user logs in via another browser.