VbzCart/v1/class/vtCartData EmailPhone
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
- file: cart/cart.data.fg-ep.php
- used by: vcCartData_Contact
/*::::
REQUIRES: PhoneNumber(), EmailAddress(), FieldName_Prefix()
*/
trait vtCartData_EmailPhone {
// ++ FIELD NAMES ++ //
protected function FieldName_forContactPhone() {
return $this->FieldName_Prefix().'addr-phone';
}
protected function FieldName_forContactEmail() {
return $this->FieldName_Prefix().'addr-email';
}
// -- FIELD NAMES -- //
// ++ FIELD OBJECTS ++ //
private $oField_email;
protected function EmailField() {
if (empty($this->oField_email)) {
$oField = new fcFormField_Text(
$this->FormObject(),
$this->FieldName_forContactEmail()
);
$oField->SetDefault($this->DefaultEmail());
$oCtrl = new fcFormControl_HTML($oField,array('size'=>30));
$oCtrl->DisplayAlias('email address');
$this->oField_email = $oField;
}
return $this->oField_email;
}
private $oField_phone;
protected function PhoneField() {
if (empty($this->oField_phone)) {
$oField = new fcFormField_Text(
$this->FormObject(),
$this->FieldName_forContactPhone()
);
$oCtrl = new fcFormControl_HTML($oField,array('size'=>20));
$oCtrl->DisplayAlias('phone number');
$oCtrl->Required(FALSE);
$this->oField_phone = $oField;
}
return $this->oField_phone;
}
protected function LoadContactFields() {
// invoke controls to add them to the form
$this->EmailField();
$this->PhoneField();
// copy blob data to field objects
$this->FormObject()->LoadFields_fromBlob();
}
// -- FIELD OBJECTS -- //
// ++ FORM: FIELD VALUES ++ //
public function GetEmailFieldValue() {
$sfName = $this->FieldName_forContactEmail();
return $this->GetValue($sfName);
}
public function GetPhoneFieldValue() {
$sfName = $this->FieldName_forContactPhone();
return $this->GetValue($sfName);
}
// -- FORM: FIELD VALUES -- //
// ++ FORM I/O : CAPTURE ++ //
public function CaptureContact() {
$this->LoadContactFields();
$arStat = $this->FormObject()->Receive($_POST);
$this->AddMissing($arStat['blank']);
}
// -- FORM I/O : CAPTURE -- //
// ++ FORM I/O : RENDER ++ //
/*----
ACTION: Renders email/phone controls
ASSUMES: They have already been invoked (added to the form)
*/
public function RenderContact($doEdit) {
$this->LoadContactFields();
$oTplt = $this->ContactTemplate($doEdit);
$arCtrls = $this->FormObject()->RenderControls($doEdit);
$oTplt->SetVariableValues($arCtrls);
return $oTplt->RenderRecursive();
}
protected function RenderUserControls() {
/* 2018-02-27 Don't the login controls respond appropriately to logged-in state now?
if ($this->AppObject()->UserIsLoggedIn()) {
// render logout stuff
$out = $this->PageObject()->RenderLogout_Controls();
} else {
// render login stuff
$out = $this->PageObject()->RenderLogin_Controls();
} */
// 2018-02-27 Trying this:
$out = $this->PageObject()->RenderLogin_Controls();
return $out;
}
// -- FORM I/O : RENDER -- //
// ++ FORM TEMPLATE ++ //
protected function ContactTemplate($doEdit) {
$htEmail = $this->FieldName_forContactEmail();
$htPhone = $this->FieldName_forContactPhone();
$htPhoneSfx = $doEdit?' (optional)':''; // only show "optional" when editing
$htUser = $this->RenderUserControls();
$htPrecede = $this->ContactTemplate_PrecedingLines();
$htFollow = $this->ContactTemplate_FollowingLines();
$sTplt = <<<__END__
<table class="form-block" id="contact">
$htPrecede
<tr><td colspan=2 align=center><hr>$htUser<hr></td></tr>
<tr><td align=right valign=middle>Email:</td><td>[[$htEmail]]</td></tr>
<tr><td align=right valign=middle>Phone:</td><td>[[$htPhone]]$htPhoneSfx</td></tr>
$htFollow
</table>
__END__;
return new fcTemplate_array('[[',']]',$sTplt);
}
// PURPOSE: for user-classes to override if they want to add additional lines before the main block
protected function ContactTemplate_PrecedingLines() {
return NULL;
}
// PURPOSE: for user-classes to override if they want to add additional lines after the main block
protected function ContactTemplate_FollowingLines() {
return "GOT TO HERE";
return NULL;
}
// -- FORM TEMPLATE -- //
}