sitemap WIP
This commit is contained in:
parent
2746ac553b
commit
63a309b5f1
@ -13,21 +13,100 @@
|
|||||||
* @link http://zwiicms.fr/
|
* @link http://zwiicms.fr/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class sitemap extends common {
|
class sitemap extends common
|
||||||
|
{
|
||||||
|
public static $actions = [
|
||||||
|
'index' => self::GROUP_VISITOR
|
||||||
|
];
|
||||||
|
|
||||||
public static $actions = [
|
public static $siteMap = '';
|
||||||
'index' => self::GROUP_VISITOR
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plan du site
|
* Plan du site
|
||||||
*/
|
*/
|
||||||
public function index() {
|
public function index()
|
||||||
// Valeurs en sortie
|
{
|
||||||
$this->addOutput([
|
$items = '<ul>';
|
||||||
'title' => 'Plan du site',
|
foreach ($this->getHierarchy(null, true, null) as $parentId => $childIds) {
|
||||||
'view' => 'index'
|
$items .= '<li class="pageIcon">';
|
||||||
]);
|
if ($this->getData(['page', $parentId, 'disable']) === false && $this->getUser('group') >= $this->getData(['page', $parentId, 'group'])) {
|
||||||
}
|
$items .= '<a href="' .helper::baseUrl() . $parentId .'">' .$this->getData(['page', $parentId, 'title']) . '</a>';
|
||||||
|
// $items .= '<';
|
||||||
|
} else {
|
||||||
|
// page désactivée
|
||||||
|
$items .= $this->getData(['page', $parentId, 'title']);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ou articles d'un blog
|
||||||
|
if ($this->getData(['page', $parentId, 'moduleId']) === 'blog' &&
|
||||||
|
!empty($this->getData(['module',$parentId, 'posts' ]))) {
|
||||||
|
$items .= '<ul>';
|
||||||
|
// Ids des articles par ordre de publication
|
||||||
|
$articleIdsPublishedOns = helper::arrayCollumn($this->getData(['module', $parentId,'posts']), 'publishedOn', 'SORT_DESC');
|
||||||
|
$articleIdsStates = helper::arrayCollumn($this->getData(['module', $parentId, 'posts']), 'state', 'SORT_DESC');
|
||||||
|
$articleIds = [];
|
||||||
|
foreach ($articleIdsPublishedOns as $articleId => $articlePublishedOn) {
|
||||||
|
if ($articlePublishedOn <= time() and $articleIdsStates[$articleId]) {
|
||||||
|
$articleIds[] = $articleId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($articleIds as $articleId => $article) {
|
||||||
|
if ($this->getData(['module',$parentId,'posts',$article,'state']) === true) {
|
||||||
|
$items .= '<li class="articleIcon">';
|
||||||
|
$items .= '<a href="' . helper::baseUrl() . $parentId. '/' . $article . '">' . $this->getData(['module',$parentId,'posts',$article,'title']) . '</a>';
|
||||||
|
$items .= '</li>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$items .= '</ul>';
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($childIds as $childId) {
|
||||||
|
$items .= '<ul>';
|
||||||
|
// Sous-page
|
||||||
|
$items .= '<li class="pageIcon">';
|
||||||
|
if ($this->getData(['page', $childId, 'disable']) === false && $this->getUser('group') >= $this->getData(['page', $parentId, 'group'])) {
|
||||||
|
$items .= '<a href="' . helper::baseUrl() . $childId . '">' . $this->getData(['page', $childId, 'title']) . '</a>';
|
||||||
|
} else {
|
||||||
|
// page désactivée
|
||||||
|
$items .= $this->getData(['page', $childId, 'title']);
|
||||||
|
}
|
||||||
|
$items .= '</li>';
|
||||||
|
|
||||||
}
|
|
||||||
|
// Articles d'une sous-page blog
|
||||||
|
if ($this->getData(['page', $childId, 'moduleId']) === 'blog' &&
|
||||||
|
!empty($this->getData(['module', $childId, 'posts' ]))) {
|
||||||
|
$items .= '<ul>';
|
||||||
|
// Ids des articles par ordre de publication
|
||||||
|
$articleIdsPublishedOns = helper::arrayCollumn($this->getData(['module', $childId,'posts']), 'publishedOn', 'SORT_DESC');
|
||||||
|
$articleIdsStates = helper::arrayCollumn($this->getData(['module', $childId, 'posts']), 'state', 'SORT_DESC');
|
||||||
|
$articleIds = [];
|
||||||
|
foreach ($articleIdsPublishedOns as $articleId => $articlePublishedOn) {
|
||||||
|
if ($articlePublishedOn <= time() and $articleIdsStates[$articleId]) {
|
||||||
|
$articleIds[] = $articleId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($articleIds as $articleId => $article) {
|
||||||
|
if ($this->getData(['module',$childId,'posts',$article,'state']) === true) {
|
||||||
|
$items .= '<li class="articleIcon">';
|
||||||
|
$items .= '<a href="' . helper::baseUrl() . $childId . '/' . $article . '">' . $this->getData(['module',$childId,'posts',$article,'title']) . '</a>';
|
||||||
|
$items .= '</li>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$items .= '</ul>';
|
||||||
|
}
|
||||||
|
$items .= '</li>';
|
||||||
|
// Fin du grand bloc
|
||||||
|
$items .= '</ul>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self::$siteMap = $items;
|
||||||
|
|
||||||
|
// Valeurs en sortie
|
||||||
|
$this->addOutput([
|
||||||
|
'title' => 'Plan du site',
|
||||||
|
'view' => 'index'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -12,6 +12,17 @@
|
|||||||
* @link http://zwiicms.fr/
|
* @link http://zwiicms.fr/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ul {
|
#siteMap ul {
|
||||||
list-style-type: circle;
|
list-style: none ;
|
||||||
}
|
margin-left: .5em;
|
||||||
|
padding-left: 1em;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pageIcon li::before {
|
||||||
|
content: "📄 ";
|
||||||
|
}
|
||||||
|
|
||||||
|
.articleIcon li::before {
|
||||||
|
content: "📝 ";
|
||||||
|
}
|
@ -1,74 +1,4 @@
|
|||||||
<ul>
|
<?php
|
||||||
<?php foreach($this->getHierarchy(null,true,null) as $parentId => $childIds): ?>
|
echo "<div id='siteMap'>";
|
||||||
<li>
|
echo $module::$siteMap;
|
||||||
<?php
|
echo "</div>";
|
||||||
if ($this->getData(['page', $parentId, 'disable']) === false && $this->getUser('group') >= $this->getData(['page', $parentId, 'group']))
|
|
||||||
{ ?>
|
|
||||||
<a href="<?php echo helper::baseUrl() . $parentId; ?>"><?php echo $this->getData(['page', $parentId, 'title']); ?></a>
|
|
||||||
<?php
|
|
||||||
} else {
|
|
||||||
// page désactivée
|
|
||||||
echo $this->getData(['page', $parentId, 'title']);
|
|
||||||
} ?>
|
|
||||||
<ul>
|
|
||||||
<?php foreach($childIds as $childId): ?>
|
|
||||||
<li>
|
|
||||||
<!-- Sous-page -->
|
|
||||||
<?php if ($this->getData(['page', $childId, 'disable']) === false && $this->getUser('group') >= $this->getData(['page', $parentId, 'group']))
|
|
||||||
{ ?>
|
|
||||||
<a href="<?php echo helper::baseUrl() . $childId; ?>"><?php echo $this->getData(['page', $childId, 'title']); ?></a>
|
|
||||||
<?php } else { ?>
|
|
||||||
<!-- page désactivée -->
|
|
||||||
<?php echo $this->getData(['page', $childId, 'title']); }?>
|
|
||||||
|
|
||||||
<!-- articles d'une sous-page blog-->
|
|
||||||
<ul>
|
|
||||||
<?php if ($this->getData(['page', $childId, 'moduleId']) === 'blog' &&
|
|
||||||
!empty($this->getData(['module', $childId, 'posts' ])) ) { ?>
|
|
||||||
<?php
|
|
||||||
// Ids des articles par ordre de publication
|
|
||||||
$articleIdsPublishedOns = helper::arrayCollumn($this->getData(['module', $childId,'posts']), 'publishedOn', 'SORT_DESC');
|
|
||||||
$articleIdsStates = helper::arrayCollumn($this->getData(['module', $childId, 'posts']), 'state', 'SORT_DESC');
|
|
||||||
$articleIds = [];
|
|
||||||
foreach($articleIdsPublishedOns as $articleId => $articlePublishedOn) {
|
|
||||||
if($articlePublishedOn <= time() AND $articleIdsStates[$articleId]) {
|
|
||||||
$articleIds[] = $articleId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach($articleIds as $articleId => $article): ?>
|
|
||||||
<?php if($this->getData(['module',$childId,'posts',$article,'state']) === true) {?>
|
|
||||||
<li>
|
|
||||||
<a href="<?php echo helper::baseUrl() . $childId . '/' . $article;?>"><?php echo $this->getData(['module',$childId,'posts',$article,'title']); ?></a>
|
|
||||||
</li>
|
|
||||||
<?php } ?>
|
|
||||||
<?php endforeach;
|
|
||||||
} ?>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
<!-- ou articles d'un blog-->
|
|
||||||
|
|
||||||
<?php if ($this->getData(['page', $parentId, 'moduleId']) === 'blog' &&
|
|
||||||
!empty($this->getData(['module',$parentId, 'posts' ])) ) { ?>
|
|
||||||
<?php
|
|
||||||
// Ids des articles par ordre de publication
|
|
||||||
$articleIdsPublishedOns = helper::arrayCollumn($this->getData(['module', $parentId,'posts']), 'publishedOn', 'SORT_DESC');
|
|
||||||
$articleIdsStates = helper::arrayCollumn($this->getData(['module', $parentId, 'posts']), 'state', 'SORT_DESC');
|
|
||||||
$articleIds = [];
|
|
||||||
foreach($articleIdsPublishedOns as $articleId => $articlePublishedOn) {
|
|
||||||
if($articlePublishedOn <= time() AND $articleIdsStates[$articleId]) {
|
|
||||||
$articleIds[] = $articleId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach($articleIds as $articleId => $article): ?>
|
|
||||||
<?php if($this->getData(['module',$parentId,'posts',$article,'state']) === true ): ?>
|
|
||||||
<li>
|
|
||||||
<a href="<?php echo helper::baseUrl() . $parentId. '/' . $article;?>"><?php echo $this->getData(['module',$parentId,'posts',$article,'title']); ?></a>
|
|
||||||
</li>
|
|
||||||
<?php endif; ?>
|
|
||||||
<?php endforeach;
|
|
||||||
} ?>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</ul>
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user