bludit/kernel/abstract/filecontent.class.php

94 lines
1.8 KiB
PHP
Raw Normal View History

2015-05-05 03:00:01 +02:00
<?php defined('BLUDIT') or die('Bludit CMS.');
class fileContent
{
public $vars;
public $path;
function __construct($pathSlug)
{
2015-06-26 06:31:53 +02:00
if($this->build($pathSlug)===false) {
2015-05-05 03:00:01 +02:00
$this->vars = false;
2015-06-26 06:31:53 +02:00
}
2015-05-05 03:00:01 +02:00
}
// Return true if valid
public function isValid()
{
return($this->vars!==false);
}
public function getField($field)
{
if(isset($this->vars[$field])) {
return $this->vars[$field];
}
return false;
}
// $notoverwrite true if you don't want to replace the value if are set previusly
public function setField($field, $value, $overwrite=true)
{
if($overwrite || empty($this->vars[$field])) {
$this->vars[$field] = $value;
}
return true;
}
private function build($pathSlug)
{
2015-06-22 00:01:07 +02:00
if( !Sanitize::pathFile($this->path.$pathSlug.DS, 'index.txt') ) {
2015-05-05 03:00:01 +02:00
return false;
}
// Database Key
$this->setField('key', $pathSlug);
$tmp = 0;
2015-06-22 00:01:07 +02:00
$lines = file($this->path.$pathSlug.DS.'index.txt');
2015-05-05 03:00:01 +02:00
foreach($lines as $lineNumber=>$line)
{
$parts = array_map('trim', explode(':', $line, 2));
// Lowercase variable
2015-05-31 03:06:55 +02:00
$parts[0] = Text::lowercase($parts[0]);
2015-05-05 03:00:01 +02:00
// If variables is content then break the foreach and process the content after.
if($parts[0]==='content')
{
$tmp = $lineNumber;
break;
}
if( !empty($parts[0]) && !empty($parts[1]) ) {
// Sanitize all fields, except Content.
$this->vars[$parts[0]] = Sanitize::html($parts[1]);
}
}
// Process the content.
if($tmp!==0)
{
// Next line after "Content:" variable
$tmp++;
// Remove lines after Content
$output = array_slice($lines, $tmp);
if(!empty($parts[1])) {
array_unshift($output, "\n");
array_unshift($output, $parts[1]);
}
2015-06-26 06:31:53 +02:00
$implode = implode($output);
// Sanitize content.
$this->vars['content'] = Sanitize::html($implode);
2015-05-05 03:00:01 +02:00
}
}
2015-05-31 03:06:55 +02:00
}