Beispiel #1
0
	function d3download_check_unapproval( $mydirname )
	{
		require_once dirname( dirname(__FILE__) ).'/class/submit_validate.php' ;
		$submit_validate = new Submit_Validate( $mydirname ) ;

		$url = ( ! empty( $_GET['url'] ) ) ? @$_GET['url']  : '' ;
		$lid = intval( $_GET['lid'] ) ;

		echo $submit_validate->Validate_check_unapproval( $url, $lid ) ;
	}
Beispiel #2
0
	$error_message = $submit_result['error_message'] ;
	if( isset( $_POST['makedownload_preview'] ) ){
		 $ispreview = true ;
		 $preview_title = $submit_result['preview_title'] ;
		 $preview_body = $submit_result['preview_body'] ;
	}
}

// 削除権限をチェックしたうえ関連データも同時に削除
if( isset( $_POST['makedownloadform_delete'] ) && ! empty( $candelete ) ) {
	if ( ! $xoopsGTicket->check( true , 'd3downloads' ) ) {
		redirect_header(XOOPS_URL.'/modules/'.$mydirname.'/admin/index.php',3,$xoopsGTicket->getErrors());
	}
	$delete_lid = isset( $_POST['lid'] ) ? intval( @$_POST['lid'] ) : "" ;
	require_once dirname( dirname(__FILE__) ).'/class/submit_validate.php' ;
	$submit_validate = new Submit_Validate( $mydirname, 'delete' ) ;
	if( ! $module_admin ) $submit_validate->Validate_for_delete( $cid, $delete_lid ) ;
	// 「投稿をユーザーの投稿数に反映」が有効な場合、投稿数に反映
	d3download_delete_lid( $mydirname ,$lid );
	redirect_header( XOOPS_URL."/modules/$mydirname/index.php" , 2 , _MD_D3DOWNLOADS_DELETED ) ;
	exit();
}

// ファイル破損報告DATAの取得(管理者用)
$broken_data = d3download_get_broken_data( $mydirname, $lid ) ;
$totalbroken = $broken_data['totalbroken'] ;
$total_broken4assign = $broken_data['total_broken4assign'] ;
$broken = $broken_data['broken'] ;

// VOTE DATAの取得(管理者用)
$total_vote4assign = sprintf( _MD_D3DOWNLOADS_TOTAL_VOTE , $totalvotes );
	function d3download_submit_execution( $mydirname, $mode, $myparams )
	{
		require_once dirname( dirname(__FILE__) ).'/class/submit_validate.php' ;
		require_once dirname( dirname(__FILE__) ).'/include/common_functions.php' ;
		include_once dirname( dirname(__FILE__) ).'/include/upload_functions.php' ;

		$db =& Database::getInstance() ;
		global $xoopsUser , $xoopsModuleConfig ;

		// Initialization
		$ispreview = $preview_title = $preview_body = $iserror = $error_message = $downdata = '' ;
		foreach ( $myparams as $key=>$value ){ $$key = $value; }

		// GET POST
		$submit_validate = new Submit_Validate( $mydirname, $mode ) ;

		// requests_01
		$requests_01 = $submit_validate->get_requests_01() ;
		$html = $requests_01['html'];
		$smiley = $requests_01['smiley'];
		$br = $requests_01['br'];
		$xcode = $requests_01['xcode'];
		$createable = empty( $_POST['createable'] ) ? 0 : 1 ;

		// requests_int
		$requests_int = $submit_validate->get_requests_int() ;
		$requestid = intval( @$_POST['requestid'] ) ;
		$cid = $requests_int['cid'];
		$submitter = $requests_int['submitter'];
		$lid = $requests_int['lid'];
		$post_size = $requests_int['size'];

		$date = $requests_int['createdtime'] ;
		$expired = $requests_int['expiredtime'] ;

		// requests_text
		$requests_text = $submit_validate->get_requests_text( $html , $smiley , $xcode , $br ) ;
		$title = $requests_text['title'];
		$post_url = $requests_text['url'];
		if ( preg_match("`^(https?|ftp)://|^XOOPS_URL/`i", $post_url ) && $post_url != 'http://' ) {
			$access_url = str_replace( 'XOOPS_URL' , XOOPS_URL , $post_url ) ;
			$filelink = '[<a href="'.$access_url.'" target="_blank">'._MD_D3DOWNLOADS_SUBMIT_ACCESS_URL.'</a>]' ;
		} else {
			$filelink  = is_array( $downdata ) ? $downdata['downdata']['filelink'] :'' ;
		}
		$post_filename = $requests_text['filename'];
		$post_ext = $requests_text['ext'];
		$post_file2 = $requests_text['file2'];
		$post_filename2 = $requests_text['filename2'];
		$post_ext2 = $requests_text['ext2'];
		$file2_del = empty( $_POST['file2_del'] ) ? 0 : 1 ;
		$body = $requests_text['description'];

		// requests_filters
		$requests_filters = $submit_validate->get_requests_filters() ;

		// requests_admin
		$requests_admin = $submit_validate->get_requests_admin() ;
		$visible = $requests_admin['visible'];
		$notify = empty( $_POST['notify'] ) ? 0 : 1 ;
		$modify = empty( $_POST['modify'] ) ? 0 : 1 ;

		// requests_upload
		if( $mode != 'approval' ) $request4upload  = isset( $_FILES['file_upload'] ) ? @$_FILES['file_upload'] :'' ;

		// postname
		$postname = d3download_postname( $mydirname , $submitter );

		// for after preview edit
		$download4assign = array(
			'requestid' => $requestid ,
			'lid' => $lid ,
			'cid' => $cid ,
			'category' => $category ,
			'title' => $requests_text['title4edit'] ,
			'url' => $requests_text['url4edit'] ,
			'filename' => $requests_text['filename4edit'] ,
			'ext' => $requests_text['ext4edit'] ,
			'file2' => $requests_text['file24edit'] ,
			'filename2' => $requests_text['filename24edit'] ,
			'ext2' => $requests_text['ext24edit'] ,
			'filelink' => $filelink ,
			'filenamelink' => is_array( $downdata ) ? $downdata['downdata']['filenamelink'] :'' ,
			'filenamelink2' => is_array( $downdata ) ? $downdata['downdata']['filenamelink2'] :'' ,
			'file2_del' => $file2_del ,
			'homepage' => $requests_text['homepage4edit'] ,
			'homepagetitle' => $requests_text['homepagetitle4edit'] ,
			'version' => $requests_text['version4edit'] ,
			'size' => $post_size ,
			'platform' => $requests_text['platform4edit'] ,
			'license' => $requests_text['license4edit'] ,
			'logourl' => $requests_text['logourl4edit'] ,
			'shots_link' => ( empty( $requests_text['logourl4edit'] ) ) ? '' : d3download_shots_link_for_post( $mydirname, $cid, $requests_text['logourl4edit'] ) ,
			'description' => $requests_text['description4edit'] ,
			'submitter' => $submitter ,
			'postname' => d3download_getlink_for_postname( $mydirname, $submitter ) ,
			'html' => $html ,
			'smiley' => $smiley ,
			'br' => $br ,
			'xcode' => $xcode ,
			'filters' => d3download_get_myfilter( $mydirname, $requests_filters['filters'] ) ,
			'extra' => $requests_text['extra4edit'] ,
			'visible' => $visible ,
			'cancomment' => $requests_admin['cancomment'] ,
			'createable' => $createable ,
			'expiredable' => empty( $_POST['expiredable'] ) ? 0 : 1 ,
			'date' =>  empty( $createable ) && is_array( $downdata ) ? $downdata['downdata']['date'] : $requests_int['createdtime']  ,
			'expired' => $expired ,
			'notify' => $notify ,
			'modify' => $modify ,
		) ;

		if( $mode != 'approval' ){
			if( ! empty( $html ) && ! $submit_validate->xoops_isadmin ) $submit_validate->Validate_for_html( $cid ) ;
			if( is_array( $request4upload ) && ! $submit_validate->xoops_isadmin ) $submit_validate->Validate_for_upload( $cid ) ;

			if( $mode == 'submit' ) {
				if( ! empty( $auto_approved ) ) $submit_id = $db->genId($db->prefix( $mydirname."_downloads" )."_lid_seq") ;
				else $submit_id = $db->genId($db->prefix( $mydirname."_unapproval" )."_requestid_seq") ;
			}
		
			// requests_upload
	 		if( isset( $_POST['makedownload_post'] ) && is_array( $request4upload ) && $canupload ){
				switch( $mode ) {
					case 'submit' :
						$upload_result = d3download_file_upload( $mydirname, $request4upload, $upload_max_filesize, $submit_id, $submitter ) ;
						break ;
					case 'modfile' :
						$upload_result = d3download_file_upload( $mydirname, $request4upload, $upload_max_filesize, $lid, $submitter ) ;
						break ;
				}
			}

			$url = ! empty( $upload_result[0]['url'] ) ? $upload_result[0]['url'] : $post_url ;
			if( preg_match( '`^(https?|ftp)?://.+\..+|^XOOPS_URL/([^\s]*)+$`i' , $url ) ) {
				$filename = "" ;
				$ext = "" ;
			} else {
				$filename = ! empty( $upload_result[0]['file_name'] ) ? $upload_result[0]['file_name'] : $post_filename ;
				$ext = ! empty( $upload_result[0]['ext'] ) ? $upload_result[0]['ext'] : $post_ext ;
			}
			$size = ! empty( $upload_result[0]['size'] ) ? $upload_result[0]['size'] : $post_size ;

			if( empty( $file2_del ) ){
				$file2 = ! empty( $upload_result[1]['url'] ) ? $upload_result[1]['url'] : $post_file2 ;
				$filename2 = ! empty( $upload_result[1]['file_name'] ) ? $upload_result[1]['file_name'] : $post_filename2 ;
				$ext2 = ! empty( $upload_result[1]['ext'] ) ? $upload_result[1]['ext'] : $post_ext2 ;
			} else {
				$file2 = '' ;
				$filename2 = '' ;
				$ext2 = '' ;
			}

			// 登録済のリンク登録をお断り
			if( ! empty( $check_url ) ){
				switch( $mode ) {
					case 'submit' :
						$check_url_result = $submit_validate->Validate_check_url( $url ) ;
						break ;
					case 'modfile' :
						$check_url_result = $submit_validate->Validate_check_url( $url, $lid ) ;
						break ;
				}
				if( ! empty( $check_url_result ) ) $error_message .= $check_url_result . '<br />' ;
			}

			// 承認待ちの再登録はお断り
			switch( $mode ) {
				case 'submit' :
					$check_unapproval_result =  $submit_validate->Validate_check_unapproval( $url ) ;
					break ;
				case 'modfile' :
					$check_unapproval_result =  $submit_validate->Validate_check_unapproval( $url, $lid ) ;
					break ;
			}
			if( ! empty( $check_unapproval_result ) ) $error_message .= $check_unapproval_result . '<br />' ;
		} 

		// LiveValidationによるValidation が有効にならない環境を考慮し、ここでも入力チェック
		if( $mode != 'approval' ) $validate_result = $submit_validate->Validate( $url, $filename, $file2, $filename2 ) ;
		else $validate_result = $submit_validate->Validate( $post_url, $post_filename, $post_file2, $post_filename2, 1 ) ;
		if( $mode != 'approval' ){
			if( ! empty( $upload_result[0]['error'] ) ) $error_message .= $upload_result[0]['error'] . '( ' .$upload_result[0]['file_name']. ' )<br />' ;
			if( ! empty( $upload_result[1]['error'] ) ) $error_message .= $upload_result[1]['error'] . '( ' .$upload_result[1]['file_name']. ' )<br />' ;
		}
		if( ! empty( $validate_result ) ) $error_message .= implode( '<br />' , $validate_result['message'] ) ;
		if( ! empty( $error_message ) ) $iserror = true;

		if( isset( $_POST['makedownload_preview'] ) ) $ispreview = true;

		if( ! empty( $iserror ) || ! empty( $ispreview ) ){
			return array(
				'iserror' => $iserror ,
				'error_message' => $error_message ,
				'download4assign' => $download4assign ,
				'preview_title' => $requests_text['title4preview'] ,
				'preview_body' => $requests_text['description4preview'] ,
			) ;
		}

		if( isset( $_POST['makedownload_post'] ) && empty( $iserror ) ){
			// set4sql
			$set4sql = "lid='".$lid."'" ;
			$set4sql .= $requests_01['set4sql'] ;
			$set4sql .= $requests_int['set4sql'] ;
			$set4sql .= $requests_text['set4sql'] ;
			$set4sql .= $requests_filters['set4sql'] ;
			$set4sql .= $requests_admin['set4sql'] ;
			if( $mode == 'submit' ) $set4sql .= ",submitter='".$submitter."'" ;
			if( $mode != 'approval' ){
				$set4sql .= ",size='".$size."'" ;
				$Insertdata = array( 'url' ,'filename' , 'ext', 'file2', 'filename2', 'ext2' ) ;
				foreach( $Insertdata as $key ) { $set4sql .= ",$key='".addslashes( $$key )."'" ; }
			}

			switch( $mode ) {
				case 'submit' :
					$params_array = array( 'cid' , 'submit_id' , 'auto_approved' , 'submitter' , 'url' , 'file2' , 'postname' , 'title' , 'body' , 'set4sql' , 'notify' , 'visible' , 'date' , 'expired' ) ;
					break ;
				case 'modfile' :
					$params_array = array( 'cid' , 'lid' , 'auto_approved' , 'postname' , 'title' , 'body' , 'set4sql' , 'notify' , 'visible' , 'date' , 'expired' ) ;
					break ;
				case 'approval' :
					$params_array = array( 'cid' , 'requestid' , 'lid' , 'submitter' , 'post_url' , 'post_file2' , 'postname' , 'title' , 'body' , 'set4sql' , 'notify' , 'modify' ) ;
					break ;
			}

			foreach( $params_array as $key ) { $params[$key] = $$key ; }

			switch( $mode ) {
				case 'submit' :
					d3download_submit_insertdb( $mydirname, $params ) ;
					break ;
				case 'modfile' :
					d3download_modfile_insertdb( $mydirname, $params ) ;
					break ;
				case 'approval' :
					d3download_approval_insertdb( $mydirname, $params ) ;
					break ;
			}
		}
	}