| Conditions | 24 |
| Paths | 3136 |
| Total Lines | 252 |
| Code Lines | 177 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php declare(strict_types=1); |
||
| 497 | function editField() |
||
| 498 | { |
||
| 499 | $eventsrv = Xhelp\EventService::getInstance(); |
||
| 500 | $session = Xhelp\Session::getInstance(); |
||
| 501 | $regex_array = getRegexArray(); |
||
| 502 | $helper = Helper::getInstance(); |
||
| 503 | |||
| 504 | if (!isset($_REQUEST['id'])) { |
||
| 505 | redirect_header(Xhelp\Utility::createURI(XHELP_ADMIN_URL . '/fields.php', ['op' => 'manageDepartments'], false), 3, _AM_XHELP_MESSAGE_NO_FIELD); |
||
| 506 | } |
||
| 507 | |||
| 508 | $fld_id = Request::getInt('id', 0, 'REQUEST'); |
||
| 509 | /** @var \XoopsModules\Xhelp\TicketFieldHandler $ticketFieldHandler */ |
||
| 510 | $ticketFieldHandler = $helper->getHandler('TicketField'); |
||
| 511 | if (!$ticketField = $ticketFieldHandler->get($fld_id)) { |
||
| 512 | redirect_header(Xhelp\Utility::createURI(XHELP_ADMIN_URL . '/fields.php', ['op' => 'manageDepartments'], false), 3, _AM_XHELP_MESSAGE_NO_FIELD); |
||
| 513 | } |
||
| 514 | |||
| 515 | if (isset($_POST['editField'])) { |
||
| 516 | //Validate Field Information |
||
| 517 | $has_errors = false; |
||
| 518 | $errors = []; |
||
| 519 | $values = parseValues($_POST['fld_values']); |
||
| 520 | |||
| 521 | if (!$control = xhelpGetControl($_POST['fld_controltype'])) { |
||
| 522 | $has_errors = true; |
||
| 523 | $errors['fld_controltype'][] = _AM_XHELP_VALID_ERR_CONTROLTYPE; |
||
| 524 | } |
||
| 525 | |||
| 526 | $fld_needslength = $control['needs_length']; |
||
| 527 | $fld_needsvalues = $control['needs_values']; |
||
| 528 | |||
| 529 | //name field filled? |
||
| 530 | if ('' === trim(\Xmf\Request::getString('fld_name', '', 'POST'))) { |
||
| 531 | $has_errors = true; |
||
| 532 | $errors['fld_name'][] = _AM_XHELP_VALID_ERR_NAME; |
||
| 533 | } |
||
| 534 | |||
| 535 | //fieldname filled |
||
| 536 | if ('' === trim(\Xmf\Request::getString('fld_fieldname', '', 'POST'))) { |
||
| 537 | $has_errors = true; |
||
| 538 | $errors['fld_fieldname'][] = _AM_XHELP_VALID_ERR_FIELDNAME; |
||
| 539 | } |
||
| 540 | |||
| 541 | //fieldname unique? |
||
| 542 | $criteria = new \CriteriaCompo(new \Criteria('id', (string)$fld_id, '!=')); |
||
| 543 | $criteria->add(new \Criteria('fieldname', \Xmf\Request::getString('fld_fieldname', '', 'POST'))); |
||
| 544 | if ($ticketFieldHandler->getCount($criteria)) { |
||
| 545 | $has_errors = true; |
||
| 546 | $errors['fld_fieldname'][] = _AM_XHELP_VALID_ERR_FIELDNAME_UNIQUE; |
||
| 547 | } |
||
| 548 | |||
| 549 | //Length filled |
||
| 550 | if (0 == Request::getInt('fld_length', 0, 'POST') && true === $fld_needslength) { |
||
| 551 | $has_errors = true; |
||
| 552 | $errors['fld_length'][] = sprintf(_AM_XHELP_VALID_ERR_LENGTH, _XHELP_FIELD_MINLEN, _XHELP_FIELD_MAXLEN); |
||
| 553 | } |
||
| 554 | |||
| 555 | //default value in value set? |
||
| 556 | if (count($values)) { |
||
| 557 | if (!in_array($_POST['fld_defaultvalue'], $values) |
||
| 558 | && !array_key_exists($_POST['fld_defaultvalue'], $values)) { |
||
| 559 | $has_errors = true; |
||
| 560 | $errors['fld_defaultvalue'][] = _AM_XHELP_VALID_ERR_DEFAULTVALUE; |
||
| 561 | } |
||
| 562 | |||
| 563 | //length larger than longest value? |
||
| 564 | $length = Request::getInt('fld_length', 0, 'POST'); |
||
| 565 | foreach ($values as $key => $value) { |
||
| 566 | if (mb_strlen($key) > $length) { |
||
| 567 | $has_errors = true; |
||
| 568 | $errors['fld_values'][] = sprintf(_AM_XHELP_VALID_ERR_VALUE_LENGTH, htmlentities($key, ENT_QUOTES | ENT_HTML5), $length); |
||
| 569 | } |
||
| 570 | } |
||
| 571 | } elseif ($fld_needsvalues) { |
||
| 572 | $has_errors = true; |
||
| 573 | $errors['fld_values'][] = _AM_XHELP_VALID_ERR_VALUE; |
||
| 574 | } |
||
| 575 | |||
| 576 | if ($has_errors) { |
||
| 577 | $afield = []; |
||
| 578 | $afield['name'] = \Xmf\Request::getString('fld_name', '', 'POST'); |
||
| 579 | $afield['description'] = \Xmf\Request::getString('fld_description', '', 'POST'); |
||
| 580 | $afield['fieldname'] = \Xmf\Request::getString('fld_fieldname', '', 'POST'); |
||
| 581 | $afield['departments'] = $_POST['fld_departments']; |
||
| 582 | $afield['controltype'] = $_POST['fld_controltype']; |
||
| 583 | $afield['datatype'] = $_POST['fld_datatype']; |
||
| 584 | $afield['required'] = $_POST['fld_required']; |
||
| 585 | $afield['weight'] = \Xmf\Request::getInt('fld_weight', 0, 'POST'); |
||
| 586 | $afield['defaultvalue'] = \Xmf\Request::getInt('fld_defaultvalue', 0, 'POST'); |
||
| 587 | $afield['values'] = $_POST['fld_values']; |
||
| 588 | $afield['length'] = \Xmf\Request::getInt('fld_length', 0, 'POST'); |
||
| 589 | $afield['validation'] = ($_POST['fld_valid_select'] == $_POST['fld_valid_txtbox'] ? $_POST['fld_valid_select'] : $_POST['fld_valid_txtbox']); |
||
| 590 | $session->set('xhelp_editField_' . $fld_id, $afield); |
||
| 591 | $session->set('xhelp_editFieldErrors_' . $fld_id, $errors); |
||
| 592 | //Redirect to edit page (display errors); |
||
| 593 | redirect_header(Xhelp\Utility::createURI(XHELP_ADMIN_URL . '/fields.php', ['op' => 'editfield', 'id' => $fld_id], false)); |
||
| 594 | } |
||
| 595 | //Store Modified Field info |
||
| 596 | |||
| 597 | $ticketField->setVar('name', \Xmf\Request::getString('fld_name', '', 'POST')); |
||
| 598 | $ticketField->setVar('description', \Xmf\Request::getString('fld_description', '', 'POST')); |
||
| 599 | $ticketField->setVar('fieldname', \Xmf\Request::getString('fld_fieldname', '', 'POST')); |
||
| 600 | $ticketField->setVar('controltype', $_POST['fld_controltype']); |
||
| 601 | $ticketField->setVar('datatype', $_POST['fld_datatype']); |
||
| 602 | $ticketField->setVar('fieldlength', \Xmf\Request::getInt('fld_length', 0, 'POST')); |
||
| 603 | $ticketField->setVar('required', $_POST['fld_required']); |
||
| 604 | $ticketField->setVar('weight', \Xmf\Request::getInt('fld_weight', 0, 'POST')); |
||
| 605 | $ticketField->setVar('defaultvalue', $_POST['fld_defaultvalue']); |
||
| 606 | $ticketField->setVar('validation', ($_POST['fld_valid_select'] == $_POST['fld_valid_txtbox'] ? $_POST['fld_valid_select'] : $_POST['fld_valid_txtbox'])); |
||
| 607 | $ticketField->setValues($values); |
||
| 608 | $ticketField->addDepartments($_POST['fld_departments']); |
||
| 609 | |||
| 610 | if ($ticketFieldHandler->insert($ticketField)) { |
||
| 611 | clearEditSessionVars($fld_id); |
||
| 612 | $helper->redirect('admin/fields.php', 3, _AM_XHELP_MSG_FIELD_UPD_OK); |
||
| 613 | } else { |
||
| 614 | redirect_header(Xhelp\Utility::createURI(XHELP_ADMIN_URL . '/fields.php', ['op' => 'editfield', 'id' => $fld_id], false), 3, _AM_XHELP_MSG_FIELD_UPD_ERR); |
||
| 615 | } |
||
| 616 | } else { |
||
| 617 | //Get Custom Field From session (if exists) |
||
| 618 | $field_info = $session->get('xhelp_editField_' . $fld_id); |
||
| 619 | $field_errors = $session->get('xhelp_editFieldErrors_' . $fld_id); |
||
| 620 | |||
| 621 | if (false === !$field_info) { |
||
| 622 | $fld_controltype = $field_info['controltype']; |
||
| 623 | $fld_datatype = $field_info['datatype']; |
||
| 624 | $fld_departments = $field_info['departments']; |
||
| 625 | $fld_name = $field_info['name']; |
||
| 626 | $fld_fieldname = $field_info['fieldname']; |
||
| 627 | $fld_description = $field_info['description']; |
||
| 628 | $fld_required = $field_info['required']; |
||
| 629 | $fld_length = $field_info['length']; |
||
| 630 | $fld_weight = $field_info['weight']; |
||
| 631 | $fld_defaultvalue = $field_info['defaultvalue']; |
||
| 632 | $fld_values = $field_info['values']; |
||
| 633 | $fld_validation = $field_info['validation']; |
||
| 634 | } else { |
||
| 635 | /** @var \XoopsModules\Xhelp\TicketFieldDepartmentHandler $ticketFieldDepartmentHandler */ |
||
| 636 | $ticketFieldDepartmentHandler = $helper->getHandler('TicketFieldDepartment'); |
||
| 637 | $depts = $ticketFieldDepartmentHandler->departmentsByField($ticketField->getVar('id'), true); |
||
| 638 | |||
| 639 | $fld_controltype = $ticketField->getVar('controltype'); |
||
| 640 | $fld_datatype = $ticketField->getVar('datatype'); |
||
| 641 | $fld_departments = array_keys($depts); |
||
| 642 | $fld_name = $ticketField->getVar('name'); |
||
| 643 | $fld_fieldname = $ticketField->getVar('fieldname'); |
||
| 644 | $fld_description = $ticketField->getVar('description'); |
||
| 645 | $fld_required = $ticketField->getVar('required'); |
||
| 646 | $fld_length = $ticketField->getVar('fieldlength'); |
||
| 647 | $fld_weight = $ticketField->getVar('weight'); |
||
| 648 | $fld_defaultvalue = $ticketField->getVar('defaultvalue'); |
||
| 649 | $fld_values = formatValues($ticketField->getVar('fieldvalues')); |
||
| 650 | $fld_validation = $ticketField->getVar('validation'); |
||
| 651 | } |
||
| 652 | |||
| 653 | //Display Field modification |
||
| 654 | xoops_cp_header(); |
||
| 655 | //echo $oAdminButton->renderButtons('manfields'); |
||
| 656 | $adminObject = Admin::getInstance(); |
||
| 657 | $adminObject->displayNavigation(basename(__FILE__)); |
||
| 658 | |||
| 659 | //Edit Field Form |
||
| 660 | |||
| 661 | $controls = xhelpGetControlArray(); |
||
| 662 | $control_select = new \XoopsFormSelect(_AM_XHELP_TEXT_CONTROLTYPE, 'fld_controltype', $fld_controltype); |
||
| 663 | $control_select->setDescription(_AM_XHELP_TEXT_CONTROLTYPE_DESC); |
||
| 664 | foreach ($controls as $key => $control) { |
||
| 665 | $control_select->addOption($key, $control['label']); |
||
| 666 | } |
||
| 667 | |||
| 668 | $datatypes = [ |
||
| 669 | _XHELP_DATATYPE_TEXT => _XHELP_DATATYPE_TEXT, |
||
| 670 | _XHELP_DATATYPE_NUMBER_INT => _XHELP_DATATYPE_NUMBER_INT, |
||
| 671 | _XHELP_DATATYPE_NUMBER_DEC => _XHELP_DATATYPE_NUMBER_DEC, |
||
| 672 | ]; |
||
| 673 | |||
| 674 | $datatype_select = new \XoopsFormSelect(_AM_XHELP_TEXT_DATATYPE, 'fld_datatype', $fld_datatype); |
||
| 675 | $datatype_select->setDescription(_AM_XHELP_TEXT_DATATYPE_DESC); |
||
| 676 | $datatype_select->addOptionArray($datatypes); |
||
| 677 | |||
| 678 | /** @var \XoopsModules\Xhelp\DepartmentHandler $departmentHandler */ |
||
| 679 | $departmentHandler = $helper->getHandler('Department'); |
||
| 680 | $depts = $departmentHandler->getObjects(); |
||
| 681 | $dept_select = new \XoopsFormSelect(_AM_XHELP_TEXT_DEPARTMENTS, 'fld_departments', $fld_departments, 5, true); |
||
| 682 | $dept_select->setDescription(_AM_XHELP_TEXT_DEPT_DESC); |
||
| 683 | foreach ($depts as $obj) { |
||
| 684 | $dept_select->addOption($obj->getVar('id'), $obj->getVar('department')); |
||
| 685 | } |
||
| 686 | unset($depts); |
||
| 687 | |||
| 688 | if (false === !$field_errors) { |
||
| 689 | xhelpRenderErrors($field_errors, Xhelp\Utility::createURI(XHELP_ADMIN_URL . '/fields.php', ['op' => 'clearEditSession', 'id' => $fld_id])); |
||
| 690 | } |
||
| 691 | |||
| 692 | $form = new Xhelp\Form( |
||
| 693 | _AM_XHELP_EDIT_FIELD, 'edit_field', Xhelp\Utility::createURI(XHELP_ADMIN_URL . '/fields.php', [ |
||
| 694 | 'op' => 'editfield', |
||
| 695 | 'id' => $fld_id, |
||
| 696 | ]) |
||
| 697 | ); |
||
| 698 | |||
| 699 | $nameEle = new \XoopsFormText(_AM_XHELP_TEXT_NAME, 'fld_name', 30, 64, $fld_name); |
||
| 700 | $nameEle->setDescription(_AM_XHELP_TEXT_NAME_DESC); |
||
| 701 | $form->addElement($nameEle); |
||
| 702 | |||
| 703 | $fieldnameEle = new \XoopsFormText(_AM_XHELP_TEXT_FIELDNAME, 'fld_fieldname', 30, 64, $fld_fieldname); |
||
| 704 | $fieldnameEle->setDescription(_AM_XHELP_TEXT_FIELDNAME_DESC); |
||
| 705 | $form->addElement($fieldnameEle); |
||
| 706 | |||
| 707 | $descriptionEle = new \XoopsFormTextArea(_AM_XHELP_TEXT_DESCRIPTION, 'fld_description', $fld_description, 5, 60); |
||
| 708 | $descriptionEle->setDescription(_AM_XHELP_TEXT_DESCRIPTION_DESC); |
||
| 709 | $form->addElement($descriptionEle); |
||
| 710 | |||
| 711 | $form->addElement($dept_select); |
||
| 712 | $form->addElement($control_select); |
||
| 713 | $form->addElement($datatype_select); |
||
| 714 | |||
| 715 | $required = new \XoopsFormRadioYN(_AM_XHELP_TEXT_REQUIRED, 'fld_required', $fld_required); |
||
| 716 | $required->setDescription(_AM_XHELP_TEXT_REQUIRED_DESC); |
||
| 717 | $form->addElement($required); |
||
| 718 | |||
| 719 | $lengthEle = new \XoopsFormText(_AM_XHELP_TEXT_LENGTH, 'fld_length', 5, 5, $fld_length); |
||
| 720 | $lengthEle->setDescription(_AM_XHELP_TEXT_LENGTH_DESC); |
||
| 721 | $form->addElement($lengthEle); |
||
| 722 | |||
| 723 | $widthEle = new \XoopsFormText(_AM_XHELP_TEXT_WEIGHT, 'fld_weight', 5, 5, $fld_weight); |
||
| 724 | $widthEle->setDescription(_AM_XHELP_TEXT_WEIGHT_DESC); |
||
| 725 | $form->addElement($widthEle); |
||
| 726 | |||
| 727 | $regex_control = new Xhelp\FormRegex(_AM_XHELP_TEXT_VALIDATION, 'fld_valid', $fld_validation); |
||
| 728 | $regex_control->setDescription(_AM_XHELP_TEXT_VALIDATION_DESC); |
||
| 729 | $regex_control->addOptionArray($regex_array); |
||
| 730 | |||
| 731 | $form->addElement($regex_control); |
||
| 732 | |||
| 733 | $defaultValueEle = new \XoopsFormText(_AM_XHELP_TEXT_DEFAULTVALUE, 'fld_defaultvalue', 30, 100, $fld_defaultvalue); |
||
| 734 | $defaultValueEle->setDescription(_AM_XHELP_TEXT_DEFAULTVALUE_DESC); |
||
| 735 | $form->addElement($defaultValueEle); |
||
| 736 | $values = new \XoopsFormTextArea(_AM_XHELP_TEXT_FIELDVALUES, 'fld_values', $fld_values, 5, 60); |
||
| 737 | $values->setDescription(_AM_XHELP_TEXT_FIELDVALUES_DESC); |
||
| 738 | $form->addElement($values); |
||
| 739 | |||
| 740 | $btn_tray = new \XoopsFormElementTray(''); |
||
| 741 | $btn_tray->addElement(new \XoopsFormButton('', 'editField', _SUBMIT, 'submit')); |
||
| 742 | $btn_tray->addElement(new \XoopsFormButton('', 'cancel', _CANCEL)); |
||
| 743 | $btn_tray->addElement(new \XoopsFormHidden('id', (string)$fld_id)); |
||
| 744 | |||
| 745 | $form->addElement($btn_tray); |
||
| 746 | echo $form->render(); |
||
| 747 | |||
| 748 | require_once __DIR__ . '/admin_footer.php'; |
||
| 749 | } |
||
| 835 |