Alcune parti di questa pagina non sono state tradotte, ci spiace per l'inconveniente

Add-ons documentation

Table of contents

Public demo URL


Public Demo builder can be opened with one of these URLs:

Per resettare l' utente:
http://your-builder-domain.com/brand/[Brand ID]/?logout=1

Per scegliere la categoria:
http://your-builder-domain.com/brand/[Brand ID]/?tpl=Entertainment
(Use "?tpl=all" parameter for "Tutti i template" category)

Per scegliere il modello:
http://your-builder-domain.com/brand/[Brand ID]/?tpl=Entertainment/Manhattan
http://your-builder-domain.com/brand/[Brand ID]/?tpl=Entertainment/Night+Club
(Utilizzare i nomi delle categorie e dei modelli solo in inglese)

To preview template:
http://your-builder-domain.com/brand/[Brand ID]/quick_preview/?tpl=Entertainment/Manhattan
http://your-builder-domain.com/brand/[Brand ID]/quick_preview/?tpl=Entertainment/Night+Club

Combinare più parametri contemporaneamente:
http://your-builder-domain.com/brand/[Brand ID]/?tpl=Entertainment/Manhattan&logout=1
http://your-builder-domain.com/brand/[Brand ID]/?tpl=Entertainment/Night+Club&logout=1

Open public demo builder with appropriate hosting plan:
http://your-builder-domain.com/brand/[Brand ID]/?hosting_plan=abc123
(Use hosting plans from Modifica Piani dialog "Associa a questi piani hosting" field)

Website import

By default website import is available in builder by hovering New/Reset button and choosing Import option.
Import can also be implemented on your hosting website as a simple form. The form submits import request to your public demo URL in order to show your client how importer works. Here is an example:

<form action="http://test.site.pro/" method="get">
    <input type="text" name="import" />
    <button type="submit">Import</button>
</form>

If you want to import exact website you can do it with a simple link:

<a href="http://test.site.pro/?import=www.apple.com">Import</a>

Help scenarios available since version 3.7.157

All enterprise builder scenarios are located in ./scenarios folder. Every scenario is its own folder, where folder name is scenario ID (see "Overriding existing help scenarios").

Complete interactive guide:

Example of implementation on your website:

<iframe src="http://your-builder-domain.com/guide/[Brand ID]/" frameborder="0"></iframe>

Scenarios can be executed using one of these URLs:

To view how template was built:
    [Template ID] is template folder path relative to templates folder (english only);

http://your-builder-domain.com/brand/[Brand ID]/?tpl=[Template ID]&logout=1#scenario=./1
Example: http://your-builder-domain.com/brand/[Brand ID]/?tpl=Hotels/Cherry hotel&logout=1#scenario=./1

To view scenario from scenarios folder where:
    [Template ID] is template folder path relative to templates folder (english only);
    [Scenario ID] is scenario name (BookmarksShare, Button, FacebookFans, FacebookLike, Form, Gallery, GoogleMaps, Youtube, Languages, Line, Menu, odnoklassniki, Picture, Shape, TextArea, Twitter, vkontakte_community, vkontakte_like);
    To view "Basic Tutorial" scenario use [Scenario ID] "introduction".

http://your-builder-domain.com/brand/[Brand ID]/?tpl=[Template ID]&logout=1#scenario=[Scenario ID]
Example: http://your-builder-domain.com/brand/[Brand ID]/?tpl=Hotels/Cherry hotel&logout=1#scenario=Picture

Overriding existing help scenarios available since version 3.7.157 (on-premises only)

All on-premises builder scenarios are located in ./scenarios folder. Every scenario is its own folder, where folder name is scenario ID. Scenario folder can contain subfolder gallery that should contain all images and audio files used by that scenario. Scenario folder must contain .json file with description of that scenario. JSON file name should be [scenario ID].json. See ""

If you want to override/change existing builder scenario, then instead of editing that scenario create a copy with same name + -ext and edit that. For example if you want to override scenario TextArea then create scenario with name TextArea-ext and it will be used in stead of original.

JSON file structure
  • String - Friendly name of the scenario;
  • String - (optional) Builder site template identifier to load when this scenario starts;
  • String - (optional) Relative URL to background music file that will be looped while scenario is playing;
  • Number - (optional) Height of space in pixels to free up in websites body for this scenario;
  • Array of Object - List of scenario steps that will be performed in order one after another;
  • String - Title of the step that will be shown in tooltip;
  • String - (optional) Text/description of the step that will be shown in tooltip;
  • String - (optional) Placement of tooltip ("left", "right", "top", "bottom"), if not specified placement is chosen automatically;
  • String - (optional) Identifier to map element from subject or objective;
  • String - (optional) Relative URL to audio file that will be played when step starts;
  • String - Subject descriptor that tooltip of this step will be attached to;
  • Array of String - List of objective descriptors, When all objectives completed scenario will advance to next step;
  • Array of String - (optional) List of requirement descriptors. All requirements need to be satisfied for tooltip of this step to be shown;
  • Object - (optional, content depends on objective) Default content descriptor object that will be used when scenario is in autoplay mode;
  • Object - (optional) Bounds descriptor that will enforce bounds of elements from objectives;
  • String - (optional) Event descriptor that needs to be satisfied before bounds are enforced;
  • NumberString - (optional) Position from left (when string, then one of 'left', 'center' or 'right');
  • NumberString - (optional) Position from top (when string, then one of 'top', 'middle' or 'bottom');
  • Number - (optional) Width of element;
  • Number - (optional) Height of element;
  • Number - (optional) Reference width to use when 'left' is a string;
  • Number - (optional) Reference height to use when 'top' is a string;
Available subjects (targets of interaction and tooltip)
... # click to expand
Available objectives (events that need to be triggered to complete objectives)
... # click to expand

Adding custom builder plugins available since version 3.7.81 (on-premises only)

You can add your custom created plugins to your on-premises builder installation by placing them to folder <builder_installation_root>/plugins. You can enable your custom plugins by adding file <builder_installation_root>/plugins/plugins-ext.json. File format is the same as <builder_installation_root>/plugins/plugins.json. Those two files will be merged by adding custom plugins listed in plugins-ext.json file to your builder toolbar after plugins listed in plugins.json file.

Since builder version "3.7.262" it is possible to place plugins to custom groups. When defining plugin group, set new unique ID, name and icon.
For icons you can use bootstrap (ex. "glyphicon glyphicon-cloud") or font awesome (ex. "fa fa-cloud") icons.
Ex.:

{"id": "my-custom-group-id", "icon": "fa fa-bath", "name": "Bucket", "items": [
	"somePlugin1","somePlugin2","somePluginN"
]}

In case if you want your custom plugin to appear in premium builders you have to register it in our custom plugin repository.

You can find information on plugin development here.

User registration from Public Demo builder

Note: To use this functionality a programming knowledge is required for API endpoint implementation.

This documentation describes the implementation of user registration from public demo builder version. The public demo URL is a URL which let's you to enter builder as a guest without login or registration. It creates temporary domain for the guest client and there he can try the builder and build a temporary website. Initially public demo URL is intended for quick builder testing in order to get familiar with its functionality. However often guest clients spend a lot of time inside and during that time they manage to build complete website which they do not want to loose and have it in production. This is where the registration from public demo builder comes to the rescue.
The complete flow of this whole process is intended to be the following:

  1. you find the Public Demo URL in your brand on licenses page;
  2. you copy that URL and put it somewhere on your hosting website visible place (e.g. it can be a button with a title "Demo" and a link with public demo URL);
  3. guest client comes on your page, clicks that button and goes to builder;
  4. guest client builds website and presses button "Publish";
  5. guest client is presented with a registration form which he fills in and submits;
  6. you catch guest client's data on your end and handle registration for him (more about it below);
  7. after the registration the client's website is published to a new place and becomes live.

In order to activate this functionality take the following steps:

  1. go to licenses page;
  2. open your brand and switch to "Customize builder" tab;
  3. click button next to "Public Demo URL" field to open Demo builder configuration;
  4. activate option "Use Registration form".
Description of options:
  • Use Registration form (required) — activates registration from public demo builder.
  • Use Login form (optional) — if checked then the login form will also be provided to the guest client where he can login with credentials he used during registration. After logging in his website will be loaded in builder created earlier.
  • Use Remote Registration form (optional) — if checked then the user registration will be done not remotely calling your API endpoint (described by "Login/register API URL" field) but by redirecting the guest client in browser by this URL. In this case you need to implement visual registration form for your clients on that page and all registration process will be done on your end.
  • Hide Publish sub-menu (optional) — if checked then "Publish" sub-menu will not be shown in public demo builder. It includes buttons "Save draft" and "Backup/Restore".
Description of fields:
  • Login/register API URL (required) — there you need to put your API URL which you implement by documentation below. It can be any URL accessible globally, e.g. https://myhostingsite.com/api/register-from-builder/.
  • Banner Image URL (optional) — if set then the floating image will be displayed fixed to the bottom of the screen in public demo builder.
  • Message to be shown (optional) — if set this message will appear after successful user registration in public demo builder (if not set then default text will be used).

The same API endpoint URL will be used for registration, login and password remind requests, but you only need to implement functionality for parts you selected check-boxes for (above).

Note: All data to API endpoint will be posted using HTTP POST method with content type of application/json; charset=UTF-8 (basically you will receive JSON object). All responses from these API endpoints must return JSON object with content type of "application/json; charset=UTF-8".
You can read POST data of JSON format in your API endpoint like this:

<?php
$data = json_decode(file_get_contents('php://input'));

Registration API endpoint

This endpoint will need to handle new user registration in your hosting system.

These options must be checked:
Use Registration form

Request parameters:
  • Boolean – if this is set and equal TRUE then this is new user registration request
  • String – name (friendly name or full name or just general name) of the user to use for registration (this can be ignored if not required)
  • String – user email to use for new user creation
  • String – password to set for new user
  • String – repeated password to make sure user entered it correctly
  • String – IP address of user (this can be ignored if not required)
  • String – locale code (ex. en_US)
Response parameters (success):
  • Boolean – this needs to be equal to true to indicate success
  • String – domain name that was created for this user to identify their site
  • String – FTP username to be used for publishing website to hosting server
  • String – FTP password to be used for publishing website to hosting server
  • String – directory path in FTP server to upload published website
  • String – IPv4 address of FTP server used for publishing website to hosting server
  • String – hosting plan assigned to user
Response parameters (error):
  • String – error message explaining why this failed, that will be shown to user

Login API endpoint

This endpoint will need to handle existing user logins to your hosting system (if you are implementing this you will also need to implement remind/reset password endpoint).

These options must be checked:
Use Registration form Use Login form

Request parameters:
  • Boolean – if this is set and equal to TRUE then this is user login request
  • String – user email to use for logging in
  • String – user password to use for logging in
Response parameters (success):
  • Boolean – this needs to be equal to true to indicate success
  • String – domain name that was created for this user to identify their site
  • String – FTP username to be used for publishing website to hosting server
  • String – FTP password to be used for publishing website to hosting server
  • String – directory path in FTP server to upload published website
  • String – IPv4 address of FTP server used for publishing website to hosting server
  • String – hosting plan assigned to user
Response parameters (error):
  • String – error message explaining why this failed, that will be shown to user

Remind/reset password API endpoint

This endpoint will need to handle reminding/resetting password of existing user (basically same thing remind/reset password does in you hosting system) in your hosting system.

These options must be checked:
Use Registration form Use Login form

Request parameters:
  • Boolean – if this is set and equal to TRUE then this is remind password request
  • String – user email of which password needs to be reminded/reset
Response parameters (success):
  • Boolean – this needs to be equal to true to indicate success
Response parameters (error):
  • String – error message explaining why this failed, that will be shown to user

Remote Registration endpoint

These options must be checked:
Use Registration form Use Remote Registration form

If you enable remote registration then instead of API call user will be redirected to provided API URL.

User will be redirected using HTTP POST request with content type of application/x-www-form-urlencoded; charset=UTF-8 (general POST data) and it will contain these parameters:

  • String – locale code of the language user is currently viewing builder in
  • String – current builder demo session ID (this session will be valid up to 24h)

When user completes registration process on your page then he/she needs to be redirected back to builder to complete copying and publishing of his site created in demo version to his/her newly registered website.

Redirection back to builder needs to be performed using Create session API. The only difference from that API is that you will need to set additional parameter "createFrom" to a value that you got POST'ed to your registration URL.

Scripts available since version 3.7.288 (on-premises only)

Scripts can be used in order to insert extra piece of code to clients' websites or into builder itself.
All scripts must be located in your builder installation folder /assets/scripts (create folder if it does not exist).
Make sure that scripts folder is readable by Web server.

Here is the list of available scripts:

  • builder_head_end.html — inserts content before closing </head> tag in builder.
    Available variables: isDemo, hostingPlan.
  • site_head_end.html — inserts content before closing </head> tag in all clients' websites.
    Available variables: isDemo, isPreview, hostingPlan.
  • site_body_end.html — inserts content before closing </body> tag in all clients' websites.
    Available variables: isDemo, isPreview, hostingPlan.

In order to add script create file with script name in builder scripts folder and add your HTML content.
Important: Be careful with a script for sites. If you accidentally make a mistake in the script then with time it will be injected to many sites and sites may not work properly afterwards. Moreover it can take quite a lot of time for all sites to be re-published with a correct script after it is fixed.

Script variables

You can use variables in scripts. Available variables are specified for each script separately.
Here is the list of available variables:

  • Boolean — True if public demo builder is opened.
  • Boolean — True if client opens previewed website in builder rather than live published website.
  • String — Client's hosting plan in control panel (available since version 3.7.330).

The Boolean variable can be used with IF statement in script with the following syntax: {{#var}}..{{/var}}, for example:

{{#isDemo}}
    <!-- My code for public demo builder only -->
{{/isDemo}}
{{^isDemo}}
    <!-- My code for non-public demo builder only -->
{{/isDemo}}

The String variable can be used with IF statement in script with the following syntax: {{if var = "value"}}..{{/if}}, for example:

{{if hostingPlan = "free-plan"}}
    <p>Click <a>this link</a> to upgrade.</p>
{{/if}}