Improves on pages system
This commit is contained in:
parent
6958133db5
commit
a1799a3d0e
|
@ -27,7 +27,7 @@ echo '
|
|||
}
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td>'.($Page->parentKey()?NO_PARENT_CHAR:'').'<a href="'.HTML_PATH_ADMIN_ROOT.'edit-page/'.$Page->key().'">'.($Page->published()?'':'<span class="label-draft">'.$Language->g('Draft').'</span> ').($Page->title()?$Page->title():'<span class="label-empty-title">'.$Language->g('Empty title').'</span> ').'</a></td>';
|
||||
echo '<td>'.($Page->parentKey()?'- ':'').'<a href="'.HTML_PATH_ADMIN_ROOT.'edit-page/'.$Page->key().'">'.($Page->published()?'':'<span class="label-draft">'.$Language->g('Draft').'</span> ').($Page->title()?$Page->title():'<span class="label-empty-title">'.$Language->g('Empty title').'</span> ').'</a></td>';
|
||||
echo '<td>'.$parentTitle.'</td>';
|
||||
echo '<td class="uk-text-center">'.$Page->position().'</td>';
|
||||
echo '<td><a target="_blank" href="'.$Page->permalink().'">'.$Url->filters('page').'/'.$Page->key().'</a></td>';
|
||||
|
|
|
@ -54,8 +54,8 @@ define('SALT_LENGTH', 8);
|
|||
// Page brake string
|
||||
define('PAGE_BREAK', '<!-- pagebreak -->');
|
||||
|
||||
// No parent character
|
||||
define('NO_PARENT_CHAR', '—-');
|
||||
// No parent character, md5('No parent')
|
||||
define('NO_PARENT_CHAR', '3849abb4cb7abd24c2d8dac17b216f17');
|
||||
|
||||
// Post per page on Manage->Posts
|
||||
define('POSTS_PER_PAGE_ADMIN', 10);
|
||||
|
|
|
@ -4,7 +4,10 @@
|
|||
// Variables
|
||||
// ============================================================================
|
||||
|
||||
// Array with all pages.
|
||||
$pages = array();
|
||||
|
||||
// Array with all pages, order by parent.
|
||||
$pagesParents = array(NO_PARENT_CHAR=>array());
|
||||
|
||||
// ============================================================================
|
||||
|
@ -33,12 +36,14 @@ function build_page($key)
|
|||
// Page object, content from FILE.
|
||||
$Page = new Page($key);
|
||||
if( !$Page->isValid() ) {
|
||||
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying build the page from file with key: '.$key);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Page database, content from DATABASE JSON.
|
||||
$db = $dbPages->getDb($key);
|
||||
if( !$db ) {
|
||||
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying build the page from database with key: '.$key);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -63,7 +68,6 @@ function build_page($key)
|
|||
$user = $dbUsers->getDb( $Page->username() );
|
||||
|
||||
$Page->setField('authorFirstName', $user['firstName'], false);
|
||||
|
||||
$Page->setField('authorLastName', $user['lastName'], false);
|
||||
}
|
||||
|
||||
|
@ -86,9 +90,12 @@ function build_all_pages()
|
|||
|
||||
if($Page!==false)
|
||||
{
|
||||
// --- Order pages by parents ---
|
||||
|
||||
// Generate all posible parents.
|
||||
if( $Page->parentKey()===false )
|
||||
{
|
||||
// Add the parent key in the dbPages
|
||||
$dbPages->addParentKey($Page->key());
|
||||
|
||||
$pagesParents[NO_PARENT_CHAR][$Page->key()] = $Page;
|
||||
|
@ -98,33 +105,27 @@ function build_all_pages()
|
|||
$pagesParents[$Page->parentKey()][$Page->key()] = $Page;
|
||||
}
|
||||
|
||||
// $pages array
|
||||
// --- All pages in 1 array ---
|
||||
$pages[$Page->key()] = $Page;
|
||||
}
|
||||
}
|
||||
|
||||
// ======== Order pages ========
|
||||
// ======== Sort pages ========
|
||||
|
||||
// DEBUG: No me gusta esta forma de ordenar
|
||||
$tmpNoParents = $pagesParents[NO_PARENT_CHAR];
|
||||
unset($pagesParents[NO_PARENT_CHAR]);
|
||||
|
||||
// Order children
|
||||
// Sort children
|
||||
$tmpPageWithParent = array();
|
||||
foreach($pagesParents as $parentKey=>$childrenPages)
|
||||
{
|
||||
$tmpPageWithParent[$parentKey] = $childrenPages;
|
||||
uasort($tmpPageWithParent[$parentKey], 'orderChildren');
|
||||
}
|
||||
|
||||
// Sort parents
|
||||
$tmp = array();
|
||||
foreach($pagesParents as $parentKey=>$childrenPages)
|
||||
{
|
||||
$tmp[$parentKey] = $childrenPages;
|
||||
uasort($tmp[$parentKey], 'orderChildren');
|
||||
}
|
||||
|
||||
if(isset($tmp[NO_PARENT_CHAR]))
|
||||
{
|
||||
$tmpNoParents = $tmp[NO_PARENT_CHAR];
|
||||
unset($tmp[NO_PARENT_CHAR]);
|
||||
}
|
||||
|
||||
$pagesParents = $tmp;
|
||||
|
||||
// Order parents.
|
||||
foreach($pagesParents as $parentKey=>$childrenPages)
|
||||
foreach($tmpNoParents as $parentKey=>$childrenPages)
|
||||
{
|
||||
// DEBUG: Workaround, Esto es un bug, cuando se usa el Cli mode
|
||||
// DEBUG: Se genera un padre sin index.txt y adentro hay un hijo
|
||||
|
@ -133,7 +134,7 @@ function build_all_pages()
|
|||
}
|
||||
}
|
||||
|
||||
$pagesParents = array(NO_PARENT_CHAR=>$tmpNoParents) + $tmp;
|
||||
$pagesParents = array(NO_PARENT_CHAR=>$tmp) + $tmpPageWithParent;
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
|
|
@ -20,7 +20,7 @@ Paginator::set('postPerPage', $postPerPage);
|
|||
// Number of posts
|
||||
Paginator::set('numberOfPosts', $numberOfPosts);
|
||||
|
||||
$numberOfPages = (int) ceil($numberOfPosts / $postPerPage) -1;
|
||||
$numberOfPages = (int) max(ceil($numberOfPosts / $postPerPage) -1, 0);
|
||||
Paginator::set('numberOfPages', $numberOfPages);
|
||||
|
||||
$showOlder = $numberOfPages > $currentPage;
|
||||
|
|
|
@ -289,7 +289,7 @@ class dbPages extends dbJSON
|
|||
return $newKey;
|
||||
}
|
||||
|
||||
// Return an array with all page's databases.
|
||||
// Return an array with all databases.
|
||||
public function getAll()
|
||||
{
|
||||
return $this->db;
|
||||
|
|
|
@ -96,7 +96,7 @@ class dbPosts extends dbJSON
|
|||
// Generate the database key.
|
||||
$key = $this->generateKey($args['slug']);
|
||||
|
||||
// The user is always the who is loggued.
|
||||
// The user is always who is loggued.
|
||||
$args['username'] = Session::get('username');
|
||||
if( Text::isEmpty($args['username']) ) {
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue