HEX
Server: LiteSpeed
System: Linux php-prod-3.spaceapp.ru 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: sarli3128 (1010)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/retile.ru/public_html/catalog/controller/extension/module/formcreator.php
<?php
class ControllerExtensionModuleFormcreator extends Controller{
	
	public function index($setting) {
		$this->load->language('extension/module/formcreator');

		$data['button_text'] = $this->language->get('button_text');
		$data['button_send'] = $this->language->get('button_send');
		
		$data['entry_name'] = $this->language->get('entry_name');
		$data['entry_phone'] = $this->language->get('entry_phone');
		$data['entry_email'] = $this->language->get('entry_email');
		$data['enntry_text'] = $this->language->get('enntry_text');
		
		if (isset($setting['module_id'])){
			$data['module_id'] = $setting['module_id'];
			$this->form_id = $setting['module_id'];
		}
		
		$fields = $setting['formcreator_field'];
		//$fields = $this->config->get('formcreator_field');

			if ($setting['form_name'][$this->config->get('config_language_id')]){
				$data['module_name'] = $setting['form_name'][$this->config->get('config_language_id')];
			} else {
				$data['module_name'] = $setting['name'];
			}	

			if (isset($setting['formcreator_modal'])) {
				$data['button_name'] = $setting['modal_button'][$this->config->get('config_language_id')];
			}

			$this->session->data['formcreator_email'] = $setting['formcreator_email'];

			if ($setting['form_success'][$this->config->get('config_language_id')]){
				$data['form_success'] = $setting['form_success'][$this->config->get('config_language_id')];
			} else {
				$data['form_success'] = $this->language->get('text_succes');
			}

		if (isset($fields)) {	
			foreach ($fields as $field) {
				if (!isset($field['field_status'])) {
					$field['field_status'] = 0;
				}
				if (!isset($field['required'])) {
					$field['required'] = 0;
				}
				if (!isset($field['option'])) {
					$field['option'][$this->config->get('config_language_id')] = 0;
				} else {
					$field['option'][$this->config->get('config_language_id')] = explode(':', $field['option'][$this->config->get('config_language_id')]);
				}
				$data['fields'][] = array(
					'name' => $field['name'][$this->config->get('config_language_id')],
					'type' => $field['type'],
					'field_status' => $field['field_status'],
					'required' => $field['required'],
					'option' => $field['option'][$this->config->get('config_language_id')],
				);
			}
		}
		$data['domain'] = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
		if (isset($setting['formcreator_modal'])) {
				return $this->load->view('extension/module/formcreator_modal', $data);
		} else {
				return $this->load->view('extension/module/formcreator', $data);
		}
	}

	public function send() {
		
		$this->language->load('extension/module/formcreator');
		
		$json = array(); 
	
		if ($this->request->server['REQUEST_METHOD'] == 'POST') {
		
			$feedback_options = array(
				'module_name' => $this->request->post['module_name'],
				'module_id' => $this->request->post['module_id'],
				'page_link'   =>  $this->request->post['link_page'],
				);
			$form_success = $this->request->post['form_success'];

			$json = $this->validate($this->request->post);
	    	
			if (!isset($json['error'])) {
			$json = $this->request->post;
			foreach ($json['form_input'] as $key_fields => $fields) {
				$json['form_input'][$key_fields] = '';

				foreach ($fields as $key_text => $text) {
					$key_text = str_replace("'", "&#039;", $key_text);
					$text = str_replace("'", "&#039;", $text);
					$json['form_input'][$key_fields][$key_text] = $text;
				}
			}

			$this->load->model('extension/module/formcreator');
			$this->model_extension_module_formcreator->addFeedback($json, $feedback_options);
						
				$link_page = $this->request->post['link_page']. "\n\n" ;

				$domain = $_SERVER['SERVER_NAME'];			
				$domain = str_replace( 'http://', '', $domain );			
				$domain = str_replace( 'www.', '', $domain );

				$mail = new Mail($this->config->get('config_mail_engine'));
				$mail->parameter = $this->config->get('config_mail_parameter');
				$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
				$mail->smtp_username = $this->config->get('config_mail_smtp_username');
				$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
				$mail->smtp_port = $this->config->get('config_mail_smtp_port');
				$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

				if ($this->session->data['formcreator_email']) {	
					$mail->setTo($this->session->data['formcreator_email']);
				} else {
					$mail->setTo($this->config->get('config_email'));
				}
			  	//$mail->setFrom($this->config->get('config_email'));
			  	$mail->setFrom('info@'.$domain);
			  	$mail->setSender($this->config->get('config_name'));
			  	$mail->setSubject(html_entity_decode(sprintf($this->language->get('entry_email'), 'NAMEString', ENT_QUOTES, 'UTF-8')));
			  	
				$form = $json['form_input'];
						foreach ($form as $form_box) {
							foreach ($form_box as $name => $value) {
								if ($name != 'required') {
									if (!isset($forms_tomail)) {
										if (is_array($value)){
											$forms_tomail = $name . ': '. implode(", ",$value) . "\n\n";
										} else {
											$forms_tomail = $name . ': '. $value . "\n\n";
										}
									} else {
										if (is_array($value)){
											$forms_tomail .= $name . ': '. implode(", ",$value) . "\n\n";
										} else {
											$forms_tomail .= $name . ': '. $value . "\n\n";
										}
									}
								}
							}
						}

			  	$mail->setText(
			  		 html_entity_decode($forms_tomail)
			  		. html_entity_decode($this->language->get('message_link') . ' '.$link_page, ENT_QUOTES, 'UTF-8')
			  		);
		      	$mail->send();

		      	//Send to additional alert emails
				$emails = explode(',', $this->config->get('config_mail_alert_email'));
				foreach ($emails as $email) {
					if ($email && filter_var($email, FILTER_VALIDATE_EMAIL)) {
						$mail->setTo($email);
						$mail->send();
					}
				}

				$json['success'] = $form_success;
			}	


		}

		$this->response->setOutput(json_encode($json));

	}


	public function validate($results){
		$this->language->load('module/formcreator');
		$text_error_send = $this->language->get('error_send');
		$out = array();

			$form = $results['form_input'];
    		foreach ($form as $form_box) {
    			if ( isset($form_box['required']) && $form_box['required'] == 'input') {
	    			foreach ($form_box as $name => $value) {
						if ($name != 'required'){
	    					if ((utf8_strlen($value) < 3) || (utf8_strlen($value) > 32)) {
	    						$out['error'] = $text_error_send;
	    					}
	    				}
	    			}
    			}
    		}

    		$form = $results['form_input'];
    		foreach ($form as $form_box) {
    			if ( isset($form_box['required']) && $form_box['required'] == 'textarea') {
	    			foreach ($form_box as $name => $value) {
	    				
						if ($name != 'required'){
	    					if ((utf8_strlen($value) < 5) || (utf8_strlen($value) > 200)) {
	    						$out['error'] = $text_error_send;
	    					}
	    				}
    				}
    			}
    		}

    		$form = $results['form_input'];
    		foreach ($form as $form_box) {
    			if ( isset($form_box['required']) && $form_box['required'] == 'radio') {
					if (count($form_box) == 1){
    						$out['error'] = $text_error_send;
    				}
    			}
    		}

    		$form = $results['form_input'];
    		foreach ($form as $form_box) {
    			if ( isset($form_box['required']) && $form_box['required'] == 'checkbox') {
					if (count($form_box) == 1){
    						$out['error'] = $text_error_send;
    				}
    			}
    		}

    	return $out;
	}
}