SDK

From Webuzo Wiki
Revision as of 10:50, 14 August 2015 by Alons (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Webuzo SDK Class

The Webuzo SDK allows to perform all of the functions performed by the Webuzo Enduser Panel. The API is simplifies task such as managing domains, FTP users, Email accounts, DNS records, MX records, databases and a wide range of other functions

You can find the files in /usr/local/webuzo/sdk/ namely sdk.php and webuzo_sdk.php
OR
You can download it from here and add it to the above mentioned path:
File:Webuzo Development Kit.zip


Initializing and Authentication

include_once('webuzo_sdk.php');

$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

This will load the Class in $new with the paramaters: Parameters :

  • $webuzo_user is the Webuzo username you use to login to the Webuzo Enduser Panel.
  • $webuzo_password is the Webuzo password you use to login to the Webuzo Enduser Panel.
  • $host - Your Webuzo installed host server.

These parameters are required for authentication, as without authentication you will not be able to access Webuzo.
Webuzo allows User Authentication via the URL itself and many other panels also.

https://user:password@domain.com:2003

If your Webuzo has some different method, you must first implement that code and then proceed.

List of Functions

Here is the list of functions available for the developers:

Function Description Parameters
function webuzo_configure($ip, $user, $email, $pass, $host, $ns1 = "", $ns2 = "", $license = "" ) Initial configuration of Webuzo string $ip Server IP on which Webuzo is installed and ready to be configured
string $user Username for Webuzo
string $email Email Address for the User
string $pass Password for the Webuzo User
$host Primary IP or Domain Name
string $ns1 [Optional] Nameserver 1
string $ns2 [Optional] Nameserver 2
string $license [Optional] Assigns a Free Licence if empty.
function install_app($appid) A function that will INSTALL system apps. int $appid The ID of the application to be installed.
Find the list of system applications using the list_apps() function.
function list_services() List the services installed on the server return $array of services installed
function remove_app($appid) A function that will remove system apps. int $appid The installation ID of the application. You can get the list of installed apps using the list_installed_apps() function.
function list_apps() List of system applications provided by Webuzo. Returns the list of system applications which can be installed. Ref : http://api.webuzo.com/apps.php
function list_installed_apps() List of installed system applications using Webuzo. Returns the list of installed system applications.
function list_domains() List of domains added to the Webuzo Server. Returns list of domains.
function add_domain($domain, $domainpath = ) Add Domain string $domain The domain to add
(Optional) string $domainpath The path for an ADD-ON domain
return - string $resp Response of Action. Default: Serialize
function delete_domain($domain) Delete Domain string $domain The domain to delete
function change_password($pass) Change Endusers's Password string $pass The NEW password for the USER
function change_fileman_pwd($pass) Change File Manager Password string $pass The NEW password for the File manager
function change_tomcat_pwd($pass) Change Apache Tomcat Manager's Password string $pass The NEW password for the Apache Tomcat
function list_ftpuser() List FTP users ---
function add_ftpuser($user, $pass, $directory, $quota_limit = ' ') Add FTP user string $user The FTP username
string $pass The password for the FTP user
string $directory The Directory path for the FTP users relative to /HOME/USER
string $quota_limit (Optional) Define a quota for the user
function edit_ftpuser($user, $quota_limit = ' ') Edit FTP user string $user FTP user to EDIT data
string $quota_limit (Optional) Specify quota limit to the user
function change_ftpuser_pass($user, $pass) Change FTP User's Password string $user FTP user to change Password
string $pass New password for the FTP user
function delete_ftpuser($user) Delete FTP user string $user FTP user to delete
function list_database() List Database with its size and users ---
function add_database($db_name) Add Database string $db_name Database name to create
function delete_database($db_name) Delete Database string $db_name Database name to delete
function list_db_user() List Database Users ---
function add_db_user($db_user, $pass) Add Database User string $db_user Database username to ADD
string $pass Password for the database user
function delete_db_user($db_user) Delete Database user string $db_user Database user to delete
function set_privileges($database, $db_user, $host, $prilist) Set Privileges for a User to a specific database string $database Database name to ADD privileges
string $db_user Database users name to ADD privileges
string $host Database host
string $prilist Set of privileges to be given to the User
function manage_service($service_name, $action = 'restart') Manage Services string $service_name Specify the service to restart
E.g exim, dovecot, tomcat, httpd, named, pure-ftpd, mysqld
(Optional) string $action start/stop/restart service
function manage_suphp($action) Enable/Disable suPHP string $action Specify on/off to START/STOP suPHP respectively
function list_dns_record($domain) List DNS Record string $domain Specify domain to list DNS records
function add_dns_record($domain, $name, $ttl, $type, $address) Add DNS Record string $domain Specify domain to ADD DNS record
string $name Specify record name
string $ttl Specify TTL
string $type Specify TYPE of record
string $address Specify destination address
function edit_dns_record($id, $domain, $name, $ttl, $type, $address) Edit DNS Record string $id Specify ID of record to EDIT
string $domain Specify domain to Edit record
string $name Specify record name
string $ttl Specify TTL
string $type Specify TYPE of record
string $address Specify destination address
function delete_dns_record($id, $domain) Delete DNS Record string $id ID of Dns record for delete
string $domain Domain for the DNS record for delete
function list_cron() List CRON ---
function add_cron($minute, $hour, $day, $month, $weekday, $cmd) Add a CRON int $minute Minute to run the cron
int $hour Hour to run the cron
int $day Day to run the cron
int $month Month to run the cron
int $weekday Weekend to run the cron
string $cmd Command for the cron
function edit_cron($id, $minute, $hour, $day, $month, $weekday, $cmd) Edit CRON int $id ID of the Cron record. Get from the function list_cron()
int $minute Minute to run the cron
int $hour Hour to run the cron
int $day Day to run the cron
int $month Month to run the cron
int $weekday Weekend to run the cron
string $cmd Command for the cron
function delete_cron($id) Delete CRON string $id ID of the cron record. Get from the function list_cron()
function list_ssl_key() List SSL Key ---
function create_ssl_key($domain, $keysize = ' ') Create SSL Key string $domain Domain name for the SSL Key
string $keysize Size of the SSl Key
function upload_ssl_key($domain, $keypaste) Upload SSL Key string $domain Domain name for the SSL Key
string $keypaste Entire SSL Key
function detail_ssl_key($domain) Detail SSL Key string $domain Specify domain name to get detail of SSL Key
function delete_ssl_key($domain) Delete SSL Key string $domain Specify domain name to delete SSL Key
function list_ssl_csr() List SSL CSR ---
function create_ssl_csr($domain, $country_code, $state, $locality, $org, $org_unit, $passphrase, $email) Create SSL CSR string $domain Domain name for the CSR
string $country_code Two latter Country Code
string $state Name of the State
string $locality Name of the Location
string $org Name of the Organitaion
string $org_unit Name of the Organization unit
string $passphrase Password phrase
string $email Email address
function detail_ssl_csr($domain) Detail SSL CSR string $domain Specify domain name to detail view of SSL CSR
function delete_ssl_csr($domain) Delete SSL CSR string $domain Specify domain name to delete SSL CSR
function list_ssl_crt() List SSL Certificate ---
function create_ssl_crt($domain, $country_code, $state, $locality, $org, $org_unit, $email) Create SSL Certificate string $domain Domain for the Certificate
string $country_code Two letter Country Code
string $state Name of the State
string $locality Name of the Location
string $org Name of the Organitaion
string $org_unit Name of the Organization unit
string $email Email address
function upload_ssl_crt($domain, $keypaste) Upload SSL Certificate string $domain Domain name for the Certificate
string $keypaste Entire certificate.
function detail_ssl_crt($domain) Detail SSL Certificate string $domain Specify domain name to detail view of SSL Certificate
function delete_ssl_crt($domain) Delete Database user string $domain Specify domain name to delete SSL Certificate
function list_ipblock() List Blocked IP ---
function add_ipblock($ip) Block IP string $ip IP Address for block
function delete_ipblock($ip) Delete Blocked IP string $ip IP Address for unblock
function ssh_access($action) Enable/Disable SSH Access string $action Action should be on or off
function list_emailuser($domain) List Email Users string $domain Specify domain name for the Email User Account list
function add_emailuser($domain, $emailuser, $password) Add Email User string $domain Domain for the Email User Account to add
string $emailuser Email user name for add
string $password Password for user
function change_email_user_pass($domain, $emailuser, $password) Change Email Users' Password string $domain Domain for the Email User Account for change password
string $emailuser Email user name for change password
string $password New password for user
function delete_email_user($domain, $emailuser) Delete Email Users string $domain Domain for the Email User Account for delete
string $emailuser Email user name for delete
function list_emailforward($domain) List Email Forwarder string $domain Domain for the Email Forwarder list
function add_emailforward($domain, $forward_address, $forward_to) Add Email Forwarder string $domain Domain for the Email Forwarder add
string $forward_address Forwarder name to add
string $forward_to To whom it is forwarded
function delete_email_forward($domain, $forward_address, $forward_to) Delete Email Forwarder string $domain Domain for the Email Forwarder delete
string $forward_address Forwarder name
string $forward_to To whome it is forwarded
function list_mx_entry($domain) List MX record string $domain Domain for the MX Record list
function add_mx_entry($domain, $priority, $destination) Add MX record string $domain Domain for the MX Record add
string $priority Priority for the MX Record Entry
string $destination Destination address
function edit_mx_entry($domain, $record, $priority, $destination) Edit MX record string $domain Domain for the MX Record edit
string $record Record no of the Entry
string $priority Priority for the MX Record Entry
string $destination Destination address
function delete_mx_entry($domain, $record) Delete MX record string $domain Domain for the MX Record delete
string $record Record no of the Entry
function set_defaults($service) Set Default service to be used string $service Set the Default Service - php53/php54/php55/nginx/httpd/lighttpd
function handle_php_ext($extensions = ) List / Enable / Disable PHP Extensions string (Optional) $extensions Extensions to enable
(Empty results in list of Extensions and their status)
function dns_lookup($domain, $action = ) Networking Tools string (Optional) $action Lookup by default
(Available options are 'lookup' & 'traceroute')
function set_bandwidth($total_bandwidth = , $bandwidth_email_alert = ) Set Bandwidth Limit string $total_bandwidth Set your total available bandwidth in GB(Set 0 for unlimited)
string $bandwiwdth_email_alert Email alert limit value in GB
function reset_bandwidth() Reset Bandwidth Limit ---
function list_login_logs() List Login Logs ---
function delete_login_logs() Delete all Login Logs ---
function list_protected_users() List Apache Password Protected Directory Users ---
function add_pass_protect_dir($path, $uname, $pass, $name = ) Add Apache Password Protected Directory User string $path - Path to the directory to be password protected
string $uname - User to be added for the directory
string $pass - Password to the user for the directory
string [OPTIONAL] $name - Alias Name for the directory
function delete_pass_protected_user($uname, $path) Delete Password Protected Directory User string $uname - User to be deleted
string $path - Path to the password protected directory
function show_error_log($domain = ' ') Show Error Log string $domain Domain for the error log (Opional)


List Domains

funtion list_domains()
  • This function has no parameters, it will get you the list of domains.

eg:

$result = $new->list_domains();
print_r($result);
  • Will give you the output :
Array
(
    [title] => Webuzo - Manage Domain
    [primary_domain] => primary-domain.com
    [domains_list] => Array
        (
            [primary-domain.com] => Array
                (
                    [path] => /home/soft/public_html
                )

            [example.com] => Array
                (
                    [path] => /home/soft/www/example.com
                    [addon] => 1
                )

        )

    [timenow] => 1352305996
    [time_taken] => 0.096
.
.
.
  • In the above output, domains_list provides the list of domains. You can iterate through domains_list to perform actions.


Add a Domain

funtion add_domain($domain, $domainpath = '')
  • This function will allow you to ADD a domain.

eg:

Parameters :

  • $domain is the domain to be added
  • $domainpath (Optional) is the domain path to be SET in case of an ADD-ON domain.

Note : The path is absolute to your HOME directory.
E.g $domainpath set to 'example/dir' will be referred to as '/home/user/example/dir';


Return Values :

  • Result will be in the format as specified in $this->format. By default it is serialized.

If the format is serialized:

  • If Installation was successful, after unserializing the result,
    • $result['done'] should be 1.
    • $result['error'] should be empty.
  • If Installation was not successful, after unserializing the result,
    • $result['done'] should be 0.
    • $result['error'] should be an array with error message.


$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

$domain = 'example.com';
$domainpath = 'www/example.com';

$res = $new->add_domain($domain, $domainpath);
$res = unserialize($res);

$new->r_print($res);

// Done/Error
if(!empty($res['done'])){
	echo 'Domain added';
}else{
	echo 'Error while adding domain<br/>';
	if(!empty($res['error'])){
		print_r($res['error']);
	}
}


Delete a Domain

funtion delete_domain($domain)
  • This function will allow you to Delete a domain.

eg:

Parameters :

  • $domain is the domain to be DELETED

Return Values :

  • Result will be in the format as specified in $this->format. By default it is serialized.

If the format is serialized:

  • If Installation was successful, after unserializing the result,
    • $result['done'] should be 1.
    • $result['error'] should be empty.
  • If Installation was not successful, after unserializing the result,
    • $result['done'] should be 0.
    • $result['error'] should be an array with error message.


$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

$domain = 'example.com';

$res = $new->delete_domain($domain);
$res = unserialize($res);
$new->r_print($res);

// Done/Error
if(!empty($res['done'])){
	echo 'Domain Deleted';
}else{
	echo 'Error while deleting Domain<br/>';
	if(!empty($res['error'])){
		print_r($res['error']);
	}
}
=== List Installed Scripts ===
funtion list_installed_scripts()
  • This function has no parameters, it will get you the list of scripts.

eg:

$new->list_installed_scripts();
print_r($new->iscripts);
  • Will give you the output :
Array
(
    [1] => Array
        (
            [name] => Zikula
            [softname] => zikula
            [desc] => Zikula is a Web Application Toolkit, which allows you to run impressive websites and build powerful online applications.
            [ins] => 1
            [cat] => cms
            [type] => php
            [ver] => 1.2.8
        )

    [2] => Array
        (
            [name] => phpBB
            [softname] => phpbb
            [desc] => The most widely used Open Source forum solution

            [ins] => 1
            [cat] => forums
            [type] => php
            [ver] => 3.0.10
        )
.
.
.
  • In the above output, Keys like 1, 2, etc are the Script ID's used often in the Webuzo_API while taking backup, importing, etc.
  • softname in the above example is the Softaculous Name for the software. It's value is same as the directory present in the /var/softaculous/[softname] for each script.

Eg:

/var/softaculous/wp
  • Where wp is the softname for WordPress.

List Installations

function installations()
  • This function has no parameters, it will give you the list of installations on your server.

eg:

$installations = $new->installations();
print_r($installations);
  • Will give you the output :
Array
(
    [388] => Array
        (
            [388_98198] => Array
                (
                    [sid] => 388
                    [ver] => 2.3.5.0
                    [itime] => 1342264725
                    [softpath] => /home/USERNAME/public_html/ocs869
                    [softurl] => http://domain.com/ocs869
                    [softdomain] => domain.com
                    [softdatadir] => /home/USERNAME/ocs869
                    [softdb] => soft_ocs869
                    [softdbuser] => soft_ocs869
                    [softdbhost] => localhost
                    [softdbpass] => id17r2P6St
                    [dbcreated] => 1
                    [fileindex] => Array
                        (
                            [0] => cache
                            [1] => classes
                            [2] => config.TEMPLATE.inc.php
                            [3] => config.inc.php
                            [4] => controllers
                            [5] => dbscripts
                            [6] => docs
                            [7] => favicon.ico
                            [8] => help
                            [9] => index.php
                            [10] => js
                            [11] => lib
                            [12] => locale
                            [13] => pages
                            [14] => plugins
                            [15] => public
                            [16] => registry
                            [17] => robots.txt
                            [18] => rt
                            [19] => styles
                            [20] => templates
                            [21] => tools
                        )

                    [insid] => 388_98198
                )

        )

    [386] => Array
        (
            [386_86211] => Array
                (
                    [sid] => 386
                    [ver] => 4.1
                    [itime] => 1342437201
                    [softpath] => /home/USERNAME/public_html/qcms40
                    [softurl] => http://domain.com/qcms40
                    [softdomain] => domain.com
                    [fileindex] => Array
                        (
                            [0] => actions
                            [1] => admin.php
                            [2] => core
                            [3] => database
                            [4] => files
                            [5] => index.php
                            [6] => mobile.php
                            [7] => plugins
                            [8] => read-me.txt
                            [9] => templates
                        )

                    [insid] => 386_86211
                )
        )
.
.
.
  • Here :

Keys like 388 and 386 are the Script ID's.
values like 388_98198 and 386_86211 are the Installation ID's

  • Installation ID's are commonly used in this API for backup, upgrade, etc.

List Backups

funtion list_backups()
  • This function has no parameters, it will list the backups made on your server.

eg :

$backups = $new->list_backups();
print_r($backups);

Will give output :

Array
(
    [26] => Array
        (
            [26_60832] => Array
                (
                    [0] => Array
                        (
                            [name] => wp.26_60832.2012-07-26_10-13-33.zip
                            [path] => /home/USERNAME/softaculous_backups/wp.26_60832.2012-07-26_10-13-33.zip
                            [time] => 1343312013
                            [size] => 4968335
                            [sid] => 26
                            [ver] => 3.4.1
                            [itime] => 1343282816
                            [softpath] => /home/USERNAME/public_html/wp782
                            [softurl] => http://domain.com/wp782
                            [softdomain] => domain.com
                            [softdb] => soft_wp782
                            [softdbuser] => soft_wp782
                            [softdbhost] => localhost
                            [softdbpass] => aP6btS8d1p
                            [dbcreated] => 1
                            [fileindex] => Array
                                (
                                    [0] => index.php
                                    [1] => license.txt
                                    [2] => readme.html
                                    [3] => wp-activate.php
                                    [4] => wp-admin
                                    [5] => wp-app.php
                                    [6] => wp-blog-header.php
                                    [7] => wp-comments-post.php
                                    [8] => wp-config-sample.php
                                    [9] => wp-content
                                    [10] => wp-cron.php
                                    [11] => wp-includes
                                    [12] => wp-links-opml.php
                                    [13] => wp-load.php
                                    [14] => wp-login.php
                                    [15] => wp-mail.php
                                    [16] => wp-settings.php
                                    [17] => wp-signup.php
                                    [18] => wp-trackback.php
                                    [19] => xmlrpc.php
                                    [20] => .htaccess
                                    [21] => wp-config.php
                                )

                            [insid] => 26_60832
                            [backup_db] => 1
                            [backup_dir] => 1
                            [backup_datadir] => 
                            [backup_wwwdir] => 
                            [ssk] => xb6aamsdjfoelhff4olxuldtj5jklvom
                            [email] => admin@domain.com
                        )

                )

        )

.
.
.
  • 26 in the above example is the Script ID of WordPress.
  • 26_60832 is the Installation ID.
  • wp.26_60832.2012-07-26_10-13-33.zip is the Backup Name.
  • Backup Name is generally used for restoring the backup.
  • For each Backup, Backup Info is given along with its Installation Details as you can see in above example.


Install Script

function install($sid, $data = array())
  • This will install the scripts/software available in Softaculous.

Parameters :

  • $sid is the Script ID, which can be obtained from List Installed Scripts
  • $data is the DATA to post. If $data is empty, result will be the Software Information
    • $data['softdomain'] - Domain in which you are installing. OPTIONAL - By Default the primary domain will be used. Value should be String
    • $data['softdirectory'] - Directory in which installation will be placed. OPTIONAL - By default it will be installed in the /public_html folder. Value should be String
    • $data['softdb'] - Database Name for this installation. [Softaculous will create it for you]. Value should be String
    • $data['dbusername'] - Database Username. Value should be String
    • $data['dbuserpass'] - Username Password. Value should be String
    • $data['admin_username'] - Admin Username for WordPress. Value should be String
    • $data['admin_pass'] - Password for Admin Username. Value should be String
    • $data['admin_email'] - Admin Email ID. Value should be String
    • $data['site_name'] - Site Name. Value should be String
    • $data['language'] - Language. Value should be String
    • $data['site_desc'] - Site Desription. Value should be String
  • Above example is for WordPress, data to post will vary for different script. You can find the the value to post in install.xml of each script located in /var/softaculous/

Return Values :

  • Result will be in the format as specified in $this->format. By default it is serialized.

If the format is serialized:

  • If Installation was successful, after unserializing the result,
    • $result['done'] should be 1.
    • $result['error'] should be empty.
  • If Installation was not successful, after unserializing the result,
    • $result['done'] should be 0.
    • $result['error'] should be an array with error message.

Eg:

$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);
$data['softdomain'] = 'domain.com'; // OPTIONAL - By Default the primary domain will be used
$data['softdirectory'] = 'wp222'; // OPTIONAL - By default it will be installed in the /public_html folder
$data['admin_pass'] = 'pass';
$data['admin_email'] = 'admin@domain.com';
$data['softdb'] = 'wp222';
$data['dbusername'] = 'wp222';
$data['dbuserpass'] = 'wp222';
$data['site_name'] = 'Wordpess wp222';
$data['admin_username'] = 'admin';
$data['language'] = 'en';
$data['site_desc'] = 'WordPress API Test';

$res = $new->install(26, $data); // 26 is the SCRIPT ID for Wordpress
$res = unserialize($res);
if(!empty($res['done'])){
	echo 'Installed';
}else{
	echo 'Installation Failed<br/>';
	if(!empty($res['error'])){
		print_r($res['error']);
	}
}

Import Script Installation

function import($sid, $data = array())
  • This will import the installations already installed on your server.

Parameters :

  • $sid is the Script ID, which can be obtained from List Installed Scripts. It tells Webuzo which script is being imported.
  • $data is the DATA to post.
    • $data['softdomain'] - Domain Name from which you want import installation. Value should be String
    • $data['softdirectory'] - Directory in which installation is present. Value should be String
  • To import only softdomain & softdirectory are required by Webuzo.

Return Values :

  • Result will be in the format as specified in $this->format. By default it is serialized.

If the format is serialized:

  • If Installation was successful, after unserializing the result,
    • $result['done'] should be 1.
    • $result['error'] should be empty.
  • If Installation was not successful, after unserializing the result,
    • $result['done'] should be 0.
    • $result['error'] should be an array with error message.

Eg:

$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

$data['softdomain'] = 'domain.com'; // Domain Name

$data['softdirectory'] = 'wp221'; // Directory of the installation

// Submit the details
$res = $new->import(26, $data); // 26 is SCRIPT ID for WordPress.
$res = unserialize($res); // Unserialize the serialized array
if(!empty($res['done'])){
	echo 'Imported';
}else{
	print_r($res['error']); // Reason why Import was not successful
}

Restore Script Installation

function restore($name, $data = array())
  • This will Restore the Backup of installation from the list of Backups List.

Parameters :

  • $name is the Backup Name, which can be obtained from List Backups. It tells Softaculous which Backup is being restored.
  • $data is the DATA to post.
    • $data['restore_dir'] - Restore Directory. 1 or 0 should be the value. 1 if you want to Restore the Directory.
    • $data['restore_db'] - Restore Database. 1 or 0 should be the value. 1 if you want to Restore the Database.
    • $data['restore_datadir'] - Restore Data Directory. 1 or 0 should be the value. 1 if you want to Restore the Data Directory.
    • $data['restore_wwwdir'] - Restore WWW Directory. 1 or 0 should be the value. 1 if you want to Restore the WWW Directory.
  • Not all scripts have database or data directory or www directory. It depends on which script you are trying to restore.

Return Values :

  • Result will be in the format as specified in $this->format. By default it is serialized.

If the format is serialized:

  • If Installation was successful, after unserializing the result,
    • $result['done'] should be 1.
    • $result['error'] should be empty.
  • If Installation was not successful, after unserializing the result,
    • $result['done'] should be 0.
    • $result['error'] should be an array with error message.

Eg:

$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

$data['restore_dir'] = 1;
$data['restore_db'] = 1;
$data['restore_datadir'] = 0;
$data['restore_wwwdir'] = 0;

$res = $new->restore('wp.26_60832.2012-07-26_10-13-33.zip', $data); // wp.26_60832.2012-07-26_10-13-33.zip is the Backup Name

$res = unserialize($res);
if(!empty($res['done'])){
	echo 'Restored';
}else{
	echo 'Restoration Failed<br/>';
	print_r($res['error']);
}

Backup Script Installation

function backup($insid, $data = array())
  • This will take the Backup of installation. Softaculous performs backup process in the background, so you will get an mail

Parameters :

  • $insid is the Installation ID, which can be obtained from List Scripts. It tells Softaculous which Installation is being Backuped.
  • $data is the DATA to post.
    • $data['backup_dir'] - Backup Directory. 1 or 0 should be the value. 1 if you want to Backup the Directory.
    • $data['backup_db'] - Backup Database. 1 or 0 should be the value. 1 if you want to Backup the Datbase.
    • $data['backup_datadir'] - Backup Data Directory. 1 or 0 should be the value. 1 if you want to Backup the Data Directory.
    • $data['backup_wwwdir'] - Backup WWW Directory. 1 or 0 should be the value. 1 if you want to Backup the WWW Directory.
  • Not all scripts have database or data directory or www directory. It depends on which script you are trying to Backup.

Return Values :

  • Result will be in the format as specified in $this->format. By default it is serialized.

If the format is serialized:

  • If Installation was successful, after unserializing the result,
    • $result['done'] should be 1.
    • $result['error'] should be empty.
  • If Installation was not successful, after unserializing the result,
    • $result['done'] should be 0.
    • $result['error'] should be an array with error message.

Eg:

$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

$data['backup_dir'] = 1;

$data['backup_db'] = 1;

$data['backup_datadir'] = 0;

$data['backup_wwwdir'] = 0;

$res = $new->backup('26_37054', $data);

$res = unserialize($res);
if(!empty($res['done'])){
	echo 'Backing up the installation.';
}else{
	echo 'Backup Failed<br/>';
	print_r($res['error']);
}

Remove Script Installation

function remove($insid, $data = array())
  • This will remove an installation.

Parameters :

  • $insid is the Installation ID, which can be obtained from List Scripts. It tells Softaculous which Installation is being Removed.
  • $data is the DATA to post.
    • $data['remove_dir'] - Remove Directory. 1 or 0 should be the value. 1 if you want to Remove the Directory.
    • $data['remove_db'] - Remove Database. 1 or 0 should be the value. 1 if you want to Remove the Database.
    • $data['remove_datadir'] - Remove Data Directory. 1 or 0 should be the value. 1 if you want to Remove the Data Directory.
    • $data['remove_wwwdir'] - Remove WWW Directory. 1 or 0 should be the value. 1 if you want to Remove the WWW Directory.
  • Not all scripts have database or data directory or www directory. It depends on which script you are trying to Remove.

Return Values :

  • Result will be in the format as specified in $this->format. By default it is serialized.

If the format is serialized:

  • If Installation was successful, after unserializing the result,
    • $result['done'] should be 1.
    • $result['error'] should be empty.
  • If Installation was not successful, after unserializing the result,
    • $result['done'] should be 0.
    • $result['error'] should be an array with error message.

Eg:

$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

$data['remove_dir'] = 1;

$data['remove_db'] = 1;

$data['remove_datadir'] = 0;

$data['remove_wwwdir'] = 0;

$res = $new->remove('26_37054', $data);

$res = unserialize($res);
if(!empty($res['done'])){
	echo 'Removed';
}else{
	echo 'Removing Unsuccessful<br/>';
	print_r($res['error']);
}

Upgrade Script Installation

function upgrade($insid, $data = array())
  • This will upgrade an installation, if upgrade is available.

Parameters :

  • $insid is the Installation ID, which can be obtained from List Installed Scripts. It tells Softaculous which Installation is being upgraded.
  • $data is the DATA to post. If $data is empty, output is upgrade information.
    • $data['softbranch'] - Script ID of the script updrading to. Int should be the value. Used only if the installation is upgradable to more than one version. It can be obtained in $result['upgradableto'] by keeping $data empty.

Return Values :

  • Result will be in the format as specified in $this->format. By default it is serialized.

If the format is serialized:

  • If no DATA is posted i.e if $data is empty,
    • $result['upgradableto'] is an array in which Key is Script ID & Value is the version.
  • If Upgradation was successful, after unserializing the result,
    • $result['done'] should be 1.
    • $result['error'] should be empty.
    • $result['setup'] should be empty.
  • If Upgradation was not successful, after unserializing the result,
    • $result['done'] should be 0.
    • $result['error'] should be an array with error message.
  • If Upgradation was successful, but requires one more step to complete the upgrade process then after unserializing the result,
    • $result['done'] should be 1.
    • $result['error'] should be empty.
    • $result['setup'] should be String. This is a URL which should be visited to complete the upgrade process.

Eg:

$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

$data['softbranch'] = '382'; // Script ID of the script you want to upgrade.

$res = $new->upgrade('92_69417', $data);
$_res = unserialize($res);
	
if(!empty($_res['done'])){
	echo 'Upgraded';
}else{
        echo 'Upgrade Failed<br/>';
        print_r($res['error']);
}

if(!empty($_res['setupcontinue'])){
        echo $_res['setupcontinue'].' Please visit the following link to complete the upgrade process.';
}


Result Format

  • Result of the API call can be in three formats:
    • Serialize
    • JSON
    • XML

Serialize

$this->format = 'serialize'; // Serialize is default.
  • Below example is of Import API. WordPress Installation has been imported into Softaculous.
<?php
@set_time_limit(100);

//Include Class
include_once('sdk.php');

$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

$data['softdomain'] = 'domain.com'; // Domain Name

$data['softdirectory'] = 'wp459'; // Directory of the installation

// Submit the details
$res = $new->import(26, $data); // Import Function. 26 is Script ID of WordPress.
echo $res;

?>

Will give you the output :

a:6:{s:5:"title";s:28:"Softaculous - Softaculous - ";s:4:"done";b:1;s:4:"info";a:6:{s:8:"overview";s:877:"<img src=\"logo.png\" style=\"float:right;\" alt=\"\" /><font size=\"5\" color=\"#182e7a\">WordPress</font> is a state-of-the-art publishing platform with a focus on aesthetics, web standards, and usability. WordPress is both free and priceless at the same time.<br /><br />
		More simply, WordPress is what you use when you want to work with your blogging software, not fight it.
		<br /><br />WordPress started in 2003 with a single bit of code to enhance the typography of everyday writing and with fewer users than you can count on your fingers and toes. Since then it has grown to be the largest self-hosted blogging tool in the world, used on hundreds of thousands of sites and seen by tens of millions of people every day.
		<br /><br />
		The GPL from the <a href=\"http://www.fsf.org/\">Free Software Foundation</a> is the license that the WordPress software is under.";s:8:"features";s:5413:"<ul>
				<li><strong>Full standards compliance</strong> : We have gone to great lengths to make sure every bit of WordPress generated code is in full compliance with the standards of the <a href=\"http://w3.org\">W3C</a>. This is important not only for interoperability with today's browser but also for forward compatibility with the tools of the next generation. Your web site is a beautiful thing, and you should demand nothing less.</li>
				<li><strong>No rebuilding</strong> : Changes you make to your templates or entries are reflected immediately on your site, with no need for regenerating static pages.</li>
				<li><strong>WordPress Pages</strong> : Pages allow you to manage non-blog content easily, so for example you could have a static \"About\" page that you manage through WordPress. For an idea of how powerful this is, the entire WordPress.org site could be run off WordPress alone. (We don't for technical mirroring reasons.)</li>

				<li><strong>WordPress Links</strong> : Links allows you to create, maintain, and update any number of blogrolls through your administration interface. This is much faster than calling an external blogroll manager.</li>
				<li><strong>WordPress Themes</strong> : WordPress comes with a <a href=\"http://codex.wordpress.org/Using_Themes\">full theme system</a> which makes designing everything from the simplest blog to the most complicated webzine a piece of cake, and you can even have multiple themes with totally different looks that you switch with a single click. Have a new design every day.</li>
				<li><strong>Cross-blog communication tools</strong> : WordPress fully supports both the <a href=\"http://www.movabletype.org/docs/mttrackback.html\">Trackback</a> and <a href=\"http://www.hixie.ch/specs/pingback/pingback-1.0\">Pingback</a> standards, and we are committed to supporting future standards as they develop.</li>

				<li><strong>Comments</strong> : Visitors to your site can leave comments on individual entries, and through Trackback or Pingback can comment on their own site. You can enable or disable comments on a per-post basis.</li>
				<li><strong>Spam protection</strong> : Out of the box WordPress comes with very robust tools such as an integrated blacklist and open proxy checker to manage and eliminate comment spam on your blog, and there is also a rich array of plugins that can take this functionality a step further.</li>
				<li><strong>Full user registration</strong> : WordPress has a built-in user registration system that (if you choose) can allow people to register and maintain profiles and leave authenticated comments on your blog. You can optionally close comments for non-registered users. There are also plugins that hide posts from lower level users.</li>
				<li><strong>Password Protected Posts</strong> : You can give passwords to individual posts to hide them from the public. You can also have private posts which are viewable only by their author.</li>
				<li><strong>Easy installation and upgrades</strong> : Installing WordPress and upgrading from previous versions and other software is a piece of cake. Try it and you'll wonder why all web software isn't this easy.</li>
				<li><strong>Easy Importing</strong> : We currently have importers for Movable Type, Textpattern, Greymatter, Blogger, and b2. Work on importers for Nucleus and pMachine are under way. </li>

				<li><strong>XML-RPC interface</strong> : WordPress currently supports an extended version of the <a href=\"http://plant.blogger.com/api/\">Blogger API</a>, MetaWeblog API, and finally the MovableType API. You can even use clients designed for other platforms like <a href=\"http://zempt.com/\">Zempt</a>.</li>
				<li><strong>Workflow</strong> : You can have types of users that can only post drafts, not publish to the front page.</li>
				<li><strong>Typographical niceties </strong>: WordPress uses the <a href=\"http://photomatt.net/tools/texturize\">Texturize</a> engine to intelligently convert plain ASCII into typographically correct XHTML entities. This includes quotes, apostrophes, ellipses, em and en dashes, multiplication symbols, and ampersands. For information about the proper use of such entities see Peter Sheerin's article <a href=\"http://alistapart.com/stories/emen/\">The Trouble With Em 'n En</a>.</li>

				<li><strong>Intelligent text formatting</strong> : If you've dealt with systems that convert new lines to line breaks before you know why they have a bad name: if you have any sort of HTML they butcher it by putting tags after every new line indiscriminately, breaking your formatting and validation. Our function for this intelligently avoids places where you already have breaks and block-level HTML tags, so you can leave it on without worrying about it breaking your code.</li>
				<li><strong>Multiple authors</strong> : WordPress' highly advanced user system allows up to 10 levels of users, with different levels having different (and configurable) privileges with regard to publishing, editing, options, and other users.</li>
				<li><strong>Bookmarklets</strong> : Cross-browser bookmarklets make it easy to publish to your blog or add links to your blogroll with a minimum of effort.</li>
				<li><strong>Ping away</strong> : WordPress supports pinging <a href=\"http://www.pingomatic.com/\">Ping-O-Matic</a>, which means maximum exposure for your blog to search engines.</li>
			</ul>";s:4:"demo";s:42:"http://www.softaculous.com/demos/WordPress";s:7:"ratings";s:52:"http://www.softaculous.com/softwares/blogs/WordPress";s:7:"support";s:25:"http://www.wordpress.org/";s:8:"spacereq";s:0:"";}s:8:"software";a:10:{s:4:"name";s:9:"WordPress";s:8:"softname";s:2:"wp";s:4:"desc";s:109:"WordPress is a state-of-the-art publishing platform with a focus on aesthetics, web standards, and usability.";s:3:"ins";i:1;s:3:"cat";s:5:"blogs";s:4:"type";s:3:"php";s:3:"ver";s:3:"3.4";s:4:"path";s:48:"/var/softaculous/wp";s:8:"spacereq";s:0:"";s:8:"adminurl";s:9:"wp-admin/";}s:7:"timenow";i:1343796458;s:10:"time_taken";s:5:"0.008";}

JSON

$this->format = 'json'; // Serialize is default.
  • Below example is of Import API. WordPress Installation has been imported into Softaculous.
<?php
@set_time_limit(100);

//Include Class
include_once('sdk.php');

$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

$new->format = 'json';

$data['softdomain'] = 'domain.com'; // Domain Name

$data['softdirectory'] = 'wp459'; // Directory of the installation

// Submit the details
$res = $new->import(26, $data); // Import Function. 26 is Script ID of WordPress.
echo $res;

?>

Will give you the output :

{ "done" : true,
  "info" : { "demo" : "http://www.softaculous.com/demos/WordPress",
      "features" : "<ul>\n\t\t\t\t<li><strong>Full standards compliance</strong> : We have gone to great lengths to make sure every bit of WordPress generated code is in full compliance with the standards of the <a href=\\\"http://w3.org\\\">W3C</a>. This is important not only for interoperability with today's browser but also for forward compatibility with the tools of the next generation. Your web site is a beautiful thing, and you should demand nothing less.</li>\n\t\t\t\t<li><strong>No rebuilding</strong> : Changes you make to your templates or entries are reflected immediately on your site, with no need for regenerating static pages.</li>\n\t\t\t\t<li><strong>WordPress Pages</strong> : Pages allow you to manage non-blog content easily, so for example you could have a static \\\"About\\\" page that you manage through WordPress. For an idea of how powerful this is, the entire WordPress.org site could be run off WordPress alone. (We don't for technical mirroring reasons.)</li>\n\n\t\t\t\t<li><strong>WordPress Links</strong> : Links allows you to create, maintain, and update any number of blogrolls through your administration interface. This is much faster than calling an external blogroll manager.</li>\n\t\t\t\t<li><strong>WordPress Themes</strong> : WordPress comes with a <a href=\\\"http://codex.wordpress.org/Using_Themes\\\">full theme system</a> which makes designing everything from the simplest blog to the most complicated webzine a piece of cake, and you can even have multiple themes with totally different looks that you switch with a single click. Have a new design every day.</li>\n\t\t\t\t<li><strong>Cross-blog communication tools</strong> : WordPress fully supports both the <a href=\\\"http://www.movabletype.org/docs/mttrackback.html\\\">Trackback</a> and <a href=\\\"http://www.hixie.ch/specs/pingback/pingback-1.0\\\">Pingback</a> standards, and we are committed to supporting future standards as they develop.</li>\n\n\t\t\t\t<li><strong>Comments</strong> : Visitors to your site can leave comments on individual entries, and through Trackback or Pingback can comment on their own site. You can enable or disable comments on a per-post basis.</li>\n\t\t\t\t<li><strong>Spam protection</strong> : Out of the box WordPress comes with very robust tools such as an integrated blacklist and open proxy checker to manage and eliminate comment spam on your blog, and there is also a rich array of plugins that can take this functionality a step further.</li>\n\t\t\t\t<li><strong>Full user registration</strong> : WordPress has a built-in user registration system that (if you choose) can allow people to register and maintain profiles and leave authenticated comments on your blog. You can optionally close comments for non-registered users. There are also plugins that hide posts from lower level users.</li>\n\t\t\t\t<li><strong>Password Protected Posts</strong> : You can give passwords to individual posts to hide them from the public. You can also have private posts which are viewable only by their author.</li>\n\t\t\t\t<li><strong>Easy installation and upgrades</strong> : Installing WordPress and upgrading from previous versions and other software is a piece of cake. Try it and you'll wonder why all web software isn't this easy.</li>\n\t\t\t\t<li><strong>Easy Importing</strong> : We currently have importers for Movable Type, Textpattern, Greymatter, Blogger, and b2. Work on importers for Nucleus and pMachine are under way. </li>\n\n\t\t\t\t<li><strong>XML-RPC interface</strong> : WordPress currently supports an extended version of the <a href=\\\"http://plant.blogger.com/api/\\\">Blogger API</a>, MetaWeblog API, and finally the MovableType API. You can even use clients designed for other platforms like <a href=\\\"http://zempt.com/\\\">Zempt</a>.</li>\n\t\t\t\t<li><strong>Workflow</strong> : You can have types of users that can only post drafts, not publish to the front page.</li>\n\t\t\t\t<li><strong>Typographical niceties </strong>: WordPress uses the <a href=\\\"http://photomatt.net/tools/texturize\\\">Texturize</a> engine to intelligently convert plain ASCII into typographically correct XHTML entities. This includes quotes, apostrophes, ellipses, em and en dashes, multiplication symbols, and ampersands. For information about the proper use of such entities see Peter Sheerin's article <a href=\\\"http://alistapart.com/stories/emen/\\\">The Trouble With Em 'n En</a>.</li>\n\n\t\t\t\t<li><strong>Intelligent text formatting</strong> : If you've dealt with systems that convert new lines to line breaks before you know why they have a bad name: if you have any sort of HTML they butcher it by putting tags after every new line indiscriminately, breaking your formatting and validation. Our function for this intelligently avoids places where you already have breaks and block-level HTML tags, so you can leave it on without worrying about it breaking your code.</li>\n\t\t\t\t<li><strong>Multiple authors</strong> : WordPress' highly advanced user system allows up to 10 levels of users, with different levels having different (and configurable) privileges with regard to publishing, editing, options, and other users.</li>\n\t\t\t\t<li><strong>Bookmarklets</strong> : Cross-browser bookmarklets make it easy to publish to your blog or add links to your blogroll with a minimum of effort.</li>\n\t\t\t\t<li><strong>Ping away</strong> : WordPress supports pinging <a href=\\\"http://www.pingomatic.com/\\\">Ping-O-Matic</a>, which means maximum exposure for your blog to search engines.</li>\n\t\t\t</ul>",
      "overview" : "<img src=\\\"logo.png\\\" style=\\\"float:right;\\\" alt=\\\"\\\" /><font size=\\\"5\\\" color=\\\"#182e7a\\\">WordPress</font> is a state-of-the-art publishing platform with a focus on aesthetics, web standards, and usability. WordPress is both free and priceless at the same time.<br /><br />\n\t\tMore simply, WordPress is what you use when you want to work with your blogging software, not fight it.\n\t\t<br /><br />WordPress started in 2003 with a single bit of code to enhance the typography of everyday writing and with fewer users than you can count on your fingers and toes. Since then it has grown to be the largest self-hosted blogging tool in the world, used on hundreds of thousands of sites and seen by tens of millions of people every day.\n\t\t<br /><br />\n\t\tThe GPL from the <a href=\\\"http://www.fsf.org/\\\">Free Software Foundation</a> is the license that the WordPress software is under.",
      "ratings" : "http://www.softaculous.com/softwares/blogs/WordPress",
      "spacereq" : "",
      "support" : "http://www.wordpress.org/"
    },
  "software" : { "adminurl" : "wp-admin/",
      "cat" : "blogs",
      "desc" : "WordPress is a state-of-the-art publishing platform with a focus on aesthetics, web standards, and usability.",
      "ins" : 1,
      "name" : "WordPress",
      "path" : "/var/softaculous/wp",
      "softname" : "wp",
      "spacereq" : "",
      "type" : "php",
      "ver" : "3.4"
    },
  "time_taken" : "0.008",
  "timenow" : 1343800621,
  "title" : "Softaculous - Softaculous - "
}

XML

$this->format = 'xml'; // Serialize is default.
  • Below example is of Import API. WordPress Installation has been imported into Softaculous.
<?php
@set_time_limit(100);

//Include Class
include_once('sdk.php');

$new = new Webuzo_API($webuzo_user, $webuzo_password, $host);

$new->format = 'xml';

$data['softdomain'] = 'domain.com'; // Domain Name

$data['softdirectory'] = 'wp459'; // Directory of the installation

// Submit the details
$res = $new->import(26, $data); // Import Function. 26 is Script ID of WordPress.
echo $res;

?>

Will give you the output :

<?xml version="1.0" ?>
<xml>
  <title>
    Softaculous - Softaculous - 
  </title>
  <done>
    1
  </done>
  <info>
    <overview>
      <img src=\"logo.png\" style=\"float:right;\" alt=\"\" /><font size=\"5\" color=\"#182e7a\">WordPress</font> is a state-of-the-art publishing platform with a focus on aesthetics, web standards, and usability. WordPress is both free and priceless at the same time.<br /><br /> More simply, WordPress is what you use when you want to work with your blogging software, not fight it. <br /><br />WordPress started in 2003 with a single bit of code to enhance the typography of everyday writing and with fewer users than you can count on your fingers and toes. Since then it has grown to be the largest self-hosted blogging tool in the world, used on hundreds of thousands of sites and seen by tens of millions of people every day. <br /><br /> The GPL from the <a href=\"http://www.fsf.org/\">Free Software Foundation</a> is the license that the WordPress software is under.
    </overview>
    <features>
      <ul><li><strong>Full standards compliance</strong> : We have gone to great lengths to make sure every bit of WordPress generated code is in full compliance with the standards of the <a href=\"http://w3.org\">W3C</a>. This is important not only for interoperability with today's browser but also for forward compatibility with the tools of the next generation. Your web site is a beautiful thing, and you should demand nothing less.</li><li><strong>No rebuilding</strong> : Changes you make to your templates or entries are reflected immediately on your site, with no need for regenerating static pages.</li><li><strong>WordPress Pages</strong> : Pages allow you to manage non-blog content easily, so for example you could have a static \"About\" page that you manage through WordPress. For an idea of how powerful this is, the entire WordPress.org site could be run off WordPress alone. (We don't for technical mirroring reasons.)</li><li><strong>WordPress Links</strong> : Links allows you to create, maintain, and update any number of blogrolls through your administration interface. This is much faster than calling an external blogroll manager.</li><li><strong>WordPress Themes</strong> : WordPress comes with a <a href=\"http://codex.wordpress.org/Using_Themes\">full theme system</a> which makes designing everything from the simplest blog to the most complicated webzine a piece of cake, and you can even have multiple themes with totally different looks that you switch with a single click. Have a new design every day.</li><li><strong>Cross-blog communication tools</strong> : WordPress fully supports both the <a href=\"http://www.movabletype.org/docs/mttrackback.html\">Trackback</a> and <a href=\"http://www.hixie.ch/specs/pingback/pingback-1.0\">Pingback</a> standards, and we are committed to supporting future standards as they develop.</li><li><strong>Comments</strong> : Visitors to your site can leave comments on individual entries, and through Trackback or Pingback can comment on their own site. You can enable or disable comments on a per-post basis.</li><li><strong>Spam protection</strong> : Out of the box WordPress comes with very robust tools such as an integrated blacklist and open proxy checker to manage and eliminate comment spam on your blog, and there is also a rich array of plugins that can take this functionality a step further.</li><li><strong>Full user registration</strong> : WordPress has a built-in user registration system that (if you choose) can allow people to register and maintain profiles and leave authenticated comments on your blog. You can optionally close comments for non-registered users. There are also plugins that hide posts from lower level users.</li><li><strong>Password Protected Posts</strong> : You can give passwords to individual posts to hide them from the public. You can also have private posts which are viewable only by their author.</li><li><strong>Easy installation and upgrades</strong> : Installing WordPress and upgrading from previous versions and other software is a piece of cake. Try it and you'll wonder why all web software isn't this easy.</li><li><strong>Easy Importing</strong> : We currently have importers for Movable Type, Textpattern, Greymatter, Blogger, and b2. Work on importers for Nucleus and pMachine are under way. </li><li><strong>XML-RPC interface</strong> : WordPress currently supports an extended version of the <a href=\"http://plant.blogger.com/api/\">Blogger API</a>, MetaWeblog API, and finally the MovableType API. You can even use clients designed for other platforms like <a href=\"http://zempt.com/\">Zempt</a>.</li><li><strong>Workflow</strong> : You can have types of users that can only post drafts, not publish to the front page.</li><li><strong>Typographical niceties </strong>: WordPress uses the <a href=\"http://photomatt.net/tools/texturize\">Texturize</a> engine to intelligently convert plain ASCII into typographically correct XHTML entities. This includes quotes, apostrophes, ellipses, em and en dashes, multiplication symbols, and ampersands. For information about the proper use of such entities see Peter Sheerin's article <a href=\"http://alistapart.com/stories/emen/\">The Trouble With Em 'n En</a>.</li><li><strong>Intelligent text formatting</strong> : If you've dealt with systems that convert new lines to line breaks before you know why they have a bad name: if you have any sort of HTML they butcher it by putting tags after every new line indiscriminately, breaking your formatting and validation. Our function for this intelligently avoids places where you already have breaks and block-level HTML tags, so you can leave it on without worrying about it breaking your code.</li><li><strong>Multiple authors</strong> : WordPress' highly advanced user system allows up to 10 levels of users, with different levels having different (and configurable) privileges with regard to publishing, editing, options, and other users.</li><li><strong>Bookmarklets</strong> : Cross-browser bookmarklets make it easy to publish to your blog or add links to your blogroll with a minimum of effort.</li><li><strong>Ping away</strong> : WordPress supports pinging <a href=\"http://www.pingomatic.com/\">Ping-O-Matic</a>, which means maximum exposure for your blog to search engines.</li></ul>
    </features>
    <demo>
      http://www.softaculous.com/demos/WordPress
    </demo>
    <ratings>
      http://www.softaculous.com/softwares/blogs/WordPress
    </ratings>
    <support>
      http://www.wordpress.org/
    </support>
    <spacereq/>
  </info>
  <software>
    <name>
      WordPress
    </name>
    <softname>
      wp
    </softname>
    <desc>
      WordPress is a state-of-the-art publishing platform with a focus on aesthetics, web standards, and usability.
    </desc>
    <ins>
      1
    </ins>
    <cat>
      blogs
    </cat>
    <type>
      php
    </type>
    <ver>
      3.4
    </ver>
    <path>
      /var/softaculous/wp
    </path>
    <spacereq/>
    <adminurl>
      wp-admin/
    </adminurl>
  </software>
  <timenow>
    1343802693
  </timenow>
  <time_taken>
    0.022
  </time_taken>
</xml>