<?php namespace Eae\Backoffice\Generic;

use DirectoryIterator;
use Config;

class ContentTypes{
   
    protected $collection;

    public function __construct(){
        $dir = new DirectoryIterator(app_path('config/backoffice/generic'));
        $types = array();
        foreach ($dir as $fileinfo) {
            if (!$fileinfo->isDot()) {
                $type = preg_replace('/\\.[^.\\s]{3,4}$/', '', $fileinfo->getFilename()); 
                $types[] = new ContentType($type);
            }
        }

        $this->collection = new ContentTypeCollection($types);           
    }
    
    public function getScripts(){
        $scripts = array(
            'genericModalForm' => Config::get('path.backoffice.js_path') . '/view/generic/backend-generic-form-modal.js',
            'genericForm' => Config::get('path.backoffice.js_path') . '/view/generic/backend-generic-form.js',
            'langPicker' => Config::get('path.backoffice.js_path') . '/view/backend-lang-tab-picker.js',
        );
        $dir = new DirectoryIterator(app_path('lib/Eae/Backoffice/Generic/Fields'));
        foreach ($dir as $fileinfo) {
            if (!$fileinfo->isDot()) {
                $fieldType = preg_replace('/\\.[^.\\s]{3,4}$/', '', $fileinfo->getFilename());
                $class = "Eae\\Backoffice\\Generic\\Fields\\{$fieldType}";
                $script = $class::getScript(); 
                if(!is_null($script)){
                    $scripts = array_merge($scripts, $script);    
                }
            }
        } 
        
        return $scripts;   
    }
    
    public function __call($method, $parameters){
        return call_user_func_array(array($this->collection, $method), $parameters);
    }
    
    
}
