/** * * set custom values to settings */ public static function setSettingsCustomValues(UniteSettingsRev $settings, $arrValues) { $arrSettings = $settings->getArrSettings(); foreach ($arrSettings as $key => $setting) { $type = UniteFunctionsRev::getVal($setting, "type"); if ($type != UniteSettingsRev::TYPE_CUSTOM) { continue; } $customType = UniteFunctionsRev::getVal($setting, "custom_type"); switch ($customType) { case "slider_size": $setting["width"] = UniteFunctionsRev::getVal($arrValues, "width", UniteFunctionsRev::getVal($setting, "width")); $setting["height"] = UniteFunctionsRev::getVal($arrValues, "height", UniteFunctionsRev::getVal($setting, "height")); $arrSettings[$key] = $setting; break; case "responsitive_settings": $id = $setting["id"]; $setting["w1"] = UniteFunctionsRev::getVal($arrValues, $id . "_w1", UniteFunctionsRev::getVal($setting, "w1")); $setting["w2"] = UniteFunctionsRev::getVal($arrValues, $id . "_w2", UniteFunctionsRev::getVal($setting, "w2")); $setting["w3"] = UniteFunctionsRev::getVal($arrValues, $id . "_w3", UniteFunctionsRev::getVal($setting, "w3")); $setting["w4"] = UniteFunctionsRev::getVal($arrValues, $id . "_w4", UniteFunctionsRev::getVal($setting, "w4")); $setting["w5"] = UniteFunctionsRev::getVal($arrValues, $id . "_w5", UniteFunctionsRev::getVal($setting, "w5")); $setting["w6"] = UniteFunctionsRev::getVal($arrValues, $id . "_w6", UniteFunctionsRev::getVal($setting, "w6")); $setting["sw1"] = UniteFunctionsRev::getVal($arrValues, $id . "_sw1", UniteFunctionsRev::getVal($setting, "sw1")); $setting["sw2"] = UniteFunctionsRev::getVal($arrValues, $id . "_sw2", UniteFunctionsRev::getVal($setting, "sw2")); $setting["sw3"] = UniteFunctionsRev::getVal($arrValues, $id . "_sw3", UniteFunctionsRev::getVal($setting, "sw3")); $setting["sw4"] = UniteFunctionsRev::getVal($arrValues, $id . "_sw4", UniteFunctionsRev::getVal($setting, "sw4")); $setting["sw5"] = UniteFunctionsRev::getVal($arrValues, $id . "_sw5", UniteFunctionsRev::getVal($setting, "sw5")); $setting["sw6"] = UniteFunctionsRev::getVal($arrValues, $id . "_sw6", UniteFunctionsRev::getVal($setting, "sw6")); $arrSettings[$key] = $setting; break; } } $settings->setArrSettings($arrSettings); //disable settings by slider type: $sliderType = $settings->getSettingValue("slider_type"); switch ($sliderType) { case "fixed": case "fullwidth": //hide responsitive $settingRes = $settings->getSettingByName("responsitive"); $settingRes["disabled"] = true; $settings->updateArrSettingByName("responsitive", $settingRes); break; } //change height to max height if ($sliderType == "fullwidth") { $settingSize = $settings->getSettingByName("slider_size"); $settingSize["fullwidth_mode"] = true; $settings->updateArrSettingByName("slider_size", $settingSize); } return $settings; }
/** * set category by post type, with specific name (can be regular or woocommerce) */ public static function setCategoryByPostTypes(UniteSettingsRev $settings, $arrValues, $postTypesWithCats, $nameType, $nameCat, $defaultType) { //update the categories list by the post types $postTypes = UniteFunctionsRev::getVal($arrValues, $nameType, $defaultType); if (strpos($postTypes, ",") !== false) { $postTypes = explode(",", $postTypes); } else { $postTypes = array($postTypes); } $arrCats = array(); $globalCounter = 0; $arrCats = array(); $isFirst = true; foreach ($postTypes as $postType) { $cats = UniteFunctionsRev::getVal($postTypesWithCats, $postType, array()); if ($isFirst == true) { $firstValue = self::getFirstCategory($cats); $isFirst = false; } $arrCats = array_merge($arrCats, $cats); } $settingCategory = $settings->getSettingByName($nameCat); $settingCategory["items"] = $arrCats; $settings->updateArrSettingByName($nameCat, $settingCategory); //update value to first category $value = $settings->getSettingValue($nameCat); if (empty($value)) { $settings->updateSettingValue($nameCat, $firstValue); } return $settings; }