Subversion Repositories cheapmusic

Rev

Blame | Last modification | View Log | RSS feed

<?php

/***************************************************************************
 *   Copyright (C) 2009-2011 by Geo Varghese(www.seopanel.in)              *
 *   sendtogeo@gmail.com                                                                                                   *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/

class Install {
        
        # func to check requirements
        function checkRequirements($error=false) {              
                
                $phpClass = "red";
                $phpSupport = "No";
                $phpVersion = phpversion();
                if (intval($phpVersion) >= 5) {                 
                        $phpClass = "green";
                        $phpSupport = "Yes";
                }
                $phpSupport .= " ( PHP $phpVersion )";
                
                $mysqlClass = "red";
                $mysqlSupport = "No";
                if(function_exists('mysql_query') || function_exists('mysqli_query')){
                        $mysqlSupport = "Yes";
                        $mysqlClass = "green";
                }
                
                $curlClass = "red";
                $curlSupport = "No";
                if(function_exists('curl_version')){
                        $version = curl_version();
                        $curlSupport = "Yes ( CURL  {$version['version']} )";
                        $curlClass = "green";
                }
                
                /*$shorttagClass = "red";
                $shorttagSupport = "Disabled";
                if(ini_get('short_open_tag')){
                        $shorttagSupport = "Enabled";
                        $shorttagClass = "green";
                }*/
                
                $gdClass = "red";
                $gdSupport = "No";
                if(function_exists('gd_info')){
                        $version = gd_info();
                        $gdSupport = "Yes ( GD  {$version['GD Version']} )";
                        $gdClass = "green";
                }
                
                $configClass = "red";
                $configSupport = "Not found";
                $configFile = SP_INSTALL_CONFIG_FILE;
                if(file_exists($configFile)){
                        
                        include_once(SP_INSTALL_CONFIG_FILE);
                        if(defined('SP_INSTALLED')){
                                die("<p style='color:red'>Seo Panel version ".SP_INSTALLED." is already installed in your system!</p>");
                        }
                        
                        $configSupport = "Found, Unwritable<br><p class='note'><b>Command:</b> chmod 666 config/sp-config.php</p>";
                        if(is_writable($configFile)){                           
                                $configSupport = "Found, Writable";                             
                                $configClass = "green";
                        }                       
                }
                
        
                $tmpClass = "red";
                $tmpSupport = "Not found";
                $tmpFile = SP_INSTALL_DIR.'/../tmp';
                if(file_exists($tmpFile)){
                        $tmpSupport = "Found, Unwritable<br><p class='note'><b>Command:</b> chmod -R 777 tmp/</p>";
                        if(is_writable($tmpFile)){                              
                                $tmpSupport = "Found, Writable";                                
                                $tmpClass = "green";
                        }                       
                }
                
                $errMsg = "";
                if($error){
                        if( ($phpClass == 'red') || ($mysqlClass == 'red') || ($curlClass == 'red') || ($shorttagClass == 'red') || ($configClass == 'red') ){
                                $errMsg = "Please fix the following errors to proceed to next step!";
                        }
                }
                
                ?>
                <h1 class="BlockHeader">Welcome to Seo panel Installation</h1>
                <form method="post">
                <table width="100%" cellspacing="8px" cellpadding="0px" class="formtab">
                        <tr><th colspan="2" class="header">Installation compatibility</th></tr>
                        <tr><td colspan="2" class="error"><?php echo $errMsg;?></td></tr>
                        <tr>
                                <th>PHP version >= 5.4.0</th>
                                <td class="<?php echo $phpClass;?>"><?php echo $phpSupport;?></td>
                        </tr>
                        <tr>
                                <th>MySQL Support</th>
                                <td class="<?php echo $mysqlClass;?>"><?php echo $mysqlSupport;?></td>
                        </tr>
                        <tr>
                                <th>CURL Support</th>
                                <td class="<?php echo $curlClass;?>"><?php echo $curlSupport; ?></td>
                        </tr>
                        <?php /* ?>
                        <tr>
                                <th>PHP short_open_tag</th>
                                <td class="<?php echo $shorttagClass;?>"><?php echo $shorttagSupport; ?></td>
                        </tr>
                        <?php */ ?>
                        <tr>
                                <th>GD graphics support</th>
                                <td class="<?php echo $gdClass;?>"><?php echo $gdSupport; ?></td>
                        </tr>
                        <tr>
                                <th>/config/sp-config.php</th>
                                <td class="<?php echo $configClass;?>"><?php echo $configSupport; ?></td>
                        </tr>
                        <tr>
                                <th>/tmp</th>
                                <td class="<?php echo $tmpClass;?>"><?php echo $tmpSupport; ?></td>
                        </tr>
                </table>
                <input type="hidden" value="<?php echo $phpClass;?>" name="php_support">
                <input type="hidden" value="<?php echo $mysqlClass;?>" name="mysql_support">
                <input type="hidden" value="<?php echo $curlClass;?>" name="curl_support">
                <?php /* ?><input type="hidden" value="<?php echo $shorttagClass;?>" name="short_open_tag"><?php */ ?>
                <input type="hidden" value="<?php echo $configClass;?>" name="config">
                <input type="hidden" value="startinstall" name="sec">
                <input type="submit" value="Proceed to next step >>" name="submit" class="button">
                </form>
                <?php
        }
        
        # func to start installation
        function startInstallation($info='', $errMsg='') {
                if( ($info['php_support'] == 'red') || ($info['mysql_support'] == 'red') || ($info['curl_support'] == 'red')
                || ($info['config'] == 'red') ){
                        $this->checkRequirements(true);
                        return;
                }
                ?>
                <h1 class="BlockHeader">Database Settings</h1>
                <form method="post">
                <table width="100%" cellspacing="8px" cellpadding="0px" class="formtab">
                        <tr><th colspan="2" class="header">Database configuration</th></tr>
                        <tr><td colspan="2" class="error"><?php echo $errMsg;?></td></tr>
                        <tr>
                                <th>Database type:</th>
                                <td>
                                        <select name="db_engine">
                                                <option value="mysql">MySQL</option>
                                        </select>
                                </td>
                        </tr>
                        <tr>
                                <th>Database server hostname:</th>
                                <td><input type="text" name="db_host" value="<?php echo empty($info['db_host']) ? "localhost" : $info['db_host'];?>"></td>
                        </tr>
                        <tr>
                                <th>Database name:</th>
                                <td><input type="text" name="db_name" value="<?php echo $info['db_name'];?>"></td>
                        </tr>
                        <tr>
                                <th>Database username:</th>
                                <td><input type="text" name="db_user" value="<?php echo $info['db_user'];?>"></td>
                        </tr>
                        <tr>
                                <th>Database password:</th>
                                <td><input type="text" name="db_pass" value="<?php echo $info['db_pass'];?>"></td>
                        </tr>
                        <tr>
                                <th>Admin email address:</th>
                                <td><input type="text" name="email" value="<?php echo $info['email'];?>"></td>
                        </tr>
                </table>                
                <input type="hidden" value="proceedinstall" name="sec">         
                <input type="submit" value="Proceed to next step >>" name="submit" class="button">
                </form>
                <?php           
        }
        
        # func to write to config file
        function writeConfigFile($info) {
                
                $handle = fopen(SP_INSTALL_CONFIG_SAMPLE, "r");
                $cfgData = fread($handle, filesize(SP_INSTALL_CONFIG_SAMPLE));
                fclose($handle);
                
                
                $search = array('[SP_WEBPATH]', '[DB_NAME]', '[DB_USER]', '[DB_PASSWORD]', '[DB_HOST]', '[DB_ENGINE]');
                $replace = array($info['web_path'], $info['db_name'], $info['db_user'], $info['db_pass'], $info['db_host'], $info['db_engine'] );
                $cfgData = str_replace($search, $replace, $cfgData);
                
                $handle = fopen(SP_INSTALL_CONFIG_FILE, "w");
                fwrite($handle, $cfgData);
                fclose($handle);
        }
        
        function getWebPath(){
            
            // to fix the issue with IIS
            if (!isset($_SERVER['REQUEST_URI'])) {
            $_SERVER['REQUEST_URI'] = substr($_SERVER['PHP_SELF'], 1 );
            if (isset($_SERVER['QUERY_STRING'])) {
                $_SERVER['REQUEST_URI'].='?'.$_SERVER['QUERY_STRING'];
            }
        }           
            
                $reqUrl = $_SERVER['REQUEST_URI'];
                $count = 0;
                $reqUrl = preg_replace('/\/install\/$/i', '', $reqUrl, 1, $count);              
                if(empty($count)){
                        $reqUrl = preg_replace('/\/install\/index.php$/i', '', $reqUrl, 1, $count);
                        if(empty($count)){
                                $reqUrl = preg_replace('/\/install$/i', '', $reqUrl, 1, $count);
                                if(empty($count)) return false;
                        }
                }               
                
                // find protocol of the server to get seo panel installation url
                if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
                isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
                        $protocol = 'https://';
                } else {
                        $protocol = 'http://';
                }
                
                $port = empty($_SERVER['SERVER_PORT']) ?  "" : (int) $_SERVER['SERVER_PORT'];
                $host =  strtolower($_SERVER['HTTP_HOST']);
                if(!empty($port) && ($port <> 443) && ($port <> 80)){
                        if(strpos($host, ':') === false){ $host .= ':' . $port; }
                }
                $webPath = $protocol.$host.$reqUrl;
                return $webPath;
        }
        
        # func to proceed installation
        function proceedInstallation($info) {
                
                // if mysqli function exists
                $db = function_exists('mysqli_query') ? New DBI() : New DB();
                
                # checking db settings
                $errMsg = $db->connectDatabase($info['db_host'], $info['db_user'], $info['db_pass'], $info['db_name']);
                if($db->error ){
                        $this->startInstallation($info, $errMsg);
                        return;
                }
                
                # checking config file settings
                if(!is_writable(SP_INSTALL_CONFIG_FILE)){
                        $this->checkRequirements(true);
                        return;
                }       
                
                # checking seo panel web path
                $info['web_path'] = $this->getWebPath();
                if(empty($info['web_path'])){
                        $errMsg = "Error occured while parsing installation url. Please <a href='https://www.seopanel.org/contact/' target='_blank'>contact</a> Seo Panel team.<br> or <br> Try manual installation by steps specified in <a href='http://www.seopanel.org/install/manual/' target='_blank'>http://www.seopanel.org/install/manual/</a>";
                        $this->startInstallation($info, $errMsg);
                        return;
                }

                # importing data to db
                $errMsg = $db->importDatabaseFile(SP_INSTALL_DB_FILE);
                if($db->error ){
                        $errMsg = "Error occured while importing data: ". $errMsg;
                        $this->startInstallation($info, $errMsg);
                        return;
                }
                
                # importing text file
                $errMsg = $db->importDatabaseFile(SP_INSTALL_DB_LANG_FILE);
                if($db->error ){
                        $errMsg = "Error occured while importing data: ". $errMsg;
                        $this->startInstallation($info, $errMsg);
                        return;
                }
                
                # write to config file
                $this->writeConfigFile($info);
                
                # create API Key if not exists
                $this->createSeoPanelAPIKey($db);               
                
                if(gethostbynamel('seopanel.in')){
                        include_once SP_INSTALL_DIR.'/../libs/spider.class.php';
                        include_once(SP_INSTALL_CONFIG_FILE);
                        $installUpdateUrl = "https://www.seopanel.org/installupdate.php?url=".urlencode($info['web_path'])."&ip=".$_SERVER['SERVER_ADDR']."&email=".urlencode($info['email']);
                        $installUpdateUrl .= "&version=".SP_INSTALLED;
                        $spider = New Spider();
                        $spider->getContent($installUpdateUrl, false, false);
                }
                
                $db = function_exists('mysqli_query') ? New DBI() : New DB();
                $db->connectDatabase($info['db_host'], $info['db_user'], $info['db_pass'], $info['db_name']);
                
                // update email for admin
                $sql = "update users set email='".addslashes($info['email'])."' where id=1";
                $db->query($sql);
                
                // select languages list
                $sql = "select * from languages where translated=1";
                $langList = $db->select($sql);

                // select timezones
                $sql = "select * from timezone order by id";
                $timezoneList = $db->select($sql);
                ?>              
                <form method="post" action="<?php echo $info['web_path']."/login.php"; ?>">
                <h1 class="BlockHeader">Seo Panel Installation Success</h1>
                <table width="100%" cellspacing="8px" cellpadding="0px" class="formtab">
                        <tr><th colspan="2" class="headersuccess">Seo Panel installed successfully!</th></tr>
                        <tr>
                                <td class="warning" colspan="2">Warning!</td>
                        </tr>
                        <tr>
                                <td style="border: none;" colspan="2">
                                        <ul class="list">
                                                <li> Please change permission of config file <b><?php echo SP_CONFIG_FILE;?></b> to avoid security issues.</li>
                                                <li>Please remove installation directory <b>install</b> to avoid security issues.</li>
                                        </ul>
                                </td>
                        </tr>
                        <tr>
                                <td class="warning" style="color:black;" colspan="2">Admin Login</td>
                        </tr>
                        <tr>
                                <td style="border-left: none;">Default Language:</td>
                                <td>
                                        <select name="lang_code">
                                <?php
                                foreach ($langList as $langInfo) {
                                        $selected = ($langInfo['lang_code'] == 'en') ? "selected" : "";
                                        ?>                      
                                        <option value="<?php echo $langInfo['lang_code']?>" <?php echo $selected?>><?php echo $langInfo['lang_name']?></option>
                                        <?php
                                }
                                ?>
                        </select>
                                </td>
                        </tr>
                        <tr>
                                <td style="border-left: none;">Default Time Zone:</td>
                                <td>
                                        <select name="time_zone" style="width: 260px;">
                                <?php
                                $listInfo['set_val'] = ini_get('date.timezone');
                                foreach ($timezoneList as $timezoneInfo) {
                                        $selected = (trim($timezoneInfo['timezone_name']) == $listInfo['set_val']) ? 'selected="selected"' : "";
                                        ?>
                                        <option value="<?php echo $timezoneInfo['timezone_name']?>" <?php echo $selected?> ><?php echo $timezoneInfo['timezone_label']?></option>
                                        <?php
                                }
                                ?>
                        </select>
                                </td>
                        </tr>
                        <tr>
                                <td style="border: none;font-weight: normal;font-size: 13px;" colspan="2">
                                        <b>Username:</b> <?php echo SP_ADMIN_USER?><br>
                                        <b>Password:</b> <?php echo SP_ADMIN_PASS?><br><br>
                                        <b>Note:</b> Please change password of admin after first login.
                                </td>
                        </tr>
                </table>
                <input type="hidden" name="sec" value="login">
                <input type="hidden" name="userName" value="spadmin">
                <input type="hidden" name="password" value="spadmin">
                <input type="submit" value="Proceed to admin login >>" name="submit" class="button">
                </form>
                <?php           
        }
        
        
        # func to check upgrade requirements
        function checkUpgradeRequirements($error=false, $errorMsg='') {

                $phpClass = "red";
                $phpSupport = "No";
                $phpVersion = phpversion();
                if (intval($phpVersion) >= 5) {                 
                        $phpClass = "green";
                        $phpSupport = "Yes";
                }
                $phpSupport .= " ( PHP $phpVersion )";
                
                $mysqlClass = "red";
                $mysqlSupport = "No";
                if(function_exists('mysql_query')|| function_exists('mysqli_query')){
                        $mysqlSupport = "Yes";
                        $mysqlClass = "green";
                }
                
                $curlClass = "red";
                $curlSupport = "No";
                if(function_exists('curl_version')){
                        $version = curl_version();
                        $curlSupport = "Yes ( CURL  {$version['version']} )";
                        $curlClass = "green";
                }
                
                /*
                $shorttagClass = "red";
                $shorttagSupport = "Disabled";
                if(ini_get('short_open_tag')){
                        $shorttagSupport = "Enabled";
                        $shorttagClass = "green";
                }*/
                
                $gdClass = "red";
                $gdSupport = "No";
                if(function_exists('gd_info')){
                        $version = gd_info();
                        $gdSupport = "Yes ( GD  {$version['GD Version']} )";
                        $gdClass = "green";
                }               
                        
                $tmpClass = "red";
                $tmpSupport = "Not found";
                $tmpFile = SP_INSTALL_DIR.'/../tmp';
                if(file_exists($tmpFile)){
                        $tmpSupport = "Found, Unwritable<br><p class='note'><b>Command:</b> chmod -R 777 tmp/</p>";
                        if(is_writable($tmpFile)){                              
                                $tmpSupport = "Found, Writable";                                
                                $tmpClass = "green";
                        }                       
                }
                
                $configClass = "red";
                $configSupport = "Not found";
                $configFile = SP_INSTALL_CONFIG_FILE;
                if(file_exists($configFile)){
                        $configSupport = "Found";                               
                        $configClass = "green";
                }

                $dbClass = "red";
                $dbSupport = "Database config variables not defined";
                include_once(SP_INSTALL_CONFIG_FILE);
                if(defined('DB_HOST') && defined('DB_NAME') && defined('DB_USER') && defined('DB_PASSWORD') && defined('DB_ENGINE')){
                        $db = function_exists('mysqli_query') ? New DBI() : New DB();
                        
                        $errMsg = $db->connectDatabase(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
                        if($db->error ){
                                $dbSupport = $errMsg;
                        }else{                          
                                $dbSupport = "Connected to database successfully";                              
                                $dbClass = "green";
                        }
                }               
                
                $errMsg = "";
                if($error){
                        if(empty($errorMsg)){
                                if( ($phpClass == 'red') || ($mysqlClass == 'red') || ($curlClass == 'red') 
                                || ($configClass == 'red') || ($dbClass == 'red') ){
                                        $errMsg = "Please fix the following errors to proceed to next step!";
                                }
                        }else{
                                $errMsg = $errorMsg;
                        }
                }
                
                ?>
                <h1 class="BlockHeader">Welcome to Seo panel Upgrade</h1>
                <form method="post">
                <table width="100%" cellspacing="8px" cellpadding="0px" class="formtab">
                        <tr><th colspan="2" class="header">Upgrade compatibility</th></tr>
                        <tr><td colspan="2" class="error"><?php echo $errMsg;?></td></tr>
                        <tr>
                                <th>PHP version >= 5.4.0</th>
                                <td class="<?php echo $phpClass;?>"><?php echo $phpSupport;?></td>
                        </tr>
                        <tr>
                                <th>MySQL Support</th>
                                <td class="<?php echo $mysqlClass;?>"><?php echo $mysqlSupport;?></td>
                        </tr>
                        <tr>
                                <th>CURL Support</th>
                                <td class="<?php echo $curlClass;?>"><?php echo $curlSupport; ?></td>
                        </tr>
                        <?php /*?>
                        <tr>
                                <th>PHP short_open_tag</th>
                                <td class="<?php echo $shorttagClass;?>"><?php echo $shorttagSupport; ?></td>
                        </tr>
                        <?php */ ?>
                        <tr>
                                <th>GD graphics support</th>
                                <td class="<?php echo $gdClass;?>"><?php echo $gdSupport; ?></td>
                        </tr>
                        <tr>
                                <th>/config/sp-config.php</th>
                                <td class="<?php echo $configClass;?>"><?php echo $configSupport; ?></td>
                        </tr>
                        <tr>
                                <th>Database</th>
                                <td class="<?php echo $dbClass;?>"><?php echo $dbSupport; ?></td>
                        </tr>
                        <tr>
                                <th>/tmp</th>
                                <td class="<?php echo $tmpClass;?>"><?php echo $tmpSupport; ?></td>
                        </tr>
                </table>
                <input type="hidden" value="<?php echo $phpClass;?>" name="php_support">
                <input type="hidden" value="<?php echo $mysqlClass;?>" name="mysql_support">
                <input type="hidden" value="<?php echo $curlClass;?>" name="curl_support">
                <?php /* ?><input type="hidden" value="<?php echo $shorttagClass;?>" name="short_open_tag"><?php */ ?>
                <input type="hidden" value="<?php echo $configClass;?>" name="config">
                <input type="hidden" value="<?php echo $dbClass;?>" name="db_support">
                <input type="hidden" value="proceedupgrade" name="sec">
                <?php $submitLabel = defined('SP_INSTALLED') ? "Upgrade to Seo Panel v.".SP_INSTALLED : "Upgrade Seo Panel"; ?>
                <input type="submit" value="<?php echo $submitLabel?> >>" name="submit" class="button">
                </form>
                <?php
        }
        
        function getUpgradeDBFiles($db) {
        
                $upgradeFileList = array();
                $spVersionList = array(
                        '3.8.0',
                        '3.9.0',
                        '3.10.0',
                        '3.11.0',
                        '3.12.0',
                        '3.13.0',
                        '3.14.0',
                        '3.15.0',
                        '3.16.0',
                        '3.17.0',
                        '3.18.0',
                        '4.0.0',
                        '4.1.0',
                        '4.2.0',
                        '4.3.0',
                        '4.4.0',
                );
                
                // get current version number
                $sql = "Select set_val from settings where set_name='SP_VERSION_NUMBER'";
                $versionInfo = $db->select($sql, true);
                $currentVersion = !empty($versionInfo['set_val']) ? $versionInfo['set_val'] : '3.8.0';
                
                // if current version is set
                if ($currentVersion) {
                        
                        $index = array_search($currentVersion, $spVersionList);
                        $lastIndex = count($spVersionList) - 1;
                
                        // if it is not last index value
                        if ($index != $lastIndex) {
                                $prevIndex = $index;
                        
                                // loop through the versions
                                for ($i = $index + 1; $i <= $lastIndex; $i++) {
                                        $upgradeFileList[] = SP_INSTALL_DIR . "/data/upgrade_v$spVersionList[$prevIndex]_v$spVersionList[$i].sql";
                                        $prevIndex = $i;
                                }
                                
                        }
                        
                }
                
                $upgradeFileList[] = SP_UPGRADE_DB_FILE;
                return $upgradeFileList;
                
        }
        
        function proceedUpgrade($info=''){ 
                if( ($info['php_support'] == 'red') || ($info['mysql_support'] == 'red') || ($info['curl_support'] == 'red')
                || ($info['config'] == 'red') || ($info['db_support'] == 'red')){
                        $this->checkUpgradeRequirements(true);
                        return;
                }               
                
                include_once(SP_INSTALL_CONFIG_FILE);
                $db = function_exists('mysqli_query') ? New DBI() : New DB();
                
                // check database connection
                $errMsg = $db->connectDatabase(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
                if($db->error){
                        $this->checkUpgradeRequirements(true, $errMsg);
                        return;
                }
                
                // loop through upgrade files and import data to db
                $upgradeFileList = $this->getUpgradeDBFiles($db);
                foreach ($upgradeFileList as $dbFile) {
                        $errMsg = $db->importDatabaseFile($dbFile, false);
                }

                // importing text file
                $errMsg = $db->importDatabaseFile(SP_UPGRADE_DB_LANG_FILE, false);
                $_SESSION['text'] = "";
                
                # create API Key if not exists
                $this->createSeoPanelAPIKey($db);
                
                ?>
                <form method="post" action="<?php echo SP_WEBPATH."/login.php"; ?>">
                <h1 class="BlockHeader">Success Seo Panel v.<?php echo SP_INSTALLED;?> Upgrade</h1>
                <table width="100%" cellspacing="8px" cellpadding="0px" class="formtab">
                        <tr><th colspan="2" class="headersuccess">Seo Panel upgraded successfully!</th></tr>
                        <tr>
                                <td class="warning">Warning!</td>
                        </tr>
                        <tr>
                                <td style="border: none;">
                                        <ul class="list">
                                                <li>Please remove installation directory <b>install</b> to avoid security issues.</li>
                                        </ul>
                                </td>
                        </tr>
                </table>                                
                <input type="submit" value="Proceed to admin login >>" name="submit" class="button">
                </form>
                <?php
        }
        
        
        # func to show default install header
        function showDefaultHeader() {
                ?>
                <html>
                        <head>
                                <meta content="text/html; charset=UTF-8" http-equiv="content-type" />
                                <link rel="shortcut icon" href="../images/favicon.ico" />
                                <title>Seo Panel installation interface</title>
                                <meta name="description" content="Seo Panel installation Steps to install seo control panel for managing seo of your sites.">
                                <link rel="stylesheet" type="text/css" href="install.css" media="all" />                                
                        </head>
                        <body>
                                <div class="installdiv">
                <?php           
        }
        
        # func to show default install footer
        function showDefaultFooter($content='') {
                ?>
                                </div>
                        </body>
                </html>
                <?php           
        }
        
        # function to create seo panel API Key
        function createSeoPanelAPIKey($db) {
            $sql = "Select id, set_val from settings where set_name='SP_API_KEY'";
            $apiInfo = $db->select($sql, true);

            if (empty($apiInfo['set_val'])) {
                $apiKey = rand(10000000, 100000000);
                $apiKey .= rand(10000000, 100000000);
                $apiKey .= rand(10000000, 100000000);
                $apiKey = md5($apiKey);
                
                if (empty($apiInfo['id'])) {
                    $sql = "Insert into settings(set_label,set_name,set_val,set_type) values('Seo Panel API Key', 'SP_API_KEY', '$apiKey', 'large')";
                } else {
                    $sql = "update settings set set_val='$apiKey' where set_name='SP_API_KEY'";
                }
                $apiInfo = $db->query($sql);
            }
        }           
}
?>