protected function _importMedia(array $item, array $options) { $sDb = $this->_sourceDb; $xfDb = $this->_xfDb; if (!$this->_fileRoot) { $this->_fileRoot = $sDb->fetchOne('SELECT setting FROM ' . $this->_prefix . 'settings WHERE varname = \'datafull\''); } $originalFilePath = sprintf('%s/%d/%s', $this->_fileRoot, $item['cat'], $item['bigimage']); if (!file_exists($originalFilePath)) { return false; } $xenOptions = XenForo_Application::getOptions(); $imageExtensions = preg_split('/\\s+/', trim($xenOptions->xengalleryImageExtensions)); $videoExtensions = preg_split('/\\s+/', trim($xenOptions->xengalleryVideoExtensions)); $extension = XenForo_Helper_File::getFileExtension($originalFilePath); if (in_array($extension, $imageExtensions)) { $mediaType = 'image_upload'; } else { if (in_array($extension, $videoExtensions)) { $mediaType = 'video_upload'; } else { return false; } } $tempFile = tempnam(XenForo_Helper_File::getTempDir(), 'xfmg'); copy($originalFilePath, $tempFile); $model = $this->_getMediaGalleryImportersModel(); $albumId = 0; $categoryId = 0; $privacy = 'public'; if ($item['cattype'] == 'a') { $albumId = $model->mapAlbumId($item['cat']); $privacy = $item['private'] == 'yes' ? 'private' : 'public'; } elseif ($item['cattype'] == 'c') { $categoryId = $model->mapCategoryId($item['cat']); $privacy = 'category'; } $user = $xfDb->fetchRow(' SELECT user_id, username FROM xf_user WHERE user_id = ? ', $item['userid']); if (!$user) { return false; } $xengalleryMedia = array('media_title' => $this->_convertToUtf8($item['title'], true), 'media_description' => XenForo_Template_Helper_Core::helperSnippet($this->_convertToUtf8($item['description'], true), 0, array('stripHtml' => true)), 'media_date' => $item['date'], 'last_edit_date' => $item['lastpost'], 'last_comment_date' => $item['lastpost'], 'media_type' => $mediaType, 'media_state' => 'visible', 'album_id' => $albumId, 'category_id' => $categoryId, 'media_privacy' => $privacy, 'attachment_id' => 0, 'user_id' => $user['user_id'], 'username' => $user['username'], 'ip_id' => $model->getLatestIpIdFromUserId($user['user_id']), 'likes' => 0, 'like_users' => array(), 'comment_count' => $item['numcom'], 'rating_count' => 0, 'media_view_count' => $item['views']); $xfAttachment = array('data_id' => 0, 'content_type' => 'xengallery_media', 'content_id' => 0, 'attach_date' => $item['date'], 'temp_hash' => '', 'unassociated' => 0, 'view_count' => $item['views']); $xfAttachmentData = array('user_id' => $user['user_id'], 'upload_date' => $item['date'], 'filename' => $item['bigimage'], 'attach_count' => 1); $importedMediaId = $model->importMedia($item['id'], $tempFile, '', $xengalleryMedia, $xfAttachment, $xfAttachmentData); @unlink($tempFile); return $importedMediaId; }
protected function _importCategory(array $category, array $options) { $model = $this->_getMediaGalleryImportersModel(); $xengalleryCategory = array('category_title' => $this->_convertToUtf8($category['title'], true), 'category_description' => XenForo_Template_Helper_Core::helperSnippet($this->_convertToUtf8($category['description'], true), 0, array('stripHtml' => true)), 'upload_user_groups' => $category['hasimages'] ? unserialize('a:1:{i:0;i:-1;}') : unserialize('a:0:{}'), 'view_user_groups' => unserialize('a:1:{i:0;i:-1;}'), 'allowed_types' => unserialize('a:1:{i:0;s:3:"all";}'), 'parent_category_id' => $category['parent'], 'display_order' => $category['displayorder'], 'category_breadcrumb' => unserialize('a:0:{}'), 'depth' => 0, 'category_media_count' => $category['imagecount'], 'field_cache' => unserialize('a:0:{}')); $importedCategoryId = $model->importCategory($category['catid'], $xengalleryCategory); return $importedCategoryId; }
protected function _importMedia(array $item, array $options) { $originalFilePath = $this->_config['ipboard_path'] . '/uploads/' . $item['image_directory'] . '/' . $item['image_masked_file_name']; if (!file_exists($originalFilePath)) { return false; } $tempFile = tempnam(XenForo_Helper_File::getTempDir(), 'xfmg'); copy($originalFilePath, $tempFile); /** @var XenGallery_Model_Album $albumModel */ $albumModel = XenForo_Model::create('XenGallery_Model_Album'); $model = $this->_getMediaGalleryImportersModel(); $mediaPrivacy = 'private'; $albumId = 0; $categoryId = 0; if ($item['image_album_id'] > 0) { $albumId = $model->mapAlbumId($item['image_album_id']); $permission = $albumModel->getUserAlbumPermission($albumId, 'view'); if ($permission) { $mediaPrivacy = $permission['access_type']; } } else { if ($item['image_album_id'] == 0 && $item['image_category_id'] > 0) { $categoryId = $model->mapCategoryId($item['image_category_id']); $mediaPrivacy = 'category'; } } $userId = $this->_userIdMap[$item['image_member_id']]; $xengalleryMedia = array('media_title' => $this->_convertToUtf8($item['image_caption'], true), 'media_description' => XenForo_Template_Helper_Core::helperSnippet($this->_convertToUtf8($item['image_description'], true), 0, array('stripHtml' => true)), 'media_date' => $item['image_date'], 'last_edit_date' => $item['image_date'], 'last_comment_date' => $item['image_last_comment'], 'media_type' => 'image_upload', 'media_state' => 'visible', 'album_id' => $albumId, 'category_id' => $categoryId, 'media_privacy' => $mediaPrivacy, 'attachment_id' => 0, 'user_id' => $userId, 'username' => $item['name'], 'ip_id' => $model->getLatestIpIdFromUserId($userId), 'likes' => 0, 'like_users' => array(), 'comment_count' => $item['image_comments'], 'rating_count' => 0, 'media_view_count' => $item['image_views']); $xfAttachment = array('data_id' => 0, 'content_type' => 'xengallery_media', 'content_id' => 0, 'attach_date' => $item['image_date'], 'temp_hash' => '', 'unassociated' => 0, 'view_count' => $item['image_views']); $xfAttachmentData = array('user_id' => $userId, 'upload_date' => $item['image_date'], 'filename' => utf8_substr($this->_convertToUtf8($item['image_file_name']), 0, 100), 'attach_count' => 1); $importedMediaId = $model->importMedia($item['image_id'], $tempFile, '', $xengalleryMedia, $xfAttachment, $xfAttachmentData); @unlink($tempFile); return $importedMediaId; }
public function getContentTitle(array $content) { return XenForo_Template_Helper_Core::helperSnippet($content['message'], 150, array('stripQuote' => true)); }