getImageFieldTitle($post); $arrSizes = UniteFunctionsWPUC::getArrThumbSizes(); $urlFull = UniteFunctionsWPUC::getUrlAttachmentImage($imageID); $urlThumbMedium = UniteFunctionsWPUC::getUrlAttachmentImage($imageID, UniteFunctionsWPUC::THUMB_MEDIUM); $urlThumbLarge = UniteFunctionsWPUC::getUrlAttachmentImage($imageID, UniteFunctionsWPUC::THUMB_LARGE); $arrValues[$fieldName] = $urlFull; $arrValues[$fieldName."_title"] = $title; $arrValues[$fieldName."_thumb"] = $urlThumbMedium; $arrValues[$fieldName."_thumb_large"] = $urlThumbLarge; return($arrValues); } /** * get file data from post */ private function getFileData($post, $fieldName, $arrValues){ $filepath = UniteFunctionsUC::getVal($post, "guid"); $title = $this->getImageFieldTitle($post); $arrValues[$fieldName] = $filepath; $arrValues[$fieldName."_title"] = $title; return($arrValues); } /** * get file data from post */ private function getPickData($data, $fieldName, $arrValues){ if(is_string($data) == true){ $arrValues[$fieldName] = $data; return($arrValues); } if(is_array($data) == false){ $arrValues[$fieldName] = ""; return($arrValues); } //only if array $isFirst = false; foreach($data as $name => $value){ if(is_array($value) || is_object($value)) continue; if($isFirst == false){ $isFirst = true; $arrValues[$fieldName] = $value; } $name = strtolower($name); $arrValues[$fieldName."_".$name] = $value; } return($arrValues); } /** * get repeater field from post */ private function getPandaRepeaterData($data, $fieldName, $arrValues){ if(empty($data)){ $arrValues[$fieldName] = array(); return($arrValues); } if(is_array($data) == false){ $arrValues[$fieldName] = array($data); return($arrValues); } foreach($data as $key=>$item){ if(empty($item)) continue; $newItem = array(); foreach($item as $itemKey=>$itemvalue){ if(strpos($itemKey, "pandarf_") === 0) continue; $newItem[$itemKey] = $itemvalue; } $data[$key] = $newItem; } $arrValues[$fieldName] = $data; return($arrValues); } /** * get file field data */ private function getFileFieldData($post, $fieldName, $arrValues){ $postID = UniteFunctionsUC::getVal($post, "ID"); if(empty($postID)){ $arrValues[$fieldName] = ""; return($arrValues); } $postType = UniteFunctionsUC::getVal($post, "post_type"); if($postType != "attachment"){ $arrValues[$fieldName] = ""; return($arrValues); } $mimeType = UniteFunctionsUC::getVal($post, "post_mime_type"); $isImage = false; if(strpos($mimeType, "image/") === 0) $isImage = true; if($isImage == true) $arrValues = $this->getImageData($post, $fieldName, $arrValues); else $arrValues = $this->getFileData($post, $fieldName, $arrValues); if(self::DEBUG_FIELDS == true){ dmp("file data $postID is image: ".$isImage); dmp($arrValues[$fieldName]); } return($arrValues); } /** * get file data */ private function getFilesData($data, $fieldName, $arrValues){ if(empty($data)){ $arrValues[$fieldName] = ""; return($arrValues); } $arrOutput = array(); foreach($data as $post){ $arrFileData = array(); $arrFileData = $this->getFileFieldData($post, "image", $arrFileData); $arrOutput[] = $arrFileData; } $arrValues[$fieldName] = $arrOutput; return($arrValues); } /** * modify data by type */ private function addFieldDataByType($type, $data, $fieldName, $arrValues){ switch($type){ case self::TYPE_FILE: $arrValues = $this->getFileFieldData($data, $fieldName, $arrValues); break; case self::TYPE_PICK: $arrValues = $this->getPickData($data, $fieldName, $arrValues); break; case self::TYPE_PANDA_REPEATER: $arrValues = $this->getPandaRepeaterData($data, $fieldName, $arrValues); break; case self::TYPE_FILES: $arrValues = $this->getFilesData($data, $fieldName, $arrValues); break; default: if(is_string($data) || is_array($data)) $arrValues[$fieldName] = $data; else $arrValues[$fieldName] = "type not supported"; break; } return($arrValues); } /** * get pods fields for post * if not fields - return null */ public function getPodsFields($postID, $addPrefix = true){ $post = get_post($postID); if(empty($post)) return(null); if(function_exists("is_pod") == false) return(null); $postType = $post->post_type; $objPod = pods($postType, $postID); if(empty($objPod)) return(null); if(is_object($objPod) == false) return(null); if(method_exists($objPod, "fields") == false) return(null); $arrFields = $objPod->fields(); if(empty($arrFields)) return(null); $arrValues = array(); foreach($arrFields as $name => $field){ $fieldName = $name; if($addPrefix == true) $fieldName = self::PREFIX.$fieldName; $type = UniteFunctionsUC::getVal($field, "type"); if($type == self::TYPE_FILE){ $format = UniteFunctionsUC::getVal($field, "file_format_type"); if($format == "multi") $type = self::TYPE_FILES; } $data = $objPod->field($name); if(self::DEBUG_FIELDS == true){ dmp("Pod field: $name ($type)"); dmp($field); dmp($data); } $arrValues = $this->addFieldDataByType($type, $data, $fieldName, $arrValues); } return($arrValues); } /** * check if pods exists */ public static function isPodsExists(){ $isPodsExists = function_exists("pods"); return($isPodsExists); } }