Exemple #1
0
// Load config from database
require_once INC_DIR . 'config.class.php';
$config = new Config();
date_default_timezone_set($config->timezone);
// Test wether an update should be done
if ($config->version !== Config::$versions[count(Config::$versions) - 1]) {
    require_once INC_DIR . 'update.php';
    update($config->version, Config::$versions[count(Config::$versions) - 1]);
    header('location: index.php');
    exit;
}
// Load Rain TPL
require_once INC_DIR . 'rain.tpl.class.php';
require_once INC_DIR . 'rewriting.class.php';
RainTPL::$tpl_dir = RELATIVE_TPL_DIR . $config->template;
RainTPL::$base_url = $config->base_url;
RewriteEngine::$rewrite_base = RainTPL::$base_url;
RainTPL::$rewriteEngine = new RewriteEngine();
$tpl = new RainTPL();
$tpl->assign('start_generation_time', microtime(true), RainTPL::RAINTPL_IGNORE_SANITIZE);
$tpl->assign('config', $config);
// CSRF protection
require_once INC_DIR . 'csrf.php';
// Sharing options
require_once INC_DIR . 'share.php';
// Manage users
require_once INC_DIR . 'users.php';
if (log_user_in() === false) {
    $error = array();
    $error['type'] = 'error';
    $error['title'] = 'Login error';
Exemple #2
0
/**
 * Proceed to Freeder installation.
 */
function install()
{
    global $default_timezone;
    $current_user = get_current_user();
    $tmp = install_dir('tmp');
    if (!empty($tmp)) {
        exit('Unable to create or write to tmp/ folder. Please check write permissions on this folder.');
    }
    $login = isset($_POST['login']) ? $_POST['login'] : '';
    $timezone = isset($_POST['timezone']) ? $_POST['timezone'] : $default_timezone;
    require_once INC_DIR . 'rain.tpl.class.php';
    require_once INC_DIR . 'rewriting.class.php';
    RainTPL::$tpl_dir = RELATIVE_TPL_DIR . DEFAULT_THEME . '/';
    RainTPL::$base_url = dirname($_SERVER['SCRIPT_NAME']) . '/';
    RewriteEngine::$rewrite_base = RainTPL::$base_url;
    RainTPL::$rewriteEngine = new RewriteEngine();
    $tpl = new RainTPL();
    $tpl->assign('start_generation_time', microtime(true), RainTPL::RAINTPL_IGNORE_SANITIZE);
    $tpl->assign('login', $login, RainTPL::RAINTPL_HTML_SANITIZE);
    $tpl->assign('timezone', $timezone, RainTPL::RAINTPL_HTML_SANITIZE);
    if ($err = RainTPL::$rewriteEngine->write_htaccess()) {
        $error = array();
        $error['type'] = 'error';
        $error['title'] = 'Permissions error';
        $error['content'] = 'Unable to create or write .htaccess file. Check the writing rights of Freeder root directory. The user who executes Freeder — ' . sanitize($current_user) . ' — should be able to write in this directory. You may prefer to create the .htaccess file on your own and allow ' . sanitize($current_user) . ' to write only in .htaccess instead of in the whole Freeder root.';
        $tpl->assign('error', $error, RainTPL::RAINTPL_IGNORE_SANITIZE);
    }
    if (!empty($_POST['login']) && !empty($_POST['password']) && !empty($_POST['confirm_password']) && !empty($_POST['timezone'])) {
        if ($_POST['confirm_password'] != $_POST['password']) {
            $error = array();
            $error['type'] = 'error';
            $error['title'] = 'Password mismatch';
            $error['content'] = 'Passwords do not match!';
        } else {
            $error = install_dir(DATA_DIR);
            if (empty($error)) {
                $error = install_db();
                if (empty($error)) {
                    $_SESSION['user'] = new stdClass();
                    $_SESSION['user']->login = $_POST['login'];
                    $_SESSION['is_admin'] = 1;
                    header('location: index.php');
                    exit;
                } else {
                    $tpl->assign('error', $error, RainTPL::RAINTPL_IGNORE_SANITIZE);
                }
            } else {
                $tpl->assign('error', $error, RainTPL::RAINTPL_IGNORE_SANITIZE);
            }
        }
    } else {
        if (isset($_POST['login'])) {
            $error = array();
            $error['type'] = 'error';
            $error['title'] = 'Incomplete installation form';
            $error['content'] = 'You must fill every field.';
            $tpl->assign('error', $error, RainTPL::RAINTPL_IGNORE_SANITIZE);
        }
    }
    $tpl->draw('install');
    exit;
}
Exemple #3
0
<?php

/*	Copyright (c) 2014 Freeder
 *	Released under a MIT License.
 *	See the file LICENSE at the root of this repo for copying permission.
 */
/**
 * This is a unit test file to check url rewriting.
 * Currently it only checks Rain TPL rewriting but it should also check Freeder's one when it will becom available.
 */
define('TESTING', 'raintpl');
// Defines what unit to test
define('INC_DIR', '../inc/');
if (TESTING == 'raintpl') {
    // Load Rain TPL
    require_once INC_DIR . 'rain.tpl.class.php';
    RainTPL::$tpl_dir = 'tpl_dir/';
    RainTPL::$base_url = 'base_url/';
    $tpl = new RainTPL();
    $tpl->draw('rewriting');
} else {
    if (TESTING == 'local') {
        require_once 'rewriting.inc.php';
        $html = file_get_contents('tpl_dir/rewriting.html');
        echo path_replace($html);
    }
}
Exemple #4
0
     if (!$feed["enabled"]) {
         continue;
     }
     // Update old feeds
     if (time() - $feed["last_checked"] >= 3600) {
         $client->execute('feed.update', ["feed_id" => $feed["id"]]);
     }
 }
 // Fetch entries
 $entries = $client->execute('item.list_unread');
 // Init RainTPL
 if (file_exists("tmp/") && is_writable("tmp/")) {
     require_once 'inc/rain.tpl.class.php';
     RainTPL::$tpl_dir = "tpl/zen/";
     RainTPL::$cache_dir = "tmp/";
     RainTPL::$base_url = $BASE_URL;
     $tpl = new RainTPL();
     $tpl->assign('start_generation_time', microtime(true), RainTPL::RAINTPL_IGNORE_SANITIZE);
 }
 function get_feed_from_entry($value, $feeds)
 {
     foreach ($feeds as $feed) {
         if ($value["feed_id"] == $feed["id"]) {
             return $feed;
         }
     }
     return null;
 }
 function get_entry_link($value)
 {
     return $value["url"];