SOY Inquiryでアップロードフォームを設置した時、確認メールで画像を確認したいを試した方から、複数個のアップロードフォームを設置したので、管理者への通知メールで複数個分の画像の確認用のリンクを出力したい。
という問い合わせがありました。
上記の記事を改変したコードを下記になります。
<?php /** * 使用できる変数 * $columns 各フォームのオブジェクト(入力内容も含む) * $this->form フォームの設定 * $inquiryMailBody 出力されたお問い合わせ内容 * * 拡張方法 * echo "追加したい文字列";でメールのコンテンツ末尾に追加されます。 * $mailBody[0]の値を上書きすると出力内容が変わります。 */ $inquiryId = null; foreach(explode("\n", $mailBody[0]) as $c){ if(strpos($c, "/Inquiry/Detail")){ $inquiryId = (int)trim(substr($c, strrpos($c, "/") + 1)); break; } } //お問い合わせIDが取得出来たら if($inquiryId){ //$path = null; $pathes = array(); // 複数画像に対応するため、配列にする try{ $comments = SOY2DAOFactory::create("SOYInquiry_CommentDAO")->getByInquiryId($inquiryId); }catch(Exception $e){ return; } foreach($comments as $comment){ //アップロードがあるとみなす if(strpos($comment->getContent(), "<img src")){ if(preg_match('/<img src=\"(.*)\"/', $comment->getContent(), $match)){ //$path = $match[1]; //break; $pathes[] = $match[1]; // 複数画像に対応 } } } //画像のパスを取得できた場合 //if(isset($path)){ // 配列の値が一つ以上ある場合 if(count($pathes)){ if(defined("SOYCMS_TARGET_URL")){ $url = SOYCMS_TARGET_URL; }else{ //$url = "http://" . $_SERVER["HTTP_HOST"]; $url = "https://" . $_SERVER["HTTP_HOST"]; } //末尾のスラッシュを除く if(strlen($url) === strrpos($url, "/") + 1){ $url = substr($url, 0, strlen($url) - 1); } echo "\n添付ファイル\n"; //echo $url . $path; //複数画像の出力 foreach($pathes as $path){ echo $url . $path . "\n"; } } }
黒字の箇所のように修正すれば対応終了です。