vendor/dma/dma_simple_grid/src/dma_simple_grid/classes/DmaSimpleGrid.php line 54

Open in your IDE?
  1. <?php
  2. /*
  3.  * Copyright DMA GmbH and Janosch Oltmanns
  4.  *
  5.  * For the full copyright and license information, please view the LICENSE
  6.  * file that was distributed with this source code.
  7.  */
  8. namespace DMA;
  9. /**
  10.  * DMA SimpleGrid DCA (tl_content and tl_module)
  11.  *
  12.  * Provide miscellaneous methods that are used by the data configuration arrays.
  13.  *
  14.  * @author Janosch Oltmanns <oltmanns@dma.do>
  15.  */
  16. class DmaSimpleGrid
  17. {
  18.     /**
  19.      * Object instance (Singleton)
  20.      * @var \Input
  21.      */
  22.     protected static $objInstance;
  23.     /**
  24.      * Cache
  25.      * @var array
  26.      */
  27.     protected static $arrCache = array();
  28.     public static function getData()
  29.     {
  30.         if (!isset(static::$arrCache['grid']))
  31.         {
  32.             self::initialize();
  33.         }
  34.         return static::$arrCache['grid'];
  35.     }
  36.     public static function getConfigData($strKey)
  37.     {
  38.         if (!isset(static::$arrCache['grid']))
  39.         {
  40.             self::initialize();
  41.         }
  42.         return static::$arrCache['grid']['config'][$strKey];
  43.     }
  44.     public static function hasDmaGridInfos($arrTemplateData)
  45.     {
  46.         $arrCheckableKeys = array
  47.         (
  48.             'dma_simplegrid_columnsettings',
  49.             'dma_simplegrid_offsetsettings',
  50.             'dma_simplegrid_offsetrightsettings',
  51.             'dma_simplegrid_pushsettings',
  52.             'dma_simplegrid_pullsettings'
  53.         );
  54.         $blnHasDmaGridInfos false;
  55.         foreach ($arrCheckableKeys as $checkableKey)
  56.         {
  57.             if ($arrTemplateData[$checkableKey])
  58.             {
  59.                 $blnHasDmaGridInfos true;
  60.             }
  61.         }
  62.         return $blnHasDmaGridInfos;
  63.     }
  64.     public static function getColumnClasses($arrTemplateData)
  65.     {
  66.         if (!isset(static::$arrCache['grid']))
  67.         {
  68.             self::initialize();
  69.         }
  70.         $arrConfiguredClasses = array();
  71.         if (!is_array($arrTemplateData['dma_simplegrid_columnsettings'])) {
  72.             $arrColumnSettings deserialize($arrTemplateData['dma_simplegrid_columnsettings'], true);
  73.         }
  74.         if (!is_array($arrTemplateData['dma_simplegrid_offsetsettings'])) {
  75.             $arrOffsetSettings deserialize($arrTemplateData['dma_simplegrid_offsetsettings'], true);
  76.         }
  77.         if (!is_array($arrTemplateData['dma_simplegrid_offsetrightsettings'])) {
  78.             $arrOffsetRightSettings deserialize($arrTemplateData['dma_simplegrid_offsetrightsettings'], true);
  79.         }
  80.         if (!is_array($arrTemplateData['dma_simplegrid_pushsettings'])) {
  81.             $arrPushSettings deserialize($arrTemplateData['dma_simplegrid_pushsettings'], true);
  82.         }
  83.         if (!is_array($arrTemplateData['dma_simplegrid_pullsettings'])) {
  84.             $arrPullSettings deserialize($arrTemplateData['dma_simplegrid_pullsettings'], true);
  85.         }
  86.         if (sizeof($arrColumnSettings) == 1) {
  87.             $arrElementSettings $arrColumnSettings[0];
  88.             if (is_array($arrElementSettings)) {
  89.                 foreach ($arrElementSettings as $columnKey => $varValue) {
  90.                     if ($varValue) {
  91.                         $arrConfiguredClasses[] = sprintf(static::$arrCache['grid']['config']['columns-config'][$columnKey]['column-class'], $varValue);
  92.                     }
  93.                 }
  94.             }
  95.         }
  96.         if (sizeof($arrOffsetSettings) == && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_useOffset']) {
  97.             $arrElementSettings $arrOffsetSettings[0];
  98.             if (is_array($arrElementSettings)) {
  99.                 foreach ($arrElementSettings as $columnKey => $varValue) {
  100.                     if ($varValue) {
  101.                         $arrConfiguredClasses[] = sprintf(static::$arrCache['grid']['config']['columns-config'][$columnKey]['offset-class'], $varValue);
  102.                     }
  103.                 }
  104.             }
  105.         }
  106.         if (sizeof($arrOffsetRightSettings) == && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_useOffsetRight']) {
  107.             $arrElementSettings $arrOffsetRightSettings[0];
  108.             if (is_array($arrElementSettings)) {
  109.                 foreach ($arrElementSettings as $columnKey => $varValue) {
  110.                     if ($varValue) {
  111.                         $arrConfiguredClasses[] = sprintf(static::$arrCache['grid']['config']['columns-config'][$columnKey]['offset-right-class'], $varValue);
  112.                     }
  113.                 }
  114.             }
  115.         }
  116.         if (sizeof($arrPushSettings) == && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_usePush']) {
  117.             $arrElementSettings $arrPushSettings[0];
  118.             if (is_array($arrElementSettings)) {
  119.                 foreach ($arrElementSettings as $columnKey => $varValue) {
  120.                     if ($varValue) {
  121.                         $arrConfiguredClasses[] = sprintf(static::$arrCache['grid']['config']['columns-config'][$columnKey]['push-class'], $varValue);
  122.                     }
  123.                 }
  124.             }
  125.         }
  126.         if (sizeof($arrPullSettings) == && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_usePull']) {
  127.             $arrElementSettings $arrPullSettings[0];
  128.             if (is_array($arrElementSettings)) {
  129.                 foreach ($arrElementSettings as $columnKey => $varValue) {
  130.                     if ($varValue) {
  131.                         $arrConfiguredClasses[] = sprintf(static::$arrCache['grid']['config']['columns-config'][$columnKey]['pull-class'], $varValue);
  132.                     }
  133.                 }
  134.             }
  135.         }
  136.         if ($GLOBALS['TL_CONFIG']['dmaSimpleGrid_useAdditionalColumnClasses'] && static::$arrCache['grid']['config']['additional-classes']['columns'])
  137.         {
  138.             $arrAdditionalClasses deserialize($arrTemplateData['dma_simplegrid_additionalcolumnclasses'], true);
  139.             if (sizeof($arrAdditionalClasses) > 0)
  140.             {
  141.                 foreach ($arrAdditionalClasses as $strClassKey)
  142.                 {
  143.                     $arrConfiguredClasses[] = $strClassKey;
  144.                 }
  145.             }
  146.         }
  147.         if (sizeof($arrConfiguredClasses) > || $arrTemplateData['type']=="dma_simplegrid_column_start") {
  148.             if (static::$arrCache['grid']['config']['column-class'])
  149.             {
  150.                 array_insert($arrConfiguredClasses0, static::$arrCache['grid']['config']['column-class']);
  151.             }
  152.         }
  153.         $strClasses implode(' '$arrConfiguredClasses);
  154.         if (strpos($strClasses"^") !== false)
  155.         {
  156.             $strClasses str_replace(" ^"""$strClasses);
  157.         }
  158.         return $strClasses;
  159.     }
  160.     public static function getSimpleGridInfos($arrRow)
  161.     {
  162.         if (!isset(static::$arrCache['grid']))
  163.         {
  164.             self::initialize();
  165.         }
  166.         $strGridInfo "";
  167.         if ($arrRow['dma_simplegrid_columnsettings'] || $arrRow['dma_simplegrid_additionalwrapperclasses'])
  168.         {
  169.             $strGridInfo .= self::getColumnsShowString($arrRow);
  170.         }
  171.         if ($strGridInfo != "")
  172.         {
  173.             $strGridInfo '<a href="#" class="tl_gray" style="padding-right:10px; white-space:nowrap; max-width:200px; display:inline-block; overflow:hidden; text-overflow:ellipsis;" title="' $strGridInfo .'" onclick="return false;">' $strGridInfo '</a>';
  174.         }
  175.         return $strGridInfo;
  176.     }
  177.     public static function blockSelectCallback()
  178.     {
  179.         if (!isset(static::$arrCache['grid']))
  180.         {
  181.             self::initialize();
  182.         }
  183.         $arrColumnsSetting = array();
  184.         if (static::$arrCache['grid']['config']['block-config']) {
  185.             foreach (static::$arrCache['grid']['config']['block-config'] as $configName => $arrColumnConfig) {
  186.                 $arrColumnsSetting[$configName] = array
  187.                 (
  188.                     'label' => $arrColumnConfig['name'],
  189.                     'inputType' => 'select',
  190.                     'options' => static::$arrCache['grid']['config']['block-sizes'],
  191.                     'eval' => array('includeBlankOption' => true'style' => 'width:115px')
  192.                 );
  193.             }
  194.         }
  195.         return $arrColumnsSetting;
  196.     }
  197.     public static function columnsSelectCallback()
  198.     {
  199.         if (!isset(static::$arrCache['grid']))
  200.         {
  201.             self::initialize();
  202.         }
  203.         $arrColumnsSetting = array();
  204.         if (static::$arrCache['grid']['config']['columns-config']) {
  205.             foreach (static::$arrCache['grid']['config']['columns-config'] as $configName => $arrColumnConfig) {
  206.                 $arrColumnsSetting[$configName] = array
  207.                 (
  208.                     'label' => $arrColumnConfig['name'],
  209.                     'inputType' => 'select',
  210.                     'options' => static::$arrCache['grid']['config']['columns-sizes'],
  211.                     'eval' => array('includeBlankOption' => true'style' => 'width:115px')
  212.                 );
  213.             }
  214.         }
  215.         return $arrColumnsSetting;
  216.     }
  217.     public static function getAdditionalWrapperClasses()
  218.     {
  219.         if (!isset(static::$arrCache['grid']))
  220.         {
  221.             self::initialize();
  222.         }
  223.         return static::$arrCache['grid']['config']['additional-classes']['wrapper'];
  224.     }
  225.     public static function getAdditionalRowClasses()
  226.     {
  227.         if (!isset(static::$arrCache['grid']))
  228.         {
  229.             self::initialize();
  230.         }
  231.         return static::$arrCache['grid']['config']['additional-classes']['row'];
  232.     }
  233.     public static function getAdditionalColumnClasses()
  234.     {
  235.         if (!isset(static::$arrCache['grid']))
  236.         {
  237.             self::initialize();
  238.         }
  239.         return static::$arrCache['grid']['config']['additional-classes']['columns'];
  240.     }
  241.     public static function getColumnsShowString($arrRow)
  242.     {
  243.         $strReturn "";
  244.         $arrConfiguredClasses = array();
  245.         if (!is_array($arrRow['dma_simplegrid_columnsettings'])) {
  246.             $arrColumnSettings deserialize($arrRow['dma_simplegrid_columnsettings'], true);
  247.         }
  248.         if (!is_array($arrRow['dma_simplegrid_offsetsettings'])) {
  249.             $arrOffsetSettings deserialize($arrRow['dma_simplegrid_offsetsettings'], true);
  250.         }
  251.         if (!is_array($arrRow['dma_simplegrid_offsetrightsettings'])) {
  252.             $arrOffsetRightSettings deserialize($arrRow['dma_simplegrid_offsetrightsettings'], true);
  253.         }
  254.         if (!is_array($arrRow['dma_simplegrid_pushsettings'])) {
  255.             $arrPushSettings deserialize($arrRow['dma_simplegrid_pushsettings'], true);
  256.         }
  257.         if (!is_array($arrRow['dma_simplegrid_pullsettings'])) {
  258.             $arrPullSettings deserialize($arrRow['dma_simplegrid_pullsettings'], true);
  259.         }
  260.         if (!is_array($arrRow['dma_simplegrid_additionalcolumnclasses'])) {
  261.             $arrAdditionalColumnClassesSettings deserialize($arrRow['dma_simplegrid_additionalcolumnclasses'], true);
  262.         }
  263.         if (!is_array($arrRow['dma_simplegrid_additionalrowclasses'])) {
  264.             $arrAdditionalRowClassesSettings deserialize($arrRow['dma_simplegrid_additionalrowclasses'], true);
  265.         }
  266.         if (!is_array($arrRow['dma_simplegrid_additionalwrapperclasses'])) {
  267.             $arrAdditionalWrapperClassesSettings deserialize($arrRow['dma_simplegrid_additionalwrapperclasses'], true);
  268.         }
  269.         if (sizeof($arrColumnSettings) == 1) {
  270.             $arrElementSettings $arrColumnSettings[0];
  271.             if (is_array($arrElementSettings)) {
  272.                 foreach ($arrElementSettings as $columnKey => $varValue) {
  273.                     if ($varValue && static::$arrCache['grid']['config']['columns-config'][$columnKey]['name']) {
  274.                         $arrConfiguredClasses[] = static::$arrCache['grid']['config']['columns-config'][$columnKey]['name'] . ": " $varValue;
  275.                     }
  276.                 }
  277.             }
  278.         }
  279.         if (sizeof($arrOffsetSettings) == && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_useOffset']) {
  280.             $arrElementSettings $arrOffsetSettings[0];
  281.             if (is_array($arrElementSettings)) {
  282.                 foreach ($arrElementSettings as $columnKey => $varValue) {
  283.                     if ($varValue && static::$arrCache['grid']['config']['columns-config'][$columnKey]['name']) {
  284.                         $arrConfiguredClasses[] = static::$arrCache['grid']['config']['columns-config'][$columnKey]['name'] . "-offset: " $varValue;
  285.                     }
  286.                 }
  287.             }
  288.         }
  289.         if (sizeof($arrOffsetRightSettings) == && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_useOffsetRight']) {
  290.             $arrElementSettings $arrOffsetRightSettings[0];
  291.             if (is_array($arrElementSettings)) {
  292.                 foreach ($arrElementSettings as $columnKey => $varValue) {
  293.                     if ($varValue && static::$arrCache['grid']['config']['columns-config'][$columnKey]['name']) {
  294.                         $arrConfiguredClasses[] = static::$arrCache['grid']['config']['columns-config'][$columnKey]['name'] . "-offset-right: " $varValue;
  295.                     }
  296.                 }
  297.             }
  298.         }
  299.         if (sizeof($arrPushSettings) == && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_usePush']) {
  300.             $arrElementSettings $arrPushSettings[0];
  301.             if (is_array($arrElementSettings)) {
  302.                 foreach ($arrElementSettings as $columnKey => $varValue) {
  303.                     if ($varValue && static::$arrCache['grid']['config']['columns-config'][$columnKey]['name']) {
  304.                         $arrConfiguredClasses[] = static::$arrCache['grid']['config']['columns-config'][$columnKey]['name'] . "-push: " $varValue;
  305.                     }
  306.                 }
  307.             }
  308.         }
  309.         if (sizeof($arrPullSettings) == && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_usePull']) {
  310.             $arrElementSettings $arrPullSettings[0];
  311.             if (is_array($arrElementSettings)) {
  312.                 foreach ($arrElementSettings as $columnKey => $varValue) {
  313.                     if ($varValue && static::$arrCache['grid']['config']['columns-config'][$columnKey]['name']) {
  314.                         $arrConfiguredClasses[] = static::$arrCache['grid']['config']['columns-config'][$columnKey]['name'] . "-pull: " $varValue;
  315.                     }
  316.                 }
  317.             }
  318.         }
  319.         if (sizeof($arrAdditionalColumnClassesSettings) > && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_useAdditionalColumnClasses'])
  320.         {
  321.             if (is_array($arrAdditionalColumnClassesSettings))
  322.             {
  323.                 foreach ($arrAdditionalColumnClassesSettings as $varValue)
  324.                 {
  325.                     $arrConfiguredClasses[] = $varValue;
  326.                 }
  327.             }
  328.         }
  329.         if (sizeof($arrAdditionalRowClassesSettings) > && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_useAdditionalRowClasses'])
  330.         {
  331.             if (is_array($arrAdditionalRowClassesSettings))
  332.             {
  333.                 foreach ($arrAdditionalRowClassesSettings as $varValue)
  334.                 {
  335.                     $arrConfiguredClasses[] = $varValue;
  336.                 }
  337.             }
  338.         }
  339.         if (sizeof($arrAdditionalWrapperClassesSettings) > && $GLOBALS['TL_CONFIG']['dmaSimpleGrid_useAdditionalWrapperClasses'])
  340.         {
  341.             if (is_array($arrAdditionalWrapperClassesSettings))
  342.             {
  343.                 foreach ($arrAdditionalWrapperClassesSettings as $varValue)
  344.                 {
  345.                     $arrConfiguredClasses[] = $varValue;
  346.                 }
  347.             }
  348.         }
  349.         $strReturn implode('; '$arrConfiguredClasses);
  350.         return $strReturn;
  351.     }
  352.     private static function initialize()
  353.     {
  354.         if ($GLOBALS['TL_CONFIG']['dmaSimpleGridType'] && $GLOBALS['DMA_SIMPLEGRID_CONFIG'][$GLOBALS['TL_CONFIG']['dmaSimpleGridType']])
  355.         {
  356.             static::$arrCache['grid'] = $GLOBALS['DMA_SIMPLEGRID_CONFIG'][$GLOBALS['TL_CONFIG']['dmaSimpleGridType']];
  357.         }
  358.         else
  359.         {
  360.             static::$arrCache['grid'] = $GLOBALS['DMA_SIMPLEGRID_CONFIG'][$GLOBALS['DMA_SIMPLEGRID_CONFIG']['DMA_SIMPLEGRID_FALLBACK']];
  361.         }
  362.     }
  363. }