# bit-form/1.4/includes/Admin/Form/Template/TemplateProvider.php

Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator &amp; Custom Form Builder, version 1.4. 78 lines.

- Page: https://pluginprobe.com/plugins/bit-form/1.4/code/includes/Admin/Form/Template/TemplateProvider.php
- Raw: https://pluginprobe.com/plugins/bit-form/1.4/raw/includes/Admin/Form/Template/TemplateProvider.php
- Modified: 2020-11-28T13:30:54+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/bit-form/1.4/code/includes/Admin/Form/Template/TemplateProvider.php#L10-L20`.

```php
<?php

namespace BitCode\BitForm\Admin\Form\Template;

use FilesystemIterator;

final class TemplateProvider
{
    /**
     * Undocumented function
     *
     * @return all
     */
    public function getAllTemplates()
    {
        return $this->allTemplates();
    }
    /**
     * Undocumented function
     *
     * @return void
     */
    protected function allTemplates()
    {
        $dirs = new FilesystemIterator(__DIR__);
        foreach ($dirs as $dirInfo) {
            if ($dirInfo->isFile()) {
                $integartionBaseName = basename($dirInfo);
                if (substr($integartionBaseName, -strlen('Template.php')) === 'Template.php') {
                    $className = substr($integartionBaseName, 0, strpos($integartionBaseName, '.php'));
                    $className = __NAMESPACE__ . '\\' . $className;
                    $templateDetail = new $className;
                    $Templates[] =  array(
                        'title' => $templateDetail->getTitle(),
                        'description' =>  $templateDetail->getDescription(),
                        'status' => $templateDetail->getStatus(),
                        'thumbnail' => $templateDetail->getThumbnail(),
                        'category' => $templateDetail->getCategory()
                    );
                }
            }
        }
        return json_encode($Templates);
    }
    /**
     * Undocumented function
     *
     * @param String $name
     * @return void
     */
    protected function setTemplate($name = 'Contact Form', $newFormId)
    {
        $name = is_null($name) ? 'Contact Form' : $name;
        $name = str_replace(' ', null, $name);
        $file = strpos($name, 'Template') !== false ? $name . '.php' : $name . 'Template.php';
        if (file_exists(__DIR__ . '/' . $file)) {
            $className = __NAMESPACE__ . '\\' . $name . 'Template';
            $templateDetail = new $className;
            return array(
                'fields' => json_decode($templateDetail->getFields($newFormId)),
                'layout' => json_decode($templateDetail->getLayout($newFormId)),
                'form_name' => $templateDetail->getTitle()
            );
        } else {
            return false;
        }
    }
    /**
     * This function helps to get TEMPLATE
     *
     * @return bool setTemplate()
     */
    public function getTemplate($name, $newFormId)
    {
        return $this->setTemplate($name, $newFormId);
    }
}

```
