Snap! Websites
An Open Source CMS System in C++
This feature is not yet implemented. The development has not even started.
See a complete list of features sorted by Snap! Websites Development Status
The idea of a help feature is to add pages of data that are used to help the end users in running, maintaining, updating, etc. their website.
The help is online meaning that users can see the help pages while browsing their website.
The help comes from HTML pages defined by the plug-ins and core system.
The main idea is to have help buttons everywhere it is deemed necessary. The users can then click those buttons and see the corresponding help in a pop-up window or a side frame (the pop-up is likely going to hide the very thing being documented in the help and thus not be as user ...
The basic concept for the internal features of the Snap! Websites is to only offer templates (no text). There are obviously limits to that scheme. Text is used everywhere and thus we need to include the text somewhere. However, we want to clearly separate layouts and other text agnostic data from content itself. The layouts (templates) are not translated, content is.
For sure, C++ has a real problems when it comes to writing a message. In most cases, people want to use the std::cout << "Something" << std::endl; syntax because it's C++. ...
One very strong feature in advanced CMSes is to offer administrators to create functions (a set of actions to take) that get executed whenever a signal is received.
The feature requires three parts:
Whenever an event occurs, we send a signal using the emit keyword (in our C++ code.) This calls an internal function that propagates the signal at the user interface level (the administrators.) It is called after all the internal features were called so only the final result is received by the user interface (this being said, if we call set_title() multiple times we'd signal that ...
Since multiple people may all be working simultaneously on the same system, we need a preemptive mechanism so two users trying to edit the same data cannot both enter the editor simultaneously.
The editing should be limited in time so if the first user leaves his editor open for more than 1h, bang, he loses control (we may want to have a reset of the timer as the person types in the editor! Just a bit of AJAX...)
So, first user comes in and clicks Edit.
Second user comes in and clicks Edit, the system finds out that the page is locked, he gets a message saying "John Smith is already ...
We already have a way to display a post that can be commented (Forum Post with replies.)
We have lists of categories (Forum Topics) since we have lists of pages.
We have lists of pages assigned a given category (Forum Posts in a given Topic.)
Lists can use link meta tags to connect multi-page forum posts into one and the categories all together (link prev, next, up, top, etc.) Therefore this can also be made SEO friendly.
Therefore this feature will be available without further development other than a forum look and feel. The only reason to make use of a plug-in for this feature ...
Along with the Password Protect feature, it is possible to block users from different areas without them entering a second password. We want to make sure that entering a 2nd password does not break the functioning of the first password. Also, we have to stick to the 1 cookie per person scheme.
We may create a plugin for a contact form using the widget system to add a contact form on user pages and for the website as a whole. The form should be a couple of pages the administrator can edit: one page for the site wide contact form and the other for the users' contact form.
See: Widget feature
A plugin can help in setting up a blog or journal.
The fact is that all the necessary features to create a blog are available "by default" so there is nothing to do other than setups. It will be interesting to see whether this is a plugin or some XML settings that the user can install in order to get the feature going.
Since we want to have a Comment feature which is very similar to how Facebook functions, it can be used as a chat. The main difference in a chat is that messages scroll up as new messages appear. This can be achieved with the comments by placing them inside a frame with a scrollbar.
Therefore, once our comments are made to update in someone else's browser (i.e. user A writes a comment, then a few seconds later user B sees it!), we in effect have a chat. The only thing would be to offer a way to reduce the resync delay to make it more appreciable as such.
See: Comment feature
See: ...
The layout concept of Snap! Websites is what forms a page. You select one layout and then assign content to display in the different boxes defined in that layout.
The content being added to the layout may be dynamic content and it may be conditional. For example, it could be the list of the last 5 posts on your website when an anonymous user comes to visit your site. However, the same box could instead show the most important 5 points you need to put your attention on (i.e. posts that need to be moderated, to do items that become due, new emails to check out, etc.)
In that case we have PDFs ...
Snap! Websites
An Open Source CMS System in C++