add comments, and styling
This commit is contained in:
parent
f9ec67ad27
commit
8439abbe97
6 changed files with 759 additions and 666 deletions
bl-kernel
bl-languages
|
@ -229,16 +229,14 @@ define('DOMAIN_THEME_CSS', DOMAIN.HTML_PATH_THEME_CSS);
|
||||||
define('DOMAIN_THEME_JS', DOMAIN.HTML_PATH_THEME_JS);
|
define('DOMAIN_THEME_JS', DOMAIN.HTML_PATH_THEME_JS);
|
||||||
define('DOMAIN_THEME_IMG', DOMAIN.HTML_PATH_THEME_IMG);
|
define('DOMAIN_THEME_IMG', DOMAIN.HTML_PATH_THEME_IMG);
|
||||||
define('DOMAIN_ADMIN_THEME', DOMAIN.HTML_PATH_ADMIN_THEME);
|
define('DOMAIN_ADMIN_THEME', DOMAIN.HTML_PATH_ADMIN_THEME);
|
||||||
define('DOMAIN_ADMIN_THEME_CSS', DOMAIN.HTML_PATH_ADMIN_THEME_CSS);
|
define('DOMAIN_ADMIN_THEME_CSS',DOMAIN.HTML_PATH_ADMIN_THEME_CSS);
|
||||||
define('DOMAIN_ADMIN_THEME_JS', DOMAIN.HTML_PATH_ADMIN_THEME_JS);
|
define('DOMAIN_ADMIN_THEME_JS', DOMAIN.HTML_PATH_ADMIN_THEME_JS);
|
||||||
define('DOMAIN_UPLOADS', DOMAIN.HTML_PATH_UPLOADS);
|
define('DOMAIN_UPLOADS', DOMAIN.HTML_PATH_UPLOADS);
|
||||||
define('DOMAIN_UPLOADS_PAGES', DOMAIN.HTML_PATH_UPLOADS_PAGES);
|
define('DOMAIN_UPLOADS_PAGES', DOMAIN.HTML_PATH_UPLOADS_PAGES);
|
||||||
define('DOMAIN_UPLOADS_PROFILES', DOMAIN.HTML_PATH_UPLOADS_PROFILES);
|
define('DOMAIN_UPLOADS_PROFILES',DOMAIN.HTML_PATH_UPLOADS_PROFILES);
|
||||||
define('DOMAIN_PLUGINS', DOMAIN.HTML_PATH_PLUGINS);
|
define('DOMAIN_PLUGINS', DOMAIN.HTML_PATH_PLUGINS);
|
||||||
define('DOMAIN_CONTENT', DOMAIN.HTML_PATH_CONTENT);
|
define('DOMAIN_CONTENT', DOMAIN.HTML_PATH_CONTENT);
|
||||||
|
|
||||||
define('DOMAIN_ADMIN', DOMAIN_BASE.ADMIN_URI_FILTER.'/');
|
define('DOMAIN_ADMIN', DOMAIN_BASE.ADMIN_URI_FILTER.'/');
|
||||||
|
|
||||||
define('DOMAIN_TAGS', Text::addSlashes(DOMAIN_BASE.TAG_URI_FILTER, false, true));
|
define('DOMAIN_TAGS', Text::addSlashes(DOMAIN_BASE.TAG_URI_FILTER, false, true));
|
||||||
define('DOMAIN_CATEGORIES', Text::addSlashes(DOMAIN_BASE.CATEGORY_URI_FILTER, false, true));
|
define('DOMAIN_CATEGORIES', Text::addSlashes(DOMAIN_BASE.CATEGORY_URI_FILTER, false, true));
|
||||||
define('DOMAIN_PAGES', Text::addSlashes(DOMAIN_BASE.PAGE_URI_FILTER, false, true));
|
define('DOMAIN_PAGES', Text::addSlashes(DOMAIN_BASE.PAGE_URI_FILTER, false, true));
|
||||||
|
|
|
@ -6,8 +6,15 @@ class Sanitize {
|
||||||
return strip_tags($text);
|
return strip_tags($text);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert special characters to HTML entities
|
/**
|
||||||
public static function html($text)
|
* Convert special characters to HTML entities.
|
||||||
|
* For example, & => &
|
||||||
|
* For example, " => "
|
||||||
|
*
|
||||||
|
* @param string $text
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function html(string $text): string
|
||||||
{
|
{
|
||||||
$flags = ENT_COMPAT;
|
$flags = ENT_COMPAT;
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ echo 'var DOMAIN_PAGES = "'.DOMAIN_PAGES.'";'.PHP_EOL;
|
||||||
echo 'var DOMAIN_ADMIN = "'.DOMAIN_ADMIN.'";'.PHP_EOL;
|
echo 'var DOMAIN_ADMIN = "'.DOMAIN_ADMIN.'";'.PHP_EOL;
|
||||||
echo 'var DOMAIN_CONTENT = "'.DOMAIN_CONTENT.'";'.PHP_EOL;
|
echo 'var DOMAIN_CONTENT = "'.DOMAIN_CONTENT.'";'.PHP_EOL;
|
||||||
echo 'var DOMAIN_UPLOADS = "'.DOMAIN_UPLOADS.'";'.PHP_EOL;
|
echo 'var DOMAIN_UPLOADS = "'.DOMAIN_UPLOADS.'";'.PHP_EOL;
|
||||||
|
echo 'var DOMAIN_UPLOADS_PAGES = "'.DOMAIN_UPLOADS_PAGES.'";'.PHP_EOL;
|
||||||
echo 'var DB_DATE_FORMAT = "'.DB_DATE_FORMAT.'";'.PHP_EOL;
|
echo 'var DB_DATE_FORMAT = "'.DB_DATE_FORMAT.'";'.PHP_EOL;
|
||||||
echo 'var AUTOSAVE_INTERVAL = "'.AUTOSAVE_INTERVAL.'";'.PHP_EOL;
|
echo 'var AUTOSAVE_INTERVAL = "'.AUTOSAVE_INTERVAL.'";'.PHP_EOL;
|
||||||
echo 'var PAGE_BREAK = "'.PAGE_BREAK.'";'.PHP_EOL;
|
echo 'var PAGE_BREAK = "'.PAGE_BREAK.'";'.PHP_EOL;
|
||||||
|
|
|
@ -19,19 +19,26 @@ class Page {
|
||||||
Log::set(__METHOD__.LOG_SEP.$errorMessage);
|
Log::set(__METHOD__.LOG_SEP.$errorMessage);
|
||||||
throw new Exception($errorMessage);
|
throw new Exception($errorMessage);
|
||||||
}
|
}
|
||||||
|
// The database doesn't have the page's content.
|
||||||
$row = $pages->getPageDB($key);
|
$row = $pages->getPageDB($key);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($row as $field=>$value) {
|
foreach ($row as $field=>$value) {
|
||||||
if ($field=='date') {
|
if ($field=='date') {
|
||||||
$this->setField('dateRaw', $value);
|
$this->vars['dateRaw'] = $value;
|
||||||
} else {
|
} else {
|
||||||
$this->setField($field, $value);
|
$this->vars[$field] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getValue($field)
|
/**
|
||||||
|
* Returns the value associated to a field, if the field doesn't exists returns FALSE.
|
||||||
|
*
|
||||||
|
* @param string $field
|
||||||
|
* @return bool|string|int|array
|
||||||
|
*/
|
||||||
|
public function getValue(string $field): bool|string|int|array
|
||||||
{
|
{
|
||||||
if (isset($this->vars[$field])) {
|
if (isset($this->vars[$field])) {
|
||||||
return $this->vars[$field];
|
return $this->vars[$field];
|
||||||
|
@ -39,16 +46,26 @@ class Page {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setField($field, $value)
|
/**
|
||||||
|
* Set the value associated to a field.
|
||||||
|
*
|
||||||
|
* @param string $field
|
||||||
|
* @param string $value
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function setField(string $field, string $value): bool
|
||||||
{
|
{
|
||||||
$this->vars[$field] = $value;
|
$this->vars[$field] = $value;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the raw content
|
/**
|
||||||
// This content is not markdown parser
|
* Returns the full raw page's content. This content is not markdown parser.
|
||||||
// (boolean) $sanitize, TRUE returns the content sanitized
|
*
|
||||||
public function contentRaw($sanitize=false)
|
* @param boolean $sanitize TRUE returns the content sanitized
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function contentRaw(bool $sanitize=false): string
|
||||||
{
|
{
|
||||||
$key = $this->key();
|
$key = $this->key();
|
||||||
$filePath = PATH_PAGES.$key.DS.FILENAME;
|
$filePath = PATH_PAGES.$key.DS.FILENAME;
|
||||||
|
@ -60,10 +77,13 @@ class Page {
|
||||||
return $contentRaw;
|
return $contentRaw;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the full content
|
/**
|
||||||
// This content is markdown parser
|
* Returns the full page's content.
|
||||||
// (boolean) $sanitize, TRUE returns the content sanitized
|
*
|
||||||
public function content($sanitize=false)
|
* @param boolean $sanitize TRUE returns the content sanitized
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function content(bool $sanitize=false): string
|
||||||
{
|
{
|
||||||
// If already set the content, return it
|
// If already set the content, return it
|
||||||
$content = $this->getValue('content');
|
$content = $this->getValue('content');
|
||||||
|
@ -72,7 +92,7 @@ class Page {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the raw content
|
// Get the raw content
|
||||||
$content = $this->contentRaw();
|
$content = $this->contentRaw(false);
|
||||||
|
|
||||||
// Parse Markdown
|
// Parse Markdown
|
||||||
if (MARKDOWN_PARSER) {
|
if (MARKDOWN_PARSER) {
|
||||||
|
@ -82,7 +102,7 @@ class Page {
|
||||||
|
|
||||||
// Parse img src relative to absolute (with domain)
|
// Parse img src relative to absolute (with domain)
|
||||||
if (IMAGE_RELATIVE_TO_ABSOLUTE) {
|
if (IMAGE_RELATIVE_TO_ABSOLUTE) {
|
||||||
$domain = IMAGE_RESTRICT?DOMAIN_UPLOADS_PAGES.$this->uuid().'/':DOMAIN_UPLOADS;
|
$domain = IMAGE_RESTRICT?DOMAIN_UPLOADS_PAGES.$this->key().'/':DOMAIN_UPLOADS;
|
||||||
$content = Text::imgRel2Abs($content, $domain);
|
$content = Text::imgRel2Abs($content, $domain);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,10 +112,13 @@ class Page {
|
||||||
return $content;
|
return $content;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the first part of the content if the content is splited, otherwise is returned the full content
|
/**
|
||||||
// This content is markdown parser
|
* Returns the first part of the content if the content is splited, otherwise is returned the full content.
|
||||||
// (boolean) $sanitize, TRUE returns the content sanitized
|
*
|
||||||
public function contentBreak($sanitize=false)
|
* @param boolean $sanitize TRUE returns the content sanitized
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function contentBreak(bool $sanitize=false): string
|
||||||
{
|
{
|
||||||
$content = $this->content($sanitize);
|
$content = $this->content($sanitize);
|
||||||
$explode = explode(PAGE_BREAK, $content);
|
$explode = explode(PAGE_BREAK, $content);
|
||||||
|
@ -238,11 +261,12 @@ class Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns the template for the page === Bludit v4
|
/**
|
||||||
|
* Returns the template for the page or FALSE if the page haven't a template assigned.
|
||||||
@return string/boolean Returns the template for the page or FALSE if the page haven't a template assigned
|
*
|
||||||
|
* @return boolean|string
|
||||||
*/
|
*/
|
||||||
public function template()
|
public function template(): bool|string
|
||||||
{
|
{
|
||||||
$template = $this->getValue('template');
|
$template = $this->getValue('template');
|
||||||
if (empty($template)) {
|
if (empty($template)) {
|
||||||
|
@ -306,24 +330,27 @@ class Page {
|
||||||
return json_encode($tmp);
|
return json_encode($tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the endpoint of the coverimage, FALSE if the page doesn't have a cover image
|
/**
|
||||||
// (boolean) $absolute, TRUE returns the complete URL, FALSE returns the filename
|
* Returns the cover image endpoint, FALSE if the page doesn't have a cover image
|
||||||
// If the user defined an external cover image the function returns it
|
*
|
||||||
public function coverImage($absolute=true)
|
* @param boolean $absolute TRUE returns the complete URL, FALSE returns the filename
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function coverImage(bool $absolute=true): string
|
||||||
{
|
{
|
||||||
$filename = $this->getValue('coverImage');
|
$filename = $this->getValue('coverImage');
|
||||||
if (empty($filename)) {
|
if (empty($filename)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check is external cover image
|
// Check if it is an external cover image
|
||||||
if (filter_var($filename, FILTER_VALIDATE_URL)) {
|
if (filter_var($filename, FILTER_VALIDATE_URL)) {
|
||||||
return $filename;
|
return $filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($absolute) {
|
if ($absolute) {
|
||||||
if (IMAGE_RESTRICT) {
|
if (IMAGE_RESTRICT) {
|
||||||
return DOMAIN_UPLOADS_PAGES.$this->uuid().'/'.$filename;
|
return DOMAIN_UPLOADS_PAGES.$this->key().'/'.$filename;
|
||||||
}
|
}
|
||||||
return DOMAIN_UPLOADS.$filename;
|
return DOMAIN_UPLOADS.$filename;
|
||||||
}
|
}
|
||||||
|
@ -349,48 +376,72 @@ class Page {
|
||||||
return $this->getValue('key');
|
return $this->getValue('key');
|
||||||
}
|
}
|
||||||
|
|
||||||
// (boolean) Returns TRUE if the page is published, FALSE otherwise
|
/**
|
||||||
public function published()
|
* Returns TRUE if the page is type "published", FALSE otherwise
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function published(): bool
|
||||||
{
|
{
|
||||||
return ($this->getValue('type')==='published');
|
return ($this->getValue('type')==='published');
|
||||||
}
|
}
|
||||||
|
|
||||||
// (boolean) Returns TRUE if the page is scheduled, FALSE otherwise
|
/**
|
||||||
public function scheduled()
|
* Returns TRUE if the page is type "scheduled", FALSE otherwise
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function scheduled(): bool
|
||||||
{
|
{
|
||||||
return ($this->getValue('type')==='scheduled');
|
return ($this->getValue('type')==='scheduled');
|
||||||
}
|
}
|
||||||
|
|
||||||
// (boolean) Returns TRUE if the page is draft, FALSE otherwise
|
/**
|
||||||
public function draft()
|
* Returns TRUE if the page is type "draft", FALSE otherwise
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function draft(): bool
|
||||||
{
|
{
|
||||||
return ($this->getValue('type')=='draft');
|
return ($this->getValue('type')=='draft');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns TRUE if the page is type "sticky", FALSE otherwise
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function sticky(): bool
|
||||||
|
{
|
||||||
|
return ($this->getValue('type')=='sticky');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns TRUE if the page is type "static", FALSE otherwise
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function isStatic(): bool
|
||||||
|
{
|
||||||
|
return ($this->getValue('type')=='static');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns TRUE if the page is type "unlisted", FALSE otherwise
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public function unlisted(): bool
|
||||||
|
{
|
||||||
|
return ($this->getValue('type')=='unlisted');
|
||||||
|
}
|
||||||
|
|
||||||
// (boolean) Returns TRUE if the page is autosave, FALSE otherwise
|
// (boolean) Returns TRUE if the page is autosave, FALSE otherwise
|
||||||
public function autosave()
|
public function autosave()
|
||||||
{
|
{
|
||||||
return ($this->getValue('type')=='autosave');
|
return ($this->getValue('type')=='autosave');
|
||||||
}
|
}
|
||||||
|
|
||||||
// (boolean) Returns TRUE if the page is sticky, FALSE otherwise
|
|
||||||
public function sticky()
|
|
||||||
{
|
|
||||||
return ($this->getValue('type')=='sticky');
|
|
||||||
}
|
|
||||||
|
|
||||||
// (boolean) Returns TRUE if the page is static, FALSE otherwise
|
|
||||||
public function isStatic()
|
|
||||||
{
|
|
||||||
return ($this->getValue('type')=='static');
|
|
||||||
}
|
|
||||||
|
|
||||||
// (boolean) Returns TRUE if the page is unlisted, FALSE otherwise
|
|
||||||
public function unlisted()
|
|
||||||
{
|
|
||||||
return ($this->getValue('type')=='unlisted');
|
|
||||||
}
|
|
||||||
|
|
||||||
// (string) Returns type of the page
|
// (string) Returns type of the page
|
||||||
public function type()
|
public function type()
|
||||||
{
|
{
|
||||||
|
@ -517,11 +568,13 @@ class Page {
|
||||||
return $list;
|
return $list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns the amount of minutes takes to read the page === Bludit v4
|
/**
|
||||||
|
* Returns the amount of minutes takes to read the page
|
||||||
@return string Returns the minutes as string
|
*
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function readingTime() {
|
public function readingTime(): string
|
||||||
|
{
|
||||||
$words = $this->content(true);
|
$words = $this->content(true);
|
||||||
$words = strip_tags($words);
|
$words = strip_tags($words);
|
||||||
$words = str_word_count($words);
|
$words = str_word_count($words);
|
||||||
|
@ -547,14 +600,15 @@ class Page {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns an array with all pages key related to the page === Bludit v4
|
/**
|
||||||
The relation is based on the tags.
|
* Returns an array with all pages' keys related to the page. The relation is based on the tags.
|
||||||
|
*
|
||||||
@sortByDate boolean TRUE if you want to get sort by date the pages, FALSE random order
|
* @param boolean $sortByDate TRUE if you want to get sort by date the pages, FALSE random order
|
||||||
@getFirst int Amount of related pages, -1 indicates all related pages
|
* @param integer $getFirst Amount of related pages, -1 indicates all related pages
|
||||||
@return array Returns an array with the page keys related to page
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function related($sortByDate=false, $getFirst=-1) {
|
public function related(bool $sortByDate=false, int $getFirst=-1): array
|
||||||
|
{
|
||||||
global $tags;
|
global $tags;
|
||||||
$pageTags = $this->tags(true);
|
$pageTags = $this->tags(true);
|
||||||
$list = array();
|
$list = array();
|
||||||
|
@ -590,13 +644,14 @@ class Page {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns relative time (e.g. "1 minute ago") === Bludit v4
|
/**
|
||||||
Based on http://stackoverflow.com/a/18602474
|
* Returns the date as relative time.
|
||||||
|
*
|
||||||
@complete boolean TRUE full version, FALSE short version
|
* @param boolean $complete TRUE full version, FALSE short version
|
||||||
@return string Relative time, for example: 1 minute ago
|
* @return string Relative time, for example: 1 minute ago
|
||||||
*/
|
*/
|
||||||
public function relativeTime($complete=false) {
|
public function relativeTime(bool $complete=false): string
|
||||||
|
{
|
||||||
$current = new DateTime;
|
$current = new DateTime;
|
||||||
$past = new DateTime($this->getValue('dateRaw'));
|
$past = new DateTime($this->getValue('dateRaw'));
|
||||||
$elapsed = $current->diff($past);
|
$elapsed = $current->diff($past);
|
||||||
|
|
|
@ -34,17 +34,18 @@ class Pages extends dbJSON {
|
||||||
return $this->dbFields;
|
return $this->dbFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the database row associated to a page
|
/**
|
||||||
|
* Returns the table row associated to a particular page. The page's content is not included.
|
||||||
@key string The key of the page to be fetch
|
* For example in SQL, SELECT * FROM pages WHERE key = $key
|
||||||
@return array/boolean Return an array with the database for a page, FALSE otherwise
|
*
|
||||||
|
* @param string $key The key of the page to be fetch
|
||||||
|
* @return array Return an array with the database for a page, FALSE otherwise
|
||||||
*/
|
*/
|
||||||
public function getPageDB($key)
|
public function getPageDB(string $key): array
|
||||||
{
|
{
|
||||||
if ($this->exists($key)) {
|
if ($this->exists($key)) {
|
||||||
return $this->db[$key];
|
return $this->db[$key];
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,12 +58,13 @@ class Pages extends dbJSON {
|
||||||
return isset ($this->db[$key]);
|
return isset ($this->db[$key]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create a new page === Bludit v4
|
/**
|
||||||
|
* Creates a new page.
|
||||||
@args array The array $args supports all the keys from the variable $dbFields. If you don't pass all the keys, the default values are used.
|
*
|
||||||
@return string/boolean Returns the page key if the page is successfully created, FALSE otherwise
|
* @param array $args The array $args supports all the keys from the variable $dbFields. If you don't pass all the keys, the default values are used.
|
||||||
|
* @return boolean|string Returns the page key if the page is successfully created, FALSE otherwise
|
||||||
*/
|
*/
|
||||||
public function add($args)
|
public function add(array $args): bool|string
|
||||||
{
|
{
|
||||||
$row = array();
|
$row = array();
|
||||||
|
|
||||||
|
@ -175,12 +177,13 @@ class Pages extends dbJSON {
|
||||||
return $key;
|
return $key;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Edit a page === Bludit v4
|
/**
|
||||||
|
* Edit a page.
|
||||||
@args array The array $args supports all the keys from the variable $dbFields. If you don't pass all the keys, the default values are used.
|
*
|
||||||
@return string/boolean Returns the page key if the page is successfully edited, FALSE otherwise
|
* @param array $args The array $args supports all the keys from the variable $dbFields. If you don't pass all the keys, the default values are used.
|
||||||
|
* @return boolean|string Returns the page key if the page is successfully edited, FALSE otherwise
|
||||||
*/
|
*/
|
||||||
public function edit($args)
|
public function edit(array $args): bool|string
|
||||||
{
|
{
|
||||||
// This is the new row for the table and is going to replace the old row
|
// This is the new row for the table and is going to replace the old row
|
||||||
$row = array();
|
$row = array();
|
||||||
|
@ -300,12 +303,13 @@ class Pages extends dbJSON {
|
||||||
return $newKey;
|
return $newKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Delete a page === Bludit v4
|
/**
|
||||||
|
* Delete a page.
|
||||||
@key string The key of the page to be deleted
|
*
|
||||||
@return boolean Returns TRUE if the page was deleted successfully, FALSE otherwise
|
* @param string $key The key of the page to be deleted
|
||||||
|
* @return boolean Returns TRUE if the page was deleted successfully, FALSE otherwise
|
||||||
*/
|
*/
|
||||||
public function delete($key)
|
public function delete(string $key): bool
|
||||||
{
|
{
|
||||||
// This is need it, because if the key is empty the Filesystem::deleteRecursive is going to delete PATH_PAGES
|
// This is need it, because if the key is empty the Filesystem::deleteRecursive is going to delete PATH_PAGES
|
||||||
if (empty($key)) {
|
if (empty($key)) {
|
||||||
|
@ -485,6 +489,26 @@ class Pages extends dbJSON {
|
||||||
return $tmp;
|
return $tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array with all unlisted pages
|
||||||
|
*
|
||||||
|
* @param boolean $onlyKeys If TRUE returns only the pages' keys
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getUnlistedDB(bool $onlyKeys=true): array
|
||||||
|
{
|
||||||
|
$tmp = $this->db;
|
||||||
|
foreach ($tmp as $key=>$fields) {
|
||||||
|
if($fields['type']!='unlisted') {
|
||||||
|
unset($tmp[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($onlyKeys) {
|
||||||
|
return array_keys($tmp);
|
||||||
|
}
|
||||||
|
return $tmp;
|
||||||
|
}
|
||||||
|
|
||||||
// Returns the next number of the bigger position
|
// Returns the next number of the bigger position
|
||||||
public function nextPositionNumber()
|
public function nextPositionNumber()
|
||||||
{
|
{
|
||||||
|
@ -530,12 +554,18 @@ class Pages extends dbJSON {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a list of pages' keys. === Bludit v4
|
* Get a list of pages' keys.
|
||||||
* @param int $pageNumber Page number for the paginator
|
*
|
||||||
* @param int $numberOfItems Amount of items to return, if -1 returns all the items
|
* @param integer $pageNumber Page number for the paginator
|
||||||
* @return array|bool Returns an array with the pages' keys or FALSE if it out of range
|
* @param integer $numberOfItems Amount of items to return, if -1 returns all the items
|
||||||
|
* @param boolean $published
|
||||||
|
* @param boolean $static
|
||||||
|
* @param boolean $sticky
|
||||||
|
* @param boolean $draft
|
||||||
|
* @param boolean $scheduled
|
||||||
|
* @return boolean|array Returns an array with the pages' keys or FALSE if it out of range
|
||||||
*/
|
*/
|
||||||
public function getList(int $pageNumber, int $numberOfItems, bool $published=true, bool $static=false, bool $sticky=false, bool $draft=false, bool $scheduled=false)
|
public function getList(int $pageNumber, int $numberOfItems, bool $published=true, bool $static=false, bool $sticky=false, bool $draft=false, bool $scheduled=false): bool|array
|
||||||
{
|
{
|
||||||
$list = array();
|
$list = array();
|
||||||
foreach ($this->db as $key=>$fields) {
|
foreach ($this->db as $key=>$fields) {
|
||||||
|
|
|
@ -58,10 +58,12 @@
|
||||||
"thanks-for-supporting-bludit": "Thanks for supporting Bludit",
|
"thanks-for-supporting-bludit": "Thanks for supporting Bludit",
|
||||||
"upgrade-to-bludit-pro": "Upgrade to Bludit PRO",
|
"upgrade-to-bludit-pro": "Upgrade to Bludit PRO",
|
||||||
"language": "Language",
|
"language": "Language",
|
||||||
|
"unlisted": "Unlisted",
|
||||||
"plugin": "Plugin",
|
"plugin": "Plugin",
|
||||||
"plugins": "Plugins",
|
"plugins": "Plugins",
|
||||||
"developers": "Developers",
|
"developers": "Developers",
|
||||||
"themes": "Themes",
|
"themes": "Themes",
|
||||||
|
"theme": "Theme",
|
||||||
"about": "About",
|
"about": "About",
|
||||||
"url": "URL",
|
"url": "URL",
|
||||||
"welcome": "Welcome",
|
"welcome": "Welcome",
|
||||||
|
|
Loading…
Add table
Reference in a new issue