Краткий справочник по параметрам метадаты

Deprecated
==========================
is_multy_use
is_select
==========================
Соотвествия полей
==========================
val_type => input_type
==========================
boolean            => checkbox
boolean            => label
==========================
datetime        => datetime_ajax
datetime        => label
==========================
date                => date_ajax
date                => label
==========================
int                    => select
int                    => text
int                    => label
int                    => label_sel
==========================
float                => text
float                => label
==========================
string            => select
string            => password
string            => text
string            => label
string            => label_sel
string            => image
string            => file
string            => file_select
==========================
text                => formated
text                => textarea 
text                => texteditor
==========================
timestamp        => timestamp
==========================

Линки в метадате (принцип и логика использования)
Структура массивов стандартная : индекс поля  - значение
описываются линки 4 параметрами
public $link                = array();    // Ссылка для значения ячейки
public $link_vars        = array();    // Параметры для подстановки в link
public $link_types    = array();    // Параметры для подстановки в link ( например popup)
public $link_picture    = array();    // Картинка для  подстановки в ячейку

Обработка начинается если передан индекс поля : то есть массив $link - должен быть заполнен
Варианты заполнения массива $link:
1.Если в качестве ссылки используется значение из БД, пишем field. Пример : "link"=>array("15"=>'field')
2.Если просто нужно вызвать ссылку кликом на ячейке - пишем саму ссылку.
Для подставновки параметров в строку ссылки используется счетчик параметров , значение счетчика начинается с 0
Пример : "link"=>array(2=>'index.php?module=__module__&view=__view__&psid=[0]')
При обработке происходит распарсивание соответствующего элемента массива  $link_vars и подстановка значений в ссылку
Пример ссылки с  несколькими параметрами в строке 
"link"=>array(1=>'index.php?module=catalog&view=images&task=modify&psid=[0]&multy_code=[1]'),
"link_key"=>array(1=>'$id,i_gid') // тут 1 элемент расчетный параметр,  второй значения поля этой строки

 


Дополнительные условия на запрос

Формат использования

в метадате (будет применяться всегда)
$custom_sql=" AND c.u_role=90";
    
в контроллере 

        $viewname     = $this->getView()->getName();
        $mdl = Module::getInstance();
        $this->checkACL("view".ucfirst($mdl->getName()).ucfirst($viewname));
        $reestr = $mdl->get('reestr');
// это кусок запроса
        $reestr->set('custom_sql'," AND c.u_role=90");


Организация линковочных таблиц

Линковочные таблицы используются для организации дополнительных множественных связей неявного характера.
Например товары, относящиеся к нескольким объектам 
(то есть товары продающиеся в нескольких магазинах, отпускаемые с нескольких складов и т.п. логические связки)
Линковка осущствеляется между основной таблицей данных и дополнительным справочником

Термины
Таблица данных : таблица которую связываем(например, список товаров) 
Таблица родитель : таблица с которой связываем(например, список складов) 
Таблица связи :  Служебная таблица, которая хранит в себе связи 


Для организации линковки необходимо:


1. В метадате Таблица данных прописать значения
$multy_field='e_id';  // поле которое является связным
$parent_table="txg_model"; // имя Таблицы родителя
$parent_name='m_name'; // поле наименования элемента с которым связываем
$parent_view="mark";  //  имя "вьюхи" таблицы родителя
$parent_code='m_id';  // поле id элемента с которым связываем

2. Создать метадату селектора
Имя метадаты должно быть  [вьюха таблицы родителя].selector.php

пример метадаты

$tablname='txg_model';
$keystring='m_id';
$namestring='m_name';
$deleted='m_deleted';
$selector=true;
$nametabl="Available models";
$is_add_field=true;
$cur_table_arr=array(
                "field"=>array(1=>'m_id','m_name'),
                "name"=>array(1=>"ID","Model name"),
                "input_type"=>array(1=>'text','text'),
          "val_type"=>array(1=>'int','string')
);

3.Создать таблицу связи
CREATE TABLE `c_[Таблица данных]_links` (  
                       `e_id` int(11) NOT NULL,  // - поле которое является связным в таблице данных          
                       `parent_id` int(11) NOT NULL,  // жесткое наименование     
                       `ordering` int(5) DEFAULT '0', // жесткое наименование     
                       PRIMARY KEY (`e_id`,`parent_id`)    
                     ) ENGINE=InnoDB DEFAULT CHARSET=utf8  

 

Здесь могла бы быть Ваша реклама
Здесь могла бы быть Ваша реклама
Здесь могла бы быть Ваша реклама
Здесь могла бы быть Ваша реклама
0.040834188461304
Для качественного предоставления услуг, наш сайт собирает метаданные всех зашедших пользователей: сведения о местоположении, ip-адрес, сведения об операционной системе (тип, язык, версия) и браузере (тип, язык, версия), тип устройства и разрешение экрана, источник, откуда пришел на сайт пользователь и какие страницы он открывает. На компьютере пользователя сохраняются файлы cookies.
Собранная информация используется для обработки статистических данных использования сайта посредством различных интернет-сервисов: Google Analytics, Яндекс.Метрика, LiveInternet, Awstats и др. Нажимая на кнопку «Я согласен», Вы подтверждаете то, что Вы проинформированы о сборе метаданных на нашем сайте и согласны с этим.
Если вы не хотите, чтобы эти данные обрабатывались, то должны покинуть наш сайт. Отключить сохранение файлов cookies Вы можете в настройках браузера.