Verlinkung für Top-Modul eingebaut
This commit is contained in:
parent
8ca4aad975
commit
fb9540fe2e
@ -35,7 +35,7 @@ namespace cgoIT\rateit;
|
||||
*/
|
||||
class RateItTopRatingsModule extends RateItFrontend
|
||||
{
|
||||
//protected $intStars = 5;
|
||||
private static $arrUrlCache = array();
|
||||
|
||||
/**
|
||||
* Initialize the controller
|
||||
@ -123,6 +123,8 @@ class RateItTopRatingsModule extends RateItFrontend
|
||||
|
||||
$return->rateit_class = 'rateItRating';
|
||||
|
||||
$return->url = $this->getUrl($result);
|
||||
|
||||
// Beschriftung ermitteln
|
||||
$rating = array();
|
||||
$rating['totalRatings'] = $result['most'];
|
||||
@ -137,6 +139,103 @@ class RateItTopRatingsModule extends RateItFrontend
|
||||
|
||||
$this->Template->arrRatings = $objReturn;
|
||||
}
|
||||
|
||||
private function getUrl($rating) {
|
||||
if ($rating['typ'] === 'page') {
|
||||
return \PageModel::findById($rating['rkey'])->getAbsoluteUrl();
|
||||
}
|
||||
if ($rating['typ'] === 'article') {
|
||||
$objArticle = \ArticleModel::findPublishedById($rating['rkey']);
|
||||
if (!is_null($objArticle)) {
|
||||
return \PageModel::findById($objArticle->pid)->getAbsoluteUrl().'#'.$objArticle->alias;
|
||||
}
|
||||
}
|
||||
if ($rating['typ'] === 'news') {
|
||||
$objNews = \NewsModel::findById($rating['rkey']);
|
||||
$objArticle = \NewsModel::findPublishedByPid($objNews->pid);
|
||||
|
||||
// Internal link
|
||||
if ($objArticle->source != 'external') {
|
||||
return $this->generateNewsUrl($objNews);
|
||||
}
|
||||
|
||||
// Encode e-mail addresses
|
||||
if (substr($objArticle->url, 0, 7) == 'mailto:') {
|
||||
$strArticleUrl = \StringUtil::encodeEmail($objArticle->url);
|
||||
}
|
||||
|
||||
// Ampersand URIs
|
||||
else {
|
||||
$strArticleUrl = ampersand($objArticle->url);
|
||||
}
|
||||
|
||||
/** @var \PageModel $objPage */
|
||||
global $objPage;
|
||||
|
||||
// External link
|
||||
return $strArticleUrl;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private function generateNewsUrl($objItem) {
|
||||
$strCacheKey = 'id_' . $objItem->id;
|
||||
|
||||
// Load the URL from cache
|
||||
if (isset(self::$arrUrlCache[$strCacheKey])) {
|
||||
return self::$arrUrlCache[$strCacheKey];
|
||||
}
|
||||
|
||||
// Initialize the cache
|
||||
self::$arrUrlCache[$strCacheKey] = null;
|
||||
|
||||
switch ($objItem->source) {
|
||||
// Link to an external page
|
||||
case 'external' :
|
||||
if (substr($objItem->url, 0, 7) == 'mailto:') {
|
||||
self::$arrUrlCache[$strCacheKey] = \StringUtil::encodeEmail($objItem->url);
|
||||
} else {
|
||||
self::$arrUrlCache[$strCacheKey] = ampersand($objItem->url);
|
||||
}
|
||||
break;
|
||||
|
||||
// Link to an internal page
|
||||
case 'internal' :
|
||||
if (($objTarget = $objItem->getRelated('jumpTo')) !== null) {
|
||||
/** @var \PageModel $objTarget */
|
||||
self::$arrUrlCache[$strCacheKey] = ampersand($objTarget->getFrontendUrl());
|
||||
}
|
||||
break;
|
||||
|
||||
// Link to an article
|
||||
case 'article' :
|
||||
if (($objArticle = \ArticleModel::findByPk($objItem->articleId, array(
|
||||
'eager' => true
|
||||
))) !== null && ($objPid = $objArticle->getRelated('pid')) !== null) {
|
||||
/** @var \PageModel $objPid */
|
||||
self::$arrUrlCache[$strCacheKey] = ampersand($objPid->getFrontendUrl('/articles/' . ((! \Config::get('disableAlias') && $objArticle->alias != '') ? $objArticle->alias : $objArticle->id)));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Link to the default page
|
||||
if (self::$arrUrlCache[$strCacheKey] === null) {
|
||||
$objPage = \PageModel::findWithDetails($objItem->getRelated('pid')->jumpTo);
|
||||
|
||||
if ($objPage === null) {
|
||||
self::$arrUrlCache[$strCacheKey] = ampersand(\Environment::get('request'), true);
|
||||
} else {
|
||||
self::$arrUrlCache[$strCacheKey] = ampersand($objPage->getFrontendUrl(((\Config::get('useAutoItem') && ! \Config::get('disableAlias')) ? '/' : '/items/') . ((! \Config::get('disableAlias') && $objItem->alias != '') ? $objItem->alias : $objItem->id)));
|
||||
}
|
||||
|
||||
// Add the current archive parameter (news archive)
|
||||
if ($blnAddArchive && \Input::get('month') != '') {
|
||||
self::$arrUrlCache[$strCacheKey] .= (\Config::get('disableAlias') ? '&' : '?') . 'month=' . \Input::get('month');
|
||||
}
|
||||
}
|
||||
|
||||
return self::$arrUrlCache[$strCacheKey];
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@ -14,18 +14,19 @@
|
||||
],
|
||||
"support": {
|
||||
"email": "info@cgo-it.de",
|
||||
"issues": "https://git.cgo-it.de/contao/rate-it/issues",
|
||||
"issues": "https://bitbucket.org/cgo-it/contao-rate-it/issues?status=new&status=open",
|
||||
"forum": "https://community.contao.org/de/showthread.php?38471-Rate-It",
|
||||
"source": "https://git.cgo-it.de/contao/rate-it/tree/master"
|
||||
"source": "https://bitbucket.org/cgo-it/contao-rate-it/src"
|
||||
},
|
||||
"require":{
|
||||
"php":">=5.3",
|
||||
"contao/core":">=3.0",
|
||||
"contao-community-alliance/composer-plugin": "~2.0",
|
||||
"leounglaub/contao-simple-ajax":"3.2.x-dev",
|
||||
"cgo-it/xls_export":"3.0.0"
|
||||
},
|
||||
"replace": {
|
||||
"cgo-it/rate-it": "<3.5.4"
|
||||
"cgo-it/rate-it": "<3.4.3"
|
||||
},
|
||||
"conflict": {
|
||||
"contao/core": "2.11.*"
|
||||
|
@ -15,6 +15,15 @@
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.ce_rateit_top_ratings .rateItContainer {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ce_rateit_top_ratings .rateItTitle {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.rateItRating[rel="not-rateable"] {
|
||||
float: right;
|
||||
}
|
||||
|
2
public/css/rateit.min.css
vendored
2
public/css/rateit.min.css
vendored
@ -1 +1 @@
|
||||
.rateItRating{position:relative;display:inline-block}.mbrateItRating{position:relative;opacity:1}.mbrateItRating .wrapper,.rateItRating .wrapper{cursor:pointer;position:relative;diplay:inline-block;height:16px}.rateItRating[rel=not-rateable]{float:right}.rateItRating[rel=not-rateable] .wrapper{cursor:default}div.mod_rateit_top_ratings ul{padding:0}div.mod_rateit_top_ratings li{list-style-type:none}div.mod_rateit_top_ratings div.rateItTitle{display:inline-block;max-width:40%;min-height:30px}div.mbrateItRating div.rateItRating-hover,div.mbrateItRating div.rateItRating-selected,div.rateItRating div.rateItRating-hover,div.rateItRating div.rateItRating-selected{position:absolute}.rateItRating .ratingText{color:#000}.mbrateItRating .mbratingText{display:inline-block;color:#ccc}.ratingText.ratingError{color:red}.mbrateItRating .mbratingText.loading,.rateItRating .ratingText.loading{background:url("../images/ajax-loading.gif") no-repeat}span.rating-microdata{display:none}
|
||||
.rateItRating{position:relative;display:inline-block}.mbrateItRating{position:relative;opacity:1}.mbrateItRating .wrapper,.rateItRating .wrapper{cursor:pointer;position:relative;diplay:inline-block;height:16px}.ce_rateit_top_ratings .rateItContainer{display:inline-block;width:100%;}.ce_rateit_top_ratings .rateItTitle{float: left;}.rateItRating[rel=not-rateable]{float:right}.rateItRating[rel=not-rateable] .wrapper{cursor:default}div.mod_rateit_top_ratings ul{padding:0}div.mod_rateit_top_ratings li{list-style-type:none}div.mod_rateit_top_ratings div.rateItTitle{display:inline-block;max-width:40%;min-height:30px}div.mbrateItRating div.rateItRating-hover,div.mbrateItRating div.rateItRating-selected,div.rateItRating div.rateItRating-hover,div.rateItRating div.rateItRating-selected{position:absolute}.rateItRating .ratingText{color:#000}.mbrateItRating .mbratingText{display:inline-block;color:#ccc}.ratingText.ratingError{color:red}.mbrateItRating .mbratingText.loading,.rateItRating .ratingText.loading{background:url("../images/ajax-loading.gif") no-repeat}span.rating-microdata{display:none}
|
@ -1,21 +1,29 @@
|
||||
|
||||
<div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
|
||||
<div class="<?= $this->class ?> block"<?= $this->cssID ?><?php if ($this->style): ?> style="<?= $this->style ?>"<?php endif; ?>>
|
||||
|
||||
<?php if ($this->headline): ?>
|
||||
<<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
|
||||
<<?= $this->hl ?>><?= $this->headline ?></<?= $this->hl ?>>
|
||||
<?php endif; ?>
|
||||
|
||||
<ul>
|
||||
<?php foreach ($this->arrRatings as $rating): ?>
|
||||
<li>
|
||||
<!-- indexer::stop -->
|
||||
<div class="rateItTitle"><?php echo $rating->title; ?></div>
|
||||
<div id="<?php echo $rating->rateItID; ?>" class="<?php echo $rating->rateit_class; ?>" rel="<?php echo $rating->rel; ?>">
|
||||
<div class="wrapper">
|
||||
<div class="rateItRating-selected" style="display: block;"></div>
|
||||
<div class="rateItRating-hover"></div>
|
||||
</div>
|
||||
<div id="<?php echo $rating->descriptionId; ?>" class="ratingText"><?php echo $rating->description; ?></div>
|
||||
<div class="rateItContainer">
|
||||
<div class="rateItTitle">
|
||||
<?php if ($rating->url): ?>
|
||||
<a href="<?= $rating->url ?>"><?= $rating->title ?></a>
|
||||
<?php else: ?>
|
||||
<?= $rating->title ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div id="<?= $rating->rateItID ?>" class="<?= $rating->rateit_class ?>" rel="<?= $rating->rel ?>">
|
||||
<div class="wrapper">
|
||||
<div class="rateItRating-selected" style="display: block;"></div>
|
||||
<div class="rateItRating-hover"></div>
|
||||
</div>
|
||||
<div id="<?= $rating->descriptionId ?>" class="ratingText"><?= $rating->description ?></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- indexer::continue -->
|
||||
</li>
|
||||
|
@ -1,21 +1,27 @@
|
||||
|
||||
<div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
|
||||
<div class="<?= $this->class; ?> block"<?= $this->cssID; ?><?php if ($this->style): ?> style="<?= $this->style; ?>"<?php endif; ?>>
|
||||
|
||||
<?php if ($this->headline): ?>
|
||||
<<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
|
||||
<<?= $this->hl ?>><?= $this->headline; ?></<?= $this->hl; ?>>
|
||||
<?php endif; ?>
|
||||
|
||||
<ul>
|
||||
<?php foreach ($this->arrRatings as $rating): ?>
|
||||
<li>
|
||||
<!-- indexer::stop -->
|
||||
<div class="rateItTitle"><?php echo $rating->title; ?></div>
|
||||
<div id="<?php echo $rating->rateItID; ?>" class="<?php echo $rating->rateit_class; ?>" rel="<?php echo $rating->rel; ?>">
|
||||
<div class="rateItTitle">
|
||||
<?php if ($rating->url): ?>
|
||||
<a href="<?= $rating->url ?>"><?= $rating->title ?></a>
|
||||
<?php else: ?>
|
||||
<?= $rating->title ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div id="<?= $rating->rateItID ?>" class="<?= $rating->rateit_class ?>" rel="<?= $rating->rel ?>">
|
||||
<div class="wrapper">
|
||||
<div class="rateItRating-selected" style="display: block;"></div>
|
||||
<div class="rateItRating-hover"></div>
|
||||
</div>
|
||||
<div id="<?php echo $rating->descriptionId; ?>" class="ratingText"><?php echo $rating->description; ?></div>
|
||||
<div id="<?= $rating->descriptionId ?>" class="ratingText"><?= $rating->description ?></div>
|
||||
</div>
|
||||
<!-- indexer::continue -->
|
||||
</li>
|
||||
|
Loading…
Reference in New Issue
Block a user