1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-06 14:46:56 +02:00

News Breadcrumb added for Magic Shortcode: {---BREADCRUMB---}

This commit is contained in:
Cameron
2019-06-15 12:53:58 -07:00
parent 950b3c7484
commit 3ccc01fae3
2 changed files with 88 additions and 10 deletions

View File

@@ -12,6 +12,8 @@
define("PAGE_NAME", "News");
define("LAN_NEWS_1", "News for specific members only");
define("LAN_NEWS_2", "You are not allowed to see this news");
//define("LAN_NEWS_5", "Error! Was unable to update news item into database!");
@@ -52,4 +54,4 @@ define("LAN_NEWS_307", "Total posts in this category: ");
define("LAN_NEWS_308", "Perhaps you're looking for one of the news items below?");
?>
define("LAN_NEWS_309", "Tag");

View File

@@ -38,7 +38,10 @@ class news_front
private $cacheRefreshTime = false;
private $caption = null;
private $templateKey = null;
private $categorySEF = null;
private $currentRow = array();
private $dayMonth = null;
private $tagAuthor = null;
// private $interval = 1;
function __construct()
@@ -68,11 +71,72 @@ class news_front
$this->setActions();
$this->setRoute();
$this->detect();
$this->setBreadcrumb();
return null;
}
private function setBreadcrumb()
{
$breadcrumb = array();
$breadcrumb[] = array('text'=> PAGE_NAME, 'url'=>e107::url('news', 'index'));
$categoryName = e107::getParser()->toHTML($this->currentRow['category_name'],true, 'TITLE');
switch($this->route)
{
case "news/list/all":
case "news/list/item":
$breadcrumb[0]['url'] = null;
break;
case "news/view":
$itemName = e107::getParser()->toHTML($this->currentRow['news_title'],true, 'TITLE');
$breadcrumb[] = array('text'=> $categoryName, 'url'=>e107::getUrl()->create('news/list/category', $this->currentRow));
$breadcrumb[] = array('text'=> $itemName, 'url'=> null);
break;
case 'news/list/category':
case 'news/list/short':
$breadcrumb[] = array('text'=> $categoryName, 'url'=>null);
break;
case 'news/list/tag':
$breadcrumb[] = array('text'=> defset('LAN_NEWS_309', "Tag"), 'url'=>null);
$breadcrumb[] = array('text'=> $this->tagAuthor, 'url'=>null);
break;
case 'news/list/author':
$breadcrumb[] = array('text'=> LAN_AUTHOR, 'url'=>null);
$breadcrumb[] = array('text'=> $this->tagAuthor, 'url'=>null);
break;
case 'news/list/month':
case 'news/list/day':
$breadcrumb[] = array('text'=> LAN_DATE, 'url'=>null);
$breadcrumb[] = array('text' => $this->dayMonth, 'url'=>null);
break;
default:
if(ADMIN)
{
$breadcumb[] = array('text'=> "Missing News breadcrumb for route: ".$this->route);
}
break;
}
e107::breadcrumb($breadcrumb);
}
private function detect()
{
@@ -494,8 +558,12 @@ class news_front
$title = e107::getParser()->toDate($unix, $format);
$title = strip_tags($title);
$this->dayMonth = $title;
if(!defined('e_PAGETITLE'))
{
define('e_PAGETITLE', $title );
@@ -809,7 +877,9 @@ class news_front
AND n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$this->nobody_regexp.")
ORDER BY n.news_datestamp DESC
LIMIT ".intval($this->from).",".NEWSLIST_LIMIT;
$category_name = 'Tag: "'.$tagsearch.'"';
$category_name = defset('LAN_NEWS_309','Tag').': "'.$tagsearch.'"';
$this->tagAuthor = $tagsearch;
}
elseif($this->action === 'author')
@@ -827,9 +897,9 @@ class news_front
AND n.news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (n.news_class REGEXP ".$this->nobody_regexp.")
ORDER BY n.news_datestamp DESC
LIMIT ".intval($this->from).",".NEWSLIST_LIMIT;
$category_name = 'Author: "'.$authorSearch.'"';
$category_name = LAN_AUTHOR.': "'.$authorSearch.'"';
$this->tagAuthor = $authorSearch;
}
@@ -941,6 +1011,7 @@ class news_front
$tpl = ($c === 1 && !empty($template['first']) && $this->from === 0) ? $template['first'] : $template['item'];
$text .= $this->ix->render_newsitem($row, 'return', '', $tpl, $param);
$this->currentRow = $row;
$c++;
}
}
@@ -956,11 +1027,6 @@ class news_front
$icon = ($row['category_icon']) ? "<img src='".e_IMAGE."icons/".$row['category_icon']."' alt='' />" : "";
// Deprecated.
// $parms = $news_total.",".$amount.",".$newsfrom.",".$e107->url->getUrl('core:news', 'main', "action=nextprev&to_action={$action}&subaction={$category}");
// $parms = $news_total.",".$amount.",".$newsfrom.",".e_SELF.'?'.$action.".".$category.".[FROM]";
//
// $text .= "<div class='nextprev'>".$tp->parseTemplate("{NEXTPREV={$parms}}")."</div>";
$amount = NEWSLIST_LIMIT;
$nitems = defined('NEWS_NEXTPREV_NAVCOUNT') ? '&navcount='.NEWS_NEXTPREV_NAVCOUNT : '' ;
@@ -972,6 +1038,7 @@ class news_front
$text .= $tp->parseTemplate("{NEXTPREV={$parms}}");
if(isset($template['caption'])) // v2.x
{
$NEWSLISTTITLE = str_replace("{NEWSCATEGORY}",$tp->toHTML($category_name,FALSE,'TITLE'), $template['caption']);
@@ -1134,6 +1201,9 @@ class news_front
}
$this->currentRow = $news;
$cache_data = $this->ix->render_newsitem($news, 'extend', '', $template, $param);
@@ -1620,6 +1690,8 @@ class news_front
$this->templateKey = 'default';
}
$this->currentRow = $newsAr[1];
$this->addDebug('Template key',$this->templateKey);
$template = $tmpl['item'];
@@ -1631,6 +1703,8 @@ class news_front
{
$row = $newsAr[1];
$this->currentRow = $row;
if(empty($this->action)) // default page.
{
$row['category_name'] = PAGE_NAME;
@@ -1638,6 +1712,7 @@ class news_front
$nsc = e107::getScBatch('news')->setScVar('news_item', $row)->setScVar('param', $param);
$this->caption = $tp->parseTemplate($tmpl['caption'], true, $nsc);
}
if(!empty($tmpl['start'])) //v2.1.5
@@ -1649,6 +1724,7 @@ class news_front
{
// we know category name - pass it to the nexprev url
$category_name = $newsAr[1]['category_name'];
if(vartrue($newsAr[1]['category_sef'])) $newsUrlparms['name'] = $newsAr[1]['category_sef'];
if(!isset($NEWSLISTCATTITLE))
{