/** * [PUBIC] フォームを表示する * * @param mixed mail_content_id * @return void * @access public */ public function index($id = null) { if (!$this->MailContent->isPublish($this->dbDatas['mailContent']['MailContent']['status'], $this->dbDatas['mailContent']['MailContent']['publish_begin'], $this->dbDatas['mailContent']['MailContent']['publish_end'])) { $this->render($this->dbDatas['mailContent']['MailContent']['form_template'] . DS . 'unpublish'); return; } if (!$this->dbDatas['mailContent']['MailContent']['status']) { $this->notFound(); } $this->Session->write('Mail.valid', true); // 初期値を取得 if (!isset($this->request->data['Message'])) { if (!empty($this->request->params['named'])) { foreach ($this->request->params['named'] as $key => $value) { $this->request->params['named'][$key] = base64UrlsafeDecode($value); } } $this->request->data = $this->Message->getDefaultValue($this->request->params['named']); } else { $this->request->data['Message'] = $this->Message->sanitizeData($this->request->data['Message']); } $this->set('freezed', false); if ($this->dbDatas['mailFields']) { $this->set('mailFields', $this->dbDatas['mailFields']); } $user = $this->BcAuth->user(); if (!empty($user) && !Configure::read('BcRequest.agent')) { $this->set('editLink', array('admin' => true, 'plugin' => 'mail', 'controller' => 'mail_contents', 'action' => 'edit', $this->dbDatas['mailContent']['MailContent']['id'])); } $this->set('mailContent', $this->dbDatas['mailContent']); $this->render($this->dbDatas['mailContent']['MailContent']['form_template'] . DS . 'index'); }
/** * [PUBIC] フォームを表示する * * @return void */ public function index($id = null) { if (!$this->MailContent->isAccepting($this->dbDatas['mailContent']['MailContent']['publish_begin'], $this->dbDatas['mailContent']['MailContent']['publish_end'])) { $this->render($this->dbDatas['mailContent']['MailContent']['form_template'] . DS . 'unpublish'); return; } if ($this->BcContents->preview == 'default' && $this->request->data && empty($this->request->params['requested'])) { $this->dbDatas['mailContent']['MailContent'] = $this->request->data['MailContent']; } $this->Session->write('Mail.valid', true); // 初期値を取得 if (!isset($this->request->data['MailMessage'])) { if (!empty($this->request->params['named'])) { foreach ($this->request->params['named'] as $key => $value) { $this->request->params['named'][$key] = base64UrlsafeDecode($value); } } $this->request->data = $this->MailMessage->getDefaultValue($this->request->params['named']); } else { $this->request->data['MailMessage'] = $this->MailMessage->sanitizeData($this->request->data['MailMessage']); } $this->set('freezed', false); if ($this->dbDatas['mailFields']) { $this->set('mailFields', $this->dbDatas['mailFields']); } $user = BcUtil::loginUser('admin'); if (!empty($user)) { $this->set('editLink', array('admin' => true, 'plugin' => 'mail', 'controller' => 'mail_contents', 'action' => 'edit', $this->dbDatas['mailContent']['MailContent']['id'])); } $this->set('mailContent', $this->dbDatas['mailContent']); $this->render($this->dbDatas['mailContent']['MailContent']['form_template'] . DS . 'index'); }
/** * パーセントエンコーディングされないURLセーフなbase64エンコード */ public function testBase64UrlsafeEncodeDecode() { // encode $text = 'ふぁsdlfdfがgふぁsdlpfs'; // base64エンコードすると + と = が含まれる文字列 $enc = base64UrlsafeEncode($text); $result = urlencode($enc); // %が含まれてないかチェック $this->assertRegExp('/^(?!.*%)/', $result, 'パーセントエンコーディングされています'); // decode $dec = base64UrlsafeDecode($enc); $this->assertEquals($dec, $text, '正しくデコードできません'); }