git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@1661 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
69 lines
2.7 KiB
PHP
69 lines
2.7 KiB
PHP
<?php
|
|
/** DomFramework Blog
|
|
@package domframework-blog
|
|
@author Dominique Fournier <dominique@fournier38.fr> */
|
|
|
|
/** Model_file : store the blog datas in files */
|
|
class model_file
|
|
{
|
|
/** The path where the blog articles files are stored */
|
|
public $dataPath = "datas/";
|
|
|
|
/** Return a provided article
|
|
@param string|integer|null $articleid Teh article to display */
|
|
function get ($articleid = FALSE)
|
|
{
|
|
$this->dataPath = realpath ($this->dataPath);
|
|
if ($this->dataPath === FALSE)
|
|
throw new Exception (dgettext("domframework",
|
|
"Folder data not available"), 500);
|
|
$fileArticle = $this->dataPath."/".$articleid;
|
|
if (! file_exists ($fileArticle))
|
|
throw new Exception (dgettext("domframework",
|
|
"Article not found"), 404);
|
|
$fileArticle = realpath ($fileArticle);
|
|
if (substr ($fileArticle, 0, strlen ($this->dataPath)) !== $this->dataPath)
|
|
throw new Exception (dgettext("domframework",
|
|
"Asked article not in data path"), 404);
|
|
if ($fileArticle === FALSE)
|
|
throw new Exception (dgettext("domframework",
|
|
"Article not found"), 404);
|
|
return unserialize (file_get_contents ($fileArticle));
|
|
}
|
|
|
|
/** Create a new article if $articleid is false or edit an existing article
|
|
if $articleid is defined */
|
|
function set ($data, $articleid = FALSE)
|
|
{
|
|
$this->dataPath = realpath ($this->dataPath);
|
|
if ($this->dataPath === FALSE)
|
|
throw new Exception (dgettext("domframework",
|
|
"Folder data not available"), 500);
|
|
$fileArticle = $this->dataPath."/".$articleid;
|
|
if (! file_exists ($fileArticle))
|
|
throw new Exception (dgettext("domframework",
|
|
"Article not found"), 404);
|
|
$fileArticle = realpath ($fileArticle);
|
|
if (substr ($fileArticle, 0, strlen ($this->dataPath)) !== $this->dataPath)
|
|
throw new Exception (dgettext("domframework",
|
|
"Asked article not in data path"), 404);
|
|
if ($fileArticle === FALSE)
|
|
throw new Exception (dgettext("domframework",
|
|
"Article not found"), 404);
|
|
return file_put_contents ($fileArticle, serialize ($data));
|
|
}
|
|
|
|
/** Return a list of all the articles ID */
|
|
function listing ()
|
|
{
|
|
$list = glob ($this->dataPath."/*");
|
|
if ($list === FALSE || empty ($list))
|
|
throw new Exception (dgettext("domframework",
|
|
"No article found"), 404);
|
|
foreach ($list as $key=>$val)
|
|
$list[$key] = basename ($val);
|
|
return $list;
|
|
}
|
|
|
|
}
|