<?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;