/**
  * Returns field definition.
  *
  * @param bool $reload True to reload data from server. False to use the cached value (if present).
  * @return kyCustomFieldDefinition
  */
 public function getDefinition($reload = false)
 {
     if ($this->definition !== null && !$reload) {
         return $this->definition;
     }
     /** @noinspection PhpUndefinedMethodInspection */
     $this->definition = kyCustomFieldDefinition::getAll()->filterByName($this->getName())->first();
     return $this->definition;
 }
Example #2
0
 /**
  * Returns field definition.
  *
  * @param bool $reload True to reload data from server. False to use the cached value (if present).
  * @return kyCustomFieldDefinition
  */
 public function getDefinition($reload = false)
 {
     if ($this->definition !== null && !$reload) {
         return $this->definition;
     }
     $this->definition = kyCustomFieldDefinition::getAll()->filterByName($this->getName())->first();
     return $this->definition;
 }
 /**
  * Clears custom field definitions cache.
  */
 public static function clearCache()
 {
     self::$definitions = null;
 }
    $smarty->assign('_departmentFormURL', WHMCS_URL . 'submitticket.php?step=2');
    $templatefile = "selectdepartment";
} else {
    if ($_REQUEST['step'] == 2) {
        if (!empty($_POST['departmentid'])) {
            // get priorities of 'public' type only
            $_ticketPriorityContainer = kyTicketPriority::getAll()->filterByType(kyTicketPriority::TYPE_PUBLIC)->orderByDisplayOrder();
            $_ticketPriorities = [];
            foreach ($_ticketPriorityContainer as $_ticketPriorityObject) {
                $_ticketPriority['priorityid'] = $_ticketPriorityObject->getId();
                $_ticketPriority['title'] = $_ticketPriorityObject->getTitle();
                $_ticketPriorities[] = $_ticketPriority;
            }
            $smarty->assign('_ticketPriorities', $_ticketPriorities);
            //Get Ticket Custom fields
            $_customFieldObjectContainer = kyCustomFieldDefinition::getAll();
            $_customFields = [];
            foreach ($_customFieldObjectContainer as $_customFieldObject) {
                $_customFields[$_customFieldObject->getGroupId()][] = RenderCustomField($_customFieldObject, MODE_INSERT);
            }
            // Custom field groups
            $_customFieldGroupContainer = [];
            // fetch custom field groups based on selected department
            $_customFieldGroupObjectContainer = kyCustomFieldGroup::getAll(['departmentid' => $_POST['departmentid']])->filterByGroupType([kyCustomFieldGroup::GROUP_STAFFTICKET, kyCustomFieldGroup::GROUP_STAFFUSERTICKET, kyCustomFieldGroup::GROUP_USERTICKET]);
            foreach ($_customFieldGroupObjectContainer as $_customFieldGroupObject) {
                if (isset($_customFields[$_customFieldGroupObject->getId()])) {
                    $_customFieldGroup = [];
                    $_customFieldGroup['title'] = $_customFieldGroupObject->getTitle();
                    $_customFieldGroup['_fields'] = $_customFields[$_customFieldGroupObject->getId()];
                    $_customFieldGroupContainer[$_customFieldGroupObject->getId()] = $_customFieldGroup;
                }
 /**
  * Returns field value from POST data.
  *
  * @param kyCustomFieldDefinition $custom_field_definition Custom field definition.
  * @throws kyException
  * @return mixed Field value.
  */
 function ky_get_post_value($custom_field_definition)
 {
     $field_name = $custom_field_definition->getName();
     $required = $custom_field_definition->getIsRequired();
     $regexp = $custom_field_definition->getRegexpValidate();
     $as_array = $custom_field_definition->getType() === kyCustomFieldDefinition::TYPE_CHECKBOX || $custom_field_definition->getType() === kyCustomFieldDefinition::TYPE_MULTI_SELECT;
     if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
         return null;
     }
     if (!array_key_exists($field_name, $_POST)) {
         if ($required) {
             throw new kyException("Field '%s' is required.", $custom_field_definition->getTitle());
         }
         return null;
     }
     if ($as_array) {
         $value = $_POST[$field_name];
         if (!is_array($value)) {
             if (strlen(trim($value)) > 0) {
                 $value = array($value);
             } else {
                 $value = array();
             }
         }
         if ($required && count($value) === 0) {
             throw new kyException("Field '%s' is required.", $custom_field_definition->getTitle());
         }
     } else {
         $value = trim($_POST[$field_name]);
         if ($required && strlen($value) === 0) {
             throw new kyException("Field '%s' is required.", $custom_field_definition->getTitle());
         }
         if (strlen($regexp) > 0 && !preg_match($regexp, $value)) {
             throw new kyException("Error validating field '%s'.", $custom_field_definition->getTitle());
         }
     }
     return $value;
 }