コード例 #1
0
ファイル: KY.php プロジェクト: Kalianey/kybackup
 static function init()
 {
     self::$text = Text::sharedInstance();
     self::$route = Route::sharedInstance();
     self::$database = Database::sharedInstance();
     self::$view = View::sharedInstance();
 }
コード例 #2
0
ファイル: job.php プロジェクト: Kalianey/kybackup
function run($params)
{
    $id = (int) $params['id'];
    $url = KY::getRoute()->urlForRoute("job.curlbackup", array('id' => $id));
    $cmd = "curl " . $url . " >> backup-in-background.log &";
    system($cmd);
    header("Location: " . KY::getRoute()->urlForRoute('home'));
    die;
}
コード例 #3
0
ファイル: db.php プロジェクト: Kalianey/kybackup
function addShowTables()
{
    $host = $_POST['host'];
    $user = $_POST['user'];
    $pass = $_POST['pass'];
    $database = $_POST['database'];
    $prefix = $_POST['prefix'];
    $rows = ModelDb::sharedInstance()->showTables($host, $user, $pass, $database, $prefix);
    $params = array('rows' => $rows);
    KY::getView()->draw('db.add.showtables', $params);
}
コード例 #4
0
ファイル: path.php プロジェクト: Kalianey/kybackup
function addShowFiles()
{
    echo "<script>\n";
    echo "var checkedValue = '';";
    echo "\$('.checkbox').change(function() { if(this.checked) { checkedValue = this.val();} });";
    echo "\$('.ignored').append( checkedValue );";
    echo "</script>\n";
    echo "</head>\n";
    $currentDir = exec('pwd', $return);
    $dir = $_POST['path'];
    $ignored = array_map('trim', explode(",", $_POST['ignored']));
    $res = scandir($dir, 1);
    if (!$res) {
        echo "The path is not correct, please try again. For example, the path of the current file is: {$currentDir}";
    } else {
        $result = array();
        foreach ($res as $key => $value) {
            if ($value === '.' || $value === '..' || in_array($value, $ignored)) {
                continue;
            }
            if (is_dir($dir . '/' . $value)) {
                //code to use if directory
                $result['folders'][] = $value;
            } else {
                $result['files'][] = $value;
            }
        }
        foreach ($result as $k => $r) {
            echo '<h3 style="text-transform:capitalize;">' . $k . ': ' . count($r) . '</h3>';
            echo '<ul>';
            for ($i = 0; $i < count($r); $i++) {
                echo '<li style="list-style-type:none;"><input class="checkbox" type="checkbox" value="' . $r[$i] . '" />' . $r[$i] . '</li>';
            }
            echo '</ul>';
        }
    }
    echo 'Do you wish to exclude other files or folders?';
    echo '<form method="POST" action="' . KY::getRoute()->urlForRoute('path.add.save') . '">';
    echo '<input type="hidden" name="path" value="' . $_POST['path'] . '"/>';
    echo '<input id="ignored" type="input" name="ignored" value="' . $_POST['ignored'] . '"/><br/>';
    echo '<input type="submit" name="submit" value="Save"/>';
    echo '</form>';
}
コード例 #5
0
ファイル: job.add.form.php プロジェクト: Kalianey/kybackup
<?php

echo '<form method="POST" action="' . KY::getRoute()->urlForRoute('job.add.save') . '">';
echo '<fielset>';
echo 'Choose a name for this job:<br/>';
echo '<input type="text" name="name" value=""/><br/>';
echo '</fielset>';
echo '<fielset>';
echo 'Choose a database:<br/>';
foreach ($params['db'] as $db) {
    echo '<input type="checkbox" name="dbId" value="' . $db->id . '">' . $db->dbname . '<br/>';
}
echo '</fielset>';
echo '<fielset>';
echo 'Choose a path:<br/>';
foreach ($params['path'] as $path) {
    echo '<input class="checkbox" type="checkbox" name="pathId" value="' . $path->id . '">' . $path->path . '<br/>';
}
echo '</fielset>';
echo '<fielset>';
echo 'Choose a recurrence:<br/>';
echo '<select name="recurrence">';
echo '<option value="never">Never</option>';
echo '<option value="daily">Daily</option>';
echo '<option value="weekly">Weekly</option>';
echo '<option value="weekly">Monthly</option>';
echo '</select>';
echo '</fielset><br/>';
echo '<input type="submit" name="submit" value="Save"/>';
echo '</form>';
コード例 #6
0
ファイル: header.php プロジェクト: Kalianey/kybackup
<?php

$text = KY::getText();
$route = KY::getRoute();
$currentRoute = $route->getCurrentRoute();
?>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
    <head>
        <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script>
        <link rel="stylesheet" type="text/css" href="<?php 
echo $route->getBaseUrl();
?>
/static/styles.css">
            <title>KY BACKUP</title>

    </head>
    <body>
        <div id="container">

            <h1><?php 
echo '<a href="' . $route->urlForRoute('home') . '">' . $text->textForKey('title') . '</a></h1>';
?>
                <p class="byline">by <strong><a href="http://www.kalianey.com" target="_blank"/>Kalianey</a></strong></p>
    
<?php 
echo '<div class="main_menu">';
echo '<ul>';
echo '<li><a href="' . $route->urlForRoute('home') . '">' . $text->textForKey('home') . '</a></li>';
echo '<li><a href="' . $route->urlForRoute('job.index') . '">' . $text->textForKey('jobs') . '</a>';
コード例 #7
0
ファイル: db.add.form.php プロジェクト: Kalianey/kybackup
<?php

echo '<form method="POST" action="' . KY::getRoute()->urlForRoute('db.add.showtables') . '">';
echo '<table>';
echo '<tr>';
echo '<td>Host:</td>';
echo '<td><input type="text" name="host" value="localhost"/></td>';
echo '</tr>';
echo '<tr>';
echo '<td>User:</td>';
echo '<td><input type="text" name="user" value="kalianey_bandcka"/></td>';
echo '</tr>';
echo '<tr>';
echo '<td>Password:</td>';
echo '<td><input type="password" name="pass" value="Fxvcoar123"/></td>';
echo '</tr>';
echo '<tr>';
echo '<td>Database:</td>';
echo '<td><input type="text" name="database" value="kalianey_bandc1"/></td>';
echo '</tr>';
echo '<tr>';
echo '<td>Prefix <i>(if any)</i>:</td>';
echo '<td><input type="text" name="prefix" value=""/></td>';
echo '</tr>';
echo '</table>';
echo '<td><input type="submit" name="submit" value="Test"/></td>';
echo '</form>';
コード例 #8
0
ファイル: model_job_conf.php プロジェクト: Kalianey/kybackup
 function deleteAssociatedJob($id, $entityType)
 {
     $sql = "DELETE FROM ky_kybackup_job_configuration WHERE " . $entityType . "Id=" . $id;
     KY::getDB()->query($sql);
 }
コード例 #9
0
ファイル: model.php プロジェクト: Kalianey/kybackup
 function __construct()
 {
     $this->db = KY::getDB();
 }
コード例 #10
0
ファイル: db.index.php プロジェクト: Kalianey/kybackup
<?php

echo '<table>';
echo '<tr>';
echo '<td style="width: 80px;">Host</td>';
echo '<td style="width: 140px;">Username</td>';
echo '<td style="width: 140px;">DB Name</td>';
echo '<td style="width: 80px;">' . KY::getText()->textForKey('label.prefix') . '</td>';
echo '</tr>';
foreach ($params['rows'] as $row) {
    echo '<tr>';
    echo '<td>' . $row->host . '</td>';
    echo '<td>' . $row->username . '</td>';
    echo '<td>' . $row->dbname . '</td>';
    echo '<td>' . $row->prefix . '</td>';
    echo '<td><a class="button" href="' . KY::getRoute()->urlForRoute('db.delete', array('id' => $row->id)) . '">Delete</a></td>';
    echo '</tr>';
}
echo '</table>';
echo '</form>';
コード例 #11
0
ファイル: routes.php プロジェクト: Kalianey/kybackup
<?php

KY::getRoute()->addRoute('/', 'home', 'home', 'index');
KY::getRoute()->addRoute('/job', 'job.index', 'job', 'index');
KY::getRoute()->addRoute('/job/add', 'job.add', 'job', 'add');
KY::getRoute()->addRoute('/job/add/save', 'job.add.save', 'job', 'addSave');
KY::getRoute()->addRoute('/job/delete/:id', 'job.delete', 'job', 'delete');
KY::getRoute()->addRoute('/job/run/:id', 'job.run', 'job', 'run');
KY::getRoute()->addRoute('/job/curl-backup/:id', 'job.curlbackup', 'job', 'curlBackup');
KY::getRoute()->addRoute('/db', 'db.index', 'db', 'index');
KY::getRoute()->addRoute('/db/delete/:id', 'db.delete', 'db', 'delete');
KY::getRoute()->addRoute('/db/add', 'db.add', 'db', 'addForm');
KY::getRoute()->addRoute('/db/add/showtables', 'db.add.showtables', 'db', 'addShowTables');
KY::getRoute()->addRoute('/db/add/save', 'db.add.save', 'db', 'addSave');
KY::getRoute()->addRoute('/path', 'path.index', 'path', 'index');
KY::getRoute()->addRoute('/path/add', 'path.add', 'path', 'addForm');
KY::getRoute()->addRoute('/path/add/showfiles', 'path.add.showfiles', 'path', 'addShowFiles');
KY::getRoute()->addRoute('/path/add/save', 'path.add.save', 'path', 'addSave');
KY::getRoute()->addRoute('/path/delete/:id', 'path.delete', 'path', 'delete');
コード例 #12
0
ファイル: path.add.form.php プロジェクト: Kalianey/kybackup
<?php

echo '<form method="POST" action="' . KY::getRoute()->urlForRoute('path.add.showfiles') . '">';
echo '<table>';
echo '<tr>';
echo '<td>Path:</td>';
echo '<td><input type="text" name="path" value="/Applications/XAMPP/xamppfiles/htdocs/backup"/></td>';
echo '</tr>';
echo '<tr>';
echo '<td>Files and folders to ignore (separated by a comma):</td>';
echo '<td><input type="text" name="ignored" value=""/></td>';
echo '</tr>';
echo '</table>';
echo '<td><input type="submit" name="submit" value="Test"/></td>';
echo '</form>';
コード例 #13
0
ファイル: route.php プロジェクト: Kalianey/kybackup
 function getCurrentRoute()
 {
     $urlQuery = isset($_GET[$this->urlVarName]) ? $_GET[$this->urlVarName] : '/';
     $currentRoute = KY::getRoute()->routeByUrl($urlQuery);
     return $currentRoute;
 }
コード例 #14
0
ファイル: backup.php プロジェクト: Kalianey/kybackup
 public function backupFiles($path, $ignored)
 {
     $backupdir = './ky_backups/';
     if (!is_dir($backupdir)) {
         mkdir($backupdir, 0777, true);
     }
     $date = date('Y-m-d_His');
     $filename = $backupdir . 'file-backup_' . $date . ".zip";
     $ignoredArray = array_map('trim', explode(",", $ignored));
     $exclude = "-x ky_backups/* ";
     //here need to exclude full folder
     for ($i = 0; $i < count($ignoredArray); $i++) {
         $exclude .= '-x ' . $ignoredArray[$i] . '/* ';
     }
     $logfile = './last_backup_file.log';
     $cmd = "zip -r {$filename} ./ {$exclude}";
     system('echo "[' . $date . '] BACK START --------------------------------------" > ' . $logfile);
     system($cmd . ' >> ' . $logfile);
     system('echo "[' . $date . '] BACK FINISH -------------------------------------" >> ' . $logfile);
     echo 'Done! Files Backup completed: `' . KY::getRoute()->getBaseUrl() . $filename . '`<br/>';
     return KY::getRoute()->getBaseUrl() . $filename;
 }
コード例 #15
0
ファイル: index.php プロジェクト: Kalianey/kybackup
<?php

include 'config.php';
KY::init();
KY::getText()->setLanguage($language);
KY::getDB()->connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db);
KY::getView()->setBasePath($viewPath);
KY::getRoute()->setBaseUrl($baseurl);
KY::getRoute()->setUrlVar($urlVarName);
include 'routes.php';
KY::getView()->draw('header');
$currentRoute = KY::getRoute()->getCurrentRoute();
KY::getRoute()->loadRoute($currentRoute);