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 ; } } }