<?php
/**
* @name Index.php
* @description This is the file which indexes the file!
* @package Punk Autoindex
* @author MobiHacK
* @copyright RockiTech Group
* @version 2.0
*/
require ('config.php');
$_index = new PAI_Template;
$_index->start('index');
$_index->set('layout', $_SESSION['view']);
if (isset($_GET['dir'], $_GET['dir'][0])) {
$_index->set('dir', htmlspecialchars($_GET['dir']));
} else {
$_index->set('dir', null);
}
if (strpos($config->filedir . $_index->get('dir'), '..') === true or is_dir($config->
filedir . $_index->get('dir')) === false or strpos($config->filedir . $_index->
get('dir'), '://') === true or $_index->get('dir') == './') {
$_index->set('dir', null);
}
$redirfile = $config->filedir . $_index->get('dir') . '/redirect.pai';
if (is_file($redirfile)) {
include ($redirfile);
header('Location: ' . $redir['url']);
die();
}
if (isset($_GET['sort'])) {
$_index->set('sort', intval($_GET['sort']));
} else
$_index->set('sort', 0);
if ($_index->get('sort') > 1 or $_index->get('sort') < 0) {
$_index->set('sort', 0);
}
if (isset($_GET['page']))
$_index->set('page', (int)$_GET['page']);
else
$_index->set('page', 0);
if (substr($_index->get('dir'), 0, 1) == '/') {
$_index->set('dir', substr($_index->get('dir'), 1, strlen($_index->get('dir'))));
}
$title = $func->SeoT($_index->get('dir'));
if ($_index->get('dir') !== null) {
$_index->set('title', basename($_index->get('dir')));
} else
$_index->set('title', $config->defcattitle);
$gdir = glob($config->filedir . $_index->get('dir') . '/*', GLOB_ONLYDIR); //Loads all the Directories in the path as array in var $gdir
$gfile = glob($config->filedir . $_index->get('dir') . '/*.{{' . $config->ext .
'}}', GLOB_BRACE);
if ($_index->get('sort') > 0) {
if (sizeof($gdir) > 0) {
usort($gdir, array('PAI_Func', 'sortnew'));
}
if (sizeof($gfile) > 0) {
usort($gfile, array('PAI_Func', 'sortnew'));
}
}
if (sizeof($gdir) < 1 and sizeof($gfile) > 0) {
$_index->set('glob', $gfile);
} else
if (sizeof($gdir) > 0 and sizeof($gfile) > 0) {
$_index->set('glob', array_merge($gdir, $gfile));
} else
if (sizeof($gdir) > 0 and sizeof($gfile) < 1) {
$_index->set('glob', $gdir);
} else
if (sizeof($gdir) < 1 and sizeof($gfile) > 0) {
$_index->set('glob', $gfile);
} else
$_index->set('glob', array());
$_index->set('count', sizeof($_index->get('glob')));
$_index->set('start', $_index->get('page') * $config->str);
if ($_index->get('start') >= $_index->get('count') or $_index->get('start') < 0) {
$_index->set('start', 0);
}
$_index->set('end', $_index->get('start') + $config->str);
if ($_index->get('end') >= $_index->get('count')) {
$_index->set('end', $_index->get('count'));
}
$_index->set('countstr', ceil($_index->get('count') / $config->str));
include ($config->header);
$_index->run();
include ($config->footer);
?>