mirror of
				https://github.com/getgrav/grav-plugin-admin.git
				synced 2025-11-03 20:05:53 +01:00 
			
		
		
		
	Return a flat array of direct dependencies from dependenciesThatCanBeRemovedWhenRemoving, not recurse into packages
This commit is contained in:
		@@ -477,18 +477,16 @@ class Admin
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Generate an array of nested dependencies for a package
 | 
					     * Generate an array of dependencies for a package
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param string $slug               The package slug
 | 
					     * @param string $slug          The package slug
 | 
				
			||||||
     * @param bool   $remove_duplicates  True if should remove duplicates after first occurrence
 | 
					     * @param array  $dependencies  Used for recursion
 | 
				
			||||||
     * @param array  $keys_already_added Used for recursion
 | 
					 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @return array|bool
 | 
					     * @return array|bool
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public function dependenciesThatCanBeRemovedWhenRemoving($slug, $keys_already_added = [])
 | 
					    public function dependenciesThatCanBeRemovedWhenRemoving($slug, $dependencies = [])
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $gpm = $this->gpm();
 | 
					        $gpm = $this->gpm();
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!$gpm) {
 | 
					        if (!$gpm) {
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -502,24 +500,14 @@ class Admin
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if ($package) {
 | 
					        if ($package) {
 | 
				
			||||||
            if ($package->dependencies) {
 | 
					            if ($package->dependencies) {
 | 
				
			||||||
                if (!$keys_already_added) {
 | 
					 | 
				
			||||||
                    $keys_already_added = array_values($package->dependencies);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                foreach ($package->dependencies as $dependency) {
 | 
					                foreach ($package->dependencies as $dependency) {
 | 
				
			||||||
                    if ($dependency)
 | 
					                    if (count($gpm->getPackagesThatDependOnPackage($dependency)) > 1) {
 | 
				
			||||||
 | 
					                        continue;
 | 
				
			||||||
 | 
					 | 
				
			||||||
                    $temp_dependencies = $this->dependenciesThatCanBeRemovedWhenRemoving($dependency, $keys_already_added);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    foreach($keys_already_added as $key => $value) {
 | 
					 | 
				
			||||||
                        if (is_string($value)) {
 | 
					 | 
				
			||||||
                            unset($temp_dependencies[$value]);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    $keys_already_added = array_merge($keys_already_added, array_values($temp_dependencies));
 | 
					                    if (!in_array($dependency, $dependencies)) {
 | 
				
			||||||
                    $dependencies[$dependency] = $temp_dependencies;
 | 
					                        $dependencies[] = $dependency;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user