/** * @group push_uploaded_file_keys */ public function test_push_uploaded_file_keys() { $this->Data->set(MWF_Config::UPLOAD_FILE_KEYS, array('file1')); $this->Data->push_uploaded_file_keys(array('file1' => 'http://exemple.com/dummy.txt')); $this->assertSame(array('file1'), $this->Data->get_post_value_by_key(MWF_Config::UPLOAD_FILE_KEYS)); $this->Data->set(MWF_Config::UPLOAD_FILE_KEYS, array('file1')); $this->Data->push_uploaded_file_keys(array('file2' => 'http://exemple.com/dummy.txt')); $this->assertSame(array('file1', 'file2'), $this->Data->get_post_value_by_key(MWF_Config::UPLOAD_FILE_KEYS)); }
/** * ファイルアップロード処理。実際のアップロード状況に合わせてフォームデータも再生成する。 */ protected function file_upload() { $File = new MW_WP_Form_File(); $files = array(); $upload_files = $this->Data->get_post_value_by_key(MWF_Config::UPLOAD_FILES); if (!is_array($upload_files)) { $upload_files = array(); } foreach ($upload_files as $key => $file) { if ($this->Validation->single_check($key)) { $files[$key] = $file; } } $uploaded_files = $File->upload($files); $this->Data->set_upload_file_keys(); $this->Data->push_uploaded_file_keys($uploaded_files); }
/** * check * @param string $akismet_author * @param string $akismet_author_email * @param string $akismet_author_url * @param MW_WP_Form_Data $Data * @return bool */ public function check($akismet_author, $akismet_author_email, $akismet_author_url, $Data) { global $akismet_api_host, $akismet_api_port; if (!$this->is_enable()) { return false; } $doAkismet = false; $author = ''; if ($Data->get_post_value_by_key($akismet_author)) { $author = $Data->get_post_value_by_key($akismet_author); $doAkismet = true; } $author_email = ''; if ($Data->get_post_value_by_key($akismet_author_email)) { $author_email = $Data->get_post_value_by_key($akismet_author_email); $doAkismet = true; } $author_url = ''; if ($Data->get_post_value_by_key($akismet_author_url)) { $author_url = $Data->get_post_value_by_key($akismet_author_url); $doAkismet = true; } if ($doAkismet) { $content = ''; foreach ($Data->gets() as $key => $value) { $value = $Data->get($key); $content .= $value . "\n\n"; } $permalink = get_permalink(); $akismet = array(); $akismet['blog'] = home_url(); $akismet['blog_lang'] = get_locale(); $akismet['blog_charset'] = get_option('blog_charset'); $akismet['user_ip'] = preg_replace('/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR']); $akismet['user_agent'] = $_SERVER['HTTP_USER_AGENT']; $akismet['referrer'] = $_SERVER['HTTP_REFERER']; $akismet['comment_type'] = MWF_Config::NAME; if ($permalink) { $akismet['permalink'] = $permalink; } if ($author) { $akismet['comment_author'] = $author; } if ($author_email) { $akismet['comment_author_email'] = $author_email; } if ($author_url) { $akismet['comment_author_url'] = $author_url; } if ($content) { $akismet['comment_content'] = $content; } foreach ($_SERVER as $key => $value) { if (!in_array($key, array('HTTP_COOKIE', 'HTTP_COOKIE2', 'PHP_AUTH_PW'))) { $akismet[$key] = $value; } } $query_string = http_build_query($akismet, null, '&'); if (is_callable(array('Akismet', 'http_post'))) { $response = Akismet::http_post($query_string, 'comment-check'); } else { $response = akismet_http_post($query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port); } $response = apply_filters('mwform_akismet_responce', $response); return $response[1] == 'true' ? true : false; } }