Prevent content to be empty if not passed as argument
This commit is contained in:
parent
60f1b37441
commit
0f867720a5
|
@ -141,13 +141,21 @@ class Pages extends dbJSON {
|
||||||
return $key;
|
return $key;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Edit a page
|
||||||
|
// This function do not edit the current row from the table -
|
||||||
|
// - instead of that the function creates a new row and is completed by the current -
|
||||||
|
// - values of the page and then the old row is deleted and the new row is inserted.
|
||||||
public function edit($args)
|
public function edit($args)
|
||||||
{
|
{
|
||||||
// Old key
|
// This is the new row for the table and is going to replace the old row
|
||||||
|
$row = array();
|
||||||
|
|
||||||
|
// Current key
|
||||||
// This variable is not belong to the database so is not defined in $row
|
// This variable is not belong to the database so is not defined in $row
|
||||||
$key = $args['key'];
|
$key = $args['key'];
|
||||||
$row = array();
|
|
||||||
// Check values on args or set default values
|
// Check values from the arguments ($args)
|
||||||
|
// If some field is missing the current value is taken
|
||||||
foreach ($this->dbFields as $field=>$value) {
|
foreach ($this->dbFields as $field=>$value) {
|
||||||
if ($field=='tags') {
|
if ($field=='tags') {
|
||||||
$tags = '';
|
$tags = '';
|
||||||
|
@ -159,24 +167,20 @@ class Pages extends dbJSON {
|
||||||
// Sanitize if will be stored on database
|
// Sanitize if will be stored on database
|
||||||
$finalValue = Sanitize::html($args[$field]);
|
$finalValue = Sanitize::html($args[$field]);
|
||||||
} else {
|
} else {
|
||||||
// Default value from the current
|
// Default value from the current row
|
||||||
$finalValue = $this->db[$key][$field];
|
$finalValue = $this->db[$key][$field];
|
||||||
}
|
}
|
||||||
settype($finalValue, gettype($value));
|
settype($finalValue, gettype($value));
|
||||||
$row[$field] = $finalValue;
|
$row[$field] = $finalValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Content
|
|
||||||
// This variable is not belong to the database so is not defined in $row
|
|
||||||
$contentRaw = (empty($args['content'])?'':$args['content']);
|
|
||||||
|
|
||||||
// Parent
|
// Parent
|
||||||
// This variable is not belong to the database so is not defined in $row
|
// This variable is not belong to the database so is not defined in $row
|
||||||
$parent = (empty($args['parent'])?'':$args['parent']);
|
$parent = (empty($args['parent'])?'':$args['parent']);
|
||||||
|
|
||||||
// Slug
|
// Slug
|
||||||
// If the user change the slug the page key changes
|
// If the user change the slug the page key changes
|
||||||
// If the user send an empty slug the page key doesn't need to change
|
// If the user send an empty slug the page key doesn't change
|
||||||
// This variable is not belong to the database so is not defined in $row
|
// This variable is not belong to the database so is not defined in $row
|
||||||
if (empty($args['slug'])) {
|
if (empty($args['slug'])) {
|
||||||
$explode = explode('/', $key);
|
$explode = explode('/', $key);
|
||||||
|
@ -186,6 +190,9 @@ class Pages extends dbJSON {
|
||||||
}
|
}
|
||||||
|
|
||||||
// New key
|
// New key
|
||||||
|
// The key of the page can change if the user change the slug or the parent, -
|
||||||
|
// - if the user doesn't change the slug or the parent the key is going to be the same -
|
||||||
|
// - as the current key.
|
||||||
// This variable is not belong to the database so is not defined in $row
|
// This variable is not belong to the database so is not defined in $row
|
||||||
$newKey = $this->generateKey($slug, $parent, false, $key);
|
$newKey = $this->generateKey($slug, $parent, false, $key);
|
||||||
|
|
||||||
|
@ -193,6 +200,7 @@ class Pages extends dbJSON {
|
||||||
if ($row['type']=='draft') {
|
if ($row['type']=='draft') {
|
||||||
$row['date'] = Date::current(DB_DATE_FORMAT);
|
$row['date'] = Date::current(DB_DATE_FORMAT);
|
||||||
} elseif (!Valid::date($row['date'], DB_DATE_FORMAT)) {
|
} elseif (!Valid::date($row['date'], DB_DATE_FORMAT)) {
|
||||||
|
// if the date in the arguments is not valid, take the value from the old row
|
||||||
$row['date'] = $this->db[$key]['date'];
|
$row['date'] = $this->db[$key]['date'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,7 +212,7 @@ class Pages extends dbJSON {
|
||||||
$row['type'] = 'scheduled';
|
$row['type'] = 'scheduled';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Move the directory from old key to new key.
|
// Move the directory from old key to new key only if the keys are different
|
||||||
if ($newKey!==$key) {
|
if ($newKey!==$key) {
|
||||||
if (Filesystem::mv(PATH_PAGES.$key, PATH_PAGES.$newKey) === false) {
|
if (Filesystem::mv(PATH_PAGES.$key, PATH_PAGES.$newKey) === false) {
|
||||||
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to move the directory to '.PATH_PAGES.$newKey);
|
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to move the directory to '.PATH_PAGES.$newKey);
|
||||||
|
@ -212,13 +220,16 @@ class Pages extends dbJSON {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the content was passed via arguments replace the content
|
||||||
|
if (isset($args['content'])) {
|
||||||
// Make the index.txt and save the file.
|
// Make the index.txt and save the file.
|
||||||
if (file_put_contents(PATH_PAGES.$newKey.DS.FILENAME, $contentRaw)===false) {
|
if (file_put_contents(PATH_PAGES.$newKey.DS.FILENAME, $args['content'])===false) {
|
||||||
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to put the content in the file '.FILENAME);
|
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to put the content in the file '.FILENAME);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Remove the old key
|
// Remove the old row
|
||||||
unset($this->db[$key]);
|
unset($this->db[$key]);
|
||||||
|
|
||||||
// Reindex Orphan Children
|
// Reindex Orphan Children
|
||||||
|
@ -227,7 +238,7 @@ class Pages extends dbJSON {
|
||||||
// Checksum MD5
|
// Checksum MD5
|
||||||
$row['md5file'] = md5_file(PATH_PAGES.$newKey.DS.FILENAME);
|
$row['md5file'] = md5_file(PATH_PAGES.$newKey.DS.FILENAME);
|
||||||
|
|
||||||
// Insert in database
|
// Insert in database the new row
|
||||||
$this->db[$newKey] = $row;
|
$this->db[$newKey] = $row;
|
||||||
|
|
||||||
// Sort database
|
// Sort database
|
||||||
|
@ -469,24 +480,18 @@ class Pages extends dbJSON {
|
||||||
public function getList($pageNumber, $numberOfItems, $published=true, $static=false, $sticky=false, $draft=false, $scheduled=false)
|
public function getList($pageNumber, $numberOfItems, $published=true, $static=false, $sticky=false, $draft=false, $scheduled=false)
|
||||||
{
|
{
|
||||||
$list = array();
|
$list = array();
|
||||||
if ($published) {
|
foreach ($this->db as $key=>$fields) {
|
||||||
$list += $this->getPublishedDB();
|
if ($published && $fields['type']=='published') {
|
||||||
|
array_push($list, $key);
|
||||||
|
} elseif ($static && $fields['type']=='static') {
|
||||||
|
array_push($list, $key);
|
||||||
|
} elseif ($sticky && $fields['type']=='sticky') {
|
||||||
|
array_push($list, $key);
|
||||||
|
} elseif ($draft && $fields['type']=='draft') {
|
||||||
|
array_push($list, $key);
|
||||||
|
} elseif ($scheduled && $fields['type']=='scheduled') {
|
||||||
|
array_push($list, $key);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($static) {
|
|
||||||
$list += $this->getStaticDB();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($sticky) {
|
|
||||||
$list += $this->getStickyDB();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($draft) {
|
|
||||||
$list += $this->getDraftDB();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($scheduled) {
|
|
||||||
$list += $this->getScheduledDB();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($numberOfItems==-1) {
|
if ($numberOfItems==-1) {
|
||||||
|
@ -609,6 +614,7 @@ class Pages extends dbJSON {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the page key by the uuid
|
// Returns the page key by the uuid
|
||||||
|
// if the UUID doesn't exits returns FALSE
|
||||||
function getByUUID($uuid)
|
function getByUUID($uuid)
|
||||||
{
|
{
|
||||||
foreach ($this->db as $key=>$value) {
|
foreach ($this->db as $key=>$value) {
|
||||||
|
|
Loading…
Reference in New Issue