143 lines
2.8 KiB
PHP
Executable File
143 lines
2.8 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 ($fname=static_exists($id)) {
|
|
$entry = io_load_file($fname);
|
|
return (utils_kexplode($entry));
|
|
}
|
|
return array();
|
|
}
|
|
|
|
|
|
function static_save($entry, $id, $oldid=null) {
|
|
$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) {
|
|
$fname = STATIC_DIR . $id . EXT;
|
|
|
|
if (file_exists($fname))
|
|
return $fname;
|
|
|
|
return false;
|
|
}
|
|
|
|
function static_delete($id) {
|
|
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->get_template_vars('static_page')){
|
|
$smarty->assign('id', $smarty->get_template_vars('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->get_template_vars('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->register_block('statics', 'smarty_block_statics');
|
|
$_FP_SMARTY->register_block('static_block', 'smarty_block_statics');
|
|
$_FP_SMARTY->register_block('static', 'smarty_block_static');
|
|
|
|
?>
|