144 lines
2.9 KiB
PHP
Executable File
144 lines
2.9 KiB
PHP
Executable File
<?php
|
|
define('STATIC_DIR', CONTENT_DIR . 'static/');
|
|
|
|
class static_indexer extends fs_filelister {
|
|
|
|
var $_directory = STATIC_DIR;
|
|
|
|
function _checkfile($directory, $file) {
|
|
array_push($this->_list, basename($file, EXT));
|
|
return 0;
|
|
}
|
|
|
|
}
|
|
|
|
function static_getlist() {
|
|
$obj = new static_indexer();
|
|
$list = $obj->getList();
|
|
return $list;
|
|
}
|
|
|
|
function static_parse($id) {
|
|
if (!static_isvalid($id))
|
|
return false;
|
|
|
|
if ($fname = static_exists($id)) {
|
|
$entry = io_load_file($fname);
|
|
return (utils_kexplode($entry));
|
|
}
|
|
return array();
|
|
}
|
|
|
|
function static_isvalid($id) {
|
|
return preg_match('![^./\\\\]+!', $id);
|
|
}
|
|
|
|
function static_save($entry, $id, $oldid = null) {
|
|
if (!static_isvalid($id))
|
|
return false;
|
|
|
|
$fname = STATIC_DIR . $id . EXT;
|
|
|
|
$entry ['content'] = apply_filters('content_save_pre', $entry ['content']);
|
|
$entry ['subject'] = apply_filters('title_save_pre', $entry ['subject']);
|
|
|
|
$str = utils_kimplode($entry);
|
|
|
|
if (io_write_file($fname, $str)) {
|
|
if ($oldid && $id != $oldid && $fname = static_exists($oldid)) {
|
|
$succ = static_delete($oldid);
|
|
return ($succ !== false && $succ !== 2);
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function static_exists($id) {
|
|
if (!static_isvalid($id))
|
|
return false;
|
|
|
|
$fname = STATIC_DIR . $id . EXT;
|
|
|
|
if (file_exists($fname))
|
|
return $fname;
|
|
|
|
return false;
|
|
}
|
|
|
|
function static_delete($id) {
|
|
if (!static_isvalid($id))
|
|
return false;
|
|
|
|
return fs_delete(STATIC_DIR . $id . EXT);
|
|
}
|
|
|
|
function smarty_block_statics($params, $content, &$smarty, &$repeat) {
|
|
global $fpdb;
|
|
|
|
/*
|
|
* $show = false;
|
|
*
|
|
* if (isset($params['alwaysshow']) && $params['alwaysshow']) {
|
|
* return $content;
|
|
* }
|
|
*/
|
|
return $content;
|
|
}
|
|
|
|
function smarty_block_static($params, $content, &$smarty, &$repeat) {
|
|
global $fpdb;
|
|
static $pointer = 0;
|
|
|
|
// clean old variables
|
|
|
|
$smarty->assign(array(
|
|
'subject' => '',
|
|
'content' => '',
|
|
'date' => '',
|
|
'author' => '',
|
|
'version' => '',
|
|
'id' => ''
|
|
));
|
|
|
|
if ($arr = $smarty->getTemplateVars('static_page')) {
|
|
$smarty->assign('id', $smarty->getTemplateVars('static_id'));
|
|
if (THEME_LEGACY_MODE)
|
|
theme_entry_filters($arr);
|
|
$smarty->assign($arr);
|
|
return $content;
|
|
}
|
|
|
|
if (isset($params ['content']) && is_array($params ['content']) && $params ['content']) {
|
|
// foreach ($params['entry'] as $k => $val)
|
|
$smarty->assign($params ['content']);
|
|
return $content;
|
|
}
|
|
|
|
if (isset($params ['alwaysshow']) && $params ['alwaysshow']) {
|
|
return $content;
|
|
}
|
|
|
|
$list = $smarty->getTemplateVars('statics');
|
|
|
|
if (isset($list [$pointer])) {
|
|
// foreach ($entry as $k => $val)
|
|
$smarty->assign(static_parse($list [$pointer]));
|
|
$smarty->assign('id', $list [$pointer]);
|
|
|
|
$pointer++;
|
|
|
|
$repeat = true;
|
|
} else {
|
|
$repeat = false;
|
|
}
|
|
|
|
return $content;
|
|
}
|
|
|
|
$_FP_SMARTY->registerPlugin('block', 'statics', 'smarty_block_statics');
|
|
$_FP_SMARTY->registerPlugin('block', 'static_block', 'smarty_block_statics');
|
|
$_FP_SMARTY->registerPlugin('block', 'static', 'smarty_block_static');
|
|
|
|
?>
|