public function init() { $this->setMethod('post'); $this->setEnctype('multipart/form-data'); $this->setName('edit_profile_form'); $this->setAttrib('id', 'edit-profile-form'); $this->addElementPrefixPath('Oibs_Form_Decorator', 'Oibs/Form/Decorator/', 'decorator'); $mailvalid = new Zend_Validate_EmailAddress(); $mailvalid->setMessage('email-invalid', Zend_Validate_EmailAddress::INVALID); $mailvalid->setMessage('email-invalid-hostname', Zend_Validate_EmailAddress::INVALID_HOSTNAME); $mailvalid->setMessage('email-invalid-mx-record', Zend_Validate_EmailAddress::INVALID_MX_RECORD); $mailvalid->setMessage('email-dot-atom', Zend_Validate_EmailAddress::DOT_ATOM); $mailvalid->setMessage('email-quoted-string', Zend_Validate_EmailAddress::QUOTED_STRING); $mailvalid->setMessage('email-invalid-local-part', Zend_Validate_EmailAddress::INVALID_LOCAL_PART); $mailvalid->setMessage('email-length-exceeded', Zend_Validate_EmailAddress::LENGTH_EXCEEDED); $mailvalid->hostnameValidator->setMessage('hostname-invalid-hostname', Zend_Validate_Hostname::INVALID_HOSTNAME); $mailvalid->hostnameValidator->setMessage('hostname-local-name-not-allowed', Zend_Validate_Hostname::LOCAL_NAME_NOT_ALLOWED); $mailvalid->hostnameValidator->setMessage('hostname-unknown-tld', Zend_Validate_Hostname::UNKNOWN_TLD); $mailvalid->hostnameValidator->setMessage('hostname-invalid-local-name', Zend_Validate_Hostname::INVALID_LOCAL_NAME); $mailvalid->hostnameValidator->setMessage('hostname-undecipherable-tld', Zend_Validate_Hostname::UNDECIPHERABLE_TLD); // Clear div $clear = '<div class="clear"></div>'; // Headers $accountInformation = new Oibs_Form_Element_Note('accountinformation'); $accountInformation->setValue($clear . '<h3>Account information</h3>' . $clear); $personalInformation = new Oibs_Form_Element_Note('personalinformation'); $personalInformation->setValue('<h3>Personal Information</h3>' . $clear); $locationInformation = new Oibs_Form_Element_Note('locationinformation'); $locationInformation->setValue('<h3>Location Information</h3>' . $clear); $employmentInformation = new Oibs_Form_Element_Note('employmentinformation'); $employmentInformation->setValue('<h3>Employment Information</h3>' . $clear); $subscribeInformation = new Oibs_Form_Element_Note('subscribeinformation'); $subscribeInformation->setValue('<h3>Subscribe settings</h3>' . $clear); // Public text $publictext = 'Public'; // Username for description $auth = Zend_Auth::getInstance(); $identity = $auth->getIdentity(); $usernametext = $identity->username; $username = new Zend_Form_Element_Hidden('username'); $username->setLabel('Username')->setDescription($usernametext); $usernamepublic = new Zend_Form_Element_Hidden('username_publicity'); $usernamepublic->setLabel($publictext); $openid = new Zend_Form_Element_Text('openid'); $openid->setLabel('Open-ID')->setAttrib('id', 'open-ID')->addValidators(array(new Oibs_Validators_OpenidExists())); $openidclear = new Oibs_Form_Element_Note('openidclear'); $openidclear->setValue($clear); $password = new Zend_Form_Element_Password('password'); $password->setLabel('New password')->setAttrib('id', 'password')->addValidators(array(new Oibs_Validators_RepeatValidator('confirm_password'), array('NotEmpty', true, array('messages' => array('isEmpty' => 'Empty'))), array('StringLength', false, array(4, 22, 'messages' => array('stringLengthTooShort' => 'Password too short (4-22 characters)', 'stringLengthTooLong' => 'Password too long (4-22 characters)'))))); $passwordclear = new Oibs_Form_Element_Note('passwordclear'); $passwordclear->setValue($clear); $confirmpassword = new Zend_Form_Element_Password('confirm_password'); $confirmpassword->setLabel('Confirm password')->setAttrib('id', 'confirm-password')->addValidators(array(array('NotEmpty', true, array('messages' => array('isEmpty' => 'Empty'))), array('StringLength', false, array(4, 22, 'messages' => array('stringLengthTooShort' => 'Password too short (4-22 characters)', 'stringLengthTooLong' => 'Password too long (4-22 characters)'))))); $confirmpasswordclear = new Oibs_Form_Element_Note('confirm_passwordclear'); $confirmpasswordclear->setValue($clear); $email = new Zend_Form_Element_Text('email'); $email->setLabel('Email')->setAttrib('id', 'email')->setRequired(true)->addFilter('StringtoLower')->addValidators(array($mailvalid, array('NotEmpty', true, array('messages' => array('isEmpty' => 'Email empty'))), array('StringLength', false, array(6, 50, 'messages' => array('stringLengthTooShort' => 'Email too short (6-50 characters)', 'stringLengthTooLong' => 'Email too long (6-50 characters)'))))); $emailclear = new Oibs_Form_Element_Note('emailclear'); $emailclear->setValue($clear); $gravatar = new Zend_Form_Element_Hidden('gravatartext'); $gravatar->setLabel('Gravatar')->setDescription('<div style="text-align: right;">Enable <a href="http://www.gravatar.com">gravatar</a></div>'); $gravatarcheck = new Zend_Form_Element_Checkbox('gravatar'); $phone = new Zend_Form_Element_Text('phone'); $phone->setLabel('Phone')->setAttrib('id', 'phone'); $phonepublic = new Zend_Form_Element_Checkbox('phone_publicity'); $phonepublic->setLabel($publictext); $firstname = new Zend_Form_Element_Text('firstname'); $firstname->setLabel('First name')->setAttrib('id', 'first-name'); $firstnamepublic = new Zend_Form_Element_Checkbox('firstname_publicity'); $firstnamepublic->setLabel($publictext); // DB: surname $lastname = new Zend_Form_Element_Text('surname'); $lastname->setLabel('Last name')->setAttrib('id', 'last-name'); $lastnamepublic = new Zend_Form_Element_Checkbox('surname_publicity'); $lastnamepublic->setLabel($publictext); $gender = new Zend_Form_Element_Select('gender'); $gender->setLabel('Gender')->setAttrib('id', 'gender')->addMultiOptions(array('Select', 'Male', 'Female')); $genderpublic = new Zend_Form_Element_Checkbox('gender_publicity'); $genderpublic->setLabel($publictext); $birthday = new Zend_Form_Element_Text('birthday'); $birthday->setLabel('Date of Birth')->setAttrib('id', 'birthday')->setValidators(array(new Zend_Validate_Date('birthday'))); $birthdaypublic = new Zend_Form_Element_Checkbox('birthday_publicity'); $birthdaypublic->setLabel($publictext); $biography = new Zend_Form_Element_Textarea('biography'); $biography->setLabel('Biography')->setAttrib('id', 'biography')->setAttrib('rows', 30)->setAttrib('cols', 45)->addValidators(array(array('StringLength', false, array(0, 4000, 'messages' => array('stringLengthTooLong' => 'Biography too long'))))); //->setDescription('<div id="progressbar_biography" class="progress_ok"></div>'); $biographypublic = new Zend_Form_Element_Checkbox('biography_publicity'); $biographypublic->setLabel($publictext); $intereststext = new Oibs_Form_Element_Note('intereststext'); $intereststext->setValue('<div class="input-column1"></div>' . '<div class="input-column2 help">(Use commas to separate tags)</div><div class="clear"></div>'); $interests = new Zend_Form_Element_Text('interests'); $interests->setLabel('My interest (tags)')->setAttrib('id', 'interests'); $interestsclear = new Oibs_Form_Element_Note('interestsclear'); $interestsclear->setValue($clear); $weblinks_websites = new Oibs_Form_Element_Note('weblinks_websites'); $weblinks_websites->setValue('<div class="input-column-website1"><label><strong>Links to my websites:</strong></label></div>'); $weblinks_name = new Oibs_Form_Element_Note('weblinks_name'); $weblinks_name->setValue('<div class="input-column-website2">Name</div>'); $weblinks_url = new Oibs_Form_Element_Note('weblinks_url'); $weblinks_url->setValue('<div class="input-column-website3">Url</div><div class="clear"></div>'); $nameTooLongText = 'Name too long (max 45)'; $urlTooLongText = 'URL too long (max 150)'; $weblinks_name_site1 = new Zend_Form_Element_Text('weblinks_name_site1'); $weblinks_name_site1->setLabel('Web site 1')->setAttrib('id', 'website1-name')->addValidators(array(array('StringLength', false, array(0, 45, 'messages' => array('stringLengthTooLong' => $nameTooLongText))))); $weblinks_url_site1 = new Zend_Form_Element_Text('weblinks_url_site1'); $weblinks_url_site1->setAttrib('id', 'website1-url')->addValidators(array(new Oibs_Validators_UrlValidator(), array('StringLength', false, array(0, 150, 'messages' => array('stringLengthTooLong' => $urlTooLongText))))); $weblinks_name_site2 = new Zend_Form_Element_Text('weblinks_name_site2'); $weblinks_name_site2->setLabel('Web site 2')->setAttrib('id', 'website2-name')->addValidators(array(array('StringLength', false, array(0, 45, 'messages' => array('stringLengthTooLong' => $nameTooLongText))))); $weblinks_url_site2 = new Zend_Form_Element_Text('weblinks_url_site2'); $weblinks_url_site2->setAttrib('id', 'website2-url')->addValidators(array(new Oibs_Validators_UrlValidator(), array('StringLength', false, array(0, 150, 'messages' => array('stringLengthTooLong' => $urlTooLongText))))); $weblinks_name_site3 = new Zend_Form_Element_Text('weblinks_name_site3'); $weblinks_name_site3->setLabel('Web site 3')->setAttrib('id', 'website3-name')->setAttrib('id', 'website2-name')->addValidators(array(array('StringLength', false, array(0, 45, 'messages' => array('stringLengthTooLong' => $nameTooLongText))))); $weblinks_url_site3 = new Zend_Form_Element_Text('weblinks_url_site3'); $weblinks_url_site3->setAttrib('id', 'website3-url')->addValidators(array(new Oibs_Validators_UrlValidator(), array('StringLength', false, array(0, 150, 'messages' => array('stringLengthTooLong' => $urlTooLongText))))); $weblinks_name_site4 = new Zend_Form_Element_Text('weblinks_name_site4'); $weblinks_name_site4->setLabel('Web site 4')->setAttrib('id', 'website4-name')->setAttrib('id', 'website2-name')->addValidators(array(array('StringLength', false, array(0, 45, 'messages' => array('stringLengthTooLong' => $nameTooLongText))))); $weblinks_url_site4 = new Zend_Form_Element_Text('weblinks_url_site4'); $weblinks_url_site4->setAttrib('id', 'website4-url')->addValidators(array(new Oibs_Validators_UrlValidator(), array('StringLength', false, array(0, 150, 'messages' => array('stringLengthTooLong' => $urlTooLongText))))); $weblinks_name_site5 = new Zend_Form_Element_Text('weblinks_name_site5'); $weblinks_name_site5->setLabel('Web site 5')->setAttrib('id', 'website5-name')->setAttrib('id', 'website2-name')->addValidators(array(array('StringLength', false, array(0, 45, 'messages' => array('stringLengthTooLong' => $nameTooLongText))))); $weblinks_url_site5 = new Zend_Form_Element_Text('weblinks_url_site5'); $weblinks_url_site5->setAttrib('id', 'website5-url')->addValidators(array(new Oibs_Validators_UrlValidator(), array('StringLength', false, array(0, 150, 'messages' => array('stringLengthTooLong' => $urlTooLongText))))); $languages = new Default_Model_Languages(); $allLanguages = $languages->getAllNamesAndIds(); $userlanguage = new Zend_Form_Element_Select('userlanguage'); $userlanguage->setLabel('User interface language')->setAttrib('id', 'user-interface-language')->addMultiOption('', 'Select'); foreach ($allLanguages as $language) { $userlanguage->addMultiOption($language['id_lng'], $language['name_lng']); } $userlanguageclear = new Oibs_Form_Element_Note('userlanguageclear'); $userlanguageclear->setValue($clear); /* $avatar = new Zend_Form_Element_File('avatar'); $avatar->setLabel('Avatar image'); */ // DB: city $hometown = new Zend_Form_Element_Text('city'); $hometown->setLabel('Hometown')->setAttrib('id', 'hometown')->setRequired(true)->addValidators(array(array('NotEmpty', true, array('messages' => array('isEmpty' => 'Hometown empty'))), array('Regex', true, array('/^[\\p{L}0-9.\\- ]*$/')))); $hometownpublic = new Zend_Form_Element_Checkbox('city_publicity'); $hometownpublic->setLabel($publictext); $hometownpublic->helper = 'FormHidden'; $address = new Zend_Form_Element_Text('address'); $address->setLabel('Address')->setAttrib('id', 'address'); $addresspublic = new Zend_Form_Element_Checkbox('address_publicity'); $addresspublic->setLabel($publictext)->setAttrib('checked', 'checked')->setValue(1); $addresspublic->helper = 'FormHidden'; $country_model = new Default_Model_Countries(); $allCountries = $country_model->getAllCountries(); $usercountry = new Zend_Form_Element_Select('country'); $usercountry->setLabel('Country of Residence')->setAttrib('id', 'country')->addMultiOption('', 'Select'); foreach ($allCountries as $country) { $usercountry->addMultiOption($country['iso_ctr'], $country['printable_name_ctr']); } $usercountrypublic = new Zend_Form_Element_Checkbox('country_publicity'); $usercountrypublic->setLabel($publictext); $timezone_model = new Default_Model_Timezones(); $allTimezones = $timezone_model->getAllTimezones(); $usertimezone = new Zend_Form_Element_Select('usertimezone'); $usertimezone->setLabel('Time Zone')->setAttrib('id', 'time-zone')->addMultiOption('', 'Select'); foreach ($allTimezones as $timezone) { $usertimezone->addMultiOption($timezone['id_tmz'], $timezone['gmt_tmz'] . ' ' . $timezone['timezone_location_tmz']); } $usertimezonepublic = new Zend_Form_Element_Checkbox('usertimezone_publicity'); $usertimezonepublic->setLabel($publictext); $userProfilesModel = new Default_Model_UserProfiles(); $employments = $userProfilesModel->getEmployments(); $employments = array_merge(array('' => 'Select'), $employments); $employment = new Zend_Form_Element_Select('employment'); $employment->setLabel('I am currently')->setAttrib('id', 'status')->setRequired(true)->addMultiOptions($employments)->setErrorMessages(array('Select status')); $employmentpublic = new Zend_Form_Element_Checkbox('employment_publicity'); $employmentpublic->setLabel($publictext); // DB: company $employer_organization = new Zend_Form_Element_Text('company'); $employer_organization->setLabel('Employer / Organization')->setAttrib('id', 'employer-organization'); $employer_organizationpublic = new Zend_Form_Element_Checkbox('company_publicity'); $employer_organizationpublic->setLabel($publictext); //Subscribe things $favouritesModel = new Default_Model_UserHasFavourites(); $subscribeOptions = $favouritesModel->getFollows(); unset($subscribeOptions['8']); //Unsetting the translation box till its in use. //print_r($subscribeOptions);die; $test = new Zend_Form_Element_MultiCheckbox('lol'); //$test->setV $subscribeClasses = array("own_follows" => "Own contents", "fvr_follows" => "Favourite contents"); foreach ($subscribeClasses as $key => $value) { $subscribe[$key] = new Zend_Form_Element_MultiCheckbox($key); $subscribe[$key]->setLabel('Activities you want to follow in your ' . $value); $subscribe[$key]->addMultiOptions($subscribeOptions); } $subscribeclear = new Oibs_Form_Element_Note('subscribeclear'); $subscribeclear->setValue($clear); $save = new Zend_Form_Element_Submit('save'); $save->setLabel('Save profile')->setAttrib('id', 'save-profile')->setAttrib('class', 'submit-button'); $cancel = new Zend_Form_Element_Submit('cancel'); $cancel->setLabel('Cancel')->setAttrib('id', 'cancel')->setAttrib('class', 'submit-button'); $this->addElements(array($accountInformation, $username, $usernamepublic, $openid, $openidclear, $password, $passwordclear, $confirmpassword, $confirmpasswordclear, $personalInformation, $email, $emailclear, $gravatar, $gravatarcheck, $phone, $phonepublic, $firstname, $firstnamepublic, $lastname, $lastnamepublic, $gender, $genderpublic, $birthday, $birthdaypublic, $biography, $biographypublic, $weblinks_websites, $weblinks_name, $weblinks_url, $weblinks_name_site1, $weblinks_url_site1, $weblinks_name_site2, $weblinks_url_site2, $weblinks_name_site3, $weblinks_url_site3, $weblinks_name_site4, $weblinks_url_site4, $weblinks_name_site5, $weblinks_url_site5, $userlanguage, $userlanguageclear, $locationInformation, $hometown, $hometownpublic, $address, $addresspublic, $usercountry, $usercountrypublic, $usertimezone, $usertimezonepublic, $employmentInformation, $employment, $employmentpublic, $employer_organization, $employer_organizationpublic, $save, $cancel)); $accountInformation->setDecorators(array('ViewHelper')); $personalInformation->setDecorators(array('ViewHelper')); $locationInformation->setDecorators(array('ViewHelper')); $employmentInformation->setDecorators(array('ViewHelper')); $subscribeInformation->setDecorators(array('ViewHelper')); $username->setDecorators(array('InputDecorator')); $usernamepublic->setDecorators(array('PublicDecorator')); $openid->setDecorators(array('InputDecorator')); $openidclear->setDecorators(array('ViewHelper')); $password->setDecorators(array('InputDecorator')); $passwordclear->setDecorators(array('ViewHelper')); $confirmpassword->setDecorators(array('InputDecorator')); $confirmpasswordclear->setDecorators(array('ViewHelper')); $email->setDecorators(array('InputDecorator')); $emailclear->setDecorators(array('ViewHelper')); $gravatar->setDecorators(array('InputDecorator')); $gravatarcheck->setDecorators(array('PublicDecorator')); $phone->setDecorators(array('InputDecorator')); $phonepublic->setDecorators(array('PublicDecorator')); $firstname->setDecorators(array('InputDecorator')); $firstnamepublic->setDecorators(array('PublicDecorator')); $lastname->setDecorators(array('InputDecorator')); $lastnamepublic->setDecorators(array('PublicDecorator')); $gender->setDecorators(array('InputDecorator')); $genderpublic->setDecorators(array('PublicDecorator')); $birthday->setDecorators(array('InputDecorator')); $birthdaypublic->setDecorators(array('PublicDecorator')); $biography->setDecorators(array('InputDecorator')); $biographypublic->setDecorators(array('PublicDecorator')); $intereststext->setDecorators(array('ViewHelper')); $interests->setDecorators(array('InputDecorator')); $interestsclear->setDecorators(array('ViewHelper')); $weblinks_websites->setDecorators(array('ViewHelper')); $weblinks_name->setDecorators(array('ViewHelper')); $weblinks_url->setDecorators(array('ViewHelper')); $weblinks_name_site1->setDecorators(array('InputWebsiteNameDecorator')); $weblinks_url_site1->setDecorators(array('InputWebsiteUrlDecorator')); $weblinks_name_site2->setDecorators(array('InputWebsiteNameDecorator')); $weblinks_url_site2->setDecorators(array('InputWebsiteUrlDecorator')); $weblinks_name_site3->setDecorators(array('InputWebsiteNameDecorator')); $weblinks_url_site3->setDecorators(array('InputWebsiteUrlDecorator')); $weblinks_name_site4->setDecorators(array('InputWebsiteNameDecorator')); $weblinks_url_site4->setDecorators(array('InputWebsiteUrlDecorator')); $weblinks_name_site5->setDecorators(array('InputWebsiteNameDecorator')); $weblinks_url_site5->setDecorators(array('InputWebsiteUrlDecorator')); $userlanguage->setDecorators(array('InputDecorator')); $userlanguageclear->setDecorators(array('ViewHelper')); $hometown->setDecorators(array('InputDecorator')); $hometownpublic->setDecorators(array('PublicDecorator')); $address->setDecorators(array('InputDecorator')); $addresspublic->setDecorators(array('PublicDecorator')); $usercountry->setDecorators(array('InputDecorator')); $usercountrypublic->setDecorators(array('PublicDecorator')); $usertimezone->setDecorators(array('InputDecorator')); $usertimezonepublic->setDecorators(array('PublicDecorator')); $employment->setDecorators(array('InputDecorator')); $employmentpublic->setDecorators(array('PublicDecorator')); $employer_organization->setDecorators(array('InputDecorator')); $employer_organizationpublic->setDecorators(array('PublicDecorator')); $subscribe['own_follows']->setDecorators(array('InputDecorator')); $subscribe['fvr_follows']->setDecorators(array('InputDecorator')); $subscribeclear->setDecorators(array('ViewHelper')); $save->setDecorators(array('ViewHelper', array('HtmlTag', array('tag' => 'div', 'openOnly' => true, 'id' => 'save_changes')))); $cancel->setDecorators(array('ViewHelper', array('HtmlTag', array('tag' => 'div', 'closeOnly' => true)))); $this->setDecorators(array('FormElements', 'Form')); }
/** * Gets all public data as an array, used in public profile page * * @author joel peltonen * @param id int user whose data we are to get * @return array of user data */ public function getPublicData($id = -1) { if ($id == -1) { return false; // don't allow default value } // get only key and value fields, others are not needed $select = $this->select()->from($this, array('profile_key_usp', 'profile_value_usp'))->where('id_usr_usp = ?', $id)->where('public_usp = ?', 1); // roll to array and return $results = $this->fetchAll($select); foreach ($results as $result) { $collection[$result->profile_key_usp] = htmlentities($result->profile_value_usp); } // Change gender to M or N if (isset($collection['gender']) && $collection['gender'] == 1) { $collection['gender'] = 'Male'; } else { if (isset($collection['gender']) && $collection['gender'] == 2) { $collection['gender'] = 'Female'; } } // Change employment "code" to text if (isset($collection['employment'])) { $collection['employment'] = $this->getEmploymentByEmployment($collection['employment']); } // User timezone if (isset($collection['usertimezone'])) { $timezone_model = new Default_Model_Timezones(); $collection['usertimezone'] = $timezone_model->getTimezoneTextById($collection['usertimezone']); } // User country if (isset($collection['country'])) { $country_model = new Default_Model_Countries(); $collection['country'] = $country_model->getCountryPrintableNameByIso($collection['country']); } return $collection; }