RecursiveFolderFilterIterator.php 745 B

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. namespace Grav\Common\Filesystem;
  3. use Grav\Common\GravTrait;
  4. class RecursiveFolderFilterIterator extends \RecursiveFilterIterator
  5. {
  6. use GravTrait;
  7. protected static $folder_ignores;
  8. public function __construct(\RecursiveIterator $iterator)
  9. {
  10. parent::__construct($iterator);
  11. if (empty($this::$folder_ignores)) {
  12. $this::$folder_ignores = self::getGrav()['config']->get('system.pages.ignore_folders');
  13. }
  14. }
  15. public function accept()
  16. {
  17. /** @var $current \SplFileInfo */
  18. $current = $this->current();
  19. if ($current->isDir() && !in_array($current->getFilename(), $this::$folder_ignores)) {
  20. return true;
  21. }
  22. return false;
  23. }
  24. }