/** * getAnswerButtons 登録済み 登録する テストのボタン表示 * * @param array $registration 登録データ * @return string */ public function getAnswerButtons($registration) { // //登録ボタンの(登録済み|登録する|テスト)の決定 // // satus != 公開状態 つまり編集者が見ている場合は「テスト」 // // 公開状態の場合が枝分かれする // 公開時期にマッチしていない = 登録前=登録する(disabled) 登録後=登録済み(disabled) // // 公開期間中 // 繰り返しの登録を許さない = 登録前=登録する 登録後=登録済み(Disabled) // 繰り返しの登録を許す = いずれの状態でも「登録する」 $key = $registration['Registration']['key']; // 編集権限がない人が閲覧しているとき、未公開登録フォームはFindされていないので対策する必要はない // ボタン表示ができるかできないか // 編集権限がないのに公開状態じゃない登録フォームの場合はボタンを表示しない // //if ($registration['Registration']['status'] != WorkflowComponent::STATUS_PUBLISHED && !$editable) { // return ''; //} $buttonStr = '<a class="btn btn-%s registration-listbtn %s" %s href="%s">%s</a>'; $disabledButtonStr = '<span class="btn btn-%s registration-listbtn %s" %s href="%s">%s</span>'; // ボタンの色 // ボタンのラベル if ($registration['Registration']['status'] != WorkflowComponent::STATUS_PUBLISHED) { $answerButtonClass = 'info'; $answerButtonLabel = __d('registrations', 'Test'); $url = Router::actionUrl(array('controller' => 'registration_answers', 'action' => 'test_mode', Current::read('Block.id'), $key, 'frame_id' => Current::read('Frame.id'))); return sprintf($buttonStr, $answerButtonClass, '', '', $url, $answerButtonLabel); } else { $url = Router::actionUrl(array('controller' => 'registration_answers', 'action' => 'view', Current::read('Block.id'), $key, 'frame_id' => Current::read('Frame.id'))); } // 何事もなければ登録可能のボタン $answerButtonLabel = __d('registrations', 'Answer'); $answerButtonClass = 'success'; $answerButtonDisabled = ''; $rangeStat = $registration['Registration']['period_range_stat']; $isRepeat = $registration['Registration']['is_repeat_allow']; // 操作できるかできないかの決定 // 期間外だったら操作不可能 // 繰り返し登録不可で登録済なら操作不可能 if ($rangeStat != RegistrationsComponent::REGISTRATION_PERIOD_STAT_IN || in_array($key, $this->_View->viewVars['ownAnsweredKeys']) && $isRepeat == RegistrationsComponent::PERMISSION_NOT_PERMIT) { $answerButtonClass = 'default'; $answerButtonDisabled = 'disabled'; $buttonStr = $disabledButtonStr; } // ラベル名の決定 if ($rangeStat == RegistrationsComponent::REGISTRATION_PERIOD_STAT_BEFORE) { // 未公開 $answerButtonLabel = __d('registrations', 'Unpublished'); } if (in_array($key, $this->_View->viewVars['ownAnsweredKeys'])) { // 登録済み $answerButtonLabel = __d('registrations', 'Finished'); } return sprintf($buttonStr, $answerButtonClass, '', $answerButtonDisabled, $url, $answerButtonLabel); }