Exemplo n.º 1
0
 /**
  * Personal Settings
  */
 public function index()
 {
     $this->base_url = ee('CP/URL')->make($this->base_url, $this->query_string);
     // Birthday Options
     $birthday['days'] = array();
     $birthday['years'][''] = lang('year');
     for ($i = date('Y', $this->localize->now); $i > 1904; $i--) {
         $birthday['years'][$i] = $i;
     }
     $birthday['months'] = array('' => lang('month'), '01' => lang('January'), '02' => lang('February'), '03' => lang('March'), '04' => lang('April'), '05' => lang('May_l'), '06' => lang('June'), '07' => lang('July'), '08' => lang('August'), '09' => lang('September'), '10' => lang('October'), '11' => lang('November'), '12' => lang('December'));
     $birthday['days'][''] = lang('day');
     for ($i = 1; $i <= 31; $i++) {
         $birthday['days'][$i] = $i;
     }
     $settings = array();
     if ($this->member->parse_smileys == 'y') {
         $settings[] = 'display_emoticons';
     }
     if ($this->member->display_avatars == 'y') {
         $settings[] = 'display_avatars';
     }
     if ($this->member->accept_messages == 'y') {
         $settings[] = 'allow_messages';
     }
     $this->load->helper('html');
     $this->load->helper('directory');
     $path = ee()->config->item('avatar_path');
     $directory = ee('Model')->get('UploadDestination')->filter('server_path', $path)->first();
     $fp = new FilePicker();
     $fp->inject(ee()->view);
     $dirs = array();
     $avatar_choices = array();
     if ($directory) {
         $fp = new FilePicker();
         $fp->inject(ee()->view);
         $dirs[] = $fp->link('Avatars', $directory->id, array('image' => 'avatar', 'input' => 'avatar_filename', 'hasFilters' => FALSE, 'hasUpload' => FALSE, 'selected' => $this->member->avatar_filename, 'class' => 'avatarPicker'));
         $avatar_choices = array('upload' => array('label' => 'upload_avatar', 'html' => form_upload('upload_avatar')), 'choose' => array('label' => 'choose_avatar', 'html' => ul($dirs, array('class' => 'arrow-list'))));
     }
     $avatar_choices['link'] = array('label' => 'link_avatar', 'html' => form_input('link_avatar', 'http://'));
     $avatar_choose_lang_desc = lang('change_avatar_desc');
     if (count($avatar_choices) == 1) {
         $avatar_choose_lang_desc .= sprintf(lang('update_avatar_path'), ee('CP/URL', 'settings/avatars'));
     }
     $vars['has_file_input'] = TRUE;
     $vars['sections'] = array(array(array('title' => 'url', 'desc' => 'url_desc', 'fields' => array('url' => array('type' => 'text', 'value' => $this->member->url))), array('title' => 'location', 'desc' => 'location_desc', 'fields' => array('location' => array('type' => 'text', 'value' => $this->member->location))), array('title' => 'birthday', 'desc' => 'birthday_desc', 'fields' => array('bday_d' => array('type' => 'select', 'choices' => $birthday['days'], 'value' => $this->member->bday_d), 'bday_m' => array('type' => 'select', 'choices' => $birthday['months'], 'value' => $this->member->bday_m), 'bday_y' => array('type' => 'select', 'choices' => $birthday['years'], 'value' => $this->member->bday_y))), array('title' => 'biography', 'desc' => 'biography_desc', 'fields' => array('bio' => array('type' => 'textarea', 'value' => $this->member->bio))), array('title' => 'language', 'desc' => 'language_desc', 'fields' => array('language' => array('type' => 'select', 'choices' => ee()->lang->language_pack_names(), 'value' => $this->member->language ?: ee()->config->item('deft_lang')))), array('title' => 'preferences', 'desc' => 'preferences_desc', 'fields' => array('preferences' => array('type' => 'checkbox', 'choices' => array('accept_messages' => lang('allow_messages'), 'display_avatars' => lang('display_avatars'), 'parse_smileys' => lang('parse_smileys')), 'value' => $settings)))), 'avatar_settings' => array(array('title' => 'current_avatar', 'desc' => 'current_avatar_desc', 'fields' => array('avatar_filename' => array('type' => 'image', 'id' => 'avatar', 'edit' => FALSE, 'image' => $directory ? $directory->url . $this->member->avatar_filename : '', 'value' => $this->member->avatar_filename))), array('title' => 'change_avatar', 'desc' => $avatar_choose_lang_desc, 'fields' => array('avatar_picker' => array('type' => 'radio_block', 'choices' => $avatar_choices, 'value' => count($avatar_choices) == 1 ? 'link' : 'choose')))));
     if ($this->member->avatar_filename == "") {
         $vars['sections']['avatar_settings'][0]['hide'] = TRUE;
     }
     ee()->form_validation->set_rules(array(array('field' => 'url', 'label' => 'lang:timezone', 'rules' => 'valid_xss_check'), array('field' => 'location', 'label' => 'lang:location', 'rules' => 'valid_xss_check'), array('field' => 'bio', 'label' => 'lang:biography', 'rules' => 'valid_xss_check')));
     if (AJAX_REQUEST) {
         ee()->form_validation->run_ajax();
         exit;
     } elseif (ee()->form_validation->run() !== FALSE) {
         if ($this->saveSettings($vars['sections'])) {
             ee('CP/Alert')->makeInline('shared-form')->asSuccess()->withTitle(lang('member_updated'))->addToBody(lang('member_updated_desc'))->defer();
             ee()->functions->redirect($this->base_url);
         }
     } elseif (ee()->form_validation->errors_exist()) {
         ee('CP/Alert')->makeInline('shared-form')->asIssue()->withTitle(lang('settings_save_erorr'))->addToBody(lang('settings_save_error_desc'))->now();
     }
     ee()->cp->add_js_script(array('file' => array('cp/members/avatar')));
     ee()->view->base_url = $this->base_url;
     ee()->view->ajax_validate = TRUE;
     ee()->view->cp_page_title = lang('personal_settings');
     ee()->view->save_btn_text = 'btn_save_settings';
     ee()->view->save_btn_text_working = 'btn_save_settings_working';
     ee()->cp->render('settings/form', $vars);
 }