66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/*****************************************************************************
 | 
						|
 * UploadMedia.php
 | 
						|
 * Contains the media uploading controller
 | 
						|
 *
 | 
						|
 * Kabuki CMS (C) 2013-2015, Aaron van Geffen
 | 
						|
 *****************************************************************************/
 | 
						|
 | 
						|
class UploadMedia extends HTMLController
 | 
						|
{
 | 
						|
	public function __construct()
 | 
						|
	{
 | 
						|
		// Ensure we're logged in at this point.
 | 
						|
		if (!Registry::get('user')->isLoggedIn())
 | 
						|
			throw new NotAllowedException();
 | 
						|
 | 
						|
		if (!isset($_REQUEST['tag']))
 | 
						|
			throw new UserFacingException('No album tag provided.');
 | 
						|
 | 
						|
		$tag = Tag::fromId($_REQUEST['tag']);
 | 
						|
 | 
						|
		$page = new MediaUploader($tag);
 | 
						|
		parent::__construct('Upload new photos - ' . SITE_TITLE);
 | 
						|
		$this->page->adopt($page);
 | 
						|
 | 
						|
		// Are we saving something?
 | 
						|
		if (!empty($_FILES['uploads']))
 | 
						|
		{
 | 
						|
			$files = isset($_FILES['uploads'][0]) ? $_FILES['uploads'] : [$_FILES['uploads']];
 | 
						|
			$new_ids = [];
 | 
						|
			foreach ($files as $num => $uploaded_file)
 | 
						|
			{
 | 
						|
				if (empty($uploaded_file))
 | 
						|
					continue;
 | 
						|
 | 
						|
				// DIY slug club.
 | 
						|
				$slug = $tag->slug . '/' . strtr($uploaded_file['name'], [' ' => '-', '--' => '-', '&' => 'and', '=>' => '', "'" => "", ":"=> "", '\\' => '-']);
 | 
						|
 | 
						|
				$asset = Asset::createNew([
 | 
						|
					'filename_to_copy' => $uploaded_file['tmp_name'],
 | 
						|
					'preferred_filename' => $uploaded_file['name'],
 | 
						|
					'preferred_subdir' => $tag->slug,
 | 
						|
					'slug' => $slug,
 | 
						|
				]);
 | 
						|
 | 
						|
				$new_ids[] = $asset->getId();
 | 
						|
				$asset->linkTags([$tag->id_tag]);
 | 
						|
 | 
						|
				$tag->id_asset_thumb = $asset->getId();
 | 
						|
				$tag->save();
 | 
						|
			}
 | 
						|
 | 
						|
			if (isset($_REQUEST['format']) && $_REQUEST['format'] === 'json')
 | 
						|
			{
 | 
						|
				echo json_encode(['success' => true, 'new_ids' => $new_ids]);
 | 
						|
				exit;
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				header('Location: ' . BASEURL . '/uploadmedia/');
 | 
						|
				exit;
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |