listener

The listener plugin is used to listen for a Client / Server signal.

At times the client sends data to the server and it wants to know once the server is ready for the next step (i.e. maybe we sent an image and the server is responsible for resizing, rotating, bordering the image.)

This plugin will call your callback whenever the server is done and your data is ready to be retrieved.

list

The list plugin is the lower level plugin that knows how to build lists from the website pages.

The plugin makes use of expression to check whether a page is a candidate for being part of that list. For example, a list made of the children pages of a certain page will use a simple expression such as:

parent(page_path) == "<this page path>"

When the expression is true, the page is added to the list.

The pages can then be sorted using a simple sort mechanism (at this time, it does not work with international languages because that will require a different database context ...

epayment_creditcard

The Credit Card e-Payment extension allows for actual credit card implementations to work with the e-Payment system. At this time, this plugin handles the user entering data information such as his name, address, and credit card numbers.

The plugin also allows for saving the user address information in the user account if the user allows it.

date_widgets

The Date Widgets plugin offers various widgets that are used to enter a Date in a form.

At this time we support a Line Edit which opens a dropdown that looks like a calendar.

We also offer a date one can define using dropdowns instead of a line edit. This way you can easily control what the end user can enter in terms of years. This feature will be entended to allow users to type in whatever numbers they want (i.e. we need the dropdown that allows typing data in directly.)

links

The links plugin is actually an extension of the content plugin.

At some point we will change the database handling, most of which will be moved to the library instead of plugins. At that point we will also look into merging the links and content plugins into one single plugin.

The links plugin handles connections between pages through two way links. Links are small structures composed of the name of the reference, whether the link is a single link or a multiple link (one to one, many to one, one to many, or many to many).

Links are specific to branches. So if create a new branch for a ...

layout

The layout plugin takes the data from a page and transform it to HTML for display in browsers.

The layout is in charge of generting the body from the page content, then generating the theme from the body and other parts of the page/website (i.e. the name of the author is specific to a page, although the author is not, similarly, the name of a website is defined site wide.)

The layout is also in charge of generating the <head> tag of the HTML page. This tag includes many entries such as the <title>, <meta> and <link> tags, and also we include JavaScript and CSS links ...

javascript

The JavaScript plugin is used to run server side JavaScript snippets.

At this time it is only used to determine what layout / theme to use. The layout name is defined in a script written in JavaScript.

We are likely to fade this plugin out because we now have our own snap_expr class which is easier to use and faster and integrated with our signal system. Also it looks like we would not need the full power of JavaScript when we can just use a C++-like expression as offered by snap_expr.

 

info

The info plugin helps with various basic settings for the website.

Some plugins are too low level (below the editor) and thus they cannot have their own settings defined within themselves. In this case, they either have their own user interface implementation (like the users_ui) or their settings are handled by the info plugin.

So the info plugin includes the basic installation and removal of plugins on your website. It also handles the unsubscribing of mailing lists (sendmail is really low level too.)

The main information settings include things like the name of the website and how to ...

images

The images plugin is used to tweak images, generate images from documents such as a PDF file, and whenever possible to optimize an image (i.e. you upload a 2000x1500 image that you show at a size of 500x325, Snap! can create an image of that smaller size automatically which will accelerate the download dramatically.)

The plugin offers an editor that allows one to write image scripts. These scripts can be used to tweak images in a completely automated way. For example, you create a blog and want to be able to add one image at the top right of each page. That image should have a nice edge, a ...

header

The header plugin gives you a way to edit the tags that appear in the HTML header of your pages. These are generally not accessible while you edit the visible part of your page.

There are already many entries automatically generated by the Snap! Websites system that go in the header. However, certain things cannot be automatically generated, or can be better if entered by you.

For example, your headers can include a description meta tag. This description can be generated using the teaser code (in effect, using the first X words of your page.) However, in most cases, the description should be ...

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly