SmartCalc is a flexible and highly customizable solution for creating online calculators. It is important that you are familiar with basic Joomla concepts like components, modules and module positions, menu items, component's permissions and extensions installation procedure before you begin setting up your calculator with SmartCalc. A basic experience with Joomla categories (e.g, Articles categories) will help you to organize your calculator's data more efficiently (SmartCalc uses a similar approach for its categories managment). Depending on the deployment scenario chosen you may also need some basic knoledge of Joomla users management and users' privileges.
Sample data included with the package (may be installed on demand in Import / Export Data tab located inside the component's administration interface) will serve you as a guidance if you are new to SmartCalc.
Categories and Items, Forms and Fields articles are highly recommended to start with, as they will give you a general idea of SmartCalc data structures. A more detailed article on Basic Guidelines on Building a Calculator may be useful if you are creating a complex calculator.
- I would like to test the component before purchase. Are "light" or "trial" versions available?
- I have signed up for a trial SmartCalc Account. How do I enter to the site's administration area to start working with my calculator?
- I am in SmartCalc administration interface Preview pane, but it shows no data.
- I have created a function for one of my forms and calculator preview doesn't work. All scripts on the page have stopped working in the frontend (module) view.
SmartCalc's navigation is not limited to a traditional multi-level drop-down menu. It is suitable for categories configurations that can include more levels than a good-looking menu should have. This is why SmartCalc navigation is divided into two zones: "menu" zone and "selections" zone. These zones occupy distinct positions in the module's layout.
Technically, all navigation can be placed in one zone but usually you will start with the "menu" zone which always holds categories closest to the root, while building the categories structure (and keeping in mind that for the front-end user, it will be the navigation structure). You decide at what depth level (normally at level 2 or 3) or at what logical point in your data structure, its better switch to "selections" zone.Add a comment Read more: Categories and Items
Forms are the integral part of SmartCalc and therefore require special attention and somewhat more effort and care in their configuration. A form receives the user's input, and validates the data provided, then performs the calculation and displays the result. Optionally, a form is also responsible for calculation logging and results summary. That said it's extremely important to plan, design, configure and test the forms so that your calculator runs flawlessly and without errors.
Each form has an owner (normally it's the user that created the form). If you use SmartCalc as a service you do not need (and actually not authorised) to edit the form's owner. When using SmartCalc as a standalone component, you may just leave this field blank. Form owners are important only if you deploy Smartcalc as a "module factory" providing technical support to your clients. This topic is covered in more detail here.Add a comment Read more: Forms
Fields are construction material for SmartCalc forms. Although you can create a valid form with no fields on it (if the only data you need for calculation is the item's key value), in the vast majority of scenarios you will place one or more fields on your form.
There are 3 types of fields in SmartCalc: input fields, list fields and result-type fields (the latter is a special type of field used for calculation history grouping only and is discussed here).Add a comment Read more: Fields
Smart Calculator Component design allows its use as a "module factory".
"Module factory" mode gives you the following advantages:
- An easy and risk-free trial of SmartCalc features (no need to install components to your site)
- Can generate and download Joomla! 1.5, 2.5 and 3.0 calculator modules with your personalised data and configuration (these module install as standard Joomla! modules with the minimum configuration)
- An absolutely free service during the trial period (or forever for a reduced number of forms)
- The ability to Import and export your calculator data at any time
- Technical support for the data configuration issues
When you are building a calculator with a lot of categories and forms, the user experience should be taken into consideration in the first place. Technically you are absolutely free to design calculator's navigation and forms with as many levels / fields you like, but you should keep it as simple as possible without losing the functionality.
The user's interaction with the calculator always consists of the following two steps (this is true for non-trivial calculator designs):
- The user finds the desired item or category in navigation menu and optionally refines his selection in "selections" zone where additional controls are displayed depending on the menu item selected.
- After the form is displayed, the user introduces the data into the text fields and / or makes selections from selection groups.
Then the form's calculation function is called and result displayed. The calculation function receives the following arguments:
- Item's key value. If this value is empty, all item's parents are searched one by one (all the way up to the root) for a non-empty key value. Key value is optional.
- Hidden fields (optional). These are properties of forms and are defined during the form design stage.
- One or more form fields. Apart from standard text-edit fields there is a whole class of fields that allow the user to choose from a set of predefined values. Visually these fields can differ (drop-down lists, links lists and radio-buttons groups) but they all serve for the same purpose. The value selected within each selection set is the effective value of the whole field and it's the value that is passed as an argument to the form's function.
SmartCalc supports an import/export data feature. This means that you can export / save your calculator's data to a file, giving you the flexibility to import it back in to any SmartCalc account (even if located on another server than the one the data was originally exported from).
This feature gives you the freedom in managing your subscriptions. If you are happy with the latest version of the module you downloaded using your account's "module factory" you are not obliged to maintain your SmartCalc account. You can simply export your data and save it locally on your computer or on a "Cloud" storage solution of your choosing. Once you discover that some modifications are required to your calculator's configuration you can reopen your SmartCalc account (or create a new one - depends on the provider), import the previousely saved data and start using the service from the same state as you left it. If you maintain more than one SmartCalc account, you can also use this feature to transfer data from one account to another.Add a comment Read more: Import and Export Your Data
The SmartCalc component implements its own user management system. It is not a replacement for the Joomla users management system but an extension of Joomla's standard access control functionality to suit SmartCalc specifics. SmartCalc users are linked to Joomla users, i.e. a Joomla user can be a SmartCalc user (but may also not be) but a SmartCalc user is also a Joomla user too.
The need to create and manage SamrtCalc users will depend on the deployment scenario chosen.
SmartCalc component supports three deployment scenarios:
- Stand-alone component: calculator data is configured in the administration interface, calculator forms are then displayed in front-end as a component or module.
- As a module "factory" client, using SmartCalc "factory" service provided by an external site.
- As a module "factory" service provider.
Scenario 1 is a standard Joomla-way of deploying a component. Data and presentation are both stored and managed on the same server. If you decide to choose this option, there is nothing special in how SmartCalc controls user's permissions and view-levels. Each item and form has "Access" settings and items/categories can also have individual permissions for create, edit, edit own, etc., just as in core Joomla components. If this is the case, then you do not need to create and manage SmartCalc users at all (The Users tab will be accessible in the administration area of the component, but you will find the users list will remain empty).
For scenarios 2 or 3 continue reading.Add a comment Read more: Users
Smart Calculator can provide a "module factory" service for your clients. To use this feature, you have to configure at least one SmartCalc User per client account. All SmartCalc users must be members of the group(s) defined in the SmartCalc options, so it will be necessary to create these groups in Joomla Users Manager first before you start adding SmartCalc users.
There are two types of SmartCalc users: manager and user. The Manager is the owner of a "module factory" account and only one manager should be created per account. Optionally you (or when the account's manager is logged in) may create more users that will be members of this account's team. These users can have lower privileges and a reduced categories view scope, but they are always limited to only data owned by their manager.
All managers are automatically added to the "Manager group" in the component's settings. When you create a user (not a manager) you will have to select a user group for this user to be a member of from one of subgroups of the group "Users Parent Group". Both groups must have permission to login to the administration area of your site (you set this permission in the Global Configuration / permissions area) and permissions to manage SmartCalc (which can be set in the component's options / permissions area).
Normally, a SmartCalc manager should have full permissions on the component's data manipulation (i.e. create, edit, edit state, delete). You may configure one or more groups for SmartCalc users, and set lower permissions for them if required, so that you and your clients may choose a group for their users (team members) according to their team design.Add a comment Read more: SmartCalc Module Factory Server ("Server" version only)
Styles are very important for the look and feel of any web page. Like all Joomla extensions, SmartCalc has to fit in the template that is used for the page where it is displayed. Keeping in mind that there is a virtually unlimited number of templates for Joomla, this topic requires some special attention.
There are three points of control:
- Outer dimensions (concerns a SmartCalc module output, that will be the case in the vast majority of scenarios)
- Elements' layout inside SmartCalc box
- Fonts and colours of SmartCalc elements
The first point has a standard solution. 4 module layouts are included in the standard version of SmartCalc (available both for the full version and module "factory" use):
- "default" - for being displayed in the content area with approximately 500px of horizontal space
- "column" - that requires 220px width space and should fit to a normal side bar
- "narrow" - that requires 190px width space and should fit to a narrow side bar
- "auto" - that occupies 100% of available position width. It may look like the best solution, but there are certain complications, that will be discussed later.
It is the site's administrator responsability to choose the correct layout for SmartCalc module and to publish it in the right position.Add a comment Read more: About Styles
If your calculation needs to call a web service you have to make sure that form's calculation function complies with a certain design pattern.
To make use of asynchronous requests in calculation function you have to:
- Get result callback object from argumets. This object is the last one in arguments list. You can get it adding
var result_obj = arguments[arguments.length - 1];as the first line of your function.
Add a comment Read more: Using JSONP and API calls in SmartCalc functions