コード例 #1
0
ファイル: ContentController.php プロジェクト: jiiarra/site
 /**
  *   editAction
  *
  *   Edit content
  *
  */
 public function editAction()
 {
     // Get authentication
     $auth = Zend_Auth::getInstance();
     // If user has identity
     if ($auth->hasIdentity()) {
         // Get requests
         $params = $this->getRequest()->getParams();
         // Get session data
         $previewSession = new Zend_Session_Namespace('contentpreview');
         // If preview
         $backFromPreview = isset($previewSession->backFromPreview) ? $previewSession->backFromPreview : 0;
         $preview = isset($params['preview']) ? 1 : 0;
         if ($preview) {
             $previewSession->unsetAll();
             $previewSession->previewData = $params;
             $backToUrl = $this->getRequest()->getRequestUri();
             $previewSession->backToUrl = $backToUrl;
             $url = $this->_urlHelper->url(array('controller' => 'content', 'action' => 'preview', 'language' => $this->view->language), 'lang_default', true);
             $this->_redirect($url);
         }
         // Get content type
         $contentId = isset($params['content_id']) ? $params['content_id'] : 0;
         $userId = $auth->getIdentity()->user_id;
         $cntHasUsr = new Default_Model_ContentHasUser();
         $userIsOwner = $cntHasUsr->contentHasOwner($userId, $contentId);
         if ($userIsOwner) {
             if ($contentId != 0) {
                 $content = new Default_Model_Content();
                 $data = $content->getDataAsSimpleArray($contentId);
                 // Creating array for form data
                 $formData = array();
                 // Adding content type to form
                 $formData['content_type'] = $data['id_cty_cnt'];
                 // Adding content id to form
                 $formData['content_id'] = $contentId;
                 $formData['content_header'] = stripslashes($data['title_cnt']);
                 $modelCntHasTag = new Default_Model_ContentHasTag();
                 $keywords = $modelCntHasTag->getContentTags($data['id_cnt']);
                 $tags = "";
                 $tagCount = count($keywords);
                 for ($i = 0; $i < $tagCount; $i++) {
                     $tags .= $keywords[$i]['name_tag'];
                     if ($i != $tagCount - 1) {
                         $tags .= ', ';
                     }
                 }
                 $formData['content_keywords'] = stripslashes($tags);
                 $formData['content_textlead'] = stripslashes($data['lead_cnt']);
                 $formData['content_text'] = stripslashes($data['body_cnt']);
                 $modelCntHasRec = new Default_Model_ContentHasRelatedCompany();
                 $relComps = $modelCntHasRec->getContentRelComps($data['id_cnt']);
                 $recs = "";
                 $recCount = count($relComps);
                 for ($i = 0; $i < $recCount; $i++) {
                     $recs .= $relComps[$i]['name_rec'];
                     if ($i != $recCount - 1) {
                         $recs .= ', ';
                     }
                 }
                 $formData['content_related_companies'] = stripslashes($recs);
                 $formData['content_research'] = $data['research_question_cnt'];
                 $formData['content_opportunity'] = $data['opportunity_cnt'];
                 $formData['content_threat'] = $data['threat_cnt'];
                 $formData['content_solution'] = $data['solution_cnt'];
                 $formData['published_cnt'] = $data['published_cnt'];
                 $formData['content_references'] = $data['references_cnt'];
                 $languages = new Default_Model_Languages();
                 $idLngInd = $languages->getLangIdByLangName($this->view->language);
                 $allLanguages = $languages->getAllNamesAndIds();
                 $formData['languages'] = array();
                 $formData['languages'][0] = $this->view->translate("content-add-select-language");
                 foreach ($allLanguages as $lng) {
                     $formData['languages'][$lng['id_lng']] = $lng['name_lng'];
                 }
                 $finfoClasses = new Default_Model_FutureinfoClasses();
                 $allClasses = $finfoClasses->getAllNamesAndIds();
                 $formData['FutureinfoClasses'] = array();
                 $formData['FutureinfoClasses'][0] = $this->view->translate("content-add-select-finfo-classification");
                 foreach ($allClasses as $class) {
                     $formData['FutureinfoClasses'][$class['id_fic']] = $class['name_fic'];
                 }
                 // Getting innovation types from the database
                 $modelInnovationTypes = new Default_Model_InnovationTypes();
                 $innovationTypes = $modelInnovationTypes->getAllNamesAndIds();
                 // Getting the innovation type of the content
                 $modelCntHasIvt = new Default_Model_ContentHasInnovationTypes();
                 $formData['selected_ivt'] = $modelCntHasIvt->getInnovationTypeIdOfContent($data['id_cnt']);
                 // Adding all innovation types to form
                 $formData['InnovationTypes'] = array();
                 $formData['InnovationTypes'][0] = $this->view->translate("content-add-select-innovation");
                 foreach ($innovationTypes as $ivt) {
                     $formData['InnovationTypes'][$ivt['id_ivt']] = $ivt['name_ivt'];
                 }
                 // end foreach
                 if (empty($formData['InnovationTypes'])) {
                     $formData['InnovationTypes'] = array(0 => '----');
                 }
                 $languages = new Default_Model_Languages();
                 $idLngInd = $languages->getLangIdByLangName($this->view->language);
                 // Getting language of the content
                 $formData['content_language'] = $languages->getLangIdByLangName($data['language_cnt']);
                 // Getting the industry of the content
                 $modelCntHasInd = new Default_Model_ContentHasIndustries();
                 $cntInd = $modelCntHasInd->getIndustryIdOfContent($data['id_cnt']);
                 // Getting industries from the database
                 $modelIndustries = new Default_Model_Industries();
                 $industries = $modelIndustries->getNamesAndIdsById(0, $idLngInd);
                 // Getting all industries of the content
                 $industryIds = $modelIndustries->getAllContentIndustryIds($cntInd);
                 $formData['industryIds'] = $industryIds;
                 // Adding all industries of the content to form
                 $formData['selected_industry'] = $industryIds[0];
                 $formData['selected_division'] = $industryIds[1];
                 $formData['selected_group'] = $industryIds[2];
                 $formData['selected_class'] = $industryIds[3];
                 // Adding all industries to form
                 $formData['Industries'] = array();
                 $formData['Industries'][0] = $this->view->translate("content-add-select-industry");
                 foreach ($industries as $ind) {
                     $formData['Industries'][$ind['id_ind']] = $ind['name_ind'];
                 }
                 // end foreach
                 if (empty($formData['Industries'])) {
                     $formData['Industries'] = array(0 => '----');
                 }
                 // Adding all divisions to form
                 $formData['Divisions'] = array();
                 $formData['Divisions'][0] = $this->view->translate("content-add-select-division-no-industry");
                 if ($industryIds[0] != 0) {
                     $divisions = $modelIndustries->getNamesAndIdsById($industryIds[0], $idLngInd);
                     foreach ($divisions as $div) {
                         $formData['Divisions'][$div['id_ind']] = $div['name_ind'];
                     }
                     // end foreach
                 }
                 // Adding all groups to form
                 $formData['Groups'] = array();
                 $formData['Groups'][0] = $this->view->translate("content-add-select-group-no-division");
                 if ($industryIds[1] != 0) {
                     $groups = $modelIndustries->getNamesAndIdsById($industryIds[1], $idLngInd);
                     foreach ($groups as $grp) {
                         $formData['Groups'][$grp['id_ind']] = $grp['name_ind'];
                     }
                     // end foreach
                 }
                 $formData['Classes'] = array();
                 $formData['Classes'][0] = $this->view->translate("content-add-select-class-no-group");
                 // If there's no group selected
                 if ($industryIds[2] != 0) {
                     $classes = $modelIndustries->getNamesAndIdsById($industryIds[2], $idLngInd);
                     foreach ($classes as $class) {
                         $formData['Classes'][$class['id_ind']] = $class['name_ind'];
                     }
                     // end foreach
                 }
                 $modelContentTypes = new Default_Model_ContentTypes();
                 $contentType = $modelContentTypes->getTypeById($data['id_cty_cnt']);
                 $this->view->short_contenttype = $contentType;
                 $title_cnt = $content->getContentHeaderByContentId($data['id_cnt']);
                 $this->view->contentHeader = $title_cnt;
                 // Get contents filenames from database
                 $filesModel = new Default_Model_Files();
                 $filenames = $filesModel->getFilenamesByCntId($contentId);
                 $formData['filenames'] = $filenames;
                 // Form for content adding
                 $form = new Default_Form_EditContentForm(null, $formData, $contentId, $contentType, $this->view->language);
                 $form->populate($formData);
                 $this->view->form = $form;
                 $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
                 // populate form
                 if ($backFromPreview) {
                     // Get previewdata and populate it to form
                     $previewData = $previewSession->previewData;
                     $form->populate($previewData);
                     // Delete session data
                     $previewSession->unsetAll();
                 }
                 // If posted
                 if ($this->getRequest()->isPost()) {
                     // Get content data
                     $data = $this->getRequest()->getPost();
                     // Content id
                     $data['content_id'] = $contentId;
                     // If form data is valid, handle database insertions
                     $validForm = $form->isValid($data) ? true : isset($data['content_save']) && $data['content_save'] != '';
                     if ($validForm) {
                         // If form data is going to be published
                         if (isset($data['content_publish']) && $data['content_publish'] == 1) {
                             $data['publish'] = 1;
                             $message_error = 'content-publish-not-successful';
                         } elseif (isset($data['content_save']) && $data['content_save'] == 1) {
                             $data['publish'] = 0;
                             $message_error = 'content-save-not-successful';
                         }
                         // Content keywords
                         /* FIXED: split() is deprecated in PHP 5.3.0 -> and removed in
                          * PHP 6.0, so changed to explode(). Also trim(array) doesn't
                          * trim array values, so this is done with foreach now.
                          */
                         $keywords = array();
                         foreach (explode(',', $data['content_keywords']) as $keyword) {
                             if (trim($keyword) != "") {
                                 $keywords[] = strip_tags(trim($keyword));
                             }
                         }
                         $data['content_keywords'] = array_unique($keywords);
                         // Related companies
                         $relatedCompanies = array();
                         foreach (explode(',', $data['content_related_companies']) as $relatedCompany) {
                             if (trim($relatedCompany) != "") {
                                 $relatedCompanies[] = strip_tags(trim($relatedCompany));
                             }
                         }
                         $data['content_related_companies'] = array_unique($relatedCompanies);
                         // Get user id
                         $data['User']['id_usr'] = $auth->getIdentity()->user_id;
                         /*
                         							if($data['content_division'] == 0) {
                         								$data['content_industry_id'] = $data['content_industry'];
                         							} elseif($data['content_group'] == 0) {
                         								$data['content_industry_id'] = $data['content_division'];
                         							} elseif($data['content_class'] == 0) {
                         								$data['content_industry_id'] = $data['content_group'];
                         							} elseif($data['content_class'] != 0) {
                         								$data['content_industry_id'] = $data['content_class'];
                         							}*/
                         if ($data['content_language'] == 0) {
                             $data['content_language'] = $this->view->language;
                         } else {
                             $data['content_language'] = $languages->getLangNameByLangId($data['content_language']);
                         }
                         //echo "<pre>"; print_r($data); echo "</pre>"; die();
                         $data['files'] = $_FILES['content_file_upload'];
                         // Edit content
                         $content = new Default_Model_Content();
                         $oldData = $content->getContentRow($contentId);
                         $edit = $content->editContent($data);
                         $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
                         if ($edit) {
                             //$favourite = new Default_Model_UserHasFavourites();
                             //$favouriteEdited = $favourite->setFavouriteModifiedTrue($edit);
                             if ($oldData['published_cnt'] == 1 || isset($data['content_publish']) && $data['content_publish'] == 1) {
                                 $url = $this->_urlHelper->url(array('content_id' => $edit, 'language' => $this->view->language), 'content_shortview', true);
                                 $this->_redirect($url);
                             } else {
                                 /*$message_ok = $this->view->translate('content-save-successful');
                                 		$message_ok .= ' ('.$content->getContentHeaderByContentId($edit).')';
                                 		
                                 		$message_ok .= '<br /><br />' . $this->view->translate('content-save-successful2');
                                 		$userpage = $this->_urlHelper->url(array('controller' => 'account',
                                                                                                       'action' => 'view', 
                                                                                                       'user' => $auth->getIdentity()->username, 
                                                                                                       'language' =>  $this->view->language), 
                                                                                                 'lang_default', true);
                                 		$message_ok .= ' <a href="'.$userpage.'">'.$this->view->translate('content-save-successful3').'</a>';
                                 		$message_ok .= ' ' . $this->view->translate('content-save-successful4');
                                 		$this->flash($message_ok, $url);*/
                                 $url = $this->_urlHelper->url(array('controller' => 'account', 'action' => 'view', 'language' => $this->view->language, 'user' => $auth->getIdentity()->username), 'lang_default', true);
                                 $this->_redirect($url);
                             }
                         } else {
                             $this->flash($message_error, $url);
                         }
                     } else {
                         // What is this?
                         //Zend_Debug::dump($form); die;
                     }
                     /*
                     						 // Content keywords
                     						 $keywords = split(', ', trim($data['content_keywords']));
                     						 $data['content_keywords'] = array_unique($keywords);
                     
                     						 if($data['content_group'] == 0) {
                     						 $data['content_industry_id'] = $data['content_division'];
                     						 } elseif($data['content_class'] == 0) {
                     						 $data['content_industry_id'] = $data['content_group'];
                     						 } elseif($data['content_class'] != 0) {
                     						 $data['content_industry_id'] = $data['content_class'];
                     						 }
                     
                     						 // Update the edited content to database
                     						 $content = new Default_Model_Content();
                     						 if($content->editContent($data)) {
                     						 $message = 'content-edit-successful';
                     						 } else {
                     						 $message = 'content-edit-not-successful';
                     						 }
                     						 $this->flash($message, $url);*/
                 }
             } else {
                 $message = 'content-edit-no-id';
                 $this->flash($message, $url);
             }
         } else {
             $message = 'content-edit-not-owner';
             $this->flash($message, $url);
         }
     } else {
         // If not logged, redirecting to system message page
         $message = 'content-edit-not-logged';
         $this->flash($message, $url);
     }
     // end else
 }
コード例 #2
0
ファイル: AccountSettingsForm.php プロジェクト: jannev/site
 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'));
 }