Файл: contao-3.5.8/system/modules/core/dca/tl_module.php
Строк: 706
<?php
/**
* Contao Open Source CMS
*
* Copyright (c) 2005-2016 Leo Feyer
*
* @license LGPL-3.0+
*/
/**
* Table tl_module
*/
$GLOBALS['TL_DCA']['tl_module'] = array
(
// Config
'config' => array
(
'dataContainer' => 'Table',
'ptable' => 'tl_theme',
'enableVersioning' => true,
'onload_callback' => array
(
array('tl_module', 'checkPermission')
),
'sql' => array
(
'keys' => array
(
'id' => 'primary'
)
)
),
// List
'list' => array
(
'sorting' => array
(
'mode' => 4,
'fields' => array('name'),
'panelLayout' => 'filter;sort,search,limit',
'headerFields' => array('name', 'author', 'tstamp'),
'child_record_callback' => array('tl_module', 'listModule'),
'child_record_class' => 'no_padding'
),
'global_operations' => array
(
'all' => array
(
'label' => &$GLOBALS['TL_LANG']['MSC']['all'],
'href' => 'act=select',
'class' => 'header_edit_all',
'attributes' => 'onclick="Backend.getScrollOffset()" accesskey="e"'
)
),
'operations' => array
(
'edit' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['edit'],
'href' => 'act=edit',
'icon' => 'edit.gif'
),
'copy' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['copy'],
'href' => 'act=paste&mode=copy',
'icon' => 'copy.gif',
'attributes' => 'onclick="Backend.getScrollOffset()"'
),
'cut' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['cut'],
'href' => 'act=paste&mode=cut',
'icon' => 'cut.gif',
'attributes' => 'onclick="Backend.getScrollOffset()"'
),
'delete' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['delete'],
'href' => 'act=delete',
'icon' => 'delete.gif',
'attributes' => 'onclick="if(!confirm('' . $GLOBALS['TL_LANG']['MSC']['deleteConfirm'] . ''))return false;Backend.getScrollOffset()"'
),
'show' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['show'],
'href' => 'act=show',
'icon' => 'show.gif'
)
)
),
// Palettes
'palettes' => array
(
'__selector__' => array('type', 'defineRoot', 'source', 'interactive', 'protected', 'reg_assignDir', 'reg_activate'),
'default' => '{title_legend},name,type',
'navigation' => '{title_legend},name,headline,type;{nav_legend},levelOffset,showLevel,hardLimit,showProtected,showHidden;{reference_legend:hide},defineRoot;{template_legend:hide},navigationTpl,customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'customnav' => '{title_legend},name,headline,type;{nav_legend},pages,showProtected;{template_legend:hide},navigationTpl,customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'breadcrumb' => '{title_legend},name,headline,type;{nav_legend},showHidden;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'quicknav' => '{title_legend},name,headline,type;{nav_legend},customLabel,showLevel,hardLimit,showProtected,showHidden;{reference_legend:hide},rootPage;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'quicklink' => '{title_legend},name,headline,type;{nav_legend},pages,customLabel;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'booknav' => '{title_legend},name,headline,type;{nav_legend},showProtected,showHidden,rootPage;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'articlenav' => '{title_legend},name,headline,type;{config_legend},loadFirst;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'sitemap' => '{title_legend},name,headline,type;{nav_legend},showProtected,showHidden;{reference_legend:hide},rootPage;{template_legend:hide},navigationTpl,customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'login' => '{title_legend},name,headline,type;{config_legend},autologin;{redirect_legend},jumpTo,redirectBack;{template_legend:hide},cols;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'logout' => '{title_legend},name,type;{redirect_legend},jumpTo,redirectBack;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'personalData' => '{title_legend},name,headline,type;{config_legend},editable;{redirect_legend},jumpTo;{template_legend:hide},memberTpl,tableless;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'registration' => '{title_legend},name,headline,type;{config_legend},editable,newsletters,disableCaptcha;{account_legend},reg_groups,reg_allowLogin,reg_assignDir;{redirect_legend},jumpTo;{email_legend:hide},reg_activate;{template_legend:hide},memberTpl,tableless;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'changePassword' => '{title_legend},name,headline,type;{redirect_legend},jumpTo;{template_legend:hide},customTpl,tableless;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'lostPassword' => '{title_legend},name,headline,type;{config_legend},reg_skipName,disableCaptcha;{redirect_legend},jumpTo;{email_legend:hide},reg_jumpTo,reg_password;{template_legend:hide},customTpl,tableless;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'closeAccount' => '{title_legend},name,headline,type;{config_legend},reg_close;{redirect_legend},jumpTo;{template_legend:hide},customTpl,tableless;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'form' => '{title_legend},name,headline,type;{include_legend},form;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'search' => '{title_legend},name,headline,type;{config_legend},queryType,fuzzy,contextLength,totalLength,perPage,searchType;{redirect_legend:hide},jumpTo;{reference_legend:hide},rootPage;{template_legend:hide},searchTpl,customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'articleList' => '{title_legend},name,headline,type;{config_legend},skipFirst,inColumn;{reference_legend:hide},defineRoot;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'flash' => '{title_legend},name,headline,type;{config_legend},size,transparent,flashvars,altContent;{source_legend},source;{interact_legend:hide},interactive;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'randomImage' => '{title_legend},name,headline,type;{config_legend},imgSize,useCaption,fullsize;{source_legend},multiSRC;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space',
'html' => '{title_legend},name,type;{html_legend},html;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests',
'rss_reader' => '{title_legend},name,headline,type;{config_legend},rss_feed,numberOfItems,perPage,skipFirst,rss_cache;{template_legend:hide},rss_template,customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'
),
// Subpalettes
'subpalettes' => array
(
'defineRoot' => 'rootPage',
'source_internal' => 'singleSRC',
'source_external' => 'url',
'interactive' => 'flashID,flashJS',
'protected' => 'groups',
'reg_assignDir' => 'reg_homeDir',
'reg_activate' => 'reg_jumpTo,reg_text'
),
// Fields
'fields' => array
(
'id' => array
(
'sql' => "int(10) unsigned NOT NULL auto_increment"
),
'pid' => array
(
'foreignKey' => 'tl_theme.name',
'sql' => "int(10) unsigned NOT NULL default '0'",
'relation' => array('type'=>'belongsTo', 'load'=>'lazy')
),
'tstamp' => array
(
'sql' => "int(10) unsigned NOT NULL default '0'"
),
'name' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['name'],
'exclude' => true,
'sorting' => true,
'flag' => 1,
'search' => true,
'inputType' => 'text',
'eval' => array('mandatory'=>true, 'maxlength'=>255),
'sql' => "varchar(255) NOT NULL default ''"
),
'headline' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['headline'],
'exclude' => true,
'search' => true,
'inputType' => 'inputUnit',
'options' => array('h1', 'h2', 'h3', 'h4', 'h5', 'h6'),
'eval' => array('maxlength'=>200, 'tl_class'=>'w50'),
'sql' => "varchar(255) NOT NULL default ''"
),
'type' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['type'],
'default' => 'navigation',
'exclude' => true,
'sorting' => true,
'flag' => 11,
'filter' => true,
'inputType' => 'select',
'options_callback' => array('tl_module', 'getModules'),
'reference' => &$GLOBALS['TL_LANG']['FMD'],
'eval' => array('helpwizard'=>true, 'chosen'=>true, 'submitOnChange'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(64) NOT NULL default ''"
),
'levelOffset' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['levelOffset'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('maxlength'=>5, 'rgxp'=>'natural', 'tl_class'=>'w50'),
'sql' => "smallint(5) unsigned NOT NULL default '0'"
),
'showLevel' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['showLevel'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('maxlength'=>5, 'rgxp'=>'natural', 'tl_class'=>'w50'),
'sql' => "smallint(5) unsigned NOT NULL default '0'"
),
'hardLimit' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['hardLimit'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50'),
'sql' => "char(1) NOT NULL default ''"
),
'showProtected' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['showProtected'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50'),
'sql' => "char(1) NOT NULL default ''"
),
'defineRoot' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['defineRoot'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
),
'rootPage' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['rootPage'],
'exclude' => true,
'inputType' => 'pageTree',
'foreignKey' => 'tl_page.title',
'eval' => array('fieldType'=>'radio', 'tl_class'=>'clr'),
'sql' => "int(10) unsigned NOT NULL default '0'",
'relation' => array('type'=>'hasOne', 'load'=>'lazy')
),
'navigationTpl' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['navigationTpl'],
'exclude' => true,
'inputType' => 'select',
'options_callback' => array('tl_module', 'getNavigationTemplates'),
'eval' => array('tl_class'=>'w50'),
'sql' => "varchar(64) NOT NULL default ''"
),
'customTpl' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['customTpl'],
'exclude' => true,
'inputType' => 'select',
'options_callback' => array('tl_module', 'getModuleTemplates'),
'eval' => array('includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(64) NOT NULL default ''"
),
'pages' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['pages'],
'exclude' => true,
'inputType' => 'pageTree',
'foreignKey' => 'tl_page.title',
'eval' => array('multiple'=>true, 'fieldType'=>'checkbox', 'files'=>true, 'orderField'=>'orderPages', 'mandatory'=>true),
'sql' => "blob NULL",
'relation' => array('type'=>'hasMany', 'load'=>'lazy')
),
'orderPages' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['orderSRC'],
'sql' => "blob NULL"
),
'showHidden' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['showHidden'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50'),
'sql' => "char(1) NOT NULL default ''"
),
'customLabel' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['customLabel'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('maxlength'=>64, 'rgxp'=>'extnd', 'tl_class'=>'w50'),
'sql' => "varchar(64) NOT NULL default ''"
),
'autologin' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['autologin'],
'exclude' => true,
'inputType' => 'checkbox',
'sql' => "char(1) NOT NULL default ''"
),
'jumpTo' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['jumpTo'],
'exclude' => true,
'inputType' => 'pageTree',
'foreignKey' => 'tl_page.title',
'eval' => array('fieldType'=>'radio'),
'sql' => "int(10) unsigned NOT NULL default '0'",
'relation' => array('type'=>'hasOne', 'load'=>'eager')
),
'redirectBack' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['redirectBack'],
'exclude' => true,
'inputType' => 'checkbox',
'sql' => "char(1) NOT NULL default ''"
),
'cols' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['cols'],
'default' => '2cl',
'exclude' => true,
'inputType' => 'select',
'options' => array('1cl', '2cl'),
'reference' => &$GLOBALS['TL_LANG']['tl_module'],
'eval' => array('helpwizard'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(32) NOT NULL default ''"
),
'editable' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['editable'],
'exclude' => true,
'inputType' => 'checkboxWizard',
'options_callback' => array('tl_module', 'getEditableMemberProperties'),
'eval' => array('multiple'=>true),
'sql' => "blob NULL"
),
'memberTpl' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['memberTpl'],
'exclude' => true,
'inputType' => 'select',
'options_callback' => array('tl_module', 'getMemberTemplates'),
'eval' => array('tl_class'=>'w50'),
'sql' => "varchar(64) NOT NULL default ''"
),
'tableless' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['tableless'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50 m12'),
'sql' => "char(1) NOT NULL default ''"
),
'form' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['form'],
'exclude' => true,
'inputType' => 'select',
'foreignKey' => 'tl_form.title',
'options_callback' => array('tl_module', 'getForms'),
'eval' => array('chosen'=>true, 'tl_class'=>'w50'),
'sql' => "int(10) unsigned NOT NULL default '0'",
'relation' => array('type'=>'hasOne', 'load'=>'lazy')
),
'queryType' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['queryType'],
'default' => 'and',
'exclude' => true,
'inputType' => 'select',
'options' => array('and', 'or'),
'reference' => &$GLOBALS['TL_LANG']['tl_module'],
'eval' => array('helpwizard'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(32) NOT NULL default ''"
),
'fuzzy' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['fuzzy'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50 m12'),
'sql' => "char(1) NOT NULL default ''"
),
'contextLength' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['contextLength'],
'default' => 48,
'exclude' => true,
'inputType' => 'text',
'eval' => array('rgxp'=>'natural', 'tl_class'=>'w50'),
'sql' => "smallint(5) unsigned NOT NULL default '0'"
),
'totalLength' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['totalLength'],
'default' => 1000,
'exclude' => true,
'inputType' => 'text',
'eval' => array('rgxp'=>'natural', 'tl_class'=>'w50'),
'sql' => "smallint(5) unsigned NOT NULL default '0'"
),
'perPage' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['perPage'],
'default' => 0,
'exclude' => true,
'inputType' => 'text',
'eval' => array('rgxp'=>'natural', 'tl_class'=>'w50'),
'sql' => "smallint(5) unsigned NOT NULL default '0'"
),
'searchType' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['searchType'],
'default' => 'simple',
'exclude' => true,
'inputType' => 'select',
'options' => array('simple', 'advanced'),
'reference' => &$GLOBALS['TL_LANG']['tl_module'],
'eval' => array('helpwizard'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(32) NOT NULL default ''"
),
'searchTpl' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['searchTpl'],
'exclude' => true,
'inputType' => 'select',
'options_callback' => array('tl_module', 'getSearchTemplates'),
'eval' => array('tl_class'=>'w50'),
'sql' => "varchar(64) NOT NULL default ''"
),
'inColumn' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['inColumn'],
'default' => 'main',
'exclude' => true,
'inputType' => 'select',
'options_callback' => array('tl_module', 'getLayoutSections'),
'reference' => &$GLOBALS['TL_LANG']['COLS'],
'eval' => array('tl_class'=>'w50'),
'sql' => "varchar(32) NOT NULL default ''"
),
'skipFirst' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['skipFirst'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('rgxp'=>'natural', 'tl_class'=>'w50'),
'sql' => "smallint(5) unsigned NOT NULL default '0'"
),
'loadFirst' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['loadFirst'],
'exclude' => true,
'inputType' => 'checkbox',
'sql' => "char(1) NOT NULL default ''"
),
'size' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['size'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('mandatory'=>true, 'multiple'=>true, 'size'=>2, 'rgxp'=>'natural', 'nospace'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(64) NOT NULL default ''"
),
'transparent' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['transparent'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50 m12'),
'sql' => "char(1) NOT NULL default ''"
),
'flashvars' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['flashvars'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('nospace'=>true, 'maxlength'=>255, 'tl_class'=>'long clr'),
'sql' => "varchar(255) NOT NULL default ''"
),
'altContent' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['altContent'],
'exclude' => true,
'search' => true,
'inputType' => 'textarea',
'eval' => array('mandatory'=>true, 'allowHtml'=>true, 'style'=>'height:60px', 'tl_class'=>'clr'),
'sql' => "text NULL"
),
'source' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['source'],
'default' => 'internal',
'exclude' => true,
'inputType' => 'select',
'options' => array('internal', 'external'),
'reference' => &$GLOBALS['TL_LANG']['tl_module'],
'eval' => array('submitOnChange'=>true),
'sql' => "varchar(32) NOT NULL default ''"
),
'singleSRC' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['singleSRC'],
'exclude' => true,
'inputType' => 'fileTree',
'eval' => array('fieldType'=>'radio', 'filesOnly'=>true, 'mandatory'=>true, 'tl_class'=>'clr'),
'sql' => "binary(16) NULL"
),
'url' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['url'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('mandatory'=>true, 'rgxp'=>'url', 'decodeEntities'=>true, 'maxlength'=>255),
'sql' => "varchar(255) NOT NULL default ''"
),
'interactive' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['interactive'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
),
'flashID' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['flashID'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('mandatory'=>true, 'rgxp'=>'extnd', 'nospace'=>true, 'unique'=>true, 'maxlength'=>64),
'sql' => "varchar(64) NOT NULL default ''"
),
'flashJS' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['flashJS'],
'exclude' => true,
'inputType' => 'textarea',
'eval' => array('class'=>'monospace', 'rte'=>'ace|js'),
'sql' => "text NULL"
),
'imgSize' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['imgSize'],
'exclude' => true,
'inputType' => 'imageSize',
'options' => System::getImageSizes(),
'reference' => &$GLOBALS['TL_LANG']['MSC'],
'eval' => array('rgxp'=>'natural', 'includeBlankOption'=>true, 'nospace'=>true, 'helpwizard'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(64) NOT NULL default ''"
),
'useCaption' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['useCaption'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50 clr'),
'sql' => "char(1) NOT NULL default ''"
),
'fullsize' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['fullsize'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('tl_class'=>'w50'),
'sql' => "char(1) NOT NULL default ''"
),
'multiSRC' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['multiSRC'],
'exclude' => true,
'inputType' => 'fileTree',
'eval' => array('multiple'=>true, 'fieldType'=>'checkbox', 'orderField'=>'orderSRC', 'files'=>true, 'mandatory'=>true),
'sql' => "blob NULL"
),
'orderSRC' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['orderSRC'],
'sql' => "blob NULL"
),
'html' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['html'],
'exclude' => true,
'search' => true,
'inputType' => 'textarea',
'eval' => array('allowHtml'=>true, 'class'=>'monospace', 'rte'=>'ace|html', 'helpwizard'=>true),
'explanation' => 'insertTags',
'sql' => "text NULL"
),
'rss_cache' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['rss_cache'],
'default' => 3600,
'exclude' => true,
'inputType' => 'select',
'options' => array(0, 5, 15, 30, 60, 300, 900, 1800, 3600, 10800, 21600, 43200, 86400),
'eval' => array('tl_class'=>'w50'),
'reference' => &$GLOBALS['TL_LANG']['CACHE'],
'sql' => "int(10) unsigned NOT NULL default '0'"
),
'rss_feed' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['rss_feed'],
'exclude' => true,
'inputType' => 'textarea',
'eval' => array('mandatory'=>true, 'decodeEntities'=>true, 'style'=>'height:60px'),
'sql' => "text NULL"
),
'rss_template' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['rss_template'],
'default' => 'rss_default',
'exclude' => true,
'inputType' => 'select',
'options_callback' => array('tl_module', 'getRssTemplates'),
'eval' => array('tl_class'=>'w50'),
'sql' => "varchar(32) NOT NULL default ''"
),
'numberOfItems' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['numberOfItems'],
'default' => 3,
'exclude' => true,
'inputType' => 'text',
'eval' => array('mandatory'=>true, 'rgxp'=>'natural', 'tl_class'=>'w50'),
'sql' => "smallint(5) unsigned NOT NULL default '0'"
),
'disableCaptcha' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['disableCaptcha'],
'exclude' => true,
'inputType' => 'checkbox',
'sql' => "char(1) NOT NULL default ''"
),
'reg_groups' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['reg_groups'],
'exclude' => true,
'inputType' => 'checkbox',
'foreignKey' => 'tl_member_group.name',
'eval' => array('multiple'=>true),
'sql' => "blob NULL",
'relation' => array('type'=>'hasMany', 'load'=>'lazy')
),
'reg_allowLogin' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['reg_allowLogin'],
'exclude' => true,
'inputType' => 'checkbox',
'sql' => "char(1) NOT NULL default ''"
),
'reg_skipName' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['reg_skipName'],
'exclude' => true,
'inputType' => 'checkbox',
'sql' => "char(1) NOT NULL default ''"
),
'reg_close' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['reg_close'],
'exclude' => true,
'inputType' => 'select',
'options' => array('close_deactivate', 'close_delete'),
'reference' => &$GLOBALS['TL_LANG']['tl_module'],
'sql' => "varchar(32) NOT NULL default ''"
),
'reg_assignDir' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['reg_assignDir'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
),
'reg_homeDir' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['reg_homeDir'],
'exclude' => true,
'inputType' => 'fileTree',
'eval' => array('fieldType'=>'radio', 'tl_class'=>'clr'),
'sql' => "binary(16) NULL"
),
'reg_activate' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['reg_activate'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => array('submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
),
'reg_jumpTo' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['reg_jumpTo'],
'exclude' => true,
'inputType' => 'pageTree',
'foreignKey' => 'tl_page.title',
'eval' => array('fieldType'=>'radio'),
'sql' => "int(10) unsigned NOT NULL default '0'",
'relation' => array('type'=>'hasOne', 'load'=>'lazy')
),
'reg_text' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['reg_text'],
'exclude' => true,
'inputType' => 'textarea',
'eval' => array('style'=>'height:120px', 'decodeEntities'=>true, 'alwaysSave'=>true),
'load_callback' => array
(
array('tl_module', 'getActivationDefault')
),
'sql' => "text NULL"
),
'reg_password' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['reg_password'],
'exclude' => true,
'inputType' => 'textarea',
'eval' => array('style'=>'height:120px', 'decodeEntities'=>true, 'alwaysSave'=>true),
'load_callback' => array
(
array('tl_module', 'getPasswordDefault')
),
'sql' => "text NULL"
),
'protected' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['protected'],
'exclude' => true,
'filter' => true,
'inputType' => 'checkbox',
'eval' => array('submitOnChange'=>true),
'sql' => "char(1) NOT NULL default ''"
),
'groups' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['groups'],
'exclude' => true,
'inputType' => 'checkbox',
'foreignKey' => 'tl_member_group.name',
'eval' => array('mandatory'=>true, 'multiple'=>true),
'sql' => "blob NULL",
'relation' => array('type'=>'hasMany', 'load'=>'lazy')
),
'guests' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['guests'],
'exclude' => true,
'filter' => true,
'inputType' => 'checkbox',
'sql' => "char(1) NOT NULL default ''"
),
'cssID' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['cssID'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('multiple'=>true, 'size'=>2, 'tl_class'=>'w50'),
'sql' => "varchar(255) NOT NULL default ''"
),
'space' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_module']['space'],
'exclude' => true,
'inputType' => 'text',
'eval' => array('multiple'=>true, 'size'=>2, 'rgxp'=>'digit', 'nospace'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(64) NOT NULL default ''"
)
)
);
/**
* Provide miscellaneous methods that are used by the data configuration array.
*
* @author Leo Feyer <https://github.com/leofeyer>
*/
class tl_module extends Backend
{
/**
* Import the back end user object
*/
public function __construct()
{
parent::__construct();
$this->import('BackendUser', 'User');
}
/**
* Check permissions to edit the table
*/
public function checkPermission()
{
if ($this->User->isAdmin)
{
return;
}
if (!$this->User->hasAccess('modules', 'themes'))
{
$this->log('Not enough permissions to access the modules module', __METHOD__, TL_ERROR);
$this->redirect('contao/main.php?act=error');
}
}
/**
* Return all front end modules as array
*
* @return array
*/
public function getModules()
{
$groups = array();
foreach ($GLOBALS['FE_MOD'] as $k=>$v)
{
foreach (array_keys($v) as $kk)
{
$groups[$k][] = $kk;
}
}
return $groups;
}
/**
* Return all editable fields of table tl_member
*
* @return array
*/
public function getEditableMemberProperties()
{
$return = array();
System::loadLanguageFile('tl_member');
$this->loadDataContainer('tl_member');
foreach ($GLOBALS['TL_DCA']['tl_member']['fields'] as $k=>$v)
{
if ($v['eval']['feEditable'])
{
$return[$k] = $GLOBALS['TL_DCA']['tl_member']['fields'][$k]['label'][0];
}
}
return $return;
}
/**
* Get all forms and return them as array
*
* @return array
*/
public function getForms()
{
if (!$this->User->isAdmin && !is_array($this->User->forms))
{
return array();
}
$arrForms = array();
$objForms = $this->Database->execute("SELECT id, title FROM tl_form ORDER BY title");
while ($objForms->next())
{
if ($this->User->hasAccess($objForms->id, 'forms'))
{
$arrForms[$objForms->id] = $objForms->title;
}
}
return $arrForms;
}
/**
* Return all layout sections as array
*
* @return array
*/
public function getLayoutSections()
{
$arrCustom = array();
$arrSections = array('header', 'left', 'right', 'main', 'footer');
// Check for custom layout sections
$objLayout = $this->Database->query("SELECT sections FROM tl_layout WHERE sections!=''");
while ($objLayout->next())
{
$arrCustom = array_merge($arrCustom, trimsplit(',', $objLayout->sections));
}
$arrCustom = array_unique($arrCustom);
// Add the custom layout sections
if (!empty($arrCustom) && is_array($arrCustom))
{
$arrSections = array_merge($arrSections, $arrCustom);
}
return $arrSections;
}
/**
* Return all navigation templates as array
*
* @return array
*/
public function getNavigationTemplates()
{
return $this->getTemplateGroup('nav_');
}
/**
* Return all module templates as array
*
* @return array
*/
public function getModuleTemplates()
{
return $this->getTemplateGroup('mod_');
}
/**
* Return all member templates as array
*
* @return array
*/
public function getMemberTemplates()
{
return $this->getTemplateGroup('member_');
}
/**
* Return all search templates as array
*
* @return array
*/
public function getSearchTemplates()
{
return $this->getTemplateGroup('search_');
}
/**
* Return all navigation templates as array
*
* @return array
*/
public function getRssTemplates()
{
return $this->getTemplateGroup('rss_');
}
/**
* Load the default activation text
*
* @param mixed $varValue
*
* @return mixed
*/
public function getActivationDefault($varValue)
{
if (!trim($varValue))
{
$varValue = (is_array($GLOBALS['TL_LANG']['tl_module']['emailText']) ? $GLOBALS['TL_LANG']['tl_module']['emailText'][1] : $GLOBALS['TL_LANG']['tl_module']['emailText']);
}
return $varValue;
}
/**
* Load the default password text
*
* @param mixed $varValue
*
* @return mixed
*/
public function getPasswordDefault($varValue)
{
if (!trim($varValue))
{
$varValue = (is_array($GLOBALS['TL_LANG']['tl_module']['passwordText']) ? $GLOBALS['TL_LANG']['tl_module']['passwordText'][1] : $GLOBALS['TL_LANG']['tl_module']['passwordText']);
}
return $varValue;
}
/**
* List a front end module
*
* @param array $row
*
* @return string
*/
public function listModule($row)
{
return '<div style="float:left">'. $row['name'] .' <span style="color:#b3b3b3;padding-left:3px">['. (isset($GLOBALS['TL_LANG']['FMD'][$row['type']][0]) ? $GLOBALS['TL_LANG']['FMD'][$row['type']][0] : $row['type']) .']</span>' . "</div>n";
}
}