Getting started

Last updated: February 27, 2021

Configuration


  • PHP 7.x & mysql v5.x
  • Your domain must have https.
  • Make sure curl is enbaled , mbstring is enabled, set_time_out is enabled , safe_mode is off
  • open_base_dir has no value, allow_url_fopen=1 and mysqli support is on.

Better Performance

Set php max_execution_time, mysql connect_timeout, mysql wait_timeout , max_allowed_packet , max_connections to long limit possible, so that your server can process script for long time if needed. Also watch “Bulk Message Frequency Settings” video if you like.

Note

If you get 404 page not found error then make AllowOverride in your virtual host and check if .htaccess file is uploaded successfully in root or not.

Installation

  1. Download .zip package
  2. Upload it to your server
  3. Extract the package
  4. Make sure all files and folder have write permission after you extract because this software have auto update feature and system may need to change or replace any project file during auto update process. If you do not want to use auto update feature then make sure atleast application/install.txt, application/config (folder and child files), application/core (folder and child files), download, upload, upload_caster files have write permission.
  5. Run the uploaded url via browser (http://yourdomain.com/projectFolder/) and you will find a interface to provide the settings
    • Hostname : database host name / IP (usually localhost)
    • Database Name : create a mysql database on your host and write that name here
    • Database username : username of the created database
    • Database password : password of the created database
    • Admin Panel Login Email: this will be used to login as admin
    • Admin Panel Login Password : password to log in as admin
    • Company Name and Company Address
    • Company Phone / Mobile
  6. Click install button
  7. You are done. Log in with your admin username and password and start using.
  8. IF installtion page appear again after you hit submit and processing done that means system could not delete application/install.txt and you have to delete that file manually.

System

Here you will get all the system setting that you want to customize as you need. We are offering you as much customization of this system as possible. This section is devided into six sub-section.

  1. Settings
  2. Social Apps
  3. Cron Job
  4. Language Editor
  5. Addon Manager
  6. Theme Manager
  7. Menu manager
  8. Check Update

Settings


This section offers you to change settings in these sections: General, Front-end, SMTP, Email, Analytics, Advertisement

General (Only Admin):

Brand : Here you can setup your app name, company name etc branding information.

Preference : You can set system email function, it can be php mail or you can setup your smtp profile. You can force to use HTTPS and also can enable disable signup system. You can setup system default time zone and locale.

Logo & Favicon : Upload your system logo and favicon.

Master Password & App access : Set a master password and you can use this password to login as any user (except admin). You can give access to users to use their own Facebook app instead of using your app.

Support Desk (extended license) : Extended license provides a support desk to manage user issues. However, you can enable/disable support desk from here.

File Upload :Control the media upload limit here. The video upload limit is 100MB by default.

Junk data : System deletes junk data periodically, set the interval in number days to clean system junk data.

Front-end (Only Admin) :
  1. This awesome software also now have an buli-in eye-catching landing page which is fully dynamic and can be controlled from this settings area.
  2. You can choose if you want landing page or not. If you select Display Landing Page as No then login page will be the default page.
  3. If you do not want social links to show up then keep the social links blank.
  4. If you choose Display Review Block as No then customer review section will be hidden from landing page. Put youtube watch url if you want to show a review video, keep it blank if you do not want it, it will be hidden then.
  5. If you choose Display Tutorial Block as No then tutorial section will be hidden from landing page. Put your tutorial title,thumbnail url & youtube watch url to affect the landing page.
SMTP Settings (System SMTP Email: Only Admin):
  1. This is the place to configure system email.
  2. You can add any SMTP email provider here. There are three stmp types : Default, TLS and SSL. Default option is for non-SSL smtp. You will find your smtp configuration in your cpanel.
  3. These settings will be used to send system emails like forget password, contact, send notification etc. Adding SMTP is not enough to start sending message using it, you have to enable SMTP email feature from general settings as well.
Email Template (Only Admin)

System sends several emails to users for different purposes. Here you can edit the email content to be sent. Some email templates are for extended license only.

Analytics (Only Admin):
  1. You may need to add analytics scripts like Google analytics or Facebook pixel code in landing page and login page to track visitors. Well we have sorted it out for you
  2. Simply put the js scripts (with script tag) in the textarea and save and system will automatically embed them in landing page as well as login page
  3. You can add multiple scripts in single textarea or can put other js in textarea rather than Google or Facebook scripts if you like.
Social Apps

In this section you will see list of all social apps like Facebook, Google, etc. This section will help you to customize your social app settings.

Facebook

In this section you will see all your Facebook app settings. You can add a Facebook app settings by clicking the button Add New APP which is placed on almost on the top of this page. You can also edit, delete your apps using the action buttons attatched with each setting lists. After adding your app settings you need to login by clicking the Facebook icon of action list.

Video Tutorial: Create Facebook App
Google

After entering this section you will find all the necessary settings of your current Google app. Change is as necessary.

Video Tutorial: Create Google App & Get API Keys
Account Import

  1. After Completing Facebook API Settings Properly, Now You've to Import your Facebook Account.
  2. Clicking Import Account Menu will bring you a button named Login with Facebook, Simply Clicking it will start importing your Facebook account
screenshot
screenshot

Allow the permission as the picture given below and You can choose privary friends or public. It privacy is set to "Friends" the posts will be only visible to your friends. If you set it to "Public" then the posts will be visible to everyone. You should use "Public" for marketing purposes. Allow all the permission it wnats and continue.

screenshot
screenshot

Finally your account is imported now ! You will see your pages. Now the first thing you have to do it enable page for bot connection.

Info

Your pages will not be visible in any feature until you enable bot connection for pages.

Cron Job (Only Admin)

Here all the cron jobs need to setup on server are listed for your application. But first you have to generate api key for your application by clicking the Generate API Key. You can Re-generate your applications api key any time but doing this will require to setup cron job on server again. When you mouse over on the cron job commands you will see a text copy on the right side and by clicking on that text you can copy that cron job.

Video Tutorial: How to setup cron job for XeroIni
Language Editor (Only Admin)

  1. It comes with twelve language by default. But you may need to add your own language. So, we are offering you a way to add you own language and translate all the static text to your language.
  2. In this section you will find all the languages comes with this applications. You can add your language by clicking the button Add New Language placed on the top. You can also delete your language if you fill necessary.
  3. Next you have to translate the texts on your own language. There are three type of texts. System, Add-ons, 3rd Party. Choose a type and the click on the language you want to translate. After clicking a language you will be redirect on a page and you will find a list of all file. Then click it and a list of text will come in front of you. Now add your translation.
Addon Manager (Only Admin)

It has some greate add-ons. When you will want to install them then you have to go through this settings. If any add-on is installed then you will find all the installed add-ons here. You will find a button Install Add-on on the top of that page. Click on it and you will be redirect to a page where you have to upload your add-on. Next you have to activate your add-on using your add-on purchase code. You can also delete add-on if you wish from the list.

XeroIni Front-End Theme Development Documentation

Majority of you guys are interested in XeroIni extended license. Many of you guys already have a successful business leveraging the power of XeroIni. Doing business means a powerful and converting sales page. Different people would like to design their sales page in different flow and content. It is not easy for us to meet everyone's requirements and reflect those in a single front-end theme.

Also many of you customized the front-end and they often reset in XeroIni updates. You all want freedom to customize front-end and here you go. Now you can develop your very own XeroIni front-end theme (XeroIni v1.2.7). The most interesting part is, you can sell it to others personally or through marketplaces like codecanyon !

You can download this demo theme and start working on to practice and understand.

Demo Theme

Note

Please don't open support ticket regarding theme development. If you have any issue or need to know anything, comment on the below comment area. We don't provide support for this purpose.

Folder Structure
  1. Create a folder inside application/views/site/ directory. Your folder name should not contain any spaces (Example: CustomTheme).
  2. Your new theme folder must contain a file named index.php which will be the landing page of XeroIni. At the very top of this index.php file you can mention a name of your theme, description, version, author name and URI like below:
  3. <?php 
    /* 
    Theme Name: CustomTheme 
    Unique Name: CustomTheme 
    Theme URI: https://example.com/theme 
    Author: CustomTheme Author 
    Author URI: https://example.com 
    Version: 1.0 Description: Custom theme description 
    */
    ?>
  4. Put a thumbnail mage named thumb.png at the root of your theme folder (670x480 dimension preffered)
  5. You can create a folder named css at the root of your theme folder, where your style files will be located.
  6. You can create a folder named js at the root of your theme folder, where your javascript files will be located.
  7. You can create a folder named images at the root of your theme folder, where your images files will be located.
  8. You can create the below files with specified names. These files will require a theme file named subscription_theme.php to load.
  9. Page File Name
    Login page login.php
    Sign Up page sign_up.php
    Account activation page account_activation.php
    Forgot password page forgot_password.php
    Password recovery page password_recovery.php
    Credential check page credential_check.php
  10. You can also create the below files with specified names. These files will require a theme file named theme_front.php to load.
  11. Page File Name
    Privacy policy page privacy_policy.php
    Terms of use page terms_use.php
    GDPR complaint page gdpr.php
Facebook Pixel & Google Analytics Code

You can include Facebook pixel code provided by system admin into your theme by adding the below code inside your files ( index.php, theme_front.php and subscription_theme.php ) :

<?php  $this->load->view("include/fb_px"); ?>

Similarly you can include Google analytic code by adding the code below :

<?php $this->load->view("include/google_code"); ?> 
Configuration PHP Variables

You can print them inside php tag like

<?php echo $this->config->item('product_name');?>

or assign to a PHP varibale like

<?php $product_name = $this->config->item('product_name');?>
PHP Variables Example value
$this->config->item('product_name') Product name
XeroIni - Multichannel Marketing Application
$this->config->item('product_short_name') Product short name
XeroIni>
$this->config->item('slogan') Product Slogan
#1 Multichannel Marketing Application
$this->config->item('institute_address1') Company Name
Xerone IT
$this->config->item('institute_address2') Company Address
Holding No. 127, 1st Floor, Gonok Para
$this->config->item('institute_mobile') Company Mobile Number
01729853645
$this->config->item('institute_email') Company Email Address
support@XeroIni.com
$this->config->item('display_video_block') Returns ‘0’ or ‘1’
‘0’ means Promo video or Tutorial video block will not be displayed.
‘1’ means Promo or Tutorial video block will be displayed.>
$this->config->item('custom_video') Returns video tutorial list in php array format.

Array
(
[0] => Array
    (
        [0] =>https://demo.XeroIni.com/assets/site_new/img/tutorial/blog-1.jpg
        [1] => Facebook App Configuration
        [2] => https://www.youtube.com/watch?v=6jiNS_4CEug
    )

[1] => Array
    (
        [0] =>https://demo.XeroIni.com/assets/site_new/img/tutorial/blog-2.jpg
        [1] => Page Posting Feature
        [2] => https://www.youtube.com/watch?v=6jiNS_4CEug
    )

)

                                                            
0 = video thumbnail url
1 = video title
2 = youtube url for video tutorial

$this->config->item('promo_video') Returns youtube url for promo video.
https://www.youtube.com/watch?v=wogvTfRYKWw
$this->config->item('customer_review_video') Returns youtube url for customer review video.
https://www.youtube.com/watch?v=wogvTfRYKWw
$this->config->item('display_review_block') Returns ‘0’ or ‘1’
‘0’ means customer review block will not be displayed and ‘1’ means customer review block will be displayed.
$this->config->item('customer_review') Returns the review of customer in array format

Array
(
[0] => Array
    (
        [0] => Ava Adams
        [1] => Artist
        [2] => https://demo.XeroIni.com/assets/site_new/img/client/thumb-1.jpg
        [3] => Lorem ipsum sit amet, consectetur adipisicing elit. 
    ),

[1] => Array
    (
        [0] => John Roger
        [1] => Designer
        [2] => https://demo.XeroIni.com/assets/site_new/img/client/thumb-2.jpg
        [3] => Lorem ipsum sit amet, consectetur adipisicing elit.  consequuntur similique.
    )

)
                    
[0] = Reviewer name
[1] = Reviewer designation
[2] = Reviewer image url
[3] = Review content
$this->config->item('enable_signup_form') Returns ‘0’ or ‘1’
‘0’ means sign up button will not be displayed in landing page or login page.
‘1’ means sign up button will be displayed in landing page or login page.
$this->config->item('facebook') Returns the Facebook profile url.
https://www.facebook.com/xeroneitl
$this->config->item('twitter') Returns twitter profile url.
https://twitter.com/alaminJwel
$this->config->item('linkedin') Returns linkedin profile url.
https://www.linkedin.com/in/alaminjwel
$this->config->item('youtube') Returns youtube channel url.
https://www.youtube.com/xeroneit
$this->is_ad_enabled Returns true or false
true means advertises will be displayed.
false means advertises will not be displayed.
$this->is_ad_enabled1 Returns true or false.
true means 970x90 advertise will be displayed.
false means 970x90 advertise will not be displayed.
$this->ad_content1 Returns the content for 970x90 advertise.
<img src="https://via.placeholder.com/970x90">
$this->ad_content1_mobile Returns the content for 320x100 advertise that replaces 970x90 advertise in mobile devices.
<img src="https://via.placeholder.com/320x100">
$this->is_ad_enabled2 Returns true or false.
true means 300x250 advertise will be displayed.
false means 300x250 advertise will not be displayed.
$this->ad_content2 Returns the content for 300x250 advertise.
<<img src="https://via.placeholder.com/300x250">
$this->is_ad_enabled3 Returns true or false.
true means another 300x250 advertise will be displayed.
false means 300x250 another advertise will not be displayed.
$this->ad_content3 Returns the content for another 300x250 advertise.
<img src="https://via.placeholder.com/300x250">
$this->is_ad_enabled4 Returns true or false.
true means 300x600 advertise will be displayed.
false means 300x600 advertise will not be displayed.
$this->ad_content4 Returns the content for 300x600 advertise.
<img src="https://via.placeholder.com/300x600">
$pricing_table_data Returns the content for pricing tables as PHP array.
 

Array
(
[0] => Array
    (
        [id] => 1
        [package_name] => Trial
        [module_ids] => 1,2,3
        [monthly_limit] => {"1":"1","2":"1","3":"1"}
        [bulk_limit] =>  {"1":"0","2":"0","3":"0"}
        [price] => 12
        [validity] => 28
        [validity_extra_info] => 4,W
        [is_default] => 0
        [visible] => 1
        [highlight] => 0
        [deleted] => 0
    )

[1] => Array
    (
        [id] => 2
        [package_name] => Everything
        [module_ids] => 1,2,3
        [monthly_limit] => {"1":"0","2":"0","3":"0"}
        [bulk_limit] =>  {"1":"0","2":"0","3":"0"}
        [price] => 12
        [validity] => 28
        [validity_extra_info] => 4,W
        [is_default] => 0
        [visible] => 1
        [highlight] => 0
        [deleted] => 0
    )
)


You can access the array and print package modules using list like below :
 
<ul>
<?php 
    $module_ids=$pack["module_ids"];
    $monthly_limit=json_decode($pack["monthly_limit"],true);
    $module_names_array=$this->basic->execute_query('SELECT module_name,id FROM modules WHERE FIND_IN_SET(id,"'.$module_ids.'") > 0  ORDER BY module_name ASC');

    foreach ($module_names_array as $row) : ?>
    <li>
        <i class="fas fa-circle"></i>&nbsp;
        <?php 
        $limit=0;
        $limit=$monthly_limit[$row["id"]];

        if($limit=="0")
        $limit2="<b>".$this->lang->line("unlimited")."</b>";
        else$limit2=$limit;

        echo $this->lang->line($row["module_name"]);
        echo " : <b>". $limit2."</b>"."<br>";
        ?>
    </li>
    <?php 
    endforeach; 
?>
</ul>
        
        
Page Links

You can print them inside php tag like

<?php  echo base_url('home/login'); ?>

Tag or assign to a PHP varibale like

<?php $login_url = base_url('home/login'); ?> 
Page Name URL to use
login.php base_url('home/login')
sign_up.php base_url('home/sign_up')
account_activation.php base_url('home/account_activation')
forgot_password.php base_url('home/forgot_password')
password_recovery.php base_url('home/password_recovery')
credential_check.php base_url('home/credential_check')
privacy_policy.php base_url('home/privacy_policy')
terms_use.php base_url('home/terms_use')
gdpr.php base_url('home/gdpr')
Load CSS and JS Files

In order to load your .css (resides in css folder) or .js (resides in js folder) file you have to use the following formats

<link href="<?php echo base_url('home/xit_load_files/FOLDER_NAME/CSS_FILE_NAME'); ?>" rel="stylesheet">
<script src="<?php echo base_url('home/xit_load_files/FOLDER_NAME/JS_FILE_NAME'); ?>"></script>

Replace FOLDER_NAME, CSS_FILE_NAME, JS_FILE_NAME with your corresponding folder and file names.

Load Image
You can load your image file by calling a function like below :
<img src="<?php echo xit_load_images('FOLDER_NAME/IMAGE_FILE_NAME'); ?>">
* Replace FOLDER_NAME, IMAGE_FILE_NAME with your corresponding folder and file names.
Activating Theme

You can activate/delete theme from System > Theme Manager Menu

Development Purchase Codes

Since you will develop and test theme in your localhost, we are providing purchase codes for development environment.

Tips

We recommend not to change any form elements into the files login.php, sign_up.php and contact form in index.php file. If you want to change form’s outlook then we recommend to write css for the form elements.

Notes

The default menus can’t be changed, for it can mess up the whole system.

Check Update (Only Admin)

This section displays your application and add-ons versions. If any update is released from our end then you will see them here. You can update your application and add-ons from here.

Subcription

Here you will find all the subscription related settings. This section is devided into six sub-section.

  1. Package Manager
  2. User Manager
  3. Announcement
  4. Payment Accounts
  5. Earning Summary
  6. Transaction Log
Package Manager (Only Admin)

  1. In this section you will find all the packages you have created so far. By default there is a "Trail" package. You can not delete this package. If you do not want a trial then edit deafult package's validity to 0 (zero). If you do not want to take money from users then edit the default package's price to "Free".
  2. You can add your desired package by clicking the button New Package on this page. After clicking this button you will be redirected to another page where you will create your desired package for your user.
  3. Fill the necessary information for createing a package and check the modules which will be included in your package. Here you will find some modules are checked by default and you can't uncheck them. You can aslo specify modules Usage Limit and Bulk Limit.
  4. Suppose you want to create a package named "basic" which validity will be 30days, price will be EUR 10 and you want to assign specific modules for this package. In this case you are lucky!! You can add unlimited packages you want including price,validity and modules. You can also put monthly analysis limit each module when you create a package. While you assign limits, 0 (zero) means unlimited.
User Manager (Only Admin)

  1. This section displays all the users on your application. There are various information about your user. You can edit, delete, change password and see all the activities of every users.
  2. You can add new user by clicking the button New User on the top. When you will click this button you will be redirected on a new page. There you can create a new user by filling the necessary information. You can specify package and expiry date of a user when you create.
  3. You can send mail to your users by selecting them from the list. This option will be found after clicking the Options button. This button is located on the top of the list of users. You can also see Login Log and System Dashboard (Extended) by clicking corresponding button.
Announcement (Only Admin)

  1. This section of your settings helps you to show notification to all your users using this system. You can create notification by clicking the button New Announcement on the top. This button will redirect you to a new page. There you can create a new notification. You can keep it published or as draft.
  2. Here, you will also mark single anouncement as read or mark all the notifications as read. There are some filters and you can you can also search your notification.
Payment Accounts (Only Admin & Extended License)

XeroIni Supports multiple payment gateways. Using the payment gateways, you can take payments from your end-users. To enable the payment gateways, you have to provide your credentials for the payment gateways.

Also, you can enable manual payment. In this case, you have to write manual payment instructions on how your end-users will pay you manually.

Of course, you can select your currency here.

Earning Summary (Only Admin & Extended License)

This section will show your earning summary. You can see your Life Time Earning, Current Month Earning, Current Year Earning, Earning comparison of consicutive last two years and Top countries of consicutive last two years.

Transaction Log (Only Admin & Extended License )

Here you will find all the transaction occured by your users. You can filter your result by choosing the date range by clicking the button placing on the top of the tansaction list named Choose Date

Manual Payments (Only Admin & Extended License)

If you want to take manual payment from the user then set instruction for manual payment the user can find the details about how they pay to you. After the Manual payment user given it will show pending, until admin approved the manual payment from the user.