/** * Add all fields to the form */ protected function initForm() { $this->setFormAction($this->ctrl->getFormAction($this->parent_gui)); $this->setTitle($this->lng->txt('orgu_type_custom_icon')); $item = new ilImageFileInputGUI($this->lng->txt('icon') . ' 32x32 px', 'icon'); $item->setSuffixes(array('svg')); $item->setInfo($this->lng->txt('orgu_type_custom_icon_info')); if (is_file($this->type->getIconPath(true))) { $item->setImage($this->type->getIconPath(true)); } $this->addItem($item); $this->addCommandButton('updateCustomIcons', $this->lng->txt('save')); }
/** * Add standard fields to form */ function addStandardFieldsToForm($a_form, $a_user = NULL, array $custom_fields = NULL) { global $ilSetting, $lng, $rbacreview, $ilias; // custom registration settings if (self::$mode == self::MODE_REGISTRATION) { include_once 'Services/Registration/classes/class.ilRegistrationSettings.php'; $registration_settings = new ilRegistrationSettings(); self::$user_field["username"]["group"] = "login_data"; self::$user_field["password"]["group"] = "login_data"; self::$user_field["language"]["default"] = $lng->lang_key; // different position for role $roles = self::$user_field["roles"]; unset(self::$user_field["roles"]); self::$user_field["roles"] = $roles; self::$user_field["roles"]["group"] = "settings"; } $fields = $this->getStandardFields(); $current_group = ""; $custom_fields_done = false; foreach ($fields as $f => $p) { // next group? -> diplay subheader if ($p["group"] != $current_group && ilUserProfile::userSettingVisible($f)) { if (is_array($custom_fields) && !$custom_fields_done) { // should be appended to "other" or at least before "settings" if ($current_group == "other" || $p["group"] == "settings") { // add "other" subheader if ($current_group != "other") { $sh = new ilFormSectionHeaderGUI(); $sh->setTitle($lng->txt("other")); $a_form->addItem($sh); } foreach ($custom_fields as $custom_field) { $a_form->addItem($custom_field); } $custom_fields_done = true; } } $sh = new ilFormSectionHeaderGUI(); $sh->setTitle($lng->txt($p["group"])); $a_form->addItem($sh); $current_group = $p["group"]; } $m = ""; if (isset($p["method"])) { $m = $p["method"]; } $lv = isset($p["lang_var"]) && $p["lang_var"] != "" ? $p["lang_var"] : $f; switch ($p["input"]) { case "login": if ((int) $ilSetting->get('allow_change_loginname') || self::$mode == self::MODE_REGISTRATION) { $val = new ilTextInputGUI($lng->txt('username'), 'username'); if ($a_user) { $val->setValue($a_user->getLogin()); } $val->setMaxLength(32); $val->setSize(40); $val->setRequired(true); } else { // user account name $val = new ilNonEditableValueGUI($lng->txt("username"), 'ne_un'); if ($a_user) { $val->setValue($a_user->getLogin()); } } $a_form->addItem($val); break; case "text": if (ilUserProfile::userSettingVisible($f)) { $ti = new ilTextInputGUI($lng->txt($lv), "usr_" . $f); if ($a_user) { $ti->setValue($a_user->{$m}()); } $ti->setMaxLength($p["maxlength"]); $ti->setSize($p["size"]); $ti->setRequired($ilSetting->get("require_" . $f)); if (!$ti->getRequired() || $ti->getValue()) { $ti->setDisabled($ilSetting->get("usr_settings_disable_" . $f)); } $a_form->addItem($ti); } break; case "sel_country": if (ilUserProfile::userSettingVisible($f)) { include_once "./Services/Form/classes/class.ilCountrySelectInputGUI.php"; $ci = new ilCountrySelectInputGUI($lng->txt($lv), "usr_" . $f); if ($a_user) { $ci->setValue($a_user->{$m}()); } $ci->setRequired($ilSetting->get("require_" . $f)); if (!$ci->getRequired() || $ci->getValue()) { $ci->setDisabled($ilSetting->get("usr_settings_disable_" . $f)); } $a_form->addItem($ci); } break; case "birthday": if (ilUserProfile::userSettingVisible($f)) { $bi = new ilBirthdayInputGUI($lng->txt($lv), "usr_" . $f); include_once "./Services/Calendar/classes/class.ilDateTime.php"; $date = null; if ($a_user && strlen($a_user->{$m}())) { $date = new ilDateTime($a_user->{$m}(), IL_CAL_DATE); $bi->setDate($date); } $bi->setShowEmpty(true); $bi->setStartYear(1900); $bi->setRequired($ilSetting->get("require_" . $f)); if (!$bi->getRequired() || $date) { $bi->setDisabled($ilSetting->get("usr_settings_disable_" . $f)); } $a_form->addItem($bi); } break; case "radio": if (ilUserProfile::userSettingVisible($f)) { $rg = new ilRadioGroupInputGUI($lng->txt($lv), "usr_" . $f); if ($a_user) { $rg->setValue($a_user->{$m}()); } foreach ($p["values"] as $k => $v) { $op = new ilRadioOption($lng->txt($v), $k); $rg->addOption($op); } $rg->setRequired($ilSetting->get("require_" . $f)); if (!$rg->getRequired() || $rg->getValue()) { $rg->setDisabled($ilSetting->get("usr_settings_disable_" . $f)); } $a_form->addItem($rg); } break; case "picture": if (ilUserProfile::userSettingVisible("upload") && $a_user) { $ii = new ilImageFileInputGUI($lng->txt("personal_picture"), "userfile"); $ii->setDisabled($ilSetting->get("usr_settings_disable_upload")); $upload = $a_form->getFileUpload("userfile"); if ($upload["name"]) { $ii->setPending($upload["name"]); } else { $im = ilObjUser::_getPersonalPicturePath($a_user->getId(), "small", true, true); if ($im != "") { $ii->setImage($im); $ii->setAlt($lng->txt("personal_picture")); } } // ilinc link as info if (ilUserProfile::userSettingVisible("upload") and $ilSetting->get("ilinc_active")) { include_once './Modules/ILinc/classes/class.ilObjiLincUser.php'; $ilinc_user = new ilObjiLincUser($a_user); if ($ilinc_user->id) { include_once './Modules/ILinc/classes/class.ilnetucateXMLAPI.php'; $ilincAPI = new ilnetucateXMLAPI(); $ilincAPI->uploadPicture($ilinc_user); $response = $ilincAPI->sendRequest("uploadPicture"); // return URL to user's personal page $url = trim($response->data['url']['cdata']); $desc = $lng->txt("ilinc_upload_pic_text") . " " . '<a href="' . $url . '">' . $lng->txt("ilinc_upload_pic_linktext") . '</a>'; $ii->setInfo($desc); } } $a_form->addItem($ii); } break; case "roles": if (self::$mode == self::MODE_DESKTOP) { if (ilUserProfile::userSettingVisible("roles")) { $global_roles = $rbacreview->getGlobalRoles(); foreach ($global_roles as $role_id) { if (in_array($role_id, $rbacreview->assignedRoles($a_user->getId()))) { $roleObj = $ilias->obj_factory->getInstanceByObjId($role_id); $role_names .= $roleObj->getTitle() . ", "; unset($roleObj); } } $dr = new ilNonEditableValueGUI($lng->txt("default_roles"), "ne_dr"); $dr->setValue(substr($role_names, 0, -2)); $a_form->addItem($dr); } } else { if (self::$mode == self::MODE_REGISTRATION) { if ($registration_settings->roleSelectionEnabled()) { include_once "./Services/AccessControl/classes/class.ilObjRole.php"; $options = array(); foreach (ilObjRole::_lookupRegisterAllowed() as $role) { $options[$role["id"]] = $role["title"]; } // registration form validation will take care of missing field / value if ($options) { if (sizeof($options) > 1) { $ta = new ilSelectInputGUI($lng->txt('default_role'), "usr_" . $f); $ta->setOptions($options); $ta->setRequired($ilSetting->get("require_" . $f)); if (!$ta->getRequired()) { $ta->setDisabled($ilSetting->get("usr_settings_disable_" . $f)); } } else { $ta = new ilHiddenInputGUI("usr_" . $f); $ta->setValue(array_shift(array_keys($options))); } $a_form->addItem($ta); } } } } break; case "email": if (ilUserProfile::userSettingVisible($f)) { $em = new ilEMailInputGUI($lng->txt($lv), "usr_" . $f); if ($a_user) { $em->setValue($a_user->{$m}()); } $em->setRequired($ilSetting->get("require_" . $f)); if (!$em->getRequired() || $em->getValue()) { $em->setDisabled($ilSetting->get("usr_settings_disable_" . $f)); } if (self::MODE_REGISTRATION == self::$mode) { $em->setRetype(true); } $a_form->addItem($em); } break; case "textarea": if (ilUserProfile::userSettingVisible($f)) { $ta = new ilTextAreaInputGUI($lng->txt($lv), "usr_" . $f); if ($a_user) { $ta->setValue($a_user->{$m}()); } $ta->setRows($p["rows"]); $ta->setCols($p["cols"]); $ta->setRequired($ilSetting->get("require_" . $f)); if (!$ta->getRequired() || $ta->getValue()) { $ta->setDisabled($ilSetting->get("usr_settings_disable_" . $f)); } $a_form->addItem($ta); } break; case "messenger": if (ilUserProfile::userSettingVisible("instant_messengers")) { $im_arr = $p["types"]; foreach ($im_arr as $im_name) { $im = new ilTextInputGUI($lng->txt("im_" . $im_name), "usr_im_" . $im_name); if ($a_user) { $im->setValue($a_user->getInstantMessengerId($im_name)); } $im->setMaxLength($p["maxlength"]); $im->setSize($p["size"]); $im->setRequired($ilSetting->get("require_" . "instant_messengers")); if (!$im->getRequired() || $im->getValue()) { $im->setDisabled($ilSetting->get("usr_settings_disable_" . "instant_messengers")); } $a_form->addItem($im); } } break; case "password": if (self::$mode == self::MODE_REGISTRATION) { if (!$registration_settings->passwordGenerationEnabled()) { $ta = new ilPasswordInputGUI($lng->txt($lv), "usr_" . $f); $ta->setRequired(true); // $ta->setDisabled($ilSetting->get("usr_settings_disable_".$f)); } else { $ta = new ilNonEditableValueGUI($lng->txt($lv)); $ta->setValue($lng->txt("reg_passwd_via_mail")); } $a_form->addItem($ta); } break; case "language": if (ilUserProfile::userSettingVisible($f)) { $ta = new ilSelectInputGUI($lng->txt($lv), "usr_" . $f); if ($a_user) { $ta->setValue($a_user->{$m}()); } $options = array(); $lng->loadLanguageModule("meta"); foreach ($lng->getInstalledLanguages() as $lang_key) { $options[$lang_key] = $lng->txt("meta_l_" . $lang_key); } asort($options); // #9728 $ta->setOptions($options); $ta->setRequired($ilSetting->get("require_" . $f)); if (!$ta->getRequired() || $ta->getValue()) { $ta->setDisabled($ilSetting->get("usr_settings_disable_" . $f)); } $a_form->addItem($ta); } break; case "multitext": if (ilUserProfile::userSettingVisible($f)) { $ti = new ilTextInputGUI($lng->txt($lv), "usr_" . $f); $ti->setMulti(true); if ($a_user) { $ti->setValue($a_user->{$m}()); } $ti->setMaxLength($p["maxlength"]); $ti->setSize($p["size"]); $ti->setRequired($ilSetting->get("require_" . $f)); if (!$ti->getRequired() || $ti->getValue()) { $ti->setDisabled($ilSetting->get("usr_settings_disable_" . $f)); } if ($this->ajax_href) { // add field to ajax call $ti->setDataSource($this->ajax_href . "&f=" . $f); } $a_form->addItem($ti); } break; } } // append custom fields as "other" if (is_array($custom_fields) && !$custom_fields_done) { // add "other" subheader if ($current_group != "other") { $sh = new ilFormSectionHeaderGUI(); $sh->setTitle($lng->txt("other")); $a_form->addItem($sh); } foreach ($custom_fields as $custom_field) { $a_form->addItem($custom_field); } } }
/** * Init add cast item form. */ function initAddCastItemForm($a_mode = "create") { global $lng, $ilCtrl, $ilTabs; $this->checkPermission("write"); $ilTabs->activateTab("edit_content"); $lng->loadLanguageModule("mcst"); $news_set = new ilSetting("news"); $enable_internal_rss = $news_set->get("enable_rss_for_internal"); include "Services/Form/classes/class.ilPropertyFormGUI.php"; $this->form_gui = new ilPropertyFormGUI(); $this->form_gui->setMultipart(true); // Property Title $text_input = new ilTextInputGUI($lng->txt("title"), "title"); $text_input->setMaxLength(200); $this->form_gui->addItem($text_input); // Property Content $text_area = new ilTextAreaInputGUI($lng->txt("description"), "description"); $text_area->setRequired(false); $this->form_gui->addItem($text_area); // Property Visibility if ($enable_internal_rss) { $radio_group = new ilRadioGroupInputGUI($lng->txt("access_scope"), "visibility"); $radio_option = new ilRadioOption($lng->txt("access_users"), "users"); $radio_group->addOption($radio_option); $radio_option = new ilRadioOption($lng->txt("access_public"), "public"); $radio_group->addOption($radio_option); $radio_group->setInfo($lng->txt("mcst_visibility_info")); $radio_group->setRequired(true); $radio_group->setValue($this->object->getDefaultAccess() == 0 ? "users" : "public"); $this->form_gui->addItem($radio_group); } // Duration $dur = new ilDurationInputGUI($lng->txt("mcst_duration"), "duration"); $dur->setInfo($lng->txt("mcst_duration_info")); $dur->setShowDays(false); $dur->setShowHours(true); $dur->setShowSeconds(true); $this->form_gui->addItem($dur); foreach (ilObjMediaCast::$purposes as $purpose) { if ($purpose == "VideoAlternative" && $a_mode == "create") { continue; } $section = new ilFormSectionHeaderGUI(); $section->setTitle($lng->txt("mcst_" . strtolower($purpose) . "_title")); $this->form_gui->addItem($section); if ($a_mode != "create") { $value = new ilHiddenInputGUI("value_" . $purpose); $label = new ilNonEditableValueGUI($lng->txt("value")); $label->setPostVar("label_value_" . $purpose); $label->setInfo($lng->txt("mcst_current_value_info")); $this->form_gui->addItem($label); $this->form_gui->addItem($value); } $file = new ilFileInputGUI($lng->txt("file"), "file_" . $purpose); $file->setSuffixes($this->purposeSuffixes[$purpose]); $this->form_gui->addItem($file); $text_input = new ilRegExpInputGUI($lng->txt("url"), "url_" . $purpose); $text_input->setPattern("/https?\\:\\/\\/.+/i"); $text_input->setInfo($lng->txt("mcst_reference_info")); $this->form_gui->addItem($text_input); if ($purpose != "Standard") { $clearCheckBox = new ilCheckboxInputGUI(); $clearCheckBox->setPostVar("delete_" . $purpose); $clearCheckBox->setTitle($lng->txt("mcst_clear_purpose_title")); $this->form_gui->addItem($clearCheckBox); } else { // mime type selection $mimeTypeSelection = new ilSelectInputGUI(); $mimeTypeSelection->setPostVar("mimetype_" . $purpose); $mimeTypeSelection->setTitle($lng->txt("mcst_mimetype")); $mimeTypeSelection->setInfo($lng->txt("mcst_mimetype_info")); $options = array("" => $lng->txt("mcst_automatic_detection")); $options = array_merge($options, $this->mimeTypes); $mimeTypeSelection->setOptions($options); $this->form_gui->addItem($mimeTypeSelection); // preview picure $pp = new ilImageFileInputGUI($lng->txt("mcst_preview_picture"), "preview_pic"); $pp->setSuffixes(array("png", "jpeg", "jpg")); $pp->setInfo($lng->txt("mcst_preview_picture_info") . " mp4, mp3, png, jp(e)g, gif"); $this->form_gui->addItem($pp); } } // save/cancel button if ($a_mode == "create") { $this->form_gui->setTitle($lng->txt("mcst_add_new_item")); $this->form_gui->addCommandButton("saveCastItem", $lng->txt("save")); } else { $this->form_gui->setTitle($lng->txt("mcst_edit_item")); $this->form_gui->addCommandButton("updateCastItem", $lng->txt("save")); } $this->form_gui->addCommandButton("listItems", $lng->txt("cancel")); $this->form_gui->setFormAction($ilCtrl->getFormAction($this, "saveCastItem")); }
/** * @param $type_id * @param ilDataCollectionField $field * @return ilCheckboxInputGUI|ilDateTimeInputGUI|ilFileInputGUI|ilTextInputGUI|NULL */ static function getInputField(ilDataCollectionField $field) { global $lng; $type_id = $field->getDatatypeId(); $title = $field->getTitle(); switch ($type_id) { case ilDataCollectionDatatype::INPUTFORMAT_TEXT: $input = new ilTextInputGUI($title, 'field_' . $field->getId()); if ($field->getTextArea()) { $input = new ilTextAreaInputGUI($title, 'field_' . $field->getId()); } if ($field->getLength()) { $input->setInfo($lng->txt("dcl_max_text_length") . ": " . $field->getLength()); if (!$field->getTextArea()) { $input->setMaxLength($field->getLength()); } } break; case ilDataCollectionDatatype::INPUTFORMAT_NUMBER: $input = new ilTextInputGUI($title, 'field_' . $field->getId()); break; case ilDataCollectionDatatype::INPUTFORMAT_BOOLEAN: $input = new ilCheckboxInputGUI($title, 'field_' . $field->getId()); break; case ilDataCollectionDatatype::INPUTFORMAT_DATETIME: $input = new ilDateTimeInputGUI($title, 'field_' . $field->getId()); $input->setStartYear(date("Y") - 100); break; case ilDataCollectionDatatype::INPUTFORMAT_FILE: $input = new ilFileInputGUI($title, 'field_' . $field->getId()); break; case ilDataCollectionDatatype::INPUTFORMAT_REFERENCE: if (!$field->isNRef()) { $input = new ilSelectInputGUI($title, 'field_' . $field->getId()); } else { $input = new ilMultiSelectInputGUI($title, 'field_' . $field->getId()); } break; case ilDataCollectionDatatype::INPUTFORMAT_RATING: $input = new ilTextInputGUI($title, 'field_' . $field->getId()); $input->setValue($lng->txt("dcl_editable_in_table_gui")); $input->setDisabled(true); break; case ilDataCollectionDatatype::INPUTFORMAT_ILIAS_REF: $input = new ilDataCollectionTreePickInputGUI($title, 'field_' . $field->getId()); break; case ilDataCollectionDatatype::INPUTFORMAT_MOB: $input = new ilImageFileInputGUI($title, 'field_' . $field->getId()); $input->setAllowDeletion(true); break; } if ($field->getDescription()) { $input->setInfo($field->getDescription() . ($input->getInfo() ? "<br>" . $input->getInfo() : "")); } return $input; }
/** * Initializes SmiliesEditForm and returns it. * * @global ilCtrl2 $ilCtrl * @global ilLanguage $lng * @return ilPropertyFormGUI */ public function initSmiliesEditForm($form_data) { global $ilCtrl, $lng; include_once './Services/Form/classes/class.ilPropertyFormGUI.php'; $this->form_gui = new ilPropertyFormGUI(); $this->form_gui->setValuesByArray($form_data); $table_nav = $_REQUEST["_table_nav"] ? "&_table_nav=" . $_REQUEST["_table_nav"] : ""; $ilCtrl->saveParameter($this->gui, 'smiley_id'); $this->form_gui->setFormAction($ilCtrl->getFormAction($this->gui, 'smiley-updateSmiliesObject') . $table_nav); $sec_l = new ilFormSectionHeaderGUI(); $sec_l->setTitle($lng->txt('chatroom_edit_smiley')); $this->form_gui->addItem($sec_l); include_once "Modules/Chatroom/classes/class.ilChatroomSmiliesCurrentSmileyFormElement.php"; $inp = new ilChatroomSmiliesCurrentSmileyFormElement($lng->txt('chatroom_current_smiley_image_path'), 'chatroom_current_smiley_image_path'); $inp->setValue($form_data['chatroom_current_smiley_image_path']); $this->form_gui->addItem($inp); $inp = new ilImageFileInputGUI($lng->txt('chatroom_image_path'), 'chatroom_image_path'); $inp->setRequired(false); $inp->setInfo($lng->txt('chatroom_smiley_image_only_if_changed')); $this->form_gui->addItem($inp); $inp = new ilTextAreaInputGUI($lng->txt('chatroom_smiley_keywords'), 'chatroom_smiley_keywords'); $inp->setValue($form_data['chatroom_smiley_keywords']); $inp->setUseRte(false); $inp->setRequired(true); $inp->setInfo($lng->txt('chatroom_smiley_keywords_one_per_line_note')); $this->form_gui->addItem($inp); $inp = new ilHiddenInputGUI('chatroom_smiley_id'); $this->form_gui->addItem($inp); $this->form_gui->addCommandButton('smiley-updateSmiliesObject', $lng->txt('submit')); $this->form_gui->addCommandButton('smiley', $lng->txt('cancel')); return $this->form_gui; }
/** * Edit settings. */ public function settings() { global $lng, $ilAccess; $this->tabs_gui->setTabActive('settings'); $form_settings = new ilSetting("certificate"); include_once 'Services/Form/classes/class.ilPropertyFormGUI.php'; $form = new ilPropertyFormGUI(); $form->setFormAction($this->ctrl->getFormAction($this)); $form->setTitle($this->lng->txt('certificate_settings')); $active = new ilCheckboxInputGUI($this->lng->txt("active"), "active"); $active->setChecked($form_settings->get("active")); $form->addItem($active); $info = new ilNonEditableValueGUI($this->lng->txt("info"), "info"); $info->setValue($this->lng->txt("certificate_usage")); $form->addItem($info); $bgimage = new ilImageFileInputGUI($this->lng->txt("certificate_background_image"), "background"); $bgimage->setRequired(FALSE); if (count($_POST)) { // handle the background upload if (strlen($_FILES["background"]["tmp_name"])) { if ($bgimage->checkInput()) { $result = $this->object->uploadBackgroundImage($_FILES["background"]["tmp_name"]); if ($result == FALSE) { $bgimage->setAlert($this->lng->txt("certificate_error_upload_bgimage")); } } } } if (strlen($this->object->hasBackgroundImage())) { $bgimage->setImage($this->object->getBackgroundImageThumbPathWeb()); } $bgimage->setInfo($this->lng->txt("default_background_info")); $form->addItem($bgimage); $format = new ilSelectInputGUI($this->lng->txt("certificate_page_format"), "pageformat"); $defaultformats = array("a4" => $this->lng->txt("certificate_a4"), "a4landscape" => $this->lng->txt("certificate_a4_landscape"), "a5" => $this->lng->txt("certificate_a5"), "a5landscape" => $this->lng->txt("certificate_a5_landscape"), "letter" => $this->lng->txt("certificate_letter"), "letterlandscape" => $this->lng->txt("certificate_letter_landscape")); $format->setOptions($defaultformats); $format->setValue($form_settings->get("pageformat")); $format->setInfo($this->lng->txt("certificate_page_format_info")); $form->addItem($format); if ($ilAccess->checkAccess('write', '', $this->object->getRefId())) { $form->addCommandButton('save', $this->lng->txt('save')); } $this->tpl->setContent($form->getHTML()); if (strcmp($this->ctrl->getCmd(), "save") == 0) { if ($_POST["background_delete"]) { $this->object->deleteBackgroundImage(); } } }
/** * Init form */ protected function initForm() { $title = $this->signature->getId() ? $this->pl->txt('edit_signature') : $this->pl->txt('add_new_signature'); $this->setTitle($title); $this->setFormAction($this->ctrl->getFormAction($this->parent_gui)); $item = new ilTextInputGUI($this->pl->txt('first_name'), 'first_name'); $item->setValue($this->signature->getFirstName()); $item->setRequired(true); $this->addItem($item); $item = new ilTextInputGUI($this->pl->txt('last_name'), 'last_name'); $item->setValue($this->signature->getLastName()); $item->setRequired(true); $this->addItem($item); // If the signature is a rasterized image, we display it base64 encoded $is_vector = in_array(strtolower($this->signature->getSuffix()), array('svg')); if ($is_vector) { $item = new ilFileInputGUI($this->pl->txt('signature_file'), 'signature_file'); } else { $item = new ilImageFileInputGUI($this->pl->txt('signature_file'), 'signature_file'); } $item->setSuffixes(array('jpeg', 'jpg', 'gif', 'bmp', 'png', 'svg')); $signature_file = $this->signature->getFilePath(true); if (is_file($signature_file) && !$is_vector) { $item->setValue($signature_file); $base64 = base64_encode(file_get_contents($signature_file)); $suffix = $this->signature->getSuffix(); $item->setImage("data:image/{$suffix};base64,{$base64}"); } $item->setFilename($signature_file); $item->setInfo($this->pl->txt('signature_file_info')); $item->setRequired(!is_file($signature_file)); $item->setValue($this->signature->getFilePath(true)); $this->addItem($item); $command = $this->signature->getId() ? 'updateSignature' : 'createSignature'; $this->addCommandButton($command, $this->lng->txt('save')); }