X-Git-Url: https://git.mxchange.org/?p=shipsimu.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fhelper%2Fweb%2Fclass_WebFormHelper.php;h=79de8131d6a120ef53d4b2eeeb86ce1b22daa3d8;hp=fc14638408cca3c5214e30ed4887e4ba709d54ff;hb=1e2209b0314919177e08f7ec626e9eb2e1f90d70;hpb=11c0ba60cb6c044928f41e93cc98d214b1d8ad7c diff --git a/inc/classes/main/helper/web/class_WebFormHelper.php b/inc/classes/main/helper/web/class_WebFormHelper.php index fc14638..79de813 100644 --- a/inc/classes/main/helper/web/class_WebFormHelper.php +++ b/inc/classes/main/helper/web/class_WebFormHelper.php @@ -22,6 +22,11 @@ * along with this program. If not, see . */ class WebFormHelper extends BaseHelper { + /** + * Instance to the class which provides field values + */ + private $valueInstance = null; + /** * Wether the form tag is opened (keep at false or else your forms will * never work!) @@ -49,13 +54,13 @@ class WebFormHelper extends BaseHelper { private $subGroupName = ""; // Class Constants - const EXCEPTION_FORM_NAME_INVALID = 0xb00; - const EXCEPTION_CLOSED_FORM = 0xb01; - const EXCEPTION_OPENED_FORM = 0xb02; - const EXCEPTION_UNEXPECTED_CLOSED_GROUP = 0xb03; + const EXCEPTION_FORM_NAME_INVALID = 0x030; + const EXCEPTION_CLOSED_FORM = 0x031; + const EXCEPTION_OPENED_FORM = 0x032; + const EXCEPTION_UNEXPECTED_CLOSED_GROUP = 0x033; /** - * Private constructor + * Protected constructor * * @return void */ @@ -64,7 +69,10 @@ class WebFormHelper extends BaseHelper { parent::__construct(__CLASS__); // Set part description - $this->setObjectDescription("HTML-Formularhilfsklasse"); + $this->setObjectDescription("Helper class for HTML forms"); + + // Create unique ID number + $this->generateUniqueId(); } /** @@ -95,6 +103,24 @@ class WebFormHelper extends BaseHelper { return $helperInstance; } + /** + * Pre-fetches field default values from the given registry key instance into this class + * + * @param $registryKey + * @return void + * @throws NullPointerException If an instance from registry is null + */ + public function prefetchFieldValues ($registryKey) { + // Get the required instance + $this->valueInstance = Registry::getRegistry()->getInstance($registryKey); + + // Is the instance valid? + if (is_null($this->valueInstance)) { + // Throw an exception + throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); + } // END - if + } + /** * Add the form tag or close it an already opened form tag * @@ -108,7 +134,7 @@ class WebFormHelper extends BaseHelper { if (($this->formOpened === false) && ($formName === false)) { // Thrown an exception throw new InvalidFormNameException ($this, self::EXCEPTION_FORM_NAME_INVALID); - } + } // END - if // Close the form is default $formContent = ""; @@ -116,8 +142,9 @@ class WebFormHelper extends BaseHelper { // Check wether we shall open or close the form if ($this->formOpened === false) { // Add HTML code - $formContent = sprintf("
getConfigInstance()->readConfig('base_url'), $this->getConfigInstance()->readConfig('form_action'), $this->getConfigInstance()->readConfig('form_method'), $this->getConfigInstance()->readConfig('form_target') @@ -145,9 +172,9 @@ class WebFormHelper extends BaseHelper { if ($this->groupOpened === true) { // Then automatically close it here $this->addFormGroup("", ""); - } + } // END - if - // @TODO Add some unique PIN here to bypass problems with some browser and/or extensions + /* @todo Add some unique PIN here to bypass problems with some browser and/or extensions */ // Simply close it $this->formOpened = false; } @@ -160,8 +187,8 @@ class WebFormHelper extends BaseHelper { * Add a text input tag to the form or throw an exception if it is not yet * opened. The field's name will be set as id. * - * @param $fieldName Input field name - * @param $fieldValue Input default value (default: empty) + * @param $fieldName Input field name + * @param $fieldValue Input default value (default: empty) * @return void * @throws FormClosedException If the form is not yet opened */ @@ -170,10 +197,10 @@ class WebFormHelper extends BaseHelper { if ($this->formOpened === false) { // Throw an exception throw new FormClosedException (array($this, $fieldName), self::EXCEPTION_CLOSED_FORM); - } + } // END - if // Generate the content - $inputContent = sprintf("", + $inputContent = sprintf("", $fieldName, $fieldName, $fieldValue @@ -183,6 +210,21 @@ class WebFormHelper extends BaseHelper { $this->addContent($inputContent); } + /** + * Add a text input tag to the form with pre-loaded default value + * + * @param $fieldName Input field name + * @return void + */ + public function addInputTextFieldWithDefault ($fieldName) { + // Get the value from instance + $fieldValue = call_user_func_array(array($this->valueInstance, "getField"), array($fieldName)); + //* DEBUG: */ echo __METHOD__.":".$fieldName."=".$fieldValue."
\n"; + + // Add the text field + $this->addInputTextField($fieldName, $fieldValue); + } + /** * Add a password input tag to the form or throw an exception if it is not * yet opened. The field's name will be set as id. @@ -197,10 +239,10 @@ class WebFormHelper extends BaseHelper { if ($this->formOpened === false) { // Throw an exception throw new FormClosedException (array($this, $fieldName), self::EXCEPTION_CLOSED_FORM); - } + } // END - if // Generate the content - $inputContent = sprintf("", + $inputContent = sprintf("", $fieldName, $fieldName, $fieldValue @@ -224,7 +266,7 @@ class WebFormHelper extends BaseHelper { if ($this->formOpened === false) { // Throw an exception throw new FormClosedException (array($this, $fieldName), self::EXCEPTION_CLOSED_FORM); - } + } // END - if // Generate the content $inputContent = sprintf("", @@ -250,14 +292,14 @@ class WebFormHelper extends BaseHelper { if ($this->formOpened === false) { // Throw an exception throw new FormClosedException (array($this, $fieldName), self::EXCEPTION_CLOSED_FORM); - } + } // END - if // Set wether the check box is checked... $checked = " checked=\"checked\""; if ($fieldChecked === false) $checked = " "; // Generate the content - $inputContent = sprintf("", + $inputContent = sprintf("", $fieldName, $fieldName, $checked @@ -280,7 +322,7 @@ class WebFormHelper extends BaseHelper { if ($this->formOpened === false) { // Throw an exception throw new FormClosedException (array($this, "reset"), self::EXCEPTION_CLOSED_FORM); - } + } // END - if // Generate the content $inputContent = sprintf("", @@ -305,7 +347,7 @@ class WebFormHelper extends BaseHelper { if ($this->formOpened === false) { // Throw an exception throw new FormClosedException (array($this, "submit"), self::EXCEPTION_CLOSED_FORM); - } + } // END - if // Generate the content $inputContent = sprintf("", @@ -332,13 +374,13 @@ class WebFormHelper extends BaseHelper { if ($this->formOpened === false) { // Throw exception here throw new FormClosedException(array($this, $groupName), self::EXCEPTION_CLOSED_FORM); - } + } // END - if // At least the group name should be set if ((empty($groupName)) && ($this->groupOpened === false)) { // Throw exception here throw new EmptyVariableException(array($this, 'groupName'), self::EXCEPTION_UNEXPECTED_EMPTY_STRING); - } + } // END - if // Initialize content with closing div by default $content = " \n"; @@ -369,7 +411,7 @@ class WebFormHelper extends BaseHelper { if ($this->subGroupOpened === true) { // Close it here $this->addFormSubGroup("", ""); - } + } // END - if // Add the content $this->addContent($content); @@ -380,7 +422,7 @@ class WebFormHelper extends BaseHelper { // All call it again if the group name is not empty if (!empty($groupName)) { $this->addFormGroup($groupName, $groupText); - } + } // END - if } } @@ -400,13 +442,13 @@ class WebFormHelper extends BaseHelper { if ($this->groupOpened === false) { // Throw exception here throw new FormGroupClosedException(array($this, $subGroupName), self::EXCEPTION_UNEXPECTED_CLOSED_GROUP); - } + } // END - if // At least the sub group name should be set if ((empty($subGroupName)) && ($this->subGroupOpened === false)) { // Throw exception here throw new EmptyVariableException(array($this, 'groupName'), self::EXCEPTION_UNEXPECTED_EMPTY_STRING); - } + } // END - if // Initialize content with closing div by default $content = " \n"; @@ -443,7 +485,7 @@ class WebFormHelper extends BaseHelper { // All call it again if sub group name is not empty if (!empty($subGroupName)) { $this->addFormSubGroup($subGroupName, $subGroupText); - } + } // END - if } } @@ -461,7 +503,7 @@ class WebFormHelper extends BaseHelper { if ($this->formOpened === false) { // Throw an exception throw new FormClosedException (array($this, $fieldName), self::EXCEPTION_CLOSED_FORM); - } + } // END - if // Set the block type $block = "div"; @@ -494,13 +536,13 @@ class WebFormHelper extends BaseHelper { if ($this->formOpened === false) { // Throw an exception throw new FormClosedException (array($this, "form_notes"), self::EXCEPTION_CLOSED_FORM); - } + } // END - if // Is a group open? if ($this->groupOpened === true) { // Then automatically close it here - $this->addFormGroup("unknown", ""); - } + $this->addFormGroup("", ""); + } // END - if // Generate the content $inputContent = sprintf("
@@ -543,6 +585,16 @@ class WebFormHelper extends BaseHelper { return $required; } + /** + * Checks wether email addresses can only be once used + * + * @return $isUnique + */ + public function ifEmailMustBeUnique () { + $isUnique = ($this->getConfigInstance()->readConfig('register_email_unique') == "Y"); + return $isUnique; + } + /** * Checks wether the specified chat protocol is enabled in this form * @@ -553,9 +605,109 @@ class WebFormHelper extends BaseHelper { return $required; } + /** + * Checks wether login is enabled or disabled + * + * @return $isEnabled Wether the login is enabled or disabled + */ + public function ifLoginIsEnabled () { + $isEnabled = ($this->getConfigInstance()->readConfig('login_enabled') == "Y"); + return $isEnabled; + } + + /** + * Checks wether login shall be done by username + * + * @return $isEnabled Wether the login shall be done by username + */ + public function ifLoginWithUsername () { + $isEnabled = ($this->getConfigInstance()->readConfig('login_type') == "username"); + return $isEnabled; + } + + /** + * Checks wether login shall be done by email + * + * @return $isEnabled Wether the login shall be done by email + */ + public function ifLoginWithEmail () { + $isEnabled = ($this->getConfigInstance()->readConfig('login_type') == "email"); + return $isEnabled; + } + + /** + * Checks wether guest login is allowed + * + * @return $isAllowed Wether guest login is allowed + */ + public function ifGuestLoginAllowed () { + $isAllowed = ($this->getConfigInstance()->readConfig('guest_login_allowed') == "Y"); + return $isAllowed; + } + + /** + * Checks wether the email address change must be confirmed + * + * @return $requireConfirm Wether email change must be confirmed + */ + public function ifEmailChangeRequireConfirmation () { + $requireConfirm = ($this->getConfigInstance()->readConfig('email_change_confirmation') == "Y"); + return $requireConfirm; + } + + /** + * Checks wether the rules has been updated + * + * @return $rulesUpdated Wether rules has been updated + */ + public function ifRulesHaveChanged () { + /* @todo Implement check if rules have been changed */ + return false; + } + + /** + * Checks wether email change is allowed + * + * @return $emailChange Wether changing email address is allowed + */ + public function ifEmailChangeAllowed () { + $emailChange = ($this->getConfigInstance()->readConfig('email_change_allowed') == "Y"); + return $emailChange; + } + + /** + * Checks wether the user account is unconfirmed + * + * @return $isUnconfirmed Wether the user account is unconfirmed + */ + public function ifUserAccountUnconfirmed () { + $isUnconfirmed = ($this->getField('user_status') === $this->getConfigInstance()->readConfig('user_status_unconfirmed')); + return $isUnconfirmed; + } + + /** + * Checks wether the user account is locked + * + * @return $isUnconfirmed Wether the user account is locked + */ + public function ifUserAccountLocked () { + $isUnconfirmed = ($this->getField('user_status') === $this->getConfigInstance()->readConfig('user_status_locked')); + return $isUnconfirmed; + } + + /** + * Checks wether the user account is a guest + * + * @return $isUnconfirmed Wether the user account is a guest + */ + public function ifUserAccountGuest () { + $isUnconfirmed = ($this->getField('user_status') === $this->getConfigInstance()->readConfig('user_status_guest')); + return $isUnconfirmed; + } + /** * Flushs the content out (not yet secured against open forms, etc.!) or - * throw an exception if it is not yet closed + * close the form automatically * * @return void * @throws FormOpenedException If the form is still open @@ -563,13 +715,27 @@ class WebFormHelper extends BaseHelper { public function flushContent () { // Is the form still open? if ($this->formOpened === true) { - // Throw an exception - throw new FormOpenedException ($this, self::EXCEPTION_OPENED_FORM); - } + // Close the form automatically + $this->addFormTag(); + } // END - if // Send content to template engine $this->getTemplateInstance()->assignVariable($this->formName, $this->getContent()); } + + /** + * Getter for direct field values + * + * @param $fieldName Name of the field we shall fetch + * @return $fieldValue Value from field + */ + public function getField ($fieldName) { + // Get the field value + $fieldValue = call_user_func_array(array($this->valueInstance, "getField"), array($fieldName)); + + // Return it + return $fieldValue; + } } // [EOF]