public function flipMedia(array $media, $direction = 'horizontal') { /** @var $watermarkModel XenGallery_Model_Watermark */ $watermarkModel = $this->getModelFromCache('XenGallery_Model_Watermark'); if ($media['watermark_id']) { $watermarkModel->removeWatermarkFromImage($media); } $originalPath = $this->getOriginalDataFilePath($media, true); $tempFile = tempnam(XenForo_Helper_File::getTempDir(), 'xfmg'); $image = new XenGallery_Helper_Image($originalPath); $flipped = $image->flip($direction); if ($flipped) { $this->deleteTagsByMediaId($media['media_id']); $image->saveToPath($tempFile); $imageInfo = $image->getImageInfo(); $imageInfo['file_hash'] = $image->getFileHash(); $media['file_hash'] = $imageInfo['file_hash']; $dw = XenForo_DataWriter::create('XenForo_DataWriter_AttachmentData'); $dw->setExistingData($media['data_id']); $dw->setExtraData(XenForo_DataWriter_AttachmentData::DATA_TEMP_FILE, $tempFile); $dw->save(); if (!$watermarkModel->canBypassWatermark() || $media['watermark_id']) { $watermarked = $watermarkModel->addWatermarkToImage($media); if ($watermarked) { $imageInfo = $watermarked; $media['file_hash'] = $imageInfo['file_hash']; } } return $imageInfo; } return false; }