src/Rhyme/WMassArtsHub/Resources/contao/dca/tl_artshub_profile_item.php line 239

Open in your IDE?
  1. <?php
  2. /**
  3.  * Copyright (c) 2021 Rhyme Digital LLC (https://rhyme.digital)
  4.  *
  5.  * @license LGPL-3.0-or-later
  6.  */
  7. namespace {
  8.     use Rhyme\WMassArtsHub\Backend\Profile\Callbacks;
  9.     /**
  10.      * Table tl_artshub_profile_item
  11.      */
  12.     $GLOBALS['TL_DCA']['tl_artshub_profile_item'] = array
  13.     (
  14.         // Config
  15.         'config' => array
  16.         (
  17.             'dataContainer'               => 'Table',
  18.             'switchToEdit'                => true,
  19.             'enableVersioning'            => true,
  20.             'onload_callback' => [
  21.                 [Callbacks::class, 'checkPermission'],
  22.             ],
  23.             'sql' => array
  24.             (
  25.                 'keys' => array
  26.                 (
  27.                     'id' => 'primary',
  28.                     'alias' => 'index',
  29.                     'uuid' => 'index',
  30.                 )
  31.             )
  32.         ),
  33.         // List
  34.         'list' => array
  35.         (
  36.             'sorting' => array
  37.             (
  38.                 'mode'                    => 2,
  39.                 'fields'                  => array('name,profile_score'),
  40.                 'flag'                    => 12,
  41.                 'panelLayout'             => 'filter;sort;search,limit'
  42.             ),
  43.             'label' => array
  44.             (
  45.                 'fields'                  => array('name'),
  46.                 'format'                  => '%s',
  47.                 'label_callback'          => [Callbacks::class, 'labelCallback'],
  48.             ),
  49.             'global_operations' => array
  50.             (
  51.                 'all' => array
  52.                 (
  53.                     'label'               => &$GLOBALS['TL_LANG']['MSC']['all'],
  54.                     'href'                => 'act=select',
  55.                     'class'               => 'header_edit_all',
  56.                     'attributes'          => 'onclick="Backend.getScrollOffset()" accesskey="e"'
  57.                 )
  58.             ),
  59.             'operations' => array
  60.             (
  61.                 'edit' => array
  62.                 (
  63.                     'label'               => &$GLOBALS['TL_LANG']['tl_artshub_profile_item']['edit'],
  64.                     'href'                => 'act=edit',
  65.                     'icon'                => 'edit.gif'
  66.                 ),
  67.                 'copy' => array
  68.                 (
  69.                     'label'               => &$GLOBALS['TL_LANG']['tl_artshub_profile_item']['copy'],
  70.                     'href'                => 'act=copy',
  71.                     'icon'                => 'copy.gif',
  72.                 ),
  73.                 'delete' => array
  74.                 (
  75.                     'label'               => &$GLOBALS['TL_LANG']['tl_artshub_profile_item']['delete'],
  76.                     'href'                => 'act=delete',
  77.                     'icon'                => 'delete.gif',
  78.                     'attributes'          => 'onclick="if(!confirm(\'' $GLOBALS['TL_LANG']['MSC']['deleteConfirm'] . '\'))return false;Backend.getScrollOffset()"',
  79.                 ),
  80.                 'toggle' => array
  81.                 (
  82.                     'icon'                => 'visible.svg',
  83.                     'attributes'          => 'onclick="Backend.getScrollOffset();return AjaxRequest.toggleVisibility(this,%s)"',
  84.                     'button_callback'     => array(Callbacks::class, 'toggleIcon'),
  85.                     'showInHeader'        => true
  86.                 ),
  87.                 'feature' => array
  88.                 (
  89.                     'icon'                => 'featured.svg',
  90.                     'attributes'          => 'onclick="Backend.getScrollOffset();return RhymeAjaxRequest.toggleFeatured(this,%s)"',
  91.                     'button_callback'     => array(Callbacks::class, 'iconFeatured')
  92.                 ),
  93.                 'show' => array
  94.                 (
  95.                     'label'               => &$GLOBALS['TL_LANG']['tl_artshub_profile_item']['show'],
  96.                     'href'                => 'act=show',
  97.                     'icon'                => 'show.gif'
  98.                 )
  99.             )
  100.         ),
  101.         // Palettes
  102.         'palettes' => array
  103.         (
  104.             'default'                     => '{general_legend},name,alias,year_founded,primary_type,primary_discipline,disciplines,activities;{text_legend},description;{address_legend},street,street2,city,county,state,postal,latitude,longitude;{contact_legend},contact_name,contact_title,mailing_street_1,mailing_street_2,mailing_city,mailing_state,mailing_zip,phone,fax,email,website,facebook,instagram,twitter;{image_legend},main_image,images,video_urls;{venues_legend},has_venues,events_per_year;{publishing_legend},published,featured,bipoc,start,stop;'
  105.         ),
  106.         // Subpalettes
  107.         'subpalettes' => array
  108.         (
  109.         ),
  110.         // Fields
  111.         'fields' => array
  112.         (
  113.             'id' => array
  114.             (
  115.                 'sql'                     => "int(10) unsigned NOT NULL auto_increment"
  116.             ),
  117.             'tstamp' => array
  118.             (
  119.                 'sql'                     => "int(10) unsigned NOT NULL default '0'"
  120.             ),
  121.             'sorting' => array
  122.             (
  123.                 'sql'                     => "int(10) unsigned NOT NULL default '0'"
  124.             ),
  125.             'created' => array
  126.             (
  127.                 'sql'                     => "int(10) unsigned NOT NULL default '0'"
  128.             ),
  129.             'changed' => array
  130.             (
  131.                 'sql'                     => "int(10) unsigned NOT NULL default '0'"
  132.             ),
  133.             'revised' => array
  134.             (
  135.                 'sql'                     => "int(10) unsigned NOT NULL default '0'"
  136.             ),
  137.             'uuid' => array
  138.             (
  139.                 'sql'                     => "binary(16) NULL"
  140.             ),
  141.             'raw_uuid' => array
  142.             (
  143.                 'sql'                     => "varchar(64) NOT NULL default ''"
  144.             ),
  145.             'type' => array
  146.             (
  147.                 'sql'                     => "varchar(64) NOT NULL default ''"
  148.             ),
  149.             'name' => array
  150.             (
  151.                 'exclude'                 => true,
  152.                 'search'                  => true,
  153.                 'inputType'               => 'text',
  154.                 'eval'                    => array('mandatory'=>true'maxlength'=>255'tl_class'=>'clr w50'),
  155.                 'attributes'              => array('fe_sorting'=>true'fe_search'=>true),
  156.                 'sql'                     => "varchar(255) NOT NULL default ''"
  157.             ),
  158.             'alias' => array
  159.             (
  160.                 'exclude'                 => true,
  161.                 'search'                  => true,
  162.                 'inputType'               => 'text',
  163.                 'eval'                    => array('rgxp'=>'alias''doNotCopy'=>true'maxlength'=>255'tl_class'=>'w50'),
  164.                 'save_callback' => [
  165.                     [Callbacks::class, 'generateAlias'],
  166.                 ],
  167.                 'sql'                     => "varchar(255) NOT NULL default ''"
  168.             ),
  169.             'year_founded' => array
  170.             (
  171.                 'exclude'                 => true,
  172.                 'inputType'               => 'text',
  173.                 'eval'                    => array('rgxp'=>'date''datepicker'=>true'tl_class'=>'w50 wizard'),
  174.                 'sql'                     => "varchar(10) NOT NULL default ''"
  175.             ),
  176.             'primary_type' => array
  177.             (
  178.                 'exclude'               => true,
  179.                 'filter'                => true,
  180.                 'inputType'             => 'select',
  181.                 'foreignKey'            => 'tl_artshub_profile_type.name',
  182.                 'eval'                  => array('doNotSaveEmpty'=>true'chosen' => true'tl_class'=>'clr w50'),
  183.                 'relation'              => array('type'=>'hasOne''load'=>'lazy'),
  184.                 'save_callback' => [
  185.                     [Callbacks::class, 'saveTypes'],
  186.                 ],
  187.                 'sql'                     => "int(10) unsigned NOT NULL default '0'"
  188.             ),
  189.             'primary_discipline' => array
  190.             (
  191.                 'exclude'               => true,
  192.                 'filter'                => true,
  193.                 'inputType'             => 'select',
  194.                 'foreignKey'            => 'tl_artshub_profile_discipline.name',
  195.                 'eval'                  => array('doNotSaveEmpty'=>true'chosen' => true'tl_class'=>'w50'),
  196.                 'relation'              => array('type'=>'hasOne''load'=>'lazy'),
  197.                 'save_callback' => [
  198.                     [Callbacks::class, 'saveDisciplines'],
  199.                 ],
  200.                 'sql'                     => "int(10) unsigned NOT NULL default '0'"
  201.             ),
  202.             'disciplines' => array
  203.             (
  204.                 'exclude'               => true,
  205.                 'inputType'             => 'select',
  206.                 'foreignKey'            => 'tl_artshub_profile_discipline.name',
  207.                 'eval'                  => array('doNotSaveEmpty'=>true'multiple'=>true'chosen' => true'tl_class'=>'w50'),
  208.                 'relation'              => array('type'=>'hasMany''load'=>'lazy'),
  209.                 'save_callback' => [
  210.                     [Callbacks::class, 'saveDisciplines'],
  211.                 ],
  212.                 'sql'                     => "blob NULL"
  213.             ),
  214.             'activities' => array
  215.             (
  216.                 'exclude'               => true,
  217.                 'inputType'             => 'select',
  218.                 'foreignKey'            => 'tl_artshub_profile_activity.name',
  219.                 'eval'                  => array('doNotSaveEmpty'=>true'multiple'=>true'chosen' => true'tl_class'=>'w50'),
  220.                 'relation'              => array('type'=>'hasMany''load'=>'lazy'),
  221.                 'save_callback' => [
  222.                     [Callbacks::class, 'saveActivities'],
  223.                 ],
  224.                 'sql'                     => "blob NULL"
  225.             ),
  226.             'main_image' => array
  227.             (
  228.                 'exclude'                 => true,
  229.                 'inputType'               => 'fileTree',
  230.                 'eval'                    => array('filesOnly'=>true'fieldType'=>'radio''mandatory'=>true'tl_class'=>'w50''extensions'=>\Contao\Config::get('validImageTypes'), 'path'=>\Contao\Config::get('uploadPath').'/media'),
  231.                 'sql'                     => "binary(16) NULL"
  232.             ),
  233.             'images' => array
  234.             (
  235.                 'exclude'                 => true,
  236.                 'inputType'               => 'fileTree',
  237.                 'eval'                    => array('multiple'=>true'fieldType'=>'checkbox''orderField'=>'orderImages''files'=>true'isGallery'=>true'extensions'=>\Contao\Config::get('validImageTypes'), 'tl_class'=>'clr''path'=>\Contao\Config::get('uploadPath').'/media'),
  238.                 'sql'                     => "blob NULL",
  239.             ),
  240.             'orderImages' => array
  241.             (
  242.                 'label'                   => &$GLOBALS['TL_LANG']['MSC']['sortOrder'],
  243.                 'sql'                     => "blob NULL"
  244.             ),
  245.             'description' => array
  246.             (
  247.                 'exclude'                 => true,
  248.                 'search'                  => true,
  249.                 'inputType'               => 'textarea',
  250.                 'eval'                    => array('mandatory'=>true'rte'=>'tinyMCE''helpwizard'=>true),
  251.                 'attributes'              => array('fe_search'=>true),
  252.                 'explanation'             => 'insertTags',
  253.                 'sql'                     => "mediumtext NULL"
  254.             ),
  255.             'street' => array
  256.             (
  257.                 'exclude'                 => true,
  258.                 'search'                  => true,
  259.                 'inputType'               => 'text',
  260.                 'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
  261.                 'sql'                     => "varchar(255) NOT NULL default ''"
  262.             ),
  263.             'street2' => array
  264.             (
  265.                 'exclude'                 => true,
  266.                 'search'                  => true,
  267.                 'inputType'               => 'text',
  268.                 'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
  269.                 'sql'                     => "varchar(255) NOT NULL default ''"
  270.             ),
  271.             'postal' => array
  272.             (
  273.                 'exclude'                 => true,
  274.                 'search'                  => true,
  275.                 'inputType'               => 'text',
  276.                 'eval'                    => array('maxlength'=>32,  'tl_class'=>'w50'),
  277.                 'sql'                     => "varchar(32) NOT NULL default ''"
  278.             ),
  279.             'city' => array
  280.             (
  281.                 'exclude'                 => true,
  282.                 'filter'                  => true,
  283.                 'search'                  => true,
  284.                 'sorting'                 => true,
  285.                 'inputType'               => 'text',
  286.                 'default'                 => '',
  287.                 'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
  288.                 'sql'                     => "varchar(255) NOT NULL default ''"
  289.             ),
  290.             'county' => array
  291.             (
  292.                 'exclude'                 => true,
  293.                 'filter'                  => true,
  294.                 'search'                  => true,
  295.                 'sorting'                 => true,
  296.                 'inputType'               => 'text',
  297.                 'default'                 => '',
  298.                 'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
  299.                 'sql'                     => "varchar(255) NOT NULL default ''"
  300.             ),
  301.             'state' => array
  302.             (
  303.                 'exclude'                 => true,
  304.                 'sorting'                 => true,
  305.                 'inputType'               => 'text',
  306.                 'default'                 => 'MA',
  307.                 'eval'                    => array('maxlength'=>2'tl_class'=>'w50'),
  308.                 'sql'                     => "varchar(2) NOT NULL default ''"
  309.             ),
  310.             'mailing_street_1' => array
  311.             (
  312.                 'exclude'                 => true,
  313.                 'search'                  => true,
  314.                 'inputType'               => 'text',
  315.                 'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
  316.                 'sql'                     => "varchar(64) NOT NULL default ''"
  317.             ),
  318.             'contact_name' => array
  319.             (
  320.                 'exclude'                 => true,
  321.                 'search'                  => true,
  322.                 'inputType'               => 'text',
  323.                 'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
  324.                 'sql'                     => "varchar(255) NOT NULL default ''"
  325.             ),
  326.             'contact_title' => array
  327.             (
  328.                 'exclude'                 => true,
  329.                 'search'                  => true,
  330.                 'inputType'               => 'text',
  331.                 'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
  332.                 'sql'                     => "varchar(255) NOT NULL default ''"
  333.             ),
  334.             'mailing_street_2' => array
  335.             (
  336.                 'exclude'                 => true,
  337.                 'search'                  => true,
  338.                 'inputType'               => 'text',
  339.                 'eval'                    => array('maxlength'=>255'tl_class'=>'w50'),
  340.                 'sql'                     => "varchar(64) NOT NULL default ''"
  341.             ),
  342.             'mailing_city' => array
  343.             (
  344.                 'exclude'                 => true,
  345.                 'search'                  => true,
  346.                 'inputType'               => 'text',
  347.                 'eval'                    => array('maxlength'=>64'tl_class'=>'w50'),
  348.                 'sql'                     => "varchar(64) NOT NULL default ''"
  349.             ),
  350.             'mailing_state' => array
  351.             (
  352.                 'exclude'                 => true,
  353.                 'search'                  => true,
  354.                 'inputType'               => 'text',
  355.                 'eval'                    => array('maxlength'=>4'tl_class'=>'w50'),
  356.                 'sql'                     => "varchar(4) NOT NULL default ''"
  357.             ),
  358.             'mailing_zip' => array
  359.             (
  360.                 'exclude'                 => true,
  361.                 'search'                  => true,
  362.                 'inputType'               => 'text',
  363.                 'eval'                    => array('maxlength'=>10'tl_class'=>'w50'),
  364.                 'sql'                     => "varchar(10) NOT NULL default ''"
  365.             ),
  366.             'latitude' => array
  367.             (
  368.                 'exclude'                 => true,
  369.                 'search'                  => true,
  370.                 'inputType'               => 'text',
  371.                 'eval'                    => array('maxlength'=>255'tl_class'=>'w50' ),
  372.                 'sql'                     => "varchar(255) NOT NULL default ''"
  373.             ),
  374.             'longitude' => array
  375.             (
  376.                 'exclude'                 => true,
  377.                 'search'                  => true,
  378.                 'inputType'               => 'text',
  379.                 'eval'                    => array('maxlength'=>255'tl_class'=>'w50' ),
  380.                 'sql'                     => "varchar(255) NOT NULL default ''"
  381.             ),
  382.             'phone' => array
  383.             (
  384.                 'exclude'                 => true,
  385.                 'search'                  => true,
  386.                 'inputType'               => 'text',
  387.                 'eval'                    => array('maxlength'=>64'decodeEntities'=>true'tl_class'=>'w50'),
  388.                 'sql'                     => "varchar(64) NOT NULL default ''"
  389.             ),
  390.             'fax' => array
  391.             (
  392.                 'exclude'                 => true,
  393.                 'search'                  => true,
  394.                 'inputType'               => 'text',
  395.                 'eval'                    => array('maxlength'=>64'rgxp'=>'phone''decodeEntities'=>true'tl_class'=>'w50'),
  396.                 'sql'                     => "varchar(64) NOT NULL default ''"
  397.             ),
  398.             'email' => array
  399.             (
  400.                 'exclude'                 => true,
  401.                 'search'                  => true,
  402.                 'inputType'               => 'text',
  403.                 'eval'                    => array('maxlength'=>255'rgxp'=>'email''decodeEntities'=>true'tl_class'=>'w50'),
  404.                 'sql'                     => "varchar(255) NOT NULL default ''"
  405.             ),
  406.             'website' => array
  407.             (
  408.                 'exclude'                 => true,
  409.                 'search'                  => true,
  410.                 'inputType'               => 'text',
  411.                 'eval'                    => array('rgxp'=>'url''maxlength'=>255'tl_class'=>'w50'),
  412.                 'sql'                     => "varchar(255) NOT NULL default ''"
  413.             ),
  414.             'facebook' => array
  415.             (
  416.                 'exclude'                 => true,
  417.                 'search'                  => true,
  418.                 'inputType'               => 'text',
  419.                 'eval'                    => array('rgxp'=>'url''maxlength'=>255'tl_class'=>'w50'),
  420.                 'sql'                     => "varchar(255) NOT NULL default ''"
  421.             ),
  422.             'instagram' => array
  423.             (
  424.                 'exclude'                 => true,
  425.                 'search'                  => true,
  426.                 'inputType'               => 'text',
  427.                 'eval'                    => array('rgxp'=>'url''maxlength'=>255'tl_class'=>'w50'),
  428.                 'sql'                     => "varchar(255) NOT NULL default ''"
  429.             ),
  430.             'twitter' => array
  431.             (
  432.                 'exclude'                 => true,
  433.                 'search'                  => true,
  434.                 'inputType'               => 'text',
  435.                 'eval'                    => array('rgxp'=>'url''maxlength'=>255'tl_class'=>'w50'),
  436.                 'sql'                     => "varchar(255) NOT NULL default ''"
  437.             ),
  438.             'has_venues' => array
  439.             (
  440.                 'exclude'                 => true,
  441.                 'inputType'               => 'checkbox',
  442.                 'eval'                    => array('tl_class'=>'w50'),
  443.                 'sql'                     => "char(1) NOT NULL default ''"
  444.             ),
  445.             'events_per_year' => array
  446.             (
  447.                 'exclude'                 => true,
  448.                 'inputType'               => 'text',
  449.                 'eval'                    => array('tl_class'=>'w50'),
  450.                 'sql'                     => "int(10) unsigned NOT NULL default '0'"
  451.             ),
  452.             'geographic_reach' => array
  453.             (
  454.                 'sql'                     => "blob NULL"
  455.             ),
  456.             'seasons_active' => array
  457.             (
  458.                 'sql'                     => "blob NULL"
  459.             ),
  460.             'professional_associations' => array
  461.             (
  462.                 'sql'                     => "blob NULL"
  463.             ),
  464.             'accessibility_comments' => array
  465.             (
  466.                 'sql'                     => "mediumtext NULL"
  467.             ),
  468.             'accessibility_of_services' => array
  469.             (
  470.                 'sql'                     => "blob NULL"
  471.             ),
  472.             'arts_community' => array
  473.             (
  474.                 'sql'                     => "blob NULL"
  475.             ),
  476.             'awards' => array
  477.             (
  478.                 'sql'                     => "blob NULL"
  479.             ),
  480.             'education' => array
  481.             (
  482.                 'sql'                     => "blob NULL"
  483.             ),
  484.             'is_native_american_artist' => array
  485.             (
  486.                 'sql'                     => "char(1) NOT NULL default ''"
  487.             ),
  488.             'is_teaching_artist' => array
  489.             (
  490.                 'sql'                     => "char(1) NOT NULL default ''"
  491.             ),
  492.             'is_nefa_grant_recipient' => array
  493.             (
  494.                 'sql'                     => "char(1) NOT NULL default ''"
  495.             ),
  496.             'is_touring_artist' => array
  497.             (
  498.                 'sql'                     => "char(1) NOT NULL default ''"
  499.             ),
  500.             'profile_score' => array
  501.             (
  502.                 'exclude'                 => true,
  503.                 'sorting'                 => true,
  504.                 'inputType'               => 'text',
  505.                 'eval'                    => array('tl_class'=>'w50'),
  506.                 'attributes'              => array('fe_sorting'=>true),
  507.                 'sql'                     => "decimal(12,2) NOT NULL default '0.00'",
  508.             ),
  509.             'related_profile_ids' => array
  510.             (
  511.                 'sql'                     => "blob NULL"
  512.             ),
  513.             'url_collections' => array
  514.             (
  515.                 'sql'                     => "blob NULL"
  516.             ),
  517.             'video_urls' => array
  518.             (
  519.                 'inputType'               => 'arrayWizard',
  520.                 'eval'                    => array
  521.                 (
  522.                     'allowHtml'           => true,
  523.                     'multiple'            => true,
  524.                     'metaFields'          => array
  525.                     (
  526.                         'title'           => 'maxlength="255"',
  527.                         'alt'             => 'maxlength="255"',
  528.                         'link'            => array('attributes'=>'maxlength="255"'),
  529.                         'caption'         => array('type'=>'textarea')
  530.                     )
  531.                 ),
  532.                 'sql'                     => "blob NULL"
  533.             ),
  534.             'published' => array
  535.             (
  536.                 'exclude'                 => true,
  537.                 'filter'                  => true,
  538.                 'inputType'               => 'checkbox',
  539.                 'eval'                    => array('tl_class'=>'w50'),
  540.                 'sql'                     => "char(1) NOT NULL default ''"
  541.             ),
  542.             'featured' => array
  543.             (
  544.                 'exclude'                 => true,
  545.                 'filter'                  => true,
  546.                 'inputType'               => 'checkbox',
  547.                 'eval'                    => array('tl_class'=>'w50'),
  548.                 'sql'                     => "char(1) NOT NULL default ''"
  549.             ),
  550.             'bipoc' => array
  551.             (
  552.                 'exclude'                 => true,
  553.                 'filter'                  => true,
  554.                 'inputType'               => 'checkbox',
  555.                 'eval'                    => array('tl_class'=>'w50'),
  556.                 'sql'                     => "char(1) NOT NULL default ''"
  557.             ),
  558.             'api_version' => array
  559.             (
  560.                 'sql'                     => "varchar(255) NOT NULL default ''"
  561.             ),
  562.             'start' => array
  563.             (
  564.                 'exclude'                 => true,
  565.                 'inputType'               => 'text',
  566.                 'eval'                    => array('rgxp'=>'datim''datepicker'=>true'tl_class'=>'clr w50 wizard'),
  567.                 'sql'                     => "varchar(10) NOT NULL default ''"
  568.             ),
  569.             'stop' => array
  570.             (
  571.                 'exclude'                 => true,
  572.                 'inputType'               => 'text',
  573.                 'eval'                    => array('rgxp'=>'datim''datepicker'=>true'tl_class'=>'w50 wizard'),
  574.                 'sql'                     => "varchar(10) NOT NULL default ''"
  575.             ),
  576.         )
  577.     );
  578. }