2017-10-25 6 views
-1

내가 폴더 구조가이 좋아 한 파일 관리자 폴더 내의 모든 파일을 가져 오기 : 검색 할 수있는 방법이Concrete5 CMS는 :: 프로그래밍

folder1 
    subfolder1 
      file1.pdf 
      file2.pdf 
    subfolder2 
      file3.pdf 
      file4.pdf 

모든 PDF 파일의 (프로그램)은 "폴더 1"을 사용하여 신분증?

답변

0

폴더 구조와 관련해서 미친 듯이 깊이 들어가지는 마십시오. 수백 가지 레벨의 수백 개의 폴더를 통과하기를 원하지는 않습니다.

여기에 코드

<?php 
use Concrete\Core\Tree\Node\Type\FileFolder; 
use Concrete\Core\File\FolderItemList; 

// First grab the folder object 
$folder = FileFolder::getNodeByName('Testing Folder'); 

if (is_object($folder)) { 
    $files = []; 
    // if we have a folder we need to grab everything inside and then 
    // recursively go through the folder's content 
    // if what we get is a file we list it 
    // otherwise if it's another folder we go through it as well 
    $walk = function ($folder) use (&$files, &$walk) { 
      $list = new FolderItemList(); 
      $list->filterByParentFolder($folder); 
      $list->sortByNodeName(); 
      $nodes = $list->getResults(); 

      foreach ($nodes as $node) { 
       if ($node->getTreeNodeTypeHandle() === 'file'){ 
        $files[] = $node->getTreeNodeFileObject(); 
       } elseif ($node->getTreeNodeTypeHandle() === 'file_folder'){ 
        $walk($node); 
       } 
      } 
     }; 
    $walk($folder); 

    // we are done going through all the folders, we now have our file nodes 
    foreach ($files as $file) { 
     echo sprintf('%sfile name is %s and URL is %s%s', '<p>', $file->getTitle(), $file->getURL(), '</p>'); 
    } 
} 
입니다