private function _setUserContact($user) { $contact = $user->createContact(); $company = \GO\Addressbook\Model\Company::model()->findSingleByAttribute('name', 'ACME Rocket Powered Products'); if (!$company) { $company = new \GO\Addressbook\Model\Company(); $company->setAttributes(array('addressbook_id' => $contact->addressbook_id, 'name' => 'ACME Rocket Powered Products', 'address' => '1111 Broadway', 'address_no' => '', 'zip' => '10019', 'city' => 'New York', 'state' => 'NY', 'country' => 'US', 'post_address' => '1111 Broadway', 'post_address_no' => '', 'post_zip' => '10019', 'post_city' => 'New York', 'post_state' => 'NY', 'post_country' => 'US', 'phone' => '(555) 123-4567', 'fax' => '(555) 123-4567', 'email' => '*****@*****.**', 'homepage' => 'http://www.acmerpp.demo', 'bank_no' => '', 'vat_no' => 'US 1234.56.789.B01', 'user_id' => 1, 'comment' => 'The name Acme became popular for businesses by the 1920s, when alphabetized business telephone directories such as the Yellow Pages began to be widespread. There were a flood of businesses named Acme (some of these still survive[1]). For example, early Sears catalogues contained a number of products with the "Acme" trademark, including anvils, which are frequently used in Warner Bros. cartoons.[2]')); $company->save(); } $contact->company_id = $company->id; $contact->function = 'CEO'; $contact->cellular = '06-12345678'; $contact->address = '1111 Broadway'; $contact->address_no = ''; $contact->zip = '10019'; $contact->city = 'New York'; $contact->state = 'NY'; $contact->country = 'US'; $contact->save(); }
protected function actionProfile() { $user = \GO::user(); $contact = $user->contact; //set additional required fields $contact->setValidationRule('address', 'required', true); $contact->setValidationRule('zip', 'required', true); $contact->setValidationRule('city', 'required', true); // $user->setValidationRule('passwordConfirm', 'required', false); $user->setValidationRule('password', 'required', false); \GO::config()->password_validate = false; if ($contact->company) { $company = $contact->company; } else { $company = new \GO\Addressbook\Model\Company(); $company->addressbook_id = $contact->addressbook_id; } if (\GO\Base\Util\Http::isPostRequest()) { if (!empty($_POST['currentPassword']) && !empty($_POST['User']['password'])) { if (!$user->checkPassword($_POST['currentPassword'])) { GOS::site()->notifier->setMessage('error', "Huidig wachtwoord onjuist"); unset($_POST['User']['password']); unset($_POST['User']['passwordConfirm']); } } else { unset($_POST['User']['password']); unset($_POST['User']['passwordConfirm']); } $user->setAttributes($_POST['User']); $contact->setAttributes($_POST['Contact']); $company->setAttributes($_POST['Company']); $company->checkVatNumber = true; if (!empty($_POST['Company']['postAddressIsEqual'])) { $company->setPostAddressFromVisitAddress(); } if (!GOS::site()->notifier->hasMessage('error') && $user->validate() && $contact->validate() && $company->validate()) { \GO::setIgnoreAclPermissions(); //allow guest to create user $user->save(); $company->save(); $contact->company_id = $company->id; $contact->save(); GOS::site()->notifier->setMessage('success', GOS::t('formEditSuccess')); } else { GOS::site()->notifier->setMessage('error', "Please check the form for errors"); } } $company->post_address_is_address = false; if ($company->address == $company->post_address && $company->address_no == $company->post_address_no && $company->city == $company->post_city) { $company->post_address_is_address = true; } //clear values for form $user->password = ""; $user->passwordConfirm = ""; echo $this->render('profile', array('user' => $user, 'contact' => $contact, 'company' => $company)); }
protected function actionContact() { //GOS::site()->config->contact_addressbook_id; if (\GO\Base\Util\Http::isPostRequest()) { if (isset($_POST['Addressbook']['name'])) { $addressbookModel = \GO\Addressbook\Model\Addressbook::model()->findSingleByAttribute('name', $_POST['Addressbook']['name']); } else { $addressbookModel = \GO\Addressbook\Model\Addressbook::model()->findByPk($_POST['Addressbook']['id']); } if (!$addressbookModel) { throw new \Exception(sprintf(\GO::t('addressbookNotFound', 'defaultsite'), $_POST['Addressbook']['name'])); } $contactModel = \GO\Addressbook\Model\Contact::model()->findSingleByAttributes(array('email' => $_POST['Contact']['email'], 'addressbook_id' => $addressbookModel->id)); if (!$contactModel) { $contactModel = new \GO\Addressbook\Model\Contact(); $contactModel->addressbook_id = $addressbookModel->id; } $contactModel->setValidationRule('first_name', 'required', true); $contactModel->setValidationRule('last_name', 'required', true); $contactModel->setValidationRule('email', 'required', true); $companyModel = \GO\Addressbook\Model\Company::model()->findSingleByAttributes(array('name' => $_POST['Company']['name'], 'addressbook_id' => $addressbookModel->id)); if (!$companyModel) { $companyModel = new \GO\Addressbook\Model\Company(); $companyModel->addressbook_id = $addressbookModel->id; } $companyModel->setValidationRule('name', 'required', true); $companyModel->setAttributes($_POST['Company']); if ($companyModel->validate()) { $companyModel->save(); $contactModel->company_id = $companyModel->id; } $contactModel->setAttributes($_POST['Contact']); if ($contactModel->validate()) { $saveSuccess = $contactModel->save(); if ($saveSuccess) { // Add to mailings. $addresslists = !empty($_POST['Addresslist']) ? $_POST['Addresslist'] : array(); foreach ($addresslists as $addresslistName => $checked) { if (!empty($checked)) { $addresslistModel = \GO\Addressbook\Model\Addresslist::model()->findSingleByAttribute('name', $addresslistName); if ($addresslistModel) { $addresslistContactModel = \GO\Addressbook\Model\AddresslistContact::model()->findSingleByAttributes(array('contact_id' => $contactModel->id, 'addresslist_id' => $addresslistModel->id)); if (!$addresslistContactModel) { $addresslistContactModel = new \GO\Addressbook\Model\AddresslistContact(); $addresslistContactModel->contact_id = $contactModel->id; $addresslistContactModel->addresslist_id = $addresslistModel->id; $addresslistContactModel->save(); } } } } echo $this->render('contactform_done'); } else { echo $this->render('contactform', array('contact' => $contactModel, 'company' => $companyModel, 'addressbook' => $addressbookModel)); } } else { $validationErrors = $contactModel->getValidationErrors(); foreach ($validationErrors as $valError) { echo $valError; } echo $this->render('contactform', array('contact' => $contactModel, 'company' => $companyModel, 'addressbook' => $addressbookModel)); } } else { $addressbookModel = new \GO\Addressbook\Model\Addressbook(); $contactModel = new \GO\Addressbook\Model\Contact(); $companyModel = new \GO\Addressbook\Model\Company(); echo $this->render('contactform', array('contact' => $contactModel, 'company' => $companyModel, 'addressbook' => $addressbookModel)); } }