We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 43592
    • 97 Posts
    Dear members,
    listmyressources was a script which I re-edited to fill a listfield with pagetitles of ressources. Now I need not only to get the children ressources-titles but the ressources titles of childrens children. The recommendation on slack was to use pdoTools which I installed (See code line OLD and NEW which I already changed).
    After changing the code-lines (codelines //OLD to //NEW) the listfield doesnt show anything, which did before, but I get no error. So I please for some help - Thank you!

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

    • discuss.answer
      • 43592
      • 97 Posts
      Finished and working script (Thanks to bezumkin @slack)

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