<?php
//Spezielle Gruppe Fachtrainer
$superusergroups = $modx->getOption('superusergroups', $scriptProperties,'8,9,11,12,13,14');
//Kursinformationen von Parent Kursinformationen
$parent = $modx->getOption('parent', $scriptProperties, 47);
$superusergroups = explode(',', $superusergroups);
$groups = $modx->user->getUserGroups();
$has_permission = false;
$accepted = false; //see below
//Ist der User überhaupt in der Superusergroup?
foreach ($superusergroups as $group) {
if (in_array($group, $groups)) {
$has_permission = true; //user is in one of the superusergroups
$gruppe = $group;
}
}
$modx->log(modX::LOG_LEVEL_ERROR, $gruppe);
//Überprüfen welche Gruppe
$resources = array();
if ($parentObj = $modx->getObject('modResource', $parent))
{
//OLD
//$c = $modx->newQuery('modResource');
//NEW
$pdoTools = $modx->getService('pdoFetch');
$c = $pdoTools->getCollection('modResource', array('published' => 1, 'deleted' => 0), array('parents' => 47));
if ($resArray = $parentObj->getMany('Children', $c))
{
foreach ($resArray as $res)
{
// if ($res instanceof modResource)
// {
if ($res->get('description') == 'Impuls Lehrtrainer 2')
{
if ($has_permission AND $gruppe == "11")
{
$accepted = true;
}
}
else if ($res->get('description') == 'Impuls Lehrtrainer')
{
if ($has_permission AND ($gruppe == "9" OR $gruppe == "11"))
{
$accepted = true;
}
}
else if ($res->get('description') == 'Fachtrainer')
{
if ($has_permission AND ($gruppe == "8" OR $gruppe == "9" OR $gruppe == "11"))
{
$accepted = true;
}
}
//hat Upgrade 1 oder ist Mitglied von einer der höheren Gruppen
else if ($res->get('description') == 'Upgrade 1')
{
if ($has_permission AND ($gruppe == "12" OR $gruppe == "13" OR $gruppe == "14" OR $gruppe == "8" OR $gruppe == "9" OR $gruppe == "11"))
{
$accepted = true;
}
}
//hat Upgrade 2 oder ist Mitglied von einer der höheren Gruppen
else if ($res->get('description') == 'Upgrade 2')
{
if ($has_permission AND ($gruppe == "13" OR $gruppe == "14" OR $gruppe == "8" OR $gruppe == "9" OR $gruppe == "11"))
{
$accepted = true;
}
}
//hat Upgrade 3 oder ist Mitglied von einer der höheren Gruppen
else if ($res->get('description') == 'Upgrade 3')
{
if ($has_permission AND ($gruppe == "14" OR $gruppe == "8" OR $gruppe == "9" OR $gruppe == "11"))
{
$accepted = true;
}
}
else
{
$accepted = true;
}
// }
if ($accepted)
{
$resources[] = $res->get('pagetitle') . '==' .$res->get('pagetitle');
//$resources->sortby('pagetitle', 'ASC');
}
$accepted = false; //reset accepted to false
}
}
}
natcasesort($resources);
$out = implode("||", $resources);
return $out;
This question has been answered by sspind. See the first response.
<?php
//Spezielle Gruppe Fachtrainer
$superusergroups = $modx->getOption('superusergroups', $scriptProperties,'8,9,11,12,13,14');
//Kursinformationen von Parent Kursinformationen
$parent = $modx->getOption('parent', $scriptProperties, 47);
$superusergroups = explode(',', $superusergroups);
$groups = $modx->user->getUserGroups();
$has_permission = false;
$accepted = false; //see below
//Ist der User überhaupt in der Superusergroup?
foreach ($superusergroups as $group) {
if (in_array($group, $groups)) {
$has_permission = true; //user is in one of the superusergroups
$gruppe = $group;
/* NEW: check which superuser group
if ($group[0] != "")
{
$gruppe = "1";
}
else if ($group[1] != "")
{
$gruppe = "2";
}
else
{
$gruppe = "3";
}
$modx->log(modX::LOG_LEVEL_ERROR, $gruppe);
$modx->trigger_error($gruppe, E_USER_WARNING);
*/
}
}
$modx->log(modX::LOG_LEVEL_ERROR, $gruppe);
//Überprüfen welche Gruppe
$resources = array();
if ($parentObj = $modx->getObject('modResource', $parent))
{
//OLD
//$c = $modx->newQuery('modResource');
//NEW
$pdoTools = $modx->getService('pdoFetch');
$collection = $pdoTools->getCollection('modResource', array('published' => 1, 'deleted' => 0), array('parents' => 47));
//if ($resArray = $parentObj->getMany('Children', $c))
// {
foreach ($collection as $res)
{
// if ($res instanceof modResource)
// {
if ($res['description'] == 'Impuls Lehrtrainer 2')
{
if ($has_permission AND $gruppe == "11")
{
$accepted = true;
}
}
else if ($res['description'] == 'Impuls Lehrtrainer')
{
if ($has_permission AND ($gruppe == "9" OR $gruppe == "11"))
{
$accepted = true;
}
}
else if ($res['description'] == 'Fachtrainer')
{
if ($has_permission AND ($gruppe == "8" OR $gruppe == "9" OR $gruppe == "11"))
{
$accepted = true;
}
}
//hat Upgrade 1 oder ist Mitglied von einer der höheren Gruppen
else if ($res['description'] == 'Upgrade 1')
{
if ($has_permission AND ($gruppe == "12" OR $gruppe == "13" OR $gruppe == "14" OR $gruppe == "8" OR $gruppe == "9" OR $gruppe == "11"))
{
$accepted = true;
}
}
//hat Upgrade 2 oder ist Mitglied von einer der höheren Gruppen
else if ($res['description'] == 'Upgrade 2')
{
if ($has_permission AND ($gruppe == "13" OR $gruppe == "14" OR $gruppe == "8" OR $gruppe == "9" OR $gruppe == "11"))
{
$accepted = true;
}
}
//hat Upgrade 3 oder ist Mitglied von einer der höheren Gruppen
else if ($res['description'] == 'Upgrade 3')
{
if ($has_permission AND ($gruppe == "14" OR $gruppe == "8" OR $gruppe == "9" OR $gruppe == "11"))
{
$accepted = true;
}
}
else
{
$accepted = true;
}
// }
if ($accepted)
{
$resources[] = $res['pagetitle'] . '==' .$res['pagetitle'];
//$resources->sortby('pagetitle', 'ASC');
}
$accepted = false; //reset accepted to false
// }
}
}
natcasesort($resources);
$out = implode("||", $resources);
return $out;