Files
szkoleniauryzaj.pl/wp-content/plugins/wp-file-download-light/app/admin/models/file.php
2024-11-10 21:08:49 +01:00

186 lines
5.3 KiB
PHP

<?php
/**
* WP File Download
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
use Joomunited\WPFramework\v1_0_4\Model;
defined( 'ABSPATH' ) || die();
class wpfdModelFile extends Model {
/**
* Get file info by ID
* @param $id_file
* @return bool
*/
public function getFile($id_file){
$row = get_post($id_file,ARRAY_A);
if($row===false){
return false;
}
$row['title'] = $row['post_title'];
$row['description'] = $row['post_excerpt'];
$metadata = get_post_meta($id_file,'_wpfd_file_metadata',true) ;
if(count($metadata) ) {
foreach ($metadata as $key => $value) {
$row[$key] = $value;
}
}
$row['state'] = ($row['post_status'] == 'publish') ? 1 : 0;;
$row['publish'] = $row['post_date'];
$term_list = wp_get_post_terms($id_file, 'wpfd-category', array("fields" => "ids"));
if( !is_wp_error($term_list) ) {
$row['catid']= $term_list[0];
}else {
$row['catid']= 0;
}
return stripslashes_deep($row);
}
/**
* Save file data
* @param $datas
* @return bool
*/
public function save($datas){
$my_post = array(
'ID' => $datas['id'],
'post_title' => $datas['title'],
'post_modified' => date('Y-m-d H:i:s'),
'post_date' => $datas['publish'],
'post_status' => $datas['state'] == 1 ? 'publish' : 'private',
'post_excerpt' => $datas['description']
);
$my_post['post_name'] = sanitize_title($datas['title'], $datas['id']);
// Update the post into the database
wp_update_post( $my_post );
$metadata = get_post_meta($datas['id'],'_wpfd_file_metadata',true) ;
$metadata['hits'] = $datas['hits'];
$metadata['state'] = $datas['state'];
$metadata['version'] = $datas['version'];
$metadata['file_tags'] = $datas['file_tags'];
$metadata['canview'] = $datas['canview'];
$metadata['social'] = isset($datas['social']) ? $datas['social'] : 0;
update_post_meta( $datas['id'], '_wpfd_file_metadata', $metadata );
wp_set_post_terms( $datas['id'], $datas['file_tags'], 'wpfd-tag');
return true;
}
/**
* Update a file
* @param $id
* @param $datas
* @return bool
*/
public function updateFile($id,$datas) {
$my_post = array(
'ID' => $id,
'post_title' => $datas['title'],
'post_modified' => date('Y-m-d H:i:s')
);
// Update the post into the database
wp_update_post( $my_post );
$metadata = get_post_meta($id,'_wpfd_file_metadata',true) ;
foreach ($datas as $key => $value) {
if(isset($metadata[$key])) {
$metadata[$key] = $value;
}
}
update_post_meta($id, '_wpfd_file_metadata', $metadata );
return true;
}
/**
* Delete file
* @param $id
* @return bool
*/
public function delete($id){
if(!wp_delete_post( $id, true )) {
return false;
}
return true;
}
/**
* Delete file version
* @param $vid
* @return mixed
*/
public function deleteVersion($vid) {
$result = delete_metadata_by_mid('post',$vid );
return $result;
}
/**
* add version for file
* @param $file
*/
public function addVersion($file) {
$metadata = array();
$metadata['ext'] = $file['ext'] ;
$metadata['size'] = $file['size'];
$metadata['version'] = $file['version'];
$metadata['file'] = $file['file'];
$metadata['remote_url'] = isset($file['remote_url'])? $file['remote_url']: "";
$metadata['created_time'] = date('Y-m-d H:i:s');
add_post_meta($file['ID'], '_wpfd_file_versions', $metadata);
}
/**
* Get version file
* @param $vid
* @return bool
*/
public function getVersion($vid) {
$metaData = get_metadata_by_mid('post',$vid);
$version= false;
if($metaData !== null) {
$version = $metaData->meta_value;
//$version['ID'] = $metaData->post_id;
}
return $version;
}
/**
* Get all versions of file
* @param $file_id
* @param $idCategory
* @return array
*/
function getVersions( $file_id ,$idCategory) {
global $wpdb;
$query= $wpdb->prepare("SELECT * FROM
$wpdb->postmeta WHERE post_id = %d AND meta_key = %s ORDER BY meta_id DESC", $file_id, "_wpfd_file_versions") ;
$results = $wpdb->get_results($query,ARRAY_A);
$versions = array();
if(!empty($results)) {
foreach ($results as $result) {
$version = unserialize($result['meta_value']);
$version['meta_id'] = $result['meta_id'];
$version['catid'] = $idCategory;
$versions[] = $version;
}
}
return $versions;
}
}