Licenses

Requirements

  • Apache 2.2 (or newer) (modules: rewrite (rewriting from .htaccess must be enabled), headers)
  • PHP 5.3.6 (or newer) (extensions: gd (version 2+), exif, mysql, sqlite, pdo, pdo_mysql, pdo_sqlite, json, curl, mbstring, iconv, xml, openssl, zlib, zip)
  • MySQL 5.5 (or newer, might work on older ex. 5.1)
  • ionCube Loader (newest version possible) ionCube install instructions can be found at ionCube site: http://www.ioncube.com/loaders.php
    The recommended way of installing ionCube loader is by downloading loader wizard loader-wizard.zip, extracting it to web-servers document root and opening it via browser and then just following install instructions from there.

Note: Make sure PHP xdebug extension is not installed.

Note: If you are using CentOS in builder server, you need to enable curl, sockets, ... (network access) for web server, here is one of the ways you can do it: setsebool -P httpd_can_network_connect on

Note: If you are using CentOS in builder server and ionCube loader is not working, there might be problems with SELinux permissions. To fix that execute command: ls -alZ /usr/lib64/php/modules/ to list all php modules (command part /usr/lib64/php/modules/ is a path where you installed ionCube loader, so you need to set it to where you installed it), and check if ionCube loader SELinux context matches other php modules, if not, set it to match using this command:
chcon system_u:object_r:lib_t:s0 /usr/lib64/php/modules/ioncube_loader_lin_5.3.so (command part system_u:object_r:lib_t:s0 is the context string, so you need to change it to match other php modules).

Installation To install builder:

After builder installation is complete you will need to install builder plugin for your cpanel. Instructions can be found in License management panel inside your license or this link.

HTTPS:

In order to run builder under HTTPS protocol you need to take the following steps:

  • Update builder domain in your license from "yourbuilder.com" to "https://yourbuilder.com"
  • Open file "config.json" located in your builder web root directory and update parameter "siteProApiUrl" to be also with "https://"
Notes:
  • Make sure published website URL is accessible (ex. with "wget http://websitedomain.com") from within builder server (not blocked by firewall, or software configuration).
  • If you hosting server FTP uses forced SSL connections only enable SSL publication option in builder. Review Configuration section below — option "useSecureFtp" for more details.
  • Enable Google Maps widget in builder. Review Configuration section below — option "googleMapsApiKey" for more details.

Installation video guide

Update

Note: Your builder version:
http://yourbuilder.com/version
The latest available version:
http://update.site.pro/assets/installer/builder/version
Automated Updates (Recommended) Automated update system checks if there is new updates and updates if needed:

To run automated update of builder navigate to builder directory:
cd /your/builder/path
and run the following command(s):
php index.php /api/update-builder

chown -R [user]:[group] ./* .htaccess
Note: [user] and [group] needs to be replaced with appropriate values (user and group that server will use to run builder).
Note: These commands must be executed from within builder server.

Automated update can also be setup as CRON to be executed automatically in specific periods of time (ex. every day). For CRON you can use this command:
cd /your/builder/path && php index.php /api/update-builder && chown -R [user]:[group] ./* .htaccess
Note: /your/builder/path must be replaced with actual path to builder installation.
Note: [user] and [group] needs to be replaced with appropriate values (user and group that server will use to run builder).

Note: make sure that PHP versions are the same in web-server (that runs builder) and in command-line (where you run update command) or builder installation will break.

Old method (deprecated):
Automated update can be initiated manually by executing this command:
wget -O - http://yourbuilder.com/api/update-builder

Automated update can also be setup as CRON to be executed automatically in specific periods of time (ex. every day). For CRON you can use this command:
wget -q -o /dev/null -O /dev/null http://yourbuilder.com/api/update-builder
or this url:
http://yourbuilder.com/api/update-builder
depending on what you need for CRON configuration on your system.

Note: This URL will not work when running from browser.

Note: If during builder update you get error 404 Not Found then open file "/etc/hosts" on your builder server and add the following line:
109.235.65.18  site.pro
After builder update is complete you can delete this line and builder update should still working further.

Manual Updates (Legacy) To update already installed builder version to newer:
  • Backup (copy to a safe place) file config.json located in your builder root folder.
  • Download site builder archive and extract it to builder installation folder overwriting all files. NOTE! Don't delete files before extraction:
  • If your current builder installation is older than 2014-10-17, then import file installer/update_2014-10-17.sql to builder database.
  • If your current builder installation is older than 2015-02-18, then import file installer/update_2015-02-18.sql to builder database.
  • If your current builder installation is older than 2015-09-14, then import file installer/update_2015-09-14.sql to builder database.
  • If your current builder installation is older than 2015-09-21, then import file installer/update_2015-09-21.sql to builder database.
  • If your current builder installation is older than 2016-02-26, then import file installer/update_2016-02-26.sql to builder database.
  • If your current builder installation is older than 2016-04-30, then import file installer/update_2016-04-30.sql to builder database.
  • If your current builder installation is older than 2016-08-11, then import file installer/update_2016-08-11.sql to builder database.
  • If your current builder installation is older than 2016-12-23, then import file installer/update_2016-12-23.sql to builder database.
  • If your current builder installation is older than 2017-02-10, then import file installer/update_2017-02-10.sql to builder database.
  • Delete folder installer, when you are updating you don't need it.
  • Restore file config.json (the one you backed up/copied to a safe place in a earlier step) by overwriting the one that already exists.
  • Done.
  • Note: if builder stops working after "Manual Update", use "Automated Update".

Configuration

You can set extra options for your builder by modifying file config.json located in your builder root folder:
  • String — Plans separated by comma for which builder will not work default: -
  • String — Opposite to "disabledHostingPlans". If specified "disabledHostingPlans" will be ignored default: -
  • String — Message to show when hosting plan matches the one from specified in "disabledHostingPlans" option or when hosting plan is not included in plans specified in "enabledHostingPlans" option (used together with "disabledHostingPlans" or "enabledHostingPlans" accordingly). The value is multilingual.* default: default sentence(1)
  • String — Yandex Metrika ID for builder default: -
  • Boolean — Use Yandex Metrika ID only in public demo builder default: false
  • Object — Object adding extra buttons to builder toolbar - default: example below(2)
  • Boolean — Defines whether to use FTP with SSL encryption during publishing. default: false
  • String — Builder UI theme ID to use (currently only "modern" is available). Will be ignored if "themeUrl" is set. default: -
  • String — URL to css file to change builder UI style. default: -
  • String — Google.com Maps API key. Required to enable Google Maps plugin (get it from here). default: -
  • String — Google.com Fonts API key. Required to enable Google Fonts feature (get it from here). Note: Google Fonts also works with parameter "googleMapsApiKey" if set. default: -
  • Boolean — If true template usage statistics will be logged to database (enable only if you are using automated builder updates). default: false
  • Boolean — If true will show forced HTTPS port option in builder settings dialog. default: false
  • Boolean — If true will disable URL rewriting for published websites. default: false
  • Boolean — If true then forced HTTPS option will be enabled in new websites by default. default: false
  • Boolean — If true then forced redirection option will be enabled in new websites by default. default: false
  • Boolean — Forced redirection option chosen by default (1 - redirect from www to non-www, 2 - redirect from non-www to www). default: 1
  • (1) — "The software is not available for your hosting plan."
  • (2) — example shows how to add two extra buttons in builder toolbar:
    "ui" : {
        "toolbars" : {
            "control-toolbar-cont" : {
                "items" : [
                    {
                        "name" : "Prices",
                        "img" : "/path/or/url/to/prices.png",
                        "url" : "http://yoursite.com/prices",
                        "order" : 21
                    },
                    {
                        "name" : "Domains",
                        "img" : "/path/or/url/to/domains.png",
                        "url" : "http://yoursite.com/sign-up",
                        "order" : 22
                    }
                ]
            }
        }
    }
    All default builder buttons have orders multiple to 20, that is 20, 40, 60 etc.
    Parameters "name" and "url" are multilingual (please see explanation below).
  • * — Multilingual value can be either a string like:
    "disabledHostingPlansMessage": "My message"
    or an object containing values for multiple languages like:
    "disabledHostingPlansMessage": {
    	"en": "My message",
    	"it": "Il mio messaggio"
    }

Custom Plugins available since version 3.7.81 (enterprise)

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.
 

Help Scenarios available since version 3.7.157 (enterprise)

All 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 what 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.

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;

http://yourbuilder.com/brand/[License ID]?logout=1&tpl=[Template ID]#scenario=./1
Example: http://yourbuilder.com/brand/[License ID]?logout=1&tpl=Hotels/Cherry hotel#scenario=./1

To view scenario from scenarios folder where:
    [Template ID] is template folder path relative to templates folder;
    [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://yourbuilder.com/brand/[License ID]?logout=1&tpl=[Template ID]#scenario=[Scenario ID]
Example: http://yourbuilder.com/brand/[License ID]?logout=1&tpl=Hotels/Cherry hotel#scenario=Picture

Overriding existing scenarios

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;
  • 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;
  • String[] - List of objective descriptors, When all objectives completed scenario will advance to next step;
  • 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

API

List Templates/Categories

Get list of template categories as JSON.

http://yourbuilder.com/api/category-list
GET
application/json
JSON response Object Properties:
  • String - template category ID;
  • String - template category name;
  • Number - number of templates contained in this category;

Get list of templates as JSON.

http://yourbuilder.com/api/template-list
GET
application/json
JSON response Object Properties:
  • String - template ID;
  • String - template ID (relative to category);
  • String - templates category ID;
  • String - template name;
  • String - template image URL;
Publish Site available since version 3.7.167 (enterprise)

This API is for publishing website. Publishing website consists of 2 or more API calls:
    1) use "Custom Plugin API" (instructions are in your license) with additional parameter more = true to get loginHash and builderApiUrl;
    2) with this API use received loginHash and builderApiUrl + 'publish' (as API URL) to initiate publishing process (when API call returns it only means that publishing started);
    3) optionally call (same as in step 2) API call with additional parameter progress = true to get publishing progress (when you receive response with complete = true, then publishing process has completed);

http://yourbuilder.com/api/publish
HTTP Basic
<Builder API Username from license>
<Builder API Password from license>
POST
application/json
application/json
JSON request Object Properties:
  • String - login hash you received from custom plugin API call;
  • Boolean - if false then new publish process will be started, if true then progress of current publish process will be returned;
  • String - (optional) template id, if passed then current template (is exists) will be removed and replaced with this new template (all data will be lost);
JSON response Object Properties:
  • String - (optional) text describing current publish process progress;
  • Number - (optional) numeric value from 0 to 100 to show progress completeness (note publishing consists of multiple actions so this value will go multiple times to 100, so do not rely on it);
  • Boolean - (optional) if true then publishing process is complete;
  • String - (optional) error message, if this parameter is not empty that means publishing process stopped (unless this is authentication error);
Delete Site available since version 3.7.64 (enterprise)

This API is for permanantly deleting web-site form enterprise builder. This will only delete it from builder it self.

http://yourbuilder.com/api/delete-site
HTTP Basic
<Builder API Username from license>
<Builder API Password from license>
POST
application/json
application/json

  • String - web-site domain name (required)
  • Boolean - result of response (only on success)
  • Object - error description object (only on error)
POST /api/delete-site HTTP/1.1
Host: yourbuilder.com
Authorization: Basic PEJ1aWxkZXIgQVBJIFVzZXJuYW1lIGZyb20gbGljZW5zZT46PEJ1aWxkZXIgQVBJIFBhc3N3b3JkIGZyb20gbGljZW5zZT4=
Content-Type: application/json

{"domain": "test.com"}
HTTP/1.1 200 OK
Content-Type: application/json

{"ok": true}
HTTP/1.1 200 OK
Content-Type: application/json

{"error": {"message": "some kind of error message"}}