Bug fixes on URL router
This commit is contained in:
parent
7ab8303c7e
commit
429ccadd2d
|
@ -26,6 +26,10 @@ class dbList extends dbJSON
|
||||||
|
|
||||||
public function getList($key, $pageNumber, $amountOfItems)
|
public function getList($key, $pageNumber, $amountOfItems)
|
||||||
{
|
{
|
||||||
|
if (empty($key)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!isset($this->db[$key])) {
|
if (!isset($this->db[$key])) {
|
||||||
Log::set(__METHOD__.LOG_SEP.'Error key does not exist '.$key);
|
Log::set(__METHOD__.LOG_SEP.'Error key does not exist '.$key);
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -39,4 +39,4 @@ $scheduled = $dbPages->getScheduledDB();
|
||||||
$static = $dbPages->getStaticDB();
|
$static = $dbPages->getStaticDB();
|
||||||
|
|
||||||
// Title of the page
|
// Title of the page
|
||||||
$layout['title'] .= ' - '.$Language->g('Manage Content');
|
$layout['title'] .= ' - '.$Language->g('Manage Pages');
|
|
@ -196,7 +196,7 @@ echo '<div class="bl-publish-sidebar uk-width-2-10">';
|
||||||
'value'=>$externalCoverImage,
|
'value'=>$externalCoverImage,
|
||||||
'class'=>'uk-width-1-1 uk-form-medium',
|
'class'=>'uk-width-1-1 uk-form-medium',
|
||||||
'label'=>$L->g('External Cover Image'),
|
'label'=>$L->g('External Cover Image'),
|
||||||
'tip'=>$L->g('Image URL')
|
'tip'=>$L->g('Full image URL')
|
||||||
));
|
));
|
||||||
|
|
||||||
// Slug input
|
// Slug input
|
||||||
|
|
|
@ -122,7 +122,8 @@ elseif ($Url->whereAmI()==='home') {
|
||||||
|
|
||||||
// Set page 404 not found
|
// Set page 404 not found
|
||||||
if ($Url->notFound()) {
|
if ($Url->notFound()) {
|
||||||
$page = buildPage( $Site->pageNotFound() );
|
$pageNotFoundKey = $Site->pageNotFound();
|
||||||
|
$page = buildPage( $pageNotFoundKey );
|
||||||
if ($page===false) {
|
if ($page===false) {
|
||||||
$page = buildErrorPage();
|
$page = buildErrorPage();
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,10 @@ function buildPage($key) {
|
||||||
global $Parsedown;
|
global $Parsedown;
|
||||||
global $Site;
|
global $Site;
|
||||||
|
|
||||||
|
if (empty($key)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Page object, content from index.txt file
|
// Page object, content from index.txt file
|
||||||
$page = new Page($key);
|
$page = new Page($key);
|
||||||
if (!$page->isValid()) {
|
if (!$page->isValid()) {
|
||||||
|
@ -70,10 +74,12 @@ function reindexTags() {
|
||||||
function buildErrorPage() {
|
function buildErrorPage() {
|
||||||
global $dbPages;
|
global $dbPages;
|
||||||
global $Language;
|
global $Language;
|
||||||
|
global $dbUsers;
|
||||||
|
|
||||||
$page = new Page(false);
|
$page = new Page(false);
|
||||||
$page->setField('title', $Language->get('page-not-found'));
|
$page->setField('title', $Language->get('page-not-found'));
|
||||||
$page->setField('content', $Language->get('page-not-found-content'));
|
$page->setField('content', $Language->get('page-not-found-content'));
|
||||||
|
$page->setField('user', $dbUsers->getUser('admin'));
|
||||||
|
|
||||||
return $page;
|
return $page;
|
||||||
}
|
}
|
||||||
|
|
|
@ -359,12 +359,6 @@ class Page {
|
||||||
return ($this->getValue('status')=='sticky');
|
return ($this->getValue('status')=='sticky');
|
||||||
}
|
}
|
||||||
|
|
||||||
// (boolean) Returns TRUE if the page is static, FALSE otherwise
|
|
||||||
public function static()
|
|
||||||
{
|
|
||||||
return ($this->getValue('status')=='static');
|
|
||||||
}
|
|
||||||
|
|
||||||
// (string) Returns status of the page
|
// (string) Returns status of the page
|
||||||
public function status()
|
public function status()
|
||||||
{
|
{
|
||||||
|
|
|
@ -69,16 +69,18 @@ class Url
|
||||||
// Check coincidence with complete filterURI
|
// Check coincidence with complete filterURI
|
||||||
if ($subString==$filterURI) {
|
if ($subString==$filterURI) {
|
||||||
$this->slug = mb_substr($this->uri, $filterFullLenght);
|
$this->slug = mb_substr($this->uri, $filterFullLenght);
|
||||||
$this->whereAmI = $filterName;
|
$this->setWhereAmI($filterName);
|
||||||
$this->activeFilter = $filterURI;
|
$this->activeFilter = $filterURI;
|
||||||
|
|
||||||
if (empty($this->slug) && (($filterName=='blog') || ($filterURI=='/')) ) {
|
if (empty($this->slug) && ($filterName=='blog')) {
|
||||||
$this->whereAmI = 'home';
|
$this->setWhereAmI('home');
|
||||||
} elseif (!empty($this->slug) && ($filterURI=='/')) {
|
|
||||||
$this->whereAmI = 'page';
|
|
||||||
} elseif (!empty($this->slug) && ($filterName=='blog')) {
|
} elseif (!empty($this->slug) && ($filterName=='blog')) {
|
||||||
$this->setNotFound();
|
$this->setNotFound();
|
||||||
return false;
|
return false;
|
||||||
|
} elseif (empty($this->slug) && ($filterURI=='/')) {
|
||||||
|
$this->setWhereAmI('home');
|
||||||
|
} elseif (!empty($this->slug) && ($filterURI=='/')) {
|
||||||
|
$this->setWhereAmI('page');
|
||||||
} elseif ($filterName=='admin') {
|
} elseif ($filterName=='admin') {
|
||||||
$this->slug = ltrim($this->slug, '/');
|
$this->slug = ltrim($this->slug, '/');
|
||||||
}
|
}
|
||||||
|
@ -87,8 +89,8 @@ class Url
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
$this->setNotFound();
|
$this->setNotFound();
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function slug()
|
public function slug()
|
||||||
|
@ -155,7 +157,7 @@ class Url
|
||||||
|
|
||||||
public function setNotFound()
|
public function setNotFound()
|
||||||
{
|
{
|
||||||
$this->whereAmI = 'page';
|
$this->setWhereAmI('page');
|
||||||
$this->notFound = true;
|
$this->notFound = true;
|
||||||
$this->httpCode = 404;
|
$this->httpCode = 404;
|
||||||
$this->httpMessage = 'Not Found';
|
$this->httpMessage = 'Not Found';
|
||||||
|
|
|
@ -211,5 +211,6 @@
|
||||||
"create-a-new-category-to-organize-your-pages": "Create a new category to organize your pages",
|
"create-a-new-category-to-organize-your-pages": "Create a new category to organize your pages",
|
||||||
"edit-or-delete-pages-from-your-site": "Edit or delete pages from your site",
|
"edit-or-delete-pages-from-your-site": "Edit or delete pages from your site",
|
||||||
"add-new-page": "Add new page",
|
"add-new-page": "Add new page",
|
||||||
"this-field-is-used-when-you-order-the-pages-by-position": "This field is used when you order the pages by position."
|
"this-field-is-used-when-you-order-the-pages-by-position": "This field is used when you order the pages by position.",
|
||||||
|
"about-your-site-or-yourself": "About your site or yourself"
|
||||||
}
|
}
|
|
@ -43,6 +43,7 @@ class pluginAPI extends Plugin {
|
||||||
global $Url;
|
global $Url;
|
||||||
global $dbPages;
|
global $dbPages;
|
||||||
global $dbUsers;
|
global $dbUsers;
|
||||||
|
global $Login;
|
||||||
|
|
||||||
// CHECK URL
|
// CHECK URL
|
||||||
// ------------------------------------------------------------
|
// ------------------------------------------------------------
|
||||||
|
@ -95,6 +96,8 @@ class pluginAPI extends Plugin {
|
||||||
if ($username!==false) {
|
if ($username!==false) {
|
||||||
// Enable write permissions
|
// Enable write permissions
|
||||||
$writePermissions = true;
|
$writePermissions = true;
|
||||||
|
// Loggin the user to create the session
|
||||||
|
$Login->setLogin($username, 'admin');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,11 +110,22 @@ class pluginAPI extends Plugin {
|
||||||
}
|
}
|
||||||
// (GET) /api/pages/<key>
|
// (GET) /api/pages/<key>
|
||||||
elseif ( ($method==='GET') && ($parameters[0]==='pages') && !empty($parameters[1]) ) {
|
elseif ( ($method==='GET') && ($parameters[0]==='pages') && !empty($parameters[1]) ) {
|
||||||
$data = $this->getPage($parameters[1]);
|
$pageKey = $parameters[1];
|
||||||
|
$data = $this->getPage($pageKey);
|
||||||
|
}
|
||||||
|
// (PUT) /api/pages/<key>
|
||||||
|
elseif ( ($method==='PUT') && ($parameters[0]==='pages') && !empty($parameters[1]) && $writePermissions ) {
|
||||||
|
$pageKey = $parameters[1];
|
||||||
|
$data = $this->editPage($pageKey, $inputs);
|
||||||
|
}
|
||||||
|
// (DELETE) /api/pages/<key>
|
||||||
|
elseif ( ($method==='DELETE') && ($parameters[0]==='pages') && !empty($parameters[1]) && $writePermissions ) {
|
||||||
|
$pageKey = $parameters[1];
|
||||||
|
$data = $this->deletePage($pageKey);
|
||||||
}
|
}
|
||||||
// (POST) /api/pages
|
// (POST) /api/pages
|
||||||
elseif ( ($method==='POST') && ($parameters[0]==='pages') && empty($parameters[1]) && $writePermissions ) {
|
elseif ( ($method==='POST') && ($parameters[0]==='pages') && empty($parameters[1]) && $writePermissions ) {
|
||||||
$data = $this->newPage($inputs);
|
$data = $this->createPage($inputs);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$this->response(401, 'Unauthorized', array('message'=>'Access denied or invalid endpoint.'));
|
$this->response(401, 'Unauthorized', array('message'=>'Access denied or invalid endpoint.'));
|
||||||
|
@ -201,26 +215,6 @@ class pluginAPI extends Plugin {
|
||||||
exit($json);
|
exit($json);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getPage($key)
|
|
||||||
{
|
|
||||||
// Generate the object Page
|
|
||||||
$Page = buildPage($key);
|
|
||||||
|
|
||||||
if (!$Page) {
|
|
||||||
return array(
|
|
||||||
'status'=>'1',
|
|
||||||
'message'=>'Page not found.'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = array();
|
|
||||||
$data['status'] = '0';
|
|
||||||
$data['message'] = 'Page filtered by key: '.$key;
|
|
||||||
$data['data'] = $Page->json( $returnsArray=true );
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getPages()
|
private function getPages()
|
||||||
{
|
{
|
||||||
global $dbPages;
|
global $dbPages;
|
||||||
|
@ -247,10 +241,76 @@ class pluginAPI extends Plugin {
|
||||||
return $tmp;
|
return $tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getPage($key)
|
||||||
|
{
|
||||||
|
// Generate the object Page
|
||||||
|
$Page = buildPage($key);
|
||||||
|
|
||||||
|
if (!$Page) {
|
||||||
|
return array(
|
||||||
|
'status'=>'1',
|
||||||
|
'message'=>'Page not found.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'status'=>'0',
|
||||||
|
'message'=>'Page filtered by key: '.$key,
|
||||||
|
'data'=>$Page->json( $returnsArray=true )
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
private function createPage($args)
|
private function createPage($args)
|
||||||
{
|
{
|
||||||
// This function is defined on functions.php
|
// This function is defined on functions.php
|
||||||
return createPage($args);
|
$key = createPage($args);
|
||||||
|
|
||||||
|
if ($key===false) {
|
||||||
|
return array(
|
||||||
|
'status'=>'1',
|
||||||
|
'message'=>'Error trying to create the new page.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'status'=>'0',
|
||||||
|
'message'=>'Page created.',
|
||||||
|
'data'=>array('key'=>$key)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function editPage($key, $args)
|
||||||
|
{
|
||||||
|
$args['key'] = $key;
|
||||||
|
$newKey = editPage($args);
|
||||||
|
|
||||||
|
if ($newKey===false) {
|
||||||
|
return array(
|
||||||
|
'status'=>'1',
|
||||||
|
'message'=>'Error trying to edit the page.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'status'=>'0',
|
||||||
|
'message'=>'Page edited.',
|
||||||
|
'data'=>array('key'=>$newKey)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function deletePage($key)
|
||||||
|
{
|
||||||
|
if (deletePage($key)) {
|
||||||
|
return array(
|
||||||
|
'status'=>'0',
|
||||||
|
'message'=>'Page deleted.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'status'=>'1',
|
||||||
|
'message'=>'Error trying to delete the page.'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -15,11 +15,11 @@
|
||||||
<nav class="links">
|
<nav class="links">
|
||||||
<ul>
|
<ul>
|
||||||
<?php
|
<?php
|
||||||
$fixedPages = $dbPages->getFixedDB();
|
$staticPages = $dbPages->getStaticDB();
|
||||||
$keys = array_keys($fixedPages);
|
$staticPagesKeyList = array_keys($staticPages);
|
||||||
foreach($keys as $pageKey) {
|
foreach ($staticPagesKeyList as $pageKey) {
|
||||||
$pageParent = buildPage($pageKey);
|
$staticPage = buildPage($pageKey);
|
||||||
echo '<li><a href="'.$pageParent->permalink().'">'.$pageParent->title().'</a></li>';
|
echo '<li><a href="'.$staticPage->permalink().'">'.$staticPage->title().'</a></li>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -39,21 +39,19 @@
|
||||||
<ul class="links">
|
<ul class="links">
|
||||||
<?php
|
<?php
|
||||||
echo '<li>';
|
echo '<li>';
|
||||||
echo '<a href="'.$Site->url().'">
|
echo '<a href="'.$Site->url().'">';
|
||||||
<h3>'.$Language->get('Home page').'</h3>
|
echo '<h3>'.$Language->get('Home page').'</h3>';
|
||||||
<p>'.$Site->description().'</p>
|
echo '<p>'.$Site->description().'</p>';
|
||||||
</a>';
|
echo '</a>';
|
||||||
echo '</li>';
|
echo '</li>';
|
||||||
|
|
||||||
$fixedPages = $dbPages->getFixedDB();
|
foreach ($staticPagesKeyList as $pageKey) {
|
||||||
$keys = array_keys($fixedPages);
|
$staticPage = buildPage($pageKey);
|
||||||
foreach($keys as $pageKey) {
|
|
||||||
$pageParent = buildPage($pageKey);
|
|
||||||
echo '<li>';
|
echo '<li>';
|
||||||
echo '<a href="'.$pageParent->permalink().'">
|
echo '<a href="'.$staticPage->permalink().'">';
|
||||||
<h3>'.$pageParent->title().'</h3>
|
echo '<h3>'.$staticPage->title().'</h3>';
|
||||||
<p>'.$pageParent->description().'</p>
|
echo '<p>'.$staticPage->description().'</p>';
|
||||||
</a>';
|
echo '</a>';
|
||||||
echo '</li>';
|
echo '</li>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -1,57 +0,0 @@
|
||||||
<article class="post">
|
|
||||||
|
|
||||||
<!-- Show plugins, Hook: Post Begin -->
|
|
||||||
<?php Theme::plugins('postBegin') ?>
|
|
||||||
|
|
||||||
<!-- Post's header -->
|
|
||||||
<header>
|
|
||||||
<div class="title">
|
|
||||||
<h1><a href="<?php echo $Post->permalink() ?>"><?php echo $Post->title() ?></a></h1>
|
|
||||||
</div>
|
|
||||||
<div class="meta">
|
|
||||||
<?php
|
|
||||||
// Get the user who created the post.
|
|
||||||
$User = $Post->user();
|
|
||||||
|
|
||||||
// Default author is the username.
|
|
||||||
$author = $User->username();
|
|
||||||
|
|
||||||
// If the user complete the first name or last name this will be the author.
|
|
||||||
if( Text::isNotEmpty($User->firstName()) || Text::isNotEmpty($User->lastName()) ) {
|
|
||||||
$author = $User->firstName().' '.$User->lastName();
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<time class="published" datetime="2015-11-01"><?php echo $Post->date() ?></time>
|
|
||||||
<div class="author"><span class="name"><?php echo $author ?></span><img src="<?php echo $User->profilePicture() ?>" alt=""></div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Cover Image -->
|
|
||||||
<?php
|
|
||||||
if($Post->coverImage()) {
|
|
||||||
echo '<a href="'.$Post->permalink().'" class="image featured"><img src="'.$Post->coverImage().'" alt="Cover Image"></a>';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<!-- Post's content, the first part if has pagebrake -->
|
|
||||||
<?php echo $Post->content() ?>
|
|
||||||
|
|
||||||
<!-- Post's footer -->
|
|
||||||
<footer>
|
|
||||||
|
|
||||||
<!-- Post's tags -->
|
|
||||||
<ul class="stats">
|
|
||||||
<?php
|
|
||||||
$tags = $Post->tags(true);
|
|
||||||
|
|
||||||
foreach($tags as $tagKey=>$tagName) {
|
|
||||||
echo '<li><a href="'.HTML_PATH_ROOT.$Url->filters('tag').'/'.$tagKey.'">'.$tagName.'</a></li>';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</ul>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<!-- Show plugins, Hook: Post End -->
|
|
||||||
<?php Theme::plugins('postEnd') ?>
|
|
||||||
|
|
||||||
</article>
|
|
Loading…
Reference in New Issue