function __searchConditions($conditions = array())
 {
     //App::import('Vendor', 'array_map');
     $default = array('category_id' => '', 'area_id' => '', 'pref' => '', 'keyword' => '');
     // 検索項目を未入力で検索ボタンを押した場合のため、検索項目が空の場合は検索用の値を設定しない
     foreach ($default as $key => $val) {
         if (empty($this->passedArgs[$key])) {
             unset($this->passedArgs[$key]);
         }
     }
     //値のマージ
     $data = am($default, $this->passedArgs);
     $decode = array('pref', 'keyword');
     foreach ($decode as $key) {
         if (!empty($data[$key]) && Configure::read('App.encoding') === 'euc-jp') {
             $data[$key] = mb_convert_encoding(str_replace(' ', ' ', urldecode($data[$key])), 'euc-jp', 'utf-8');
         } else {
             $data[$key] = str_replace(' ', ' ', urldecode($data[$key]));
         }
     }
     //php4では動作しない
     //ArrayMap::create($data)->like_escape();
     $data = like_escape_deep($data);
     //検索条件の設定
     //各値によって指定の仕方が違うため、ループで回さないように
     if (!empty($data['category_id'])) {
         $conditions = am($conditions, array('Shop.category_id' => $data['category_id']));
     }
     if (!empty($data['area_id'])) {
         if ($data['area_id'] == 4 || $data['area_id'] == 5) {
             //東京と関東のみ同時に掲載
             $conditions = am($conditions, array('Shop.area_id' => array(4, 5)));
         } else {
             //それ以外は単一表示
             $conditions = am($conditions, array('Shop.area_id' => $data['area_id']));
         }
     }
     if (!empty($data['pref'])) {
         $conditions = am($conditions, array('Shop.pref' => $data['pref']));
     }
     $data['keyword'] = mb_trim($data['keyword']);
     if (!empty($data['keyword'])) {
         $keywords = explode(' ', $data['keyword']);
         foreach ($keywords as $word) {
             $conditions = am($conditions, array(array('OR' => array('Shop.keyword01 LIKE' => "%{$word}%", 'Shop.keyword02 LIKE' => "%{$word}%", 'Shop.keyword03 LIKE' => "%{$word}%", 'Shop.tel LIKE' => "%{$word}%", 'Shop.fax LIKE' => "%{$word}%", 'Shop.comment LIKE' => "%{$word}%", 'Shop.name LIKE' => "%{$word}%", 'Shop.zip01 LIKE' => "%{$word}%", 'Shop.zip02 LIKE' => "%{$word}%", 'Shop.pref LIKE' => "%{$word}%", 'Shop.address LIKE' => "%{$word}%", 'concat(Shop.zip01,"-",Shop.zip02) LIKE' => "%{$word}%", 'concat(Shop.pref,Shop.address) LIKE' => "%{$word}%"))));
         }
     }
     unset($data);
     return $conditions;
 }
 function admin_browse()
 {
     Configure::write('debug', 0);
     $this->pageTitle = "メールマガジン — 確認";
     $query = array();
     $word = array();
     if (!empty($this->data)) {
         if (!empty($this->data['Send']['image01']['tmp_name'])) {
             move_uploaded_file($this->data['Send']['image01']['tmp_name'], WWW_ROOT . 'img' . DS . 'send' . DS . 'image01' . DS . $this->data['Send']['image01']['name']);
         }
         $word['type'] = $this->data['MailMagazine']['type'];
         $word['name'] = $this->data['MailMagazine']['name'];
         $word['mail'] = $this->data['MailMagazine']['mail'];
         $word['zip01'] = $this->data['MailMagazine']['zip01'];
         $word['zip02'] = $this->data['MailMagazine']['zip02'];
         $word['pref'] = $this->data['MailMagazine']['pref'];
         $word['address'] = $this->data['MailMagazine']['address'];
         $word['tel01'] = $this->data['MailMagazine']['tel01'];
         $word['tel02'] = $this->data['MailMagazine']['tel02'];
         $word['tel03'] = $this->data['MailMagazine']['tel03'];
         $word['sex'] = $this->data['MailMagazine']['sex'];
         $word['StartDateYear'] = $this->data['MailMagazine']['StartDateYear'];
         $word['StartDateMonth'] = $this->data['MailMagazine']['StartDate']['month'];
         $word['StartDateDay'] = $this->data['MailMagazine']['StartDate']['day'];
         $word['EndDateYear'] = $this->data['MailMagazine']['EndDateYear'];
         $word['EndDateMonth'] = $this->data['MailMagazine']['EndDate']['month'];
         $word['EndDateDay'] = $this->data['MailMagazine']['EndDate']['day'];
         $word['highschool'] = $this->data['MailMagazine']['highschool'];
         $word['school_year'] = $this->data['MailMagazine']['school_year'];
         $word['StartRegYear'] = $this->data['MailMagazine']['StartRegYear'];
         $word['StartRegMonth'] = $this->data['MailMagazine']['StartReg']['month'];
         $word['StartRegDay'] = $this->data['MailMagazine']['StartReg']['day'];
         $word['EndRegYear'] = $this->data['MailMagazine']['EndRegYear'];
         $word['EndRegMonth'] = $this->data['MailMagazine']['EndReg']['month'];
         $word['EndRegDay'] = $this->data['MailMagazine']['EndReg']['day'];
         $word['test'] = $this->data['MailMagazine']['test'];
     } else {
         if (isset($this->passedArgs['type0'])) {
             $word['type'][] = $this->passedArgs['type0'];
         }
         if (isset($this->passedArgs['type1'])) {
             $word['type'][] = $this->passedArgs['type1'];
         }
         if (isset($this->passedArgs['type2'])) {
             $word['type'][] = $this->passedArgs['type2'];
         }
         if (isset($this->passedArgs['type3'])) {
             $word['type'][] = $this->passedArgs['type3'];
         }
         $_passedArgs = array('name', 'mail', 'zip01', 'zip02', 'pref', 'address', 'tel01', 'tel02', 'tel03', 'sex', 'StartDateYear', 'StartDateMonth', 'StartDateDay', 'EndDateYear', 'EndDateMonth', 'EndDateDay', 'highschool', 'school_year', 'StartRegYear', 'StartRegMonth', 'StartRegDay', 'EndRegYear', 'EndRegMonth', 'EndRegDay', 'test');
         foreach ($_passedArgs as $_pa) {
             if (isset($this->passedArgs[$_pa])) {
                 $word[$_pa] = $this->passedArgs[$_pa];
             }
         }
     }
     $word = like_escape_deep($word);
     if (!empty($word['type'])) {
         $query['MailMagazine.type'] = $word['type'];
     }
     if (!empty($word['name'])) {
         $query['MailMagazine.name LIKE'] = $word['name'] . '%';
     }
     if (!empty($word['mail'])) {
         $query['MailMagazine.mail LIKE'] = $word['mail'] . '%';
     }
     if (!empty($word['zip01'])) {
         $query['MailMagazine.zip01'] = $word['zip01'];
     }
     if (!empty($word['zip02'])) {
         $query['MailMagazine.zip02'] = $word['zip02'];
     }
     if (!empty($word['pref'])) {
         $query['MailMagazine.pref'] = $word['pref'];
     }
     if (!empty($word['address'])) {
         $query['MailMagazine.address01 LIKE'] = $word['address'] . '%';
     }
     if (!empty($word['tel01'])) {
         $query['MailMagazine.tel01'] = $word['tel01'];
     }
     if (!empty($word['tel02'])) {
         $query['MailMagazine.tel02'] = $word['tel02'];
     }
     if (!empty($word['tel03'])) {
         $query['MailMagazine.tel03'] = $word['tel03'];
     }
     if (!empty($word['sex'])) {
         $query['MailMagazine.sex'] = $word['sex'];
     }
     if (!empty($word['StartDateYear']) && !empty($word['StartDateMonth']) && !empty($word['StartDateDay']) && !empty($word['EndDateYear']) && !empty($word['EndDateMonth']) && !empty($word['EndDateDay'])) {
         $query['MailMagazine.created BETWEEN ? AND ?'] = array($word['StartDateYear'] . '-' . $word['StartDateMonth'] . '-' . $word['StartDateDay'], $word['EndDateYear'] . '-' . $word['EndDateMonth'] . '-' . $word['EndDateDay']);
     } elseif (!empty($word['StartDateYear']) && !empty($word['StartDateMonth'])) {
         $query['MailMagazine.created >='] = $word['StartDateYear'] . '-' . $word['StartDateMonth'] . '-' . $word['StartDateDay'];
     } elseif (!empty($word['EndDateYear']) && !empty($word['EndDate'])) {
         $query['MailMagazine.created <='] = $word['EndDateYear'] . '-' . $word['EndDateMonth'] . '-' . $word['EndDateDay'];
     }
     if (!empty($word['highschool'])) {
         $query['MailMagazine.highschool'] = $word['highschool'];
     }
     if (!empty($word['school_year'])) {
         $query['MailMagazine.school_year'] = $word['school_year'];
     }
     if (!empty($word['doc'])) {
         $query['MailMagazine.doc LIKE'] = '%' . $word['doc'] . '%';
     }
     if (!empty($word['StartRegYear']) && !empty($word['StartRegMonth']) && !empty($word['StartRegDay']) && !empty($word['EndRegYear']) && !empty($word['EndRegMonth']) && !empty($word['EndRegDay'])) {
         $query['MailMagazine.created BETWEEN ? AND ?'] = array($word['StartRegYear'] . '-' . $word['StartRegMonth'] . '-' . $word['StartRegDay'], $word['EndRegYear'] . '-' . $word['EndRegMonth'] . '-' . $word['EndRegDay']);
     } elseif (!empty($word['StartRegYear']) && !empty($word['StartRegMonth'])) {
         $query['MailMagazine.created >='] = $word['StartRegYear'] . '-' . $word['StartRegMonth'] . '-' . $word['StartRegDay'];
     } elseif (!empty($word['EndRegYear']) && !empty($word['EndReg'])) {
         $query['MailMagazine.created <='] = $word['EndRegYear'] . '-' . $word['EndRegMonth'] . '-' . $word['EndRegDay'];
     }
     //配列を個数分の引数に変換
     if (isset($word['type']) && is_array($word['type'])) {
         foreach ($word['type'] as $k => $v) {
             $word['type' . $k] = $v;
         }
     }
     unset($word['type']);
     //エスケープ処理
     foreach ($word as $k => $v) {
         $word[$k] = urlencode($v);
     }
     if (!empty($this->data['MailMagazine']['test'])) {
         $query = array('MailMagazine.no' => 99);
     }
     if (!empty($this->params['form']['csv'])) {
         $this->autoLayout = false;
         Configure::write('debug', 0);
         $mail_magazinesData = $this->MailMagazine->find('all', array('conditions' => $query, 'limit' => null));
         $this->set('mail_magazinesData', $mail_magazinesData);
         $this->render('admin_download');
         return;
     }
     /*
      * @テストアドレスに送信
      */
     if (!empty($this->params['form']['send']) && !empty($this->data['MailMagazine']['test'])) {
         mb_language("japanese");
         $email = testAddress();
         $subject = !empty($this->data['Send']['title']) ? $this->data['Send']['title'] : 'テスト送信';
         $body = !empty($this->data['Send']['body']) ? $this->data['Send']['body'] : 'テスト送信本文';
         foreach ($email as $user) {
             $mail =& new Qdmail();
             $mail->kana(true);
             $mail->error_display = false;
             $mail->to($user['email'], $user['name']);
             $mail->subject($subject);
             $mail->text($body);
             $mail->from('*****@*****.**', '');
             if (!empty($this->data['Send']['image'])) {
                 $mail->attach(WWW_ROOT . 'img' . DS . 'send' . DS . 'image01' . DS . $this->data['Send']['image']);
             }
             if (!$mail->send()) {
                 die("テストアドレスにメールが送信できませんでした。" . $mail->errorRender());
             }
         }
         $this->Session->setFlash('テストアドレスにメール送信完了しました。');
         $this->redirect('/admin/mail_magazines/browse');
     } elseif (!empty($this->params['form']['send'])) {
         //メールマガジン配信
         $mail_magazinesData = $this->MailMagazine->find('all', array('conditions' => $query, 'group' => array('MailMagazine.mail'), 'limit' => null));
         $key = generateRandStr(16);
         $data = array();
         foreach ($mail_magazinesData as $k => $v) {
             $data[] = array('name' => $v['MailMagazine']['name'], 'email' => $v['MailMagazine']['mail'], 'key' => $key, 'title' => $this->data['Send']['title'], 'body' => $this->data['Send']['body'], 'image' => $img = !empty($this->data['Send']['image']) ? $this->data['Send']['image'] : '');
         }
         if ($this->Send->saveAll($data) !== false) {
             $this->redirect('/admin/sends/index/' . $key);
             exit;
         } else {
             $this->Session->setFlash('エラーが発生しました。');
             $this->redirect('/admin/mail_magazines/browse');
         }
     }
     $addurl = '';
     if (!empty($word)) {
         foreach ($word as $key => $w) {
             $addurl .= '/' . $key . ":" . $w;
         }
     }
     if (!empty($addurl)) {
         $this->set('showpage', $this->requestAction('/admin/mail_magazines/showpage/' . $addurl, array('return')));
     }
     $mail_magazinesData = $this->paginate('MailMagazine', $query);
     $this->set('mail_magazinesData', $mail_magazinesData);
     $this->set('word', $word);
     unset($word);
     unset($mail_magazinesData);
 }