concrete/src/Entity/Block/BlockType/BlockType.php
public function getBlockTypeCustomTemplates(Block $b)
    {
        $btHandle = $this->getBlockTypeHandle();
        $fh = Loader::helper('file');
        $files = array();
        $dir = DIR_FILES_BLOCK_TYPES . "/{$btHandle}/" . DIRNAME_BLOCK_TEMPLATES;
        if (is_dir($dir)) {
            $files = array_merge($files, $fh->getDirectoryContents($dir));
        }

        // Next, check the current theme.
        $c = $b->getBlockCollectionObject();
        if (is_object($c)) {
            $theme = $c->getCollectionThemeObject();
            if (is_object($theme)) {
                $dir = DIR_FILES_THEMES . "/" . $theme->getThemeHandle() . "/" . DIRNAME_BLOCKS . "/" . $btHandle . "/" . DIRNAME_BLOCK_TEMPLATES;
                if (is_dir($dir)) {
                    $files = array_merge($files, $fh->getDirectoryContents($dir));
                }

                if ($theme->getPackageHandle()) {
                    $dir =
                        (is_dir(DIR_PACKAGES . '/' . $theme->getPackageHandle()) ? DIR_PACKAGES : DIR_PACKAGES_CORE)
                        . '/' . $theme->getPackageHandle() . '/' . DIRNAME_THEMES . '/' . $theme->getThemeHandle() . '/' . DIRNAME_BLOCKS . '/' . $btHandle . '/' . DIRNAME_BLOCK_TEMPLATES;
                    if (is_dir($dir)) {
                        $files = array_merge($files, $fh->getDirectoryContents($dir));
                    }
                }

                $dir = DIR_FILES_THEMES_CORE . "/" . $theme->getThemeHandle() . "/" . DIRNAME_BLOCKS . "/" . $btHandle . "/" . DIRNAME_BLOCK_TEMPLATES;
                if (is_dir($dir)) {
                    $files = array_merge($files, $fh->getDirectoryContents($dir));
                }
            }
        }
        // NOW, we check to see if this btHandle has any custom templates that have been installed as separate packages
        foreach (PackageList::get()->getPackages() as $pkg) {
            $dir =
                (is_dir(DIR_PACKAGES . '/' . $pkg->getPackageHandle()) ? DIR_PACKAGES : DIR_PACKAGES_CORE)
                . '/' . $pkg->getPackageHandle() . '/' . DIRNAME_BLOCKS . '/' . $btHandle . '/' . DIRNAME_BLOCK_TEMPLATES;
            if (is_dir($dir)) {
                $files = array_merge($files, $fh->getDirectoryContents($dir));
            }
        }
        $dir = DIR_FILES_BLOCK_TYPES_CORE . "/{$btHandle}/" . DIRNAME_BLOCK_TEMPLATES;
        if (is_dir($dir)) {
            $files = array_merge($files, $fh->getDirectoryContents($dir));
        }
        $templates = array();
        foreach (array_unique($files) as $file) {
            $templates[] = new TemplateFile($this, $file);
        }

        return TemplateFile::sortTemplateFileList($templates);
    }
public function getBlockTypeCustomTemplates(Block $b)
    {
        $btHandle = $this->getBlockTypeHandle();
        $fh = Loader::helper('file');
        $files = array();
        $dir = DIR_FILES_BLOCK_TYPES . "/{$btHandle}/" . DIRNAME_BLOCK_TEMPLATES;
        if (is_dir($dir)) {
            $files = array_merge($files, $fh->getDirectoryContents($dir));
        }

        // Next, check the current theme.
        $c = $b->getBlockCollectionObject();
        if (is_object($c)) {
            $theme = $c->getCollectionThemeObject();
            if (is_object($theme)) {
                $dir = DIR_FILES_THEMES . "/" . $theme->getThemeHandle() . "/" . DIRNAME_BLOCKS . "/" . $btHandle . "/" . DIRNAME_BLOCK_TEMPLATES;
                if (is_dir($dir)) {
                    $files = array_merge($files, $fh->getDirectoryContents($dir));
                }

                if ($theme->getPackageHandle()) {
                    $dir =
                        (is_dir(DIR_PACKAGES . '/' . $theme->getPackageHandle()) ? DIR_PACKAGES : DIR_PACKAGES_CORE)
                        . '/' . $theme->getPackageHandle() . '/' . DIRNAME_THEMES . '/' . $theme->getThemeHandle() . '/' . DIRNAME_BLOCKS . '/' . $btHandle . '/' . DIRNAME_BLOCK_TEMPLATES;
                    if (is_dir($dir)) {
                        $files = array_merge($files, $fh->getDirectoryContents($dir));
                    }
                }

                $dir = DIR_FILES_THEMES_CORE . "/" . $theme->getThemeHandle() . "/" . DIRNAME_BLOCKS . "/" . $btHandle . "/" . DIRNAME_BLOCK_TEMPLATES;
                if (is_dir($dir)) {
                    $files = array_merge($files, $fh->getDirectoryContents($dir));
                }
            }
        }
        // NOW, we check to see if this btHandle has any custom templates that have been installed as separate packages
        foreach (PackageList::get()->getPackages() as $pkg) {
            $dir =
                (is_dir(DIR_PACKAGES . '/' . $pkg->getPackageHandle()) ? DIR_PACKAGES : DIR_PACKAGES_CORE)
                . '/' . $pkg->getPackageHandle() . '/' . DIRNAME_BLOCKS . '/' . $btHandle . '/' . DIRNAME_BLOCK_TEMPLATES;
            if (is_dir($dir)) {
                $files = array_merge($files, $fh->getDirectoryContents($dir));
            }
        }
        $dir = DIR_FILES_BLOCK_TYPES_CORE . "/{$btHandle}/" . DIRNAME_BLOCK_TEMPLATES;
        if (is_dir($dir)) {
            $files = array_merge($files, $fh->getDirectoryContents($dir));
        }
        $templates = array();
        foreach (array_unique($files) as $file) {
            $templates[] = new TemplateFile($this, $file);
        }

        return TemplateFile::sortTemplateFileList($templates);
    }
public function getBlockTypeCustomTemplates ( Block $ b ) { $ btHandle = $ this -> getBlockTypeHandle ( ) ; $ fh = Loader :: helper ( 'file' ) ; $ files = array ( ) ; $ dir = DIR_FILES_BLOCK_TYPES . "/{$btHandle}/" . DIRNAME_BLOCK_TEMPLATES ; if ( is_dir ( $ dir ) ) { $ files = array_merge ( $ files , $ fh -> getDirectoryContents ( $ dir ) ) ; } // Next, check the current theme. $ c = $ b -> getBlockCollectionObject ( ) ; if ( is_object ( $ c ) ) { $ theme = $ c -> getCollectionThemeObject ( ) ; if ( is_object ( $ theme ) ) { $ dir = DIR_FILES_THEMES . "/" . $ theme -> getThemeHandle ( ) . "/" . DIRNAME_BLOCKS . "/" . $ btHandle . "/" . DIRNAME_BLOCK_TEMPLATES ; if ( is_dir ( $ dir ) ) { $ files = array_merge ( $ files , $ fh -> getDirectoryContents ( $ dir ) ) ; } if ( $ theme -> getPackageHandle ( ) ) { $ dir = ( is_dir ( DIR_PACKAGES . '/' . $ theme -> getPackageHandle ( ) ) ? DIR_PACKAGES : DIR_PACKAGES_CORE ) . '/' . $ theme -> getPackageHandle ( ) . '/' . DIRNAME_THEMES . '/' . $ theme -> getThemeHandle ( ) . '/' . DIRNAME_BLOCKS . '/' . $ btHandle . '/' . DIRNAME_BLOCK_TEMPLATES ; if ( is_dir ( $ dir ) ) { $ files = array_merge ( $ files , $ fh -> getDirectoryContents ( $ dir ) ) ; } } $ dir = DIR_FILES_THEMES_CORE . "/" . $ theme -> getThemeHandle ( ) . "/" . DIRNAME_BLOCKS . "/" . $ btHandle . "/" . DIRNAME_BLOCK_TEMPLATES ; if ( is_dir ( $ dir ) ) { $ files = array_merge ( $ files , $ fh -> getDirectoryContents ( $ dir ) ) ; } } } // NOW, we check to see if this btHandle has any custom templates that have been installed as separate packages foreach ( PackageList :: get ( ) -> getPackages ( ) as $ pkg ) { $ dir = ( is_dir ( DIR_PACKAGES . '/' . $ pkg -> getPackageHandle ( ) ) ? DIR_PACKAGES : DIR_PACKAGES_CORE ) . '/' . $ pkg -> getPackageHandle ( ) . '/' . DIRNAME_BLOCKS . '/' . $ btHandle . '/' . DIRNAME_BLOCK_TEMPLATES ; if ( is_dir ( $ dir ) ) { $ files = array_merge ( $ files , $ fh -> getDirectoryContents ( $ dir ) ) ; } } $ dir = DIR_FILES_BLOCK_TYPES_CORE . "/{$btHandle}/" . DIRNAME_BLOCK_TEMPLATES ; if ( is_dir ( $ dir ) ) { $ files = array_merge ( $ files , $ fh -> getDirectoryContents ( $ dir ) ) ; } $ templates = array ( ) ; foreach ( array_unique ( $ files ) as $ file ) { $ templates [ ] = new TemplateFile ( $ this , $ file ) ; } return TemplateFile :: sortTemplateFileList ( $ templates ) ; }
Gets the custom templates available for the current BlockType.

@return TemplateFile[]
Gets the custom templates available for the current BlockType .