function getInputfield($intView, $arrInputfield, $intEntryId = null) { global $objDatabase, $_LANGID, $objInit, $_ARRAYLANG; $intId = intval($arrInputfield['id']); switch ($intView) { default: case 1: if (isset($intEntryId) && $intEntryId != 0) { $objInputfieldValue = $objDatabase->Execute("\n SELECT\n `value`\n FROM\n " . DBPREFIX . "module_" . $this->moduleTablePrefix . "_rel_entry_inputfields\n WHERE\n field_id=" . $intId . "\n AND\n entry_id=" . $intEntryId . "\n LIMIT 1\n "); $strValue = intval($objInputfieldValue->fields['value']); } else { $strValue = null; } if (empty($strValue)) { if (substr($arrInputfield['default_value'][0], 0, 2) == '[[') { $objPlaceholder = new \Cx\Modules\MediaDir\Controller\MediaDirectoryPlaceholder($this->moduleName); $strValue = $objPlaceholder->getPlaceholder($arrInputfield['default_value'][0]); } else { $strValue = empty($arrInputfield['default_value'][$_LANGID]) ? $arrInputfield['default_value'][0] : $arrInputfield['default_value'][$_LANGID]; } } if (!empty($arrInputfield['info'][0])) { $strInfoValue = empty($arrInputfield['info'][$_LANGID]) ? 'title="' . $arrInputfield['info'][0] . '"' : 'title="' . $arrInputfield['info'][$_LANGID] . '"'; $strInfoClass = 'mediadirInputfieldHint'; } else { $strInfoValue = null; $strInfoClass = ''; } if ($objInit->mode == 'backend') { $strInputfield = '<select name="' . $this->moduleNameLC . 'Inputfield[' . $intId . ']" id="' . $this->moduleNameLC . 'Inputfield_' . $intId . '" class="' . $this->moduleNameLC . 'InputfieldDropdown" style="width: 302px">'; } else { $strInputfield = '<select name="' . $this->moduleNameLC . 'Inputfield[' . $intId . ']" id="' . $this->moduleNameLC . 'Inputfield_' . $intId . '" class="' . $this->moduleNameLC . 'InputfieldDropdown ' . $strInfoClass . '" ' . $strInfoValue . '>'; } $strInputfieldOptions = \Cx\Core\Country\Controller\Country::getMenuoptions($strValue); $strInputfield .= $strInputfieldOptions . '</select>'; return $strInputfield; break; case 2: //search View $country = \Cx\Core\Country\Controller\Country::getNameArray(true, $_LANGID); foreach ($country as $id => $name) { $strInputfieldOptions .= '<option value="' . $id . '">' . $name . '</option>'; } $strInputfield = '<select name="' . $intId . '" class="' . $this->moduleName . 'InputfieldSearch">'; $strInputfield .= '<option value="">' . $_ARRAYLANG['TXT_MEDIADIR_PLEASE_CHOOSE'] . '</option>'; $strInputfield .= $strInputfieldOptions . '</select>'; return $strInputfield; break; } }
/** * Show the contact page * * Parse a contact form submit request and show the contact page * @see _getContactFormData(), _checkValues(), _insertIntoDatabase(), sendMail(), _showError(), _showFeedback(), \Cx\Core\Html\Sigma::get(), \Cx\Core\Html\Sigma::blockExists(), \Cx\Core\Html\Sigma::hideBlock(), \Cx\Core\Html\Sigma::touchBlock() * @return string Parse contact form page */ function getContactPage() { global $_ARRAYLANG, $_LANGID, $objDatabase; \JS::activate('cx'); $formId = isset($_GET['cmd']) ? intval($_GET['cmd']) : 0; $arrFields = $this->getFormFields($formId); $isLoggedin = $this->setProfileData(); $useCaptcha = !$isLoggedin && $this->getContactFormCaptchaStatus($formId); $this->handleUniqueId(); $uploaderCode = ''; // load requested form's source code if required if ($this->objTemplate->placeholderExists('APPLICATION_DATA')) { // load form's source code $applicationTemplate = $this->getSourceCode($formId, $_LANGID); \LinkGenerator::parseTemplate($applicationTemplate); $this->objTemplate->addBlock('APPLICATION_DATA', 'application_data', $applicationTemplate); } $this->objTemplate->setVariable(array('TXT_NEW_ENTRY_ERORR' => $_ARRAYLANG['TXT_NEW_ENTRY_ERORR'], 'TXT_CONTACT_SUBMIT' => $_ARRAYLANG['TXT_CONTACT_SUBMIT'], 'TXT_CONTACT_RESET' => $_ARRAYLANG['TXT_CONTACT_RESET'])); if ($this->objTemplate->blockExists('contact_form')) { $recipients = $this->getRecipients($formId); foreach ($arrFields as $fieldId => $arrField) { /* * Set values for special field types if the user is authenticated */ if ($isLoggedin && empty($_GET[$fieldId]) && empty($_POST['contactFormField_' . $fieldId])) { switch ($arrField['special_type']) { case 'access_email': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_USER_EMAIL]]'; break; case 'access_gender': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_GENDER]]'; break; case 'access_title': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_TITLE]]'; break; case 'access_firstname': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_FIRSTNAME]]'; break; case 'access_lastname': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_LASTNAME]]'; break; case 'access_company': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_COMPANY]]'; break; case 'access_address': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_ADDRESS]]'; break; case 'access_city': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_CITY]]'; break; case 'access_zip': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_ZIP]]'; break; case 'access_country': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_COUNTRY]]'; break; case 'access_phone_office': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_PHONE_OFFICE]]'; break; case 'access_phone_private': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_PHONE_PRIVATE]]'; break; case 'access_phone_mobile': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_PHONE_MOBILE]]'; break; case 'access_phone_fax': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_PHONE_FAX]]'; break; case 'access_birthday': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_BIRTHDAY]]'; break; case 'access_website': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_WEBSITE]]'; break; case 'access_profession': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_PROFESSION]]'; break; case 'access_interests': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_INTERESTS]]'; break; case 'access_signature': $arrField['lang'][$_LANGID]['value'] = '[[ACCESS_PROFILE_ATTRIBUTE_SIGNATURE]]'; break; default: break; } } $arrField['lang'][$_LANGID]['value'] = preg_replace('/\\[\\[([A-Z0-9_]+)\\]\\]/', '{$1}', $arrField['lang'][$_LANGID]['value']); $this->objTemplate->setVariable(array($formId . '_FORM_NAME' => wordwrap($this->arrForms[$formId]['lang'][$_LANGID]['name'], 90, "<br/>\n", true), $formId . '_FORM_TEXT' => $this->arrForms[$formId]['lang'][$_LANGID]['text'], $fieldId . '_LABEL' => $arrField['lang'][$_LANGID]['name'] != "" ? wordwrap($arrField['lang'][$_LANGID]['name'], 90, "<br/>\n", true) : " ")); /* * Generate values for dropdown checkbox and radio fields */ $userProfileRegExp = '/\\{([A-Z_]+)\\}/'; $accessAttributeId = null; $fieldType = $arrField['type'] != 'special' ? $arrField['type'] : $arrField['special_type']; switch ($fieldType) { case 'checkbox': if ($arrField['lang'][$_LANGID]['value'] == 1 || !empty($_POST['contactFormField_' . $fieldId])) { $this->objTemplate->setVariable('SELECTED_' . $fieldId, 'checked="checked"'); } break; case 'checkboxGroup': case 'radio': $options = explode(',', $arrField['lang'][$_LANGID]['value']); foreach ($options as $index => $option) { if (preg_match($userProfileRegExp, $option)) { $valuePlaceholderBlock = 'contact_value_placeholder_block_' . $fieldId . '_' . $index; $this->objTemplate->addBlock($fieldId . '_' . $index . '_VALUE', $valuePlaceholderBlock, contrexx_raw2xhtml($option)); } else { $this->objTemplate->setVariable($fieldId . '_' . $index . '_VALUE', contrexx_raw2xhtml($option)); } if (!empty($_POST['contactFormField_' . $fieldId])) { if (in_array($option, $_POST['contactFormField_' . $fieldId]) || $option == $_POST['contactFormField_' . $fieldId]) { $this->objTemplate->setVariable('SELECTED_' . $fieldId . '_' . $index, 'checked="checked"'); } } elseif (!empty($_GET[$fieldId])) { if ($option == $_GET[$fieldId]) { $this->objTemplate->setVariable('SELECTED_' . $fieldId . '_' . $index, 'checked="checked"'); } } } break; case 'access_title': case 'access_gender': // collect user attribute options $arrOptions = array(); $accessAttributeId = str_replace('access_', '', $fieldType); $objAttribute = \FWUser::getFWUserObject()->objUser->objAttribute->getById($accessAttributeId); // get options $arrAttribute = $objAttribute->getChildren(); foreach ($arrAttribute as $attributeId) { // in case the selection of the field is mandatory, we shall skip the unknown option of the user profile attribute if ($arrField['is_required'] && strpos($attributeId, '_undefined')) { continue; } $objAttribute = \FWUser::getFWUserObject()->objUser->objAttribute->getById($attributeId); $arrOptions[] = $objAttribute->getName(FRONTEND_LANG_ID); } // options will be used for select input generation $arrField['lang'][FRONTEND_LANG_ID]['value'] = implode(',', $arrOptions); // intentionally no break here!! // intentionally no break here!! case 'select': $options = explode(',', $arrField['lang'][$_LANGID]['value']); $inexOffset = 0; if ($arrField['is_required']) { $options = array_merge(array($_ARRAYLANG['TXT_CONTACT_PLEASE_SELECT']), $options); $inexOffset = 1; } foreach ($options as $index => $option) { if (preg_match($userProfileRegExp, $option)) { $valuePlaceholderBlock = 'contact_value_placeholder_block_' . $fieldId . '_' . $index; $this->objTemplate->addBlock($fieldId . '_VALUE', $valuePlaceholderBlock, contrexx_raw2xhtml($option)); } else { $this->objTemplate->setVariable($fieldId . '_VALUE', contrexx_raw2xhtml($option)); } // pre-selection, based on $_POST value if (!empty($_POST['contactFormField_' . $fieldId])) { if ($index == array_search($_POST['contactFormField_' . $fieldId], explode(',', $arrField['lang'][$_LANGID]['value'])) + $inexOffset) { $this->objTemplate->setVariable('SELECTED_' . $fieldId, 'selected = "selected"'); } // pre-selection, based on $_GET value } elseif (!empty($_GET[$fieldId])) { if ($index == array_search(contrexx_input2raw($_GET[$fieldId]), explode(',', $arrField['lang'][$_LANGID]['value']))) { $this->objTemplate->setVariable('SELECTED_' . $fieldId, 'selected = "selected"'); } // pre-selection, based on profile data of currently signed in user } elseif (isset($this->objTemplate->_globalVariables['ACCESS_PROFILE_ATTRIBUTE_' . strtoupper($accessAttributeId)]) && $option == $this->objTemplate->_globalVariables['ACCESS_PROFILE_ATTRIBUTE_' . strtoupper($accessAttributeId)]) { $this->objTemplate->setVariable('SELECTED_' . $fieldId, 'selected = "selected"'); } $this->objTemplate->parse('field_' . $fieldId); } break; case 'recipient': foreach ($recipients as $index => $recipient) { $recipient['lang'][$_LANGID] = preg_replace('/\\[\\[([A-Z0-9_]+)\\]\\]/', '{$1}', $recipient['lang'][$_LANGID]); if (preg_match($userProfileRegExp, $recipient['lang'][$_LANGID])) { $valuePlaceholderBlock = 'contact_value_placeholder_block_' . $fieldId . '_' . $index; $this->objTemplate->addBlock($fieldId . '_VALUE', $valuePlaceholderBlock, $recipient['lang'][$_LANGID]); } else { $this->objTemplate->setVariable(array($fieldId . '_VALUE' => $recipient['lang'][$_LANGID])); } $this->objTemplate->setVariable(array($fieldId . '_VALUE_ID' => $index)); if (!empty($_POST['contactFormField_' . $fieldId]) && $recipient['lang'][$_LANGID] == $_POST['contactFormField_' . $fieldId]) { $this->objTemplate->setVariable(array('SELECTED_' . $fieldId => 'selected = "selected"')); } elseif (!empty($_GET[$fieldId]) && $recipient['lang'][$_LANGID] == $_GET[$fieldId]) { $this->objTemplate->setVariable(array('SELECTED_' . $fieldId => 'selected = "selected"')); } $this->objTemplate->parse('field_' . $fieldId); } break; case 'access_country': case 'country': if (preg_match($userProfileRegExp, $arrField['lang'][$_LANGID]['value'])) { $arrField['lang'][$_LANGID]['value'] = $this->objTemplate->_globalVariables[trim($arrField['lang'][$_LANGID]['value'], '{}')]; } $lang = $arrField['lang'][$_LANGID]['value']; $country = \Cx\Core\Country\Controller\Country::getNameArray(true, $lang); foreach ($country as $id => $name) { $this->objTemplate->setVariable($fieldId . '_VALUE', $name); if (!empty($_POST['contactFormField_' . $fieldId])) { if (strcasecmp($name, $_POST['contactFormField_' . $fieldId]) == 0) { $this->objTemplate->setVariable('SELECTED_' . $fieldId, 'selected = "selected"'); } } elseif (!empty($_GET[$fieldId])) { if (strcasecmp($name, $_GET[$fieldId]) == 0) { $this->objTemplate->setVariable('SELECTED_' . $fieldId, 'selected = "selected"'); } } elseif ($name == $arrField['lang'][$_LANGID]['value']) { $this->objTemplate->setVariable('SELECTED_' . $fieldId, 'selected = "selected"'); } $this->objTemplate->parse('field_' . $fieldId); } $this->objTemplate->setVariable(array('TXT_CONTACT_PLEASE_SELECT' => $_ARRAYLANG['TXT_CONTACT_PLEASE_SELECT'], 'TXT_CONTACT_NOT_SPECIFIED' => $_ARRAYLANG['TXT_CONTACT_NOT_SPECIFIED'])); break; case 'file': $this->hasFileField = true; $uploaderCode .= $this->initUploader($fieldId, true); break; case 'multi_file': $this->hasFileField = true; $uploaderCode .= $this->initUploader($fieldId, false); break; default: /* * Set default field value through User profile attribute */ $arrField['lang'][$_LANGID]['value'] = preg_replace('/\\[\\[([A-Z0-9_]+)\\]\\]/', '{$1}', $arrField['lang'][$_LANGID]['value']); if (preg_match($userProfileRegExp, $arrField['lang'][$_LANGID]['value'])) { $valuePlaceholderBlock = 'contact_value_placeholder_block_' . $fieldId; $this->objTemplate->addBlock($fieldId . '_VALUE', $valuePlaceholderBlock, contrexx_raw2xhtml($arrField['lang'][$_LANGID]['value'])); } elseif (!empty($_POST['contactFormField_' . $fieldId])) { $this->objTemplate->setVariable($fieldId . '_VALUE', contrexx_raw2xhtml($_POST['contactFormField_' . $fieldId])); } elseif (!empty($_GET[$fieldId])) { $this->objTemplate->setVariable($fieldId . '_VALUE', contrexx_raw2xhtml($_GET[$fieldId])); } else { $this->objTemplate->setVariable($fieldId . '_VALUE', contrexx_raw2xhtml($arrField['lang'][$_LANGID]['value'])); } break; } /* * Parse the blocks created for parsing user profile data using addBlock() */ if (!empty($valuePlaceholderBlock) && $this->objTemplate->blockExists($valuePlaceholderBlock)) { $this->objTemplate->touchBlock($valuePlaceholderBlock); } } } if (isset($_POST['submitContactForm']) || isset($_POST['Submit'])) { //form submitted $this->checkLegacyMode(); $showThanks = isset($_GET['cmd']) && $_GET['cmd'] == 'thanks' ? true : false; $arrFormData = $this->_getContactFormData(); if ($arrFormData) { if ($this->_checkValues($arrFormData, $useCaptcha) && $this->_insertIntoDatabase($arrFormData)) { //validation ok if (!empty($arrFormData['saveDataInCRM'])) { $objCrmLibrary = new \Cx\Modules\Crm\Controller\CrmLibrary('Crm'); $objCrmLibrary->addCrmContact($arrFormData); } $this->sendMail($arrFormData); if (isset($arrFormData['showForm']) && !$arrFormData['showForm']) { $this->objTemplate->hideBlock("formText"); $this->objTemplate->hideBlock('contact_form'); } } else { //found errors while validating $this->setCaptcha($useCaptcha); return $this->_showError(); } if (!$showThanks) { $this->_showFeedback($arrFormData); } else { if ($this->objTemplate->blockExists("formText")) { $this->objTemplate->hideBlock("formText"); } } } } else { //fresh display if ($this->objTemplate->blockExists('formText')) { $this->objTemplate->touchBlock('formText'); } $this->setCaptcha($useCaptcha); } $this->objTemplate->setVariable('CONTACT_JAVASCRIPT', $this->_getJsSourceCode($formId, $arrFields) . $uploaderCode); return $this->objTemplate->get(); }
/** * Stores countries settings * * Returns null if nothing is changed. * @return boolean True on success, false on failure, * or null on noop. */ private static function storeCountries() { // Skip if not submitted or if the list is empty. // At least one Country needs to be active. // "list1" contains the active Country IDs if (empty($_POST['countries']) || empty($_POST['list1'])) { return null; } $list = contrexx_input2raw($_POST['list1']); sort($list); $arrCountryIdActive = array_keys(\Cx\Core\Country\Controller\Country::getNameArray(true)); sort($arrCountryIdActive); if ($list == $arrCountryIdActive) { return null; } self::$changed = true; $strCountryIdActive = join(',', $list); return \Cx\Core\Country\Controller\Country::activate($strCountryIdActive); }
function getSourceCode($id, $lang, $preview = false, $show = false) { global $_ARRAYLANG, $objInit, $objDatabase; $hasFileInput = false; //remember if we added a file input -> this would need the uploader to be initialized $arrFields = $this->getFormFields($id); $sourcecode = array(); $this->initContactForms(); $sourcecode[] = '<div class="text-warning" id="contactFeedback">{CONTACT_FEEDBACK_TEXT}</div> <div id="contactDescription"><!-- BEGIN formText -->' . ($preview ? $this->arrForms[$id]['lang'][$lang]['text'] : '{' . $id . '_FORM_TEXT}') . '<!-- END formText --></div> <div class="text-danger" id="contactFormError">' . ($preview ? $_ARRAYLANG['TXT_NEW_ENTRY_ERORR'] : '{TXT_NEW_ENTRY_ERORR}') . '</div> <!-- BEGIN contact_form --> <form role="form" id="contactForm' . ($this->arrForms[$id]['useCustomStyle'] > 0 ? '_' . $id : '') . '" class="contactForm' . ($this->arrForms[$id]['useCustomStyle'] > 0 ? '_' . $id : '') . '" action="' . ($preview ? '../' : '') . 'index.php?section=Contact&cmd=' . $id . '" method="post" enctype="multipart/form-data" onsubmit="return checkAllFields();"> <fieldset id="contactFrame"> <legend>' . ($preview ? $this->arrForms[$id]['lang'][$lang]['name'] : '{' . $id . '_FORM_NAME}') . '</legend>'; foreach ($arrFields as $fieldId => $arrField) { if ($arrField['is_required']) { $required = '<strong class="is_required">*</strong>'; } else { $required = ''; } if ($arrField['type'] != 'fieldset' && $arrField['type'] != 'hidden') { $sourcecode[] = '<div class="contact row form-group">'; } switch ($arrField['type']) { case 'label': case 'hidden': case 'horizontalLine': case 'checkbox': break; case 'fieldset': $sourcecode[] = '</fieldset>'; $sourcecode[] = '<fieldset id="contactFormFieldId_' . $fieldId . '">'; $sourcecode[] = "<legend>" . ($preview ? contrexx_raw2xhtml($arrField['lang'][$lang]['name']) : "{" . $fieldId . "_LABEL}") . "</legend>"; break; case 'checkboxGroup': case 'radio': $sourcecode[] = '<label>' . ($preview ? contrexx_raw2xhtml($arrField['lang'][$lang]['name']) : "{" . $fieldId . "_LABEL}") . $required . '</label>'; break; case 'date': $sourcecode[] = '<label for="contactFormFieldId_' . $fieldId . '">' . ($preview ? contrexx_raw2xhtml($arrField['lang'][$lang]['name']) : "{" . $fieldId . "_LABEL}") . $required . '</label>'; break; case 'datetime': $sourcecode[] = '<label for="contactFormFieldId_' . $fieldId . '">' . ($preview ? contrexx_raw2xhtml($arrField['lang'][$lang]['name']) : "{" . $fieldId . "_LABEL}") . $required . '</label>'; break; default: $sourcecode[] = '<label for="contactFormFieldId_' . $fieldId . '">' . ($preview ? contrexx_raw2xhtml($arrField['lang'][$lang]['name']) : "{" . $fieldId . "_LABEL}") . $required . '</label>'; } $arrField['lang'][$lang]['value'] = preg_replace('/\\[\\[([A-Z0-9_]+)\\]\\]/', '{$1}', $arrField['lang'][$lang]['value']); $fieldType = $arrField['type'] != 'special' ? $arrField['type'] : $arrField['special_type']; switch ($fieldType) { case 'label': $sourcecode[] = '<div class="contactFormClass_' . $arrField['type'] . '">' . contrexx_raw2xhtml($arrField['lang'][$lang]['value']) . '</div>'; break; case 'checkbox': $sourcecode[] = '<div class="checkbox"><label for="contactFormFieldId_' . $fieldId . '"><input class="contactFormClass_' . $arrField['type'] . '" id="contactFormFieldId_' . $fieldId . '" type="checkbox" name="contactFormField_' . $fieldId . '" value="1" {SELECTED_' . $fieldId . '} />' . ($preview ? contrexx_raw2xhtml($arrField['lang'][$lang]['name']) : "{" . $fieldId . "_LABEL}") . $required . '</label></div>'; break; case 'checkboxGroup': $selectedLang = $preview ? FRONTEND_LANG_ID : $lang; $sourcecode[] = '<div class="contactFormGroup" id="contactFormFieldId_' . $fieldId . '">'; $options = explode(',', $arrField['lang'][$selectedLang]['value']); foreach ($options as $index => $option) { $sourcecode[] = '<div class="checkbox"><label class="noCaption" for="contactFormField_' . $index . '_' . $fieldId . '"><input type="checkbox" class="contactFormClass_' . $arrField['type'] . '" name="contactFormField_' . $fieldId . '[]" id="contactFormField_' . $index . '_' . $fieldId . '" value="' . contrexx_raw2xhtml($option) . '" {SELECTED_' . $fieldId . '_' . $index . '}/>' . ($preview ? contrexx_raw2xhtml($option) : '{' . $fieldId . '_' . $index . '_VALUE}') . '</label></div>'; } $sourcecode[] = '</div>'; break; case 'country': case 'access_country': $sourcecode[] = '<select class="contactFormClass_' . $arrField['type'] . '" name="contactFormField_' . $fieldId . '" id="contactFormFieldId_' . $fieldId . '">'; if ($arrField['is_required'] == 1) { $sourcecode[] = "<option value=\"" . ($preview ? $_ARRAYLANG['TXT_CONTACT_PLEASE_SELECT'] : '{TXT_CONTACT_PLEASE_SELECT}') . "\">" . ($preview ? $_ARRAYLANG['TXT_CONTACT_PLEASE_SELECT'] : '{TXT_CONTACT_PLEASE_SELECT}') . "</option>"; } else { $sourcecode[] = "<option value=\"" . ($preview ? $_ARRAYLANG['TXT_CONTACT_NOT_SPECIFIED'] : '{TXT_CONTACT_NOT_SPECIFIED}') . "\">" . ($preview ? $_ARRAYLANG['TXT_CONTACT_NOT_SPECIFIED'] : '{TXT_CONTACT_NOT_SPECIFIED}') . "</option>"; } if ($preview) { $lang = $arrField['lang'][$lang]['name']; $country = \Cx\Core\Country\Controller\Country::getNameArray(true, $lang); foreach ($country as $id => $name) { $sourcecode[] = "<option value=\"" . $name . "\" >" . $name . "</option>"; } } else { $sourcecode[] = "<!-- BEGIN field_" . $fieldId . " -->"; $sourcecode[] = "<option value=\"{" . $fieldId . "_VALUE}\" {SELECTED_" . $fieldId . "} >{" . $fieldId . "_VALUE}</option>"; $sourcecode[] = "<!-- END field_" . $fieldId . " -->"; } $sourcecode[] = "</select>"; break; case 'date': $sourcecode[] = '<input class="contactFormClass_' . $arrField['type'] . ' date" type="text" name="contactFormField_' . $fieldId . '" id="contactFormFieldId_' . $fieldId . '" value="{' . $fieldId . '_VALUE}" />'; break; case 'datetime': $sourcecode[] = '<input class="contactFormClass_' . $arrField['type'] . ' datetime" type="text" name="contactFormField_' . $fieldId . '" id="contactFormFieldId_' . $fieldId . '" value="{' . $fieldId . '_VALUE}" />'; break; case 'access_birthday': $sourcecode[] = '<input class="contactFormClass_' . $arrField['type'] . ' date" id="contactFormFieldId_' . $fieldId . '" type="text" name="contactFormField_' . $fieldId . '" value="' . ($preview ? contrexx_raw2xhtml($arrField['lang'][$lang]['value']) : '{' . $fieldId . '_VALUE}') . '" />'; break; case 'file': case 'multi_file': $sourcecode[] = '<div class="contactFormUpload" id="contactFormUpload_' . $fieldId . '">{CONTACT_UPLOADER_FOLDER_WIDGET_' . $fieldId . '}<input type="hidden" name="contactFormUploadId_' . $fieldId . '" value = "{CONTACT_UPLOADER_ID_' . $fieldId . '}"/>'; $sourcecode[] = '<input class="contactFormClass_' . $arrField['type'] . '" id="contactFormFieldId_' . $fieldId . '" type="file" name="contactFormField_' . $fieldId . '" disabled="disabled"/></div>'; break; case 'hidden': $sourcecode[] = '<input class="contactFormClass_' . $arrField['type'] . '" id="contactFormFieldId_' . $fieldId . '" type="hidden" name="contactFormField_' . $fieldId . '" value="' . ($preview ? contrexx_raw2xhtml($arrField['lang'][$lang]['value']) : "{" . $fieldId . "_VALUE}") . '" />'; break; case 'horizontalLine': $sourcecode[] = '<hr />'; break; case 'password': $sourcecode[] = '<input class="contactFormClass_' . $arrField['type'] . '" id="contactFormFieldId_' . $fieldId . '" type="password" name="contactFormField_' . $fieldId . '" value="" />'; break; case 'radio': $selectedLang = $preview ? FRONTEND_LANG_ID : $lang; $sourcecode[] = '<div class="contactFormGroup" id="contactFormFieldId_' . $fieldId . '">'; $options = explode(',', $arrField['lang'][$selectedLang]['value']); foreach ($options as $index => $option) { $sourcecode[] .= '<div class="radio"><label class="noCaption" for="contactFormField_' . $index . '_' . $fieldId . '"><input class="contactFormClass_' . $arrField['type'] . '" type="radio" name="contactFormField_' . $fieldId . '" id="contactFormField_' . $index . '_' . $fieldId . '" value="' . ($preview ? contrexx_raw2xhtml($option) : '{' . $fieldId . '_' . $index . '_VALUE}') . '" {SELECTED_' . $fieldId . '_' . $index . '} />' . ($preview ? contrexx_raw2xhtml($option) : '{' . $fieldId . '_' . $index . '_VALUE}') . '</label></div>'; } $sourcecode[] = '</div>'; break; case 'access_title': case 'access_gender': // collect user attribute options $arrOptions = array(); $accessAttributeId = str_replace('access_', '', $fieldType); $objAttribute = \FWUser::getFWUserObject()->objUser->objAttribute->getById($accessAttributeId); // get options $arrAttribute = $objAttribute->getChildren(); foreach ($arrAttribute as $attributeId) { $objAttribute = \FWUser::getFWUserObject()->objUser->objAttribute->getById($attributeId); $arrOptions[] = $objAttribute->getName(FRONTEND_LANG_ID); } // options will be used for select input generation $arrField['lang'][FRONTEND_LANG_ID]['value'] = implode(',', $arrOptions); case 'select': $sourcecode[] = '<select class="contactFormClass_' . $arrField['type'] . '" name="contactFormField_' . $fieldId . '" id="contactFormFieldId_' . $fieldId . '">'; if ($preview) { $options = explode(',', $arrField['lang'][FRONTEND_LANG_ID]['value']); foreach ($options as $index => $option) { $sourcecode[] = "<option value='" . contrexx_raw2xhtml($option) . "'>" . contrexx_raw2xhtml($option) . "</option>"; } } else { $sourcecode[] = "<!-- BEGIN field_" . $fieldId . " -->"; $sourcecode[] = "<option value='{" . $fieldId . "_VALUE}' {SELECTED_" . $fieldId . "}>" . '{' . $fieldId . '_VALUE}' . "</option>"; $sourcecode[] = "<!-- END field_" . $fieldId . " -->"; } $sourcecode[] = "</select>"; break; case 'textarea': $sourcecode[] = '<textarea class="contactFormClass_' . $arrField['type'] . '" name="contactFormField_' . $fieldId . '" id="contactFormFieldId_' . $fieldId . '" rows="5" cols="20">{' . $fieldId . '_VALUE}</textarea>'; break; case 'recipient': $sourcecode[] = '<select class="contactFormClass_' . $arrField['type'] . '" name="contactFormField_' . $fieldId . '" id="contactFormFieldId_' . $fieldId . '">'; if ($preview) { foreach ($this->arrForms[$id]['recipients'] as $index => $arrRecipient) { $sourcecode[] = "<option value='" . $index . "'>" . $arrRecipient['lang'][$lang] . "</option>"; } } else { $sourcecode[] = "<!-- BEGIN field_" . $fieldId . " -->"; $sourcecode[] = "<option value='{" . $fieldId . "_VALUE_ID}' {SELECTED_" . $fieldId . "} >" . '{' . $fieldId . '_VALUE}' . "</option>"; $sourcecode[] = "<!-- END field_" . $fieldId . " -->"; } $sourcecode[] = "</select>"; break; case 'fieldset': break; default: $sourcecode[] = '<input class="contactFormClass_' . $arrField['type'] . '" id="contactFormFieldId_' . $fieldId . '" type="text" name="contactFormField_' . $fieldId . '" value="' . ($preview ? contrexx_raw2xhtml($arrField['lang'][$lang]['value']) : '{' . $fieldId . '_VALUE}') . '" />'; break; } if ($arrField['type'] != 'fieldset' && $arrField['type'] != 'hidden') { $sourcecode[] = '</div>'; } } if ($preview) { $themeId = $objInit->arrLang[FRONTEND_LANG_ID]['themesid']; if (($objRS = $objDatabase->SelectLimit("SELECT `foldername` FROM `" . DBPREFIX . "skins` WHERE `id` = " . $themeId, 1)) !== false) { $themePath = $objRS->fields['foldername']; } $sourcecode[] = '<link href="../core_modules/Contact/View/Style/form.css" rel="stylesheet" type="text/css" />'; if ($this->arrForms[$id]['useCaptcha']) { $sourcecode[] = '<div class="contact row form-group">'; $sourcecode[] = '<label>' . $_ARRAYLANG["TXT_CONTACT_CAPTCHA"] . '</label>'; $sourcecode[] = \Cx\Core_Modules\Captcha\Controller\Captcha::getInstance()->getCode(); $sourcecode[] = '</div>'; } } else { $sourcecode[] = "<!-- BEGIN contact_form_captcha -->"; $sourcecode[] = '<div class="contact row form-group">'; $sourcecode[] = '<label>{TXT_CONTACT_CAPTCHA}</label>'; $sourcecode[] = '{CONTACT_CAPTCHA_CODE}'; $sourcecode[] = '</div>'; $sourcecode[] = "<!-- END contact_form_captcha -->"; } $sourcecode[] = '<div class="contact row form-group">'; $sourcecode[] = '<input class="contactFormClass_button btn btn-default" type="submit" name="submitContactForm" value="' . ($preview ? $_ARRAYLANG['TXT_CONTACT_SUBMIT'] : '{TXT_CONTACT_SUBMIT}') . '" /><input class="contactFormClass_button btn btn-default" type="reset" value="' . ($preview ? $_ARRAYLANG['TXT_CONTACT_RESET'] : '{TXT_CONTACT_RESET}') . '" />'; $sourcecode[] = '<input type="hidden" name="unique_id" value="{CONTACT_UNIQUE_ID}" />'; $sourcecode[] = '</div>'; $sourcecode[] = "</fieldset>"; $sourcecode[] = "</form>"; $sourcecode[] = "<!-- END contact_form -->"; $sourcecode[] = $preview ? $this->_getJsSourceCode($id, $arrFields, $preview, $show) : "{CONTACT_JAVASCRIPT}"; if ($show) { $sourcecode = preg_replace('/\\{([A-Z0-9_-]+)\\}/', '[[\\1]]', $sourcecode); } return implode("\n", $sourcecode); }
/** * Get all countries. * * @access public * @param array $arrIDs ids of requested transactions * @param integer $offset paging offset * @param integer $limit paging limit * @return array $arrTransactions contains all transactions * @return boolean contains false if there are no transactions */ public function get($arrIDs = array(), $offset = 0, $limit = 0) { $SQLWhere = ''; if (is_array($arrIDs) && !empty($arrIDs)) { $arrIDs = array_map('intval', $arrIDs); $SQLWhere = ' WHERE (`transactions`.`id`=' . implode(' OR `transactions`.`id`=', $arrIDs) . ')'; } $SQLLimit = ''; if (!empty($offset) && !empty($limit)) { $SQLLimit = ' LIMIT ' . intval($offset) . ', ' . intval($limit); } else { if (empty($offset) && !empty($limit)) { $SQLLimit = ' LIMIT ' . intval($limit); } } $countries = \Cx\Core\Country\Controller\Country::getNameArray(); $arrTransactions = array(); $objResult = $this->objDatabase->Execute(' SELECT `transactions`.`id`, `transactions`.`time`, `transactions`.`status`, `transactions`.`invoice_number`, `transactions`.`invoice_currency`, `transactions`.`invoice_amount`, `transactions`.`contact_title`, `transactions`.`contact_forename`, `transactions`.`contact_surname`, `transactions`.`contact_company`, `transactions`.`contact_street`, `transactions`.`contact_postcode`, `transactions`.`contact_place`, `countries`.`name` as `contact_country`, `transactions`.`contact_phone`, `transactions`.`contact_email` FROM `' . DBPREFIX . 'module_checkout_transactions` as `transactions` ' . $SQLWhere . ' ORDER BY `transactions`.`id` DESC' . $SQLLimit); if ($objResult) { $i = 0; while (!$objResult->EOF) { $arrTransactions[$i]['id'] = $objResult->fields['id']; $arrTransactions[$i]['time'] = $objResult->fields['time']; $arrTransactions[$i]['status'] = $objResult->fields['status']; $arrTransactions[$i]['invoice_number'] = $objResult->fields['invoice_number']; $arrTransactions[$i]['invoice_currency'] = $objResult->fields['invoice_currency']; $arrTransactions[$i]['invoice_amount'] = $objResult->fields['invoice_amount'] / 100; $arrTransactions[$i]['contact_title'] = $objResult->fields['contact_title']; $arrTransactions[$i]['contact_forename'] = $objResult->fields['contact_forename']; $arrTransactions[$i]['contact_surname'] = $objResult->fields['contact_surname']; $arrTransactions[$i]['contact_company'] = $objResult->fields['contact_company']; $arrTransactions[$i]['contact_street'] = $objResult->fields['contact_street']; $arrTransactions[$i]['contact_postcode'] = $objResult->fields['contact_postcode']; $arrTransactions[$i]['contact_place'] = $objResult->fields['contact_place']; $arrTransactions[$i]['contact_country'] = $countries[$objResult->fields['contact_country']]; $arrTransactions[$i]['contact_phone'] = $objResult->fields['contact_phone']; $arrTransactions[$i]['contact_email'] = $objResult->fields['contact_email']; $objResult->MoveNext(); $i++; } } if (!empty($arrTransactions)) { return $arrTransactions; } else { return false; } }
public function testGetAll() { $objCountries = Country::getNameArray(); $this->assertNotEmpty($objCountries); }
function _getFormFieldAttribute($id, $type, $attr, $show = true, $langid = 0) { global $_ARRAYLANG, $objDatabase; $field = ""; $display = $show ? "block" : "none"; switch ($type) { case 'text': case 'hidden': case 'special': $field .= "<div style=\"display: " . $display . ";\" id=\"fieldValueTab_" . $id . "_" . $langid . "\" class=\"fieldValueTabs_" . $id . "\">"; $field .= "<input style=\"width:308px;background: #FFFFFF;\" type=\"text\" name=\"contactFormFieldValue[" . $id . "][" . $langid . "]\" value=\"" . $attr . "\" />\n"; $field .= "</div>"; return $field; break; case 'label': $field .= "<div style=\"display: " . $display . ";\" id=\"fieldValueTab_" . $id . "_" . $langid . "\" class=\"fieldValueTabs_" . $id . "\">"; $field .= "<textarea style=\"width: 90%;background: #FFFFFF\" name=\"contactFormFieldValue[" . $id . "][" . $langid . "]\">" . $attr . "</textarea>\n"; $field .= "</div>"; return $field; break; case 'checkbox': /* Only one instance of checkbox is allowed for any number of active language */ if ($show) { return "<select style=\"width:331px;\" name=\"contactFormFieldValue[" . $id . "]\">\n\n <option value=\"0\"" . ($attr == 0 ? ' selected="selected"' : '') . ">" . $_ARRAYLANG['TXT_CONTACT_NOT_SELECTED'] . "</option>\n\n <option value=\"1\"" . ($attr == 1 ? ' selected="selected"' : '') . ">" . $_ARRAYLANG['TXT_CONTACT_SELECTED'] . "</option>\n\n </select>"; } break; case 'country': case 'access_country': /* Only one instance of country select is allowed for any number of active language */ if ($show) { $field = "<select style=\"width:331px;\" name=\"contactFormFieldValue[" . $id . "]\">\n"; $field .= "<option value=\"" . $_ARRAYLANG['TXT_CONTACT_PLEASE_SELECT'] . "\" >" . $_ARRAYLANG['TXT_CONTACT_PLEASE_SELECT'] . "</option>\n"; $country = \Cx\Core\Country\Controller\Country::getNameArray(true, $langid); foreach ($country as $id => $name) { $sourcecode[] = "<option value=\"" . $name . "\" " . ($attr == $name ? 'selected="selected"' : '') . ">" . $name . "</option>"; } $field .= "</select>"; return $field; } break; case 'checkboxGroup': case 'select': case 'radio': $field .= "<div style=\"display: " . $display . ";\" id=\"fieldValueTab_" . $id . "_" . $langid . "\" class=\"fieldValueTabs_" . $id . "\">"; $field .= "<input style=\"width:308px;background: #FFFFFF;\" type=\"text\" name=\"contactFormFieldValue[" . $id . "][" . $langid . "]\" value=\"" . $attr . "\" /> <span class=\"tooltip-trigger icon-info\"></span><span class=\"tooltip-message multiple-values-by-comma\">{TXT_CONTACT_SEPARATE_MULTIPLE_VALUES_BY_COMMA}</span>\n"; $field .= "</div>"; return $field; break; default: return ''; break; } }
/** * Initialize countries. * * @access public */ public function __construct() { $this->arrCountries = \Cx\Core\Country\Controller\Country::getNameArray(); }