Skip to content

Commit

Permalink
PageHelper has better multilang support if aliases equal, sorting is …
Browse files Browse the repository at this point in the history
…used in more cases
  • Loading branch information
saibotd committed Sep 28, 2017
1 parent 62dd4b8 commit 3c07170
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/Resources/contao/classes/ArticleHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public static function pageArticles($pageId)
$articles->{$article->inColumn} = [];
}
$_article = Helper::toObj($article);
$contents = ContentModel::findPublishedByPidAndTable($article->id, 'tl_article');
$contents = ContentModel::findPublishedByPidAndTable($article->id, 'tl_article', ['order' => 'sorting ASC']);
if (!$contents) {
continue;
}
Expand Down
9 changes: 9 additions & 0 deletions src/Resources/contao/classes/Helper.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@ public static function replaceURL($url){
return str_replace($apiScript, '', $url);
}

public static function urlToLanguage($url)
{
if (Config::get('addLanguageToUrl')){
$parts = explode('/', $url);
if(count($parts) >= 3 && strlen($parts[1]) == 2) return $parts[1];
}
return static::defaultLang();
}

public static function urlToAlias($url)
{
$suffix = Config::get('urlSuffix');
Expand Down
9 changes: 7 additions & 2 deletions src/Resources/contao/classes/PageHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ public static function parsePage($page, $includeSubPages = true, $includeParentP

public static function getPage($url, $ignoreUnequalAlias = false)
{
if($url == '/' || $url == '/'.Helper::defaultLang().'/'){
$urlLanguage = Helper::urlToLanguage($url);
if($url == '/' || $url == '/'.$urlLanguage.'/'){
$rootId = Frontend::getRootPageFromUrl()->id;
$rootPage = PageModel::findByIdOrAlias($rootId);
$page = PageModel::findFirstPublishedByPid($rootId);
Expand All @@ -60,7 +61,11 @@ public static function getPage($url, $ignoreUnequalAlias = false)
if (!$ignoreUnequalAlias && $urlAlias != $pageAlias) {
return null;
}
$page = PageModel::findByIdOrAlias($pageAlias);
$pages = PageModel::findPublishedByIdOrAlias($pageAlias);
foreach($pages as $page){
$page->loadDetails();
if($page->language == $urlLanguage) break;
}
}
if (!$page) {
return;
Expand Down
2 changes: 1 addition & 1 deletion src/Resources/contao/classes/ReaderHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public static function handle($readerClass, $url)
if (!$readerModel || !Controller::isVisibleElement($readerModel)) {
return null;
}
$contents = ContentModel::findPublishedByPidAndTable($readerModel->id, $readerClass::getTable());
$contents = ContentModel::findPublishedByPidAndTable($readerModel->id, $readerClass::getTable(), ['order' => 'sorting ASC']);
$_reader = Helper::toObj($readerModel);
if ($contents) {
foreach ($contents as $content) {
Expand Down
2 changes: 1 addition & 1 deletion src/Resources/contao/classes/SitemapHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public static function getSitemap($lang = null)
{
if (!$lang) $lang = Helper::defaultLang();
$sitemap = [];
$rootPages = PageModel::findPublishedRootPages();
$rootPages = PageModel::findPublishedRootPages(['order' => 'sorting ASC']);
foreach($rootPages as $rootPage){
if($rootPage->language == $lang) break;
}
Expand Down

0 comments on commit 3c07170

Please sign in to comment.