Framework foton
Инструмент для профессиональной разработки web приложений
Внутренние типы данных

Типы данных находятся в таблице html, и являются основой для вывода пользовательских элементов в интерфейсах.
Типы данных относятся к данным сайта, так как выводят их и являются неотъемлемой частью самого сайта, независимо от интерфейсов.
Некоторые данные типов данных хранятся в таблице html
Тип данных состоит из полей:

название — поле name,
название латинское – поле kod,
html код – поле html,
аргументы -поле argument,
php код – поле function

При указании в поле html '2'
мы выбираем  второй тип, и в поле function мы можем указать php код для вывода без указания  тегов php кода
Также можно использовать для вывода данных методы модели, например методы модели html,
таким образом они также перенесутся при копировании шаблона сайта. Используя код, например:
     
<?php
$this->core->view()->tpl->html->echo->end(['name'=>'test','value'=>'test']);
             
подключится метод echo класса типа данных html, с указанными аргументами.
В самом методе  вызываются виджеты с аргументами, таким образом можно обращаться к любым методам любых типов данных.
Если указать html код в поле html, а в поле аргумент и php код (функция) указать 0, то тип будет выводится как html код.
<span class='default_span'>[[lang]]</span><input type='mail' name='[[name]]' value='[[value]]'>

так как это html код, то обычные переменные и аргументы здесь уже не работают. Стоит заметить, что поля с типом html работают быстрее при выводе, в отличии от полей с php кодом.
[[lang]] — в данном случае пользовательский шорт-код, если его нет в интерфейсе этот код просто удалится,
создавать можно любой шорт-код, только если на стороне интерфейса его интерпретируют.
Для корректной работы с другими интерфейсами пишите правильно css,js код типа Данных,
чтобы при отсутствии значения пользователю не отображался пустой непонятный блок и не появлялись js ошибки в консоли.
Любой тип Данных может содержать css,jsphp код для ajax запросов.
О выводе данных вам не нужно заботится, об этом позаботится интерфейс, вам только нужно правильно расположить свои данные.
В директории ajax корня сайта есть директория по названию подключенного сайта 
($FS->sitedir), в директории /app/type/$FS->sitedir и лежат типы данных вашего сайта.
Напомним, что типы данных относятся именно к сайту, не к админ. панели, и копируются при создании шаблона сайта, но не при создании интерфейса.
В этой директории находятся папки css,js,php,tpl для хранения css,js,php файлов соответственно.
Если мы только что создали новый тип данных у него должно быть уникальное в вашей таблице название на латинском (поле kod)
этим названием и называем файл в директории css будет нашкод.css, в директории js нашкод.js, в директории php нашкод.php,  в директории tpl нашкод_нашметод.php.
Соответственно  css файл будет подключен при подключении вашего типа данных,  js  будет подключен при подключении вашего типа данных, php должен  содержать php класс


namespace Tpl;
 class вашкод extends \Foton\Model{


}?>

Внутри этого класса давайте создадим метод  mymethod


namespace Tpl;
class вашкод extends \Foton\Model{
    public function mymethod(){
        return ['text'=> 'hello World'];
    }
}?>

Создадим файл в директории /app/type/site/вашкод/tpl
mymethod.php
со следующим содержимым


global $FotonCore;
//выводим css,js типа данных
$FotonCore->view()->tplfront->вашкод->end();
echo $data['text'];
?>

Теперь при обращении /вашкод/mymethod.tpl на экране появится 'hello World'.
Вы можете через js код вашего типа данных отправлять любые данные через ajax на ваши методы контроллера этого типа данных, и обрабатывать их на стороне контроллера и возвращать результат пользователю.
Таким образом типы данных позволяют полностью перенести работу по обработке стандартных полей на плечи сайта, а интерфейсам дать возможность создавать сами интерфейсы для обработки результатов данных и работы с моделями сайта.


 
<?php
$this->core->view()->tpl->html->echo->end(['name'=>'test','value'=>'test']);
 
© Copyright 2026 Разработано на Framework Foton
Продукт зарегистрирован в Роспатенте