bludit/bl-kernel/admin/views/content.php

267 lines
8.3 KiB
PHP
Raw Normal View History

2017-05-16 00:46:20 +02:00
<?php
2018-07-18 22:44:42 +02:00
echo Bootstrap::pageTitle(array('title'=>$L->g('Content'), 'icon'=>'layers'));
2017-05-16 00:46:20 +02:00
2018-07-17 23:58:01 +02:00
function table($type) {
global $url;
2017-08-06 17:27:30 +02:00
global $Language;
global $published;
global $drafts;
global $scheduled;
2017-09-20 23:00:03 +02:00
global $static;
2018-03-27 18:40:03 +02:00
global $sticky;
2017-08-06 17:27:30 +02:00
2018-07-17 23:58:01 +02:00
if ($type=='published') {
$list = $published;
2018-05-02 19:59:45 +02:00
if (empty($list)) {
echo '<p class="mt-4 text-muted">';
2018-08-01 14:46:12 +02:00
echo $Language->g('There are no pages at this moment.');
2018-05-02 19:59:45 +02:00
echo '</p>';
return false;
}
2018-07-17 23:58:01 +02:00
} elseif ($type=='draft') {
$list = $drafts;
2018-05-02 19:59:45 +02:00
if (empty($list)) {
echo '<p class="mt-4 text-muted">';
2018-08-01 14:46:12 +02:00
echo $Language->g('There are no draft pages at this moment.');
2018-05-02 19:59:45 +02:00
echo '</p>';
return false;
}
2018-07-17 23:58:01 +02:00
} elseif ($type=='scheduled') {
$list = $scheduled;
2018-05-02 19:59:45 +02:00
if (empty($list)) {
echo '<p class="mt-4 text-muted">';
2018-08-01 14:46:12 +02:00
echo $Language->g('There are no scheduled pages at this moment.');
2018-05-02 19:59:45 +02:00
echo '</p>';
return false;
}
2018-07-17 23:58:01 +02:00
} elseif ($type=='static') {
2017-09-20 23:00:03 +02:00
$list = $static;
2018-05-02 19:59:45 +02:00
if (empty($list)) {
echo '<p class="mt-4 text-muted">';
2018-08-01 14:46:12 +02:00
echo $Language->g('There are no static pages at this moment.');
2018-05-02 19:59:45 +02:00
echo '</p>';
return false;
}
2018-07-17 23:58:01 +02:00
} elseif ($type=='sticky') {
2018-03-27 18:40:03 +02:00
$list = $sticky;
2018-05-02 19:59:45 +02:00
if (empty($list)) {
echo '<p class="mt-4 text-muted">';
2018-08-01 14:46:12 +02:00
echo $Language->g('There are no sticky pages at this moment.');
2018-05-02 19:59:45 +02:00
echo '</p>';
return false;
}
}
2018-05-02 19:59:45 +02:00
echo '
<table class="table mt-3">
<thead>
<tr>
2018-07-28 18:33:37 +02:00
<th style="font-size: 0.8em;" class="border-0 text-uppercase text-muted" scope="col">'.$Language->g('Title').'</th>
<th style="font-size: 0.8em;" class="border-0 d-none d-lg-table-cell text-uppercase text-muted" scope="col">'.$Language->g('URL').'</th>
<th style="font-size: 0.8em;" class="border-0 text-center d-none d-sm-table-cell text-uppercase text-muted" scope="col">Actions</th>
2018-05-02 19:59:45 +02:00
</tr>
</thead>
<tbody>
';
2018-01-21 23:23:22 +01:00
if (ORDER_BY=='position') {
foreach ($list as $pageKey) {
2018-07-17 23:58:01 +02:00
try {
$page = new PageX($pageKey);
if (!$page->isChild() || $type!='published') {
2018-01-22 00:21:47 +01:00
echo '<tr>
<td>
2018-05-02 19:59:45 +02:00
<a href="'.HTML_PATH_ADMIN_ROOT.'edit-content/'.$page->key().'">'
.($page->title()?$page->title():'<span>'.$Language->g('Empty title').'</span> ')
2018-01-22 00:21:47 +01:00
.'</a>
2018-05-02 19:59:45 +02:00
</td>';
2018-01-22 00:21:47 +01:00
$friendlyURL = Text::isEmpty($url->filters('page')) ? '/'.$page->key() : '/'.$url->filters('page').'/'.$page->key();
2018-05-02 19:59:45 +02:00
echo '<td class="d-none d-lg-table-cell"><a target="_blank" href="'.$page->permalink().'">'.$friendlyURL.'</a></td>';
2018-05-14 00:00:10 +02:00
echo '<td class="text-center d-none d-sm-table-cell">'.$page->position().'</td>';
2018-05-02 19:59:45 +02:00
2018-01-22 00:21:47 +01:00
echo '</tr>';
2018-01-21 23:23:22 +01:00
2018-02-15 20:08:00 +01:00
foreach ($page->children() as $child) {
2018-01-22 00:21:47 +01:00
if ($child->published()) {
2018-01-21 23:23:22 +01:00
echo '<tr>
2018-05-02 19:59:45 +02:00
<td>
<a href="'.HTML_PATH_ADMIN_ROOT.'edit-content/'.$child->key().'">'
.($child->title()?$child->title():'<span>'.$Language->g('Empty title').'</span> ')
2018-01-21 23:23:22 +01:00
.'</a>
2018-05-02 19:59:45 +02:00
</td>';
2018-01-21 23:23:22 +01:00
$friendlyURL = Text::isEmpty($url->filters('page')) ? '/'.$child->key() : '/'.$url->filters('page').'/'.$child->key();
2018-01-21 23:23:22 +01:00
echo '<td><a target="_blank" href="'.$child->permalink().'">'.$friendlyURL.'</a></td>';
2018-05-02 19:59:45 +02:00
echo '<td>'.$child->position().'</td>';
2018-01-21 23:23:22 +01:00
echo '</tr>';
2018-01-22 00:21:47 +01:00
}
2018-01-21 23:23:22 +01:00
}
}
2018-07-17 23:58:01 +02:00
} catch (Exception $e) {
// Continue
2018-01-21 23:23:22 +01:00
}
}
} else {
foreach ($list as $pageKey) {
2018-07-17 23:58:01 +02:00
try {
$page = new PageX($pageKey);
2018-01-21 23:23:22 +01:00
echo '<tr>';
2018-07-28 18:33:37 +02:00
echo '<td class="pt-3">
<div>
<a style="font-size: 1.1em" href="'.HTML_PATH_ADMIN_ROOT.'edit-content/'.$page->key().'">'
.($page->title()?$page->title():'<span class="label-empty-title">'.$Language->g('Empty title').'</span> ')
.'</a>
</div>
<div>
<p style="font-size: 0.8em" class="m-0 text-uppercase text-muted">'.( ((ORDER_BY=='position') || ($type!='published'))?'Position: '.$page->position():$page->relativeTime() ).'</p>
</div>
2018-01-21 23:23:22 +01:00
</td>';
$friendlyURL = Text::isEmpty($url->filters('page')) ? '/'.$page->key() : '/'.$url->filters('page').'/'.$page->key();
2018-07-28 18:33:37 +02:00
echo '<td class="pt-3 d-none d-lg-table-cell"><a target="_blank" href="'.$page->permalink().'">'.$friendlyURL.'</a></td>';
2018-05-02 19:59:45 +02:00
2018-07-28 18:33:37 +02:00
echo '<td class="pt-3 text-center d-none d-sm-table-cell">'.PHP_EOL;
2018-08-01 14:46:12 +02:00
echo '<a class="btn btn-secondary btn-sm" href="'.HTML_PATH_ADMIN_ROOT.'edit-content/'.$page->key().'"><span class="oi oi-pencil"></span> Edit</a>'.PHP_EOL;
2018-07-28 18:33:37 +02:00
echo '<button type="button" class="btn btn-secondary btn-sm deletePageButton" data-toggle="modal" data-target="#jsdeletePageModal" data-key="'.$page->key().'"><span class="oi oi-trash"></span> Delete</button>'.PHP_EOL;
echo '</td>';
2018-05-02 19:59:45 +02:00
2018-01-21 23:23:22 +01:00
echo '</tr>';
2018-07-17 23:58:01 +02:00
} catch (Exception $e) {
// Continue
2018-01-21 23:23:22 +01:00
}
2017-12-17 21:16:30 +01:00
}
}
2017-05-16 00:46:20 +02:00
2018-05-02 19:59:45 +02:00
echo '
</tbody>
</table>
';
}
2017-07-07 23:38:01 +02:00
?>
2018-05-02 19:59:45 +02:00
<!-- TABS -->
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="pages-tab" data-toggle="tab" href="#pages" role="tab">Pages</a>
</li>
<li class="nav-item">
<a class="nav-link" id="static-tab" data-toggle="tab" href="#static" role="tab">Static</a>
</li>
<li class="nav-item">
<a class="nav-link" id="sticky-tab" data-toggle="tab" href="#sticky" role="tab">Sticky</a>
</li>
<li class="nav-item">
2018-05-08 23:25:18 +02:00
<a class="nav-link" id="scheduled-tab" data-toggle="tab" href="#scheduled" role="tab">Schedule <?php if (count($scheduled)>0) { echo '<span class="badge badge-danger">'.count($scheduled).'</span>'; } ?></a>
2018-05-02 19:59:45 +02:00
</li>
<li class="nav-item">
2018-05-08 23:25:18 +02:00
<a class="nav-link" id="draft-tab" data-toggle="tab" href="#draft" role="tab">Draft <?php if (count($drafts)>0) { echo '<span class="badge badge-danger">'.count($drafts).'</span>'; } ?></a>
2018-05-02 19:59:45 +02:00
</li>
2017-07-07 23:38:01 +02:00
</ul>
2018-05-02 19:59:45 +02:00
<div class="tab-content">
<!-- TABS PAGES -->
<div class="tab-pane show active" id="pages" role="tabpanel">
2018-07-18 23:16:30 +02:00
<?php table('published'); ?>
2018-07-28 18:33:37 +02:00
<?php if (Paginator::amountOfPages() > 1): ?>
2018-07-18 23:16:30 +02:00
<!-- Paginator -->
<nav class="paginator">
<ul class="pagination flex-wrap justify-content-center">
2018-07-18 23:26:43 +02:00
<!-- First button -->
<li class="page-item <?php if (!Paginator::showPrev()) echo 'disabled' ?>">
2018-07-18 23:26:43 +02:00
<a class="page-link" href="<?php echo Paginator::firstPageUrl() ?>"><span class="align-middle oi oi-media-skip-backward"></span> <?php echo $Language->get('First'); ?></a>
2018-07-18 23:16:30 +02:00
</li>
2018-07-18 23:26:43 +02:00
<!-- Previous button -->
<li class="page-item <?php if (!Paginator::showPrev()) echo 'disabled' ?>">
<a class="page-link" href="<?php echo Paginator::previousPageUrl() ?>"><?php echo $Language->get('Previous'); ?></a>
2018-07-18 23:16:30 +02:00
</li>
<!-- Next button -->
<li class="page-item <?php if (!Paginator::showNext()) echo 'disabled' ?>">
<a class="page-link" href="<?php echo Paginator::nextPageUrl() ?>"><?php echo $Language->get('Next'); ?></a>
</li>
2018-07-18 23:26:43 +02:00
<!-- Last button -->
<li class="page-item <?php if (!Paginator::showNext()) echo 'disabled' ?>">
2018-07-18 23:26:43 +02:00
<a class="page-link" href="<?php echo Paginator::lastPageUrl() ?>"><?php echo $Language->get('Last'); ?> <span class="align-middle oi oi-media-skip-forward"></span></a>
</li>
2018-07-18 23:16:30 +02:00
</ul>
</nav>
2018-07-28 18:33:37 +02:00
<?php endif; ?>
2018-05-02 19:59:45 +02:00
</div>
<!-- TABS STATIC -->
<div class="tab-pane" id="static" role="tabpanel">
<?php table('static'); ?>
</div>
<!-- TABS STICKY -->
<div class="tab-pane" id="sticky" role="tabpanel">
<?php table('sticky'); ?>
</div>
<!-- TABS SCHEDULED -->
<div class="tab-pane" id="scheduled" role="tabpanel">
<?php table('scheduled'); ?>
</div>
<!-- TABS DRAFT -->
<div class="tab-pane" id="draft" role="tabpanel">
<?php table('draft'); ?>
</div>
</div>
2018-07-28 18:33:37 +02:00
<!-- Modal for delete page -->
<?php echo Bootstrap::modal(array(
'modalId'=>'jsdeletePageModal',
2018-08-01 14:46:12 +02:00
'modalTitle'=>'<span class="oi oi-trash"></span> ' . 'Delete content',
'modalText'=>'Are you sure you want to delete this page?',
2018-07-28 18:33:37 +02:00
'buttonPrimary'=>'Delete',
'buttonPrimaryClass'=>'deletePageModalAcceptButton',
'buttonSecondary'=>'Cancel',
'buttonSecondaryClass'=>''
));
?>
<script>
$(document).ready(function() {
var key = false;
// Button for delete a page in the table
$(".deletePageButton").on("click", function() {
key = $(this).data('key');
});
// Event from button accept from the modal
$(".deletePageModalAcceptButton").on("click", function() {
var form = jQuery('<form>', {
'action': HTML_PATH_ADMIN_ROOT+'edit-content/'+key,
'method': 'post',
'target': '_top'
}).append(jQuery('<input>', {
'type': 'hidden',
'name': 'tokenCSRF',
'value': tokenCSRF
}).append(jQuery('<input>', {
'type': 'hidden',
'name': 'key',
'value': key
}).append(jQuery('<input>', {
'type': 'hidden',
'name': 'type',
'value': 'delete'
}))));
form.hide().appendTo("body").submit();
});
});
2018-08-01 14:46:12 +02:00
</script>