vendor/alnv/catalog-manager/library/alnv/Fields/Checkbox.php line 21

Open in your IDE?
  1. <?php
  2. namespace CatalogManager;
  3. class Checkbox
  4. {
  5.     public static $arrCache = [];
  6.     public static function generate($arrDCAField$arrField$objModule null$blnActive true)
  7.     {
  8.         $arrDCAField['eval']['csv'] = ',';
  9.         $arrDCAField['eval']['disabled'] = Toolkit::getBooleanByValue($arrField['disabled'] ?? '');
  10.         $arrDCAField['eval']['multiple'] = Toolkit::getBooleanByValue($arrField['multiple'] ?? '');
  11.         $arrDCAField['eval']['submitOnChange'] = Toolkit::getBooleanByValue($arrField['submitOnChange'] ?? '');
  12.         $strModuleID = !is_null($objModule) && is_object($objModule) ? $objModule->id '';
  13.         if ($blnActive$arrDCAField = static::getOptions($arrDCAField$arrField$strModuleID$blnActive);
  14.         return $arrDCAField;
  15.     }
  16.     public static function parseValue($varValue$arrField$arrCatalog)
  17.     {
  18.         if (!$varValue) return $arrField['multiple'] ? [] : '';
  19.         $varValue Toolkit::parseMultipleOptions($varValue);
  20.         if (!empty($varValue) && is_array($varValue)) {
  21.             $arrReturn = [];
  22.             static::getOptionsFromCache($arrField['fieldname'], $arrField);
  23.             if (!empty($varValue) && is_array($varValue)) {
  24.                 foreach ($varValue as $strValue) {
  25.                     $arrReturn[$strValue] = isset(static::$arrCache[$arrField['fieldname']][$strValue]) && static::$arrCache[$arrField['fieldname']][$strValue] ? static::$arrCache[$arrField['fieldname']][$strValue] : $strValue;
  26.                 }
  27.             }
  28.             return $arrReturn;
  29.         }
  30.         return $varValue;
  31.     }
  32.     protected static function getOptionsFromCache($strFieldname$arrField)
  33.     {
  34.         if (!isset(static::$arrCache[$strFieldname]) || !static::$arrCache[$strFieldname]) {
  35.             static::$arrCache[$strFieldname] = [];
  36.         }
  37.         if (empty(static::$arrCache[$strFieldname]) || !is_array(static::$arrCache[$strFieldname])) {
  38.             $objOptionGetter = new OptionsGetter($arrField);
  39.             static::$arrCache[$strFieldname] = $objOptionGetter->getOptions();
  40.         }
  41.     }
  42.     protected static function getOptions($arrDCAField$arrField$strID$blnActive)
  43.     {
  44.         $objOptionGetter = new OptionsGetter($arrField$strID);
  45.         if ($objOptionGetter->isForeignKey()) {
  46.             $arrField['dbTableKey'] = 'id';
  47.             $strForeignKey $objOptionGetter->getForeignKey();
  48.             if ($strForeignKey) {
  49.                 $arrDCAField['foreignKey'] = $strForeignKey;
  50.             }
  51.         } else {
  52.             $arrOptions $objOptionGetter->getOptions();
  53.             if (isset($arrField['optionsType']) && $arrField['optionsType'] && is_array($arrOptions)) {
  54.                 $arrDCAField['options'] = $arrOptions;
  55.                 if (!Toolkit::isNumericArray($arrDCAField['options'])) {
  56.                     $arrDCAField['reference'] = $arrDCAField['options'];
  57.                 }
  58.             }
  59.         }
  60.         return $arrDCAField;
  61.     }
  62. }