Hallo zusammen,
so sieht jetzt meine Lösung aus.
Ich hangele mich durch, von unten nach oben. (Modul -> ContentElement -> Article -> Page -> PageParents -> Root)
Falls jemand weitere/andere Anregungen hat gerne, ansonsten bin ich damit erstmal zufrieden.
Ist Dank der Model-Klassen dann doch nicht so schlimm gebastelt wie zunächst befürchtet.
Hier der Code falls mal jemand etwas ähnliches benötigt.
PHP-Code:
class ContaoHelper
{
public static function getRootByModuleID($id){
if (is_object($ce = \ContentModel::findByModule($id)) &&
is_object($article = \ArticleModel::findByPK($ce->pid)) &&
is_object($page = \PageModel::findByPK($article->pid)) &&
is_object($parents = \PageModel::findParentsByID($page->id)) &&
is_object($root = $parents->last()->current())
){
// $root assigned successfully
}else{
// something went wrong ...
$root = null;
}
return $root;
}
}
PHP-Code:
class MyCustomModule extends \Module
{
public function __construct($objModule){
$root = ContaoHelper::getRootByModuleID($objModule->id);
}
}
Lesezeichen