?> </td> <td><?php echo symbol_bool($profile->is_disp_regist); ?> </td> <td><?php echo symbol_bool($profile->is_disp_config); ?> </td> <td><?php echo symbol_bool($profile->is_disp_search); ?> </td> <td><?php if (in_array($profile->form_type, Site_Profile::get_form_types_having_profile_options())) { echo Html::anchor('admin/profile/options/' . $profile->id, term('site.list')); } else { echo symbol('noValue'); } ?> </td> </tr> <?php } ?> </table> <?php } else { echo term('profile', 'site.item'); ?>
public static function get_validation_birthday() { $val = \Validation::forge('site_config_profile_birthday'); $name_prefix = 'birthday'; $name = self::get_name($name_prefix, 'isEnable'); $value = self::get_values($name, 0); $options_enable = array('0' => '無効', '1' => '有効'); $val->add($name, term('member.birthday') . '設定を有効にするか', array('type' => 'radio', 'options' => $options_enable, 'value' => $value))->add_rule('valid_string', 'numeric', 'required')->add_rule('in_array', array_keys($options_enable)); $name = self::get_name($name_prefix, 'isDispRegist'); $value = self::get_values($name, 1); $options_is_disp = array('1' => '表示する', '0' => '表示しない'); $val->add($name, '新規登録', array('type' => 'radio', 'options' => $options_is_disp, 'value' => $value))->add_rule('valid_string', 'numeric', 'required')->add_rule('in_array', array_keys($options_is_disp)); $name = self::get_name($name_prefix, 'isDispConfig'); $value = self::get_values($name, 1); $val->add($name, 'プロフィール変更', array('type' => 'radio', 'options' => $options_is_disp, 'value' => $value))->add_rule('valid_string', 'numeric', 'required')->add_rule('in_array', array_keys($options_is_disp)); $name = self::get_name($name_prefix, 'isDispSearch'); $value = self::get_values($name, 1); $val->add($name, 'メンバー検索', array('type' => 'radio', 'options' => $options_is_disp, 'value' => $value))->add_rule('valid_string', 'numeric', 'required')->add_rule('in_array', array_keys($options_is_disp)); $name_prefix = 'birthday_birthyear'; $name = self::get_name($name_prefix, 'viewType'); $value = self::get_values($name, 0); $options = array('0' => '生年表示', '1' => '年齢表示'); $val->add($name, '生年表示タイプ', array('type' => 'radio', 'options' => $options, 'value' => $value))->add_rule('valid_string', 'numeric')->add_rule('in_array', array_keys($options)); $name = self::get_name($name_prefix, 'displayType'); $value = self::get_values($name, 0); $options_display_type = \Site_Profile::get_display_type_options(); $val->add($name, '表示場所(生年)', array('type' => 'select', 'options' => $options_display_type, 'value' => $value))->add_rule('valid_string', 'numeric')->add_rule('in_array', array_keys($options_display_type)); $name = self::get_name($name_prefix, 'isRequired'); $value = self::get_values($name, 0); $options_is_required = array('1' => ''); $val->add($name, '必須(生年)', array('type' => 'checkbox', 'options' => $options_is_required, 'value' => $value))->add_rule('checkbox_val', $options_is_required); $name_prefix .= '_publicFlag'; $name = self::get_name($name_prefix, 'isEdit'); $value = self::get_values($name, 0); $options_is_edit_public_flag = array('0' => '固定', '1' => 'メンバー選択'); $val->add($name, '公開設定の選択(生年)', array('type' => 'radio', 'options' => $options_is_edit_public_flag, 'value' => $value))->add_rule('valid_string', 'numeric')->add_rule('in_array', array_keys($options_is_edit_public_flag)); $name = self::get_name($name_prefix, 'default'); $atters = \Site_Form::get_public_flag_configs(); $atters['value'] = self::get_values($name, conf('public_flag.default')); $val->add($name, '公開設定デフォルト値(生年)', $atters)->add_rule('valid_string', 'numeric')->add_rule('in_array', \Site_Util::get_public_flags()); $name_prefix = 'birthday_birthday'; $name = self::get_name($name_prefix, 'displayType'); $value = self::get_values($name, 0); $options_display_type = \Site_Profile::get_display_type_options(); $val->add($name, '表示場所(誕生日)', array('type' => 'select', 'options' => $options_display_type, 'value' => $value))->add_rule('valid_string', 'numeric')->add_rule('in_array', array_keys($options_display_type)); $name = self::get_name($name_prefix, 'isRequired'); $value = self::get_values($name, 0); $options_is_required = array('1' => ''); $val->add($name, '必須(誕生日)', array('type' => 'checkbox', 'options' => $options_is_required, 'value' => $value))->add_rule('checkbox_val', $options_is_required); $name_prefix .= '_publicFlag'; $name = self::get_name($name_prefix, 'isEdit'); $value = self::get_values($name, 0); $val->add($name, '公開設定の選択(誕生日)', array('type' => 'radio', 'options' => $options_is_edit_public_flag, 'value' => $value))->add_rule('valid_string', 'numeric')->add_rule('in_array', array_keys($options_is_edit_public_flag)); $name = self::get_name($name_prefix, 'default'); $atters = \Site_Form::get_public_flag_configs(); $atters['value'] = self::get_values($name, conf('public_flag.default')); $val->add($name, '公開設定デフォルト値(誕生日)', $atters)->add_rule('valid_string', 'numeric')->add_rule('in_array', \Site_Util::get_public_flags()); if (conf('member.profile.birthday.use_generation_view')) { $name_prefix = 'birthday_generationView'; $name = self::get_name($name_prefix, 'isEnable'); $value = self::get_values($name, 0); $val->add($name, '年代表示を有効にするか', array('type' => 'radio', 'options' => $options_enable, 'value' => $value))->add_rule('valid_string', 'numeric')->add_rule('in_array', array_keys($options_enable)); $name = self::get_name($name_prefix, 'unit'); $value = self::get_values($name, 0); $options = array('0' => '10年単位', '1' => '5年単位'); $val->add($name, '年代区切り', array('type' => 'radio', 'options' => $options, 'value' => $value))->add_rule('valid_string', 'numeric')->add_rule('in_array', array_keys($options)); $name_prefix .= '_publicFlag'; $name = self::get_name($name_prefix, 'isEdit'); $value = self::get_values($name, 0); $val->add($name, '公開設定の選択(年代)', array('type' => 'radio', 'options' => $options_is_edit_public_flag, 'value' => $value))->add_rule('valid_string', 'numeric')->add_rule('in_array', array_keys($options_is_edit_public_flag)); $name = self::get_name($name_prefix, 'default'); $atters = \Site_Form::get_public_flag_configs(); $atters['value'] = self::get_values($name, conf('public_flag.default')); $val->add($name, '公開設定デフォルト値(年代)', $atters)->add_rule('valid_string', 'numeric')->add_rule('in_array', \Site_Util::get_public_flags()); } return $val; }
private function check_id_and_get_profile($profile_id) { if (!$profile_id || !($profile = \Model_Profile::check_authority($profile_id))) { throw new \HttpNotFoundException(); } if (!in_array($profile->form_type, \Site_Profile::get_form_types_having_profile_options())) { throw new \HttpInvalidInputException(); } return $profile; }
/** * The edit_options action. * * @access public * @return void */ public function action_edit_options($id = null) { if (!$id || !($profile = \Model_Profile::find($id))) { throw new \HttpNotFoundException(); } if (!in_array($profile->form_type, \Site_Profile::get_form_types_having_profile_options())) { throw new \HttpInvalidInputException(); } $profile_options = \Model_ProfileOption::get4profile_id($id); $posted_vals = array(); if (\Input::method() == 'POST') { try { \Util_security::check_csrf(); $posted_vals = \Input::post('labels'); if (count($posted_vals) != count($profile_options)) { throw new \httpinvalidinputexception(); } \DB::start_transaction(); foreach ($profile_options as $profile_option) { $value = $posted_vals[$profile_option->id]; if (!strlen($value)) { throw new \httpinvalidinputexception('未入力の項目があります。'); } if ($value !== $profile_option->label) { $profile_option->label = $value; $profile_option->save(); } } \DB::commit_transaction(); \Session::set_flash('message', term('profile', 'form.choices') . 'を編集しました。'); \Response::redirect('admin/profile/options/' . $profile->id); } catch (\FuelException $e) { if (\DB::in_transaction()) { \DB::rollback_transaction(); } \Session::set_flash('error', $e->getMessage()); } } $vals = array(); foreach ($profile_options as $profile_option) { $vals[$profile_option->id] = isset($posted_vals[$profile_option->id]) ? $posted_vals[$profile_option->id] : $profile_option->label; } $this->set_title_and_breadcrumbs(sprintf('%s %s: %s', term('profile'), term('form.edit'), $profile->caption)); $this->template->content = \View::forge('profile/edit_options', array('profile' => $profile, 'vals' => $vals, 'profile_options' => $profile_options)); }