public function index() { $user = System::getUser(); $form = new Form('form-profile'); $form->setAttribute('data-noajax', 'true'); $form->binding = $user; $fieldset = new Fieldset(System::getLanguage()->_('General')); $firstname = new Text('firstname', System::getLanguage()->_('Firstname')); $firstname->binding = new Databinding('firstname'); $lastname = new Text('lastname', System::getLanguage()->_('Lastname')); $lastname->binding = new Databinding('lastname'); $email = new Text('email', System::getLanguage()->_('EMail'), true); $email->binding = new Databinding('email'); $email->blacklist = $this->getListOfMailAdresses($user); $email->error_msg[4] = System::getLanguage()->_('ErrorMailAdressAlreadyExists'); $language = new Radiobox('lang', System::getLanguage()->_('Language'), L10N::getLanguages()); $language->binding = new Databinding('lang'); $fieldset->addElements($firstname, $lastname, $email, $language); $form->addElements($fieldset); $fieldset = new Fieldset(System::getLanguage()->_('Password')); $password = new Password('password', System::getLanguage()->_('Password')); $password->minlength = PASSWORD_MIN_LENGTH; $password->binding = new Databinding('password'); $password2 = new Password('password2', System::getLanguage()->_('ReenterPassword')); $fieldset->addElements($password, $password2); $form->addElements($fieldset); $fieldset = new Fieldset(System::getLanguage()->_('Settings')); $quota = new Text('quota', System::getLanguage()->_('Quota')); if ($user->quota > 0) { $quota->value = System::getLanguage()->_('QuotaAvailabe', Utils::formatBytes($user->getFreeSpace()), Utils::formatBytes($user->quota)); } else { $quota->value = System::getLanguage()->_('Unlimited'); } $quota->readonly = true; $fieldset->addElements($quota); $form->addElements($fieldset); if (Utils::getPOST('submit', false) !== false) { if (!empty($password->value) && $password->value != $password2->value) { $password2->error = System::getLanguage()->_('ErrorInvalidPasswords'); } else { if ($form->validate()) { $form->save(); System::getUser()->save(); System::getSession()->setData('successMsg', System::getLanguage()->_('ProfileUpdated')); System::forwardToRoute(Router::getInstance()->build('ProfileController', 'index')); exit; } } } else { $form->fill(); } $form->setSubmit(new Button(System::getLanguage()->_('Save'), 'floppy-disk')); $smarty = new Template(); $smarty->assign('title', System::getLanguage()->_('MyProfile')); $smarty->assign('heading', System::getLanguage()->_('MyProfile')); $smarty->assign('form', $form->__toString()); $smarty->display('form.tpl'); }
/** * Returns the default string representation of this form. * * @return string The form as '<form>...</form>'. * @see Formulaic\Form::__toString */ public function __toString() { foreach ((array) $this as $field) { if ($field->getElement() instanceof File) { $this->attributes['enctype'] = 'multipart/form-data'; } } $this->attributes['method'] = 'post'; return parent::__toString(); }
private function sendForm($ini, $subject = '') { $form = new Form(); if ($form->ParseSettings($ini)) { $this->formData = $form->BuildFormFields($_POST); if (empty($this->formData['error'])) { /* if (isset($_POST['to_email'])){ $form->setEmail($_POST['to_email']); }else{ $form->setEmail(); }*/ $form->setEmail(isset($_POST['to_email']) ? $_POST['to_email'] : ''); $subject = isset($_POST['subject']) ? $_POST['subject'] : $subject; $msg = 'Contact request from ' . $_SERVER['HTTP_HOST'] . "\n\n" . 'Contact IP: ' . $_SERVER['REMOTE_ADDR'] . "\n" . $form->__toString(); $form->SendMail($subject, $msg, isset($this->formData['fields']['name']) ? $this->formData['fields']['name'] : 'Anonymous', $this->formData['fields']['email']); } } }
private function sendForm($ini, $subject = null) { if (!substr_count($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'])) { return false; } $form = new Form(); if ($form->ParseSettings($ini)) { $this->formData = $form->BuildFormFields($_POST); if (empty($this->formData['error'])) { if (isset($_POST['emails'])) { if ($mSettings = $form->getmSettings()) { foreach ($mSettings as $key => $val) { if (1 == substr_count($key, 'mail')) { $form->delmSettings($key); } } } $form->setmSettings(array('emails' => $_POST['emails'])); } $subject = isset($subject) ? $subject : 'Request'; if (!empty($_POST['product']) && is_numeric($_POST['product'])) { $products = new Products(); $product = $products->getProductById($_POST['product']); $subject .= ' [' . $product['p_title'] . ']'; } elseif (!empty($_POST['product']) && is_string($_POST['product'])) { $subject .= ' [' . $_POST['product'] . ']'; $product = null; } $subject = isset($_POST['subject']) ? $_POST['subject'] : $subject; $msg = $subject . ' from ' . $_SERVER['HTTP_REFERER'] . "\n\n" . (isset($product) ? 'Product: ' . $product['p_title'] . "\n" : '') . $form->__toString(); if (isset($this->formData['AttachFile'])) { $filePath = $this->formData['AttachFile']['filepath']; $fileName = $this->formData['AttachFile']['filename']; } else { $filePath = ''; $fileName = ''; } if (!empty($_POST['subscribe']) && !empty($_POST['email']) && !empty($_POST['product'])) { $table_name = 'discount_subscribe'; $name = isset($_POST['name']) ? $_POST['name'] : ''; $q = sprintf("INSERT IGNORE INTO %s.%s (email, product_id, name, date) values('%s',%d, '%s', '%s')", VBox::get('ConstData')->getConst('langsDb'), $table_name, $_POST['email'], $_POST['product'], $name, date('Y-m-d')); DB::executeAlter($q, 'reg'); } if (!empty($_POST['notify']) && !empty($_POST['email']) && !empty($_POST['product'])) { $table_name = 'notify_users'; $q = 'SELECT * FROM ' . VBox::get('ConstData')->getConst('langsDb') . '.' . $table_name . ' WHERE nu_product_id = ? AND nu_email = ? LIMIT 1'; if (!DB::executeQuery($q, 'selectNotifyUser', array($_POST['product'], trim($_POST['email'])))) { $q = sprintf("INSERT IGNORE INTO %s.%s (nu_email, nu_product_id, nu_name, nu_date) values('%s',%d, '%s', '%s')", VBox::get('ConstData')->getConst('langsDb'), $table_name, trim($_POST['email']), $_POST['product'], $_POST['name'], date('Y-m-d h:i:s', time())); DB::executeAlter($q, 'reg'); } } if (isset($_POST['mail_body'])) { $mail_body = nl2br($_POST['mail_body']); $reply_to = isset($_POST['reply_to']) ? $_POST['reply_to'] : '*****@*****.**'; include_once ENGINE_PATH . 'class/classEmailReporter.php'; $reporter = new EmailReporter(); $reporter->setBody($mail_body); $reporter->send($this->formData['fields']['email'], array($reply_to => 'NetSpot'), $subject); } if (!empty($_POST['notify_template_stat']) && !empty($_POST['email']) && !empty($_POST['alias'])) { $table_name = 'email_stat'; /* add information at stat table */ $q = sprintf("INSERT INTO %s.%s (es_email, es_product_id, es_date) values('%s','%s','%s')", VBox::get('ConstData')->getConst('langsDb'), $table_name, $_POST['email'], $_POST['alias'], date('Y-m-d h:i:s', time())); DB::executeAlter($q, 'notify_template_stat'); if (!empty($_POST['template'])) { $last_id = DB::getLastInsertId(); if ($last_id) { include_once ENGINE_PATH . 'class/classEmailReporter.php'; $reporter = new EmailReporter(); $_subject = isset($_POST['templateSubject']) ? $_POST['templateSubject'] : 'Thank you for subscription'; $args = array(); $args['email'] = $_POST['email']; $args['hash'] = hash_hmac('md5', $last_id . $_POST['email'], 'stat'); $args['id'] = $last_id; $args['random'] = rand(0, 10000) . chr(rand(65, 90)); if (isset($_POST['args'])) { $args = $_POST['args']; } $mail_body = $reporter->renderingTpl($_POST['template']); $reporter->setBody($mail_body, $args); $reply_to = isset($_POST['reply_to']) ? $_POST['reply_to'] : '*****@*****.**'; $reporter->send($this->formData['fields']['email'], array($reply_to => 'NetSpot Software'), $_subject); } } } if (!empty($_POST['mailchimp_u']) && !empty($_POST['mailchimp_id'])) { $mailchimp_post_url = 'http://netspotapp.us12.list-manage.com/subscribe/post'; //netspotapp.us12.list-manage.com/subscribe/post?u=49afa3dbcd460871845fac4b8&id=df296d03d7 $attributes = array('u' => $_POST['mailchimp_u'], 'id' => $_POST['mailchimp_id'], 'MERGE0' => $_POST['email'], 'MERGE1' => isset($_POST['name']) ? $_POST['name'] : '', 'MERGE2' => ''); $errno = $error = false; if ($curl = curl_init()) { curl_setopt($curl, CURLOPT_URL, $mailchimp_post_url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($attributes)); $out = curl_exec($curl); $info = curl_getinfo($curl); $errno = curl_errno($curl); $tickets_hasError = curl_error($curl); curl_close($curl); // echo $out; // var_dump($info); // var_dump($errno); //var_dump($tickets_hasError); } } if (empty($_POST['not_send'])) { $fromEmail = empty($this->formData['fields']['email']) ? '*****@*****.**' : $this->formData['fields']['email']; $fromName = empty($this->formData['fields']['name']) ? $fromEmail : $this->formData['fields']['name']; $form->SendMail($subject, $msg, $fromName, $fromName . ' <' . $fromEmail . '>', $filePath, $fileName); } } } }
public function permissions() { try { $file = File::find('alias', $this->getParam('alias', '')); } catch (FileNotFoundException $e) { System::displayError(System::getLanguage()->_('ErrorFileNotFound'), '404 Not Found'); } $form = new Form('form-permissions', ''); $fieldset = new Fieldset(System::getLanguage()->_('PermissionSetting')); $permission = new Select('permission', System::getLanguage()->_('Permission'), FilePermissions::getAll()); $permission->selected_value = $file->permission; $password = new Password('password', System::getLanguage()->_('Password')); $fieldset->addElements($permission, $password); $form->addElements($fieldset); if (Utils::getPOST('submit', false) !== false) { if ($form->validate()) { if ($permission->selected_value == 2 && empty($password->value)) { $password->error = System::getLanguage()->_('InvalidPassword'); } else { $file->permission->setPermission($permission->selected_value, $password->value); System::forwardToRoute(Router::getInstance()->build('DownloadController', 'download', $file)); exit; } } } $form->addButton(new Button(System::getLanguage()->_('Cancel'), 'icon icon-cancel', Router::getInstance()->build('DownloadController', 'download', $file))); $smarty = new Template(); $smarty->assign('title', System::getLanguage()->_('PermissionSetting')); $smarty->assign('form', $form->__toString()); $smarty->display('form.tpl'); }
public function upload() { $form = new Form('form-upload', Router::getInstance()->build('UploadController', 'upload')); $form->setAttribute('data-noajax', 'true'); $form->setEnctype(); $fieldset = new Fieldset(System::getLanguage()->_('General')); $folderInput = new Select('folder', System::getLanguage()->_('ChooseFolder'), Folder::getAll()); $folderInput->selected_value = Utils::getGET('parent', NULL); $fieldset->addElements($folderInput); $form->addElements($fieldset); $fieldset = new Fieldset(System::getLanguage()->_('FileUpload')); $fileInput = new FileUpload('file', System::getLanguage()->_('ChooseFile'), false); $fieldset->addElements($fileInput); $form->addElements($fieldset); if (DOWNLOAD_VIA_SERVER) { $fieldset = new Fieldset(System::getLanguage()->_('UploadFromURL')); $url = new Text('url', System::getLanguage()->_('EnterURL'), false); $name = new Text('name', System::getLanguage()->_('Name'), false); $name->setValue(System::getLanguage()->_('DownloadedFile')); $fieldset->addElements($url, $name); $form->addElements($fieldset); } $fieldset = new Fieldset(System::getLanguage()->_('PermissionSetting')); $permissionInput = new Select('permissions', System::getLanguage()->_('Permission'), FilePermissions::getAll()); $permissionInput->selected_value = DEFAULT_FILE_PERMISSION; $password = new Password('password', System::getLanguage()->_('Password'), false); $fieldset->addElements($permissionInput, $password); $form->addElements($fieldset); if (Utils::getPOST('submit', false) != false) { if ($permissionInput->selected_value == 2 && empty($password->value)) { $password->error = System::getLanguage()->_('ErrorEmptyTextfield'); } else { if ($form->validate() && (!empty($url->value) || !empty($fileInput->uploaded_file))) { // Specify input control for error display $err = empty($url->value) ? $fileInput : $url; try { $folder = Folder::find('_id', $folderInput->selected_value); $file = new File(); $file->folder = $folder; $file->permission = $permissionInput->selected_value; $file->password = $password->value; if (empty($url->value)) { $file->filename = $fileInput->filename; $file->upload($fileInput->uploaded_file); } else { $file->filename = $name->value; $file->remote($url->value); } $file->save(); System::forwardToRoute(Router::getInstance()->build('BrowserController', 'show', $folder)); exit; } catch (UploadException $e) { $fileInput->filename = ''; $fileInput->uploaded_file = ''; $err->error = $e->getMessage(); if ($e->getCode() != 0) { $err->error .= ' Code: ' . $e->getCode(); } } catch (QuotaExceededException $e) { $err->error = System::getLanguage()->_('ErrorQuotaExceeded'); } catch (Exception $e) { $fileInput->filename = ''; $fileInput->uploaded_file = ''; $err->error = System::getLanguage()->_('ErrorWhileUpload') . ' ' . $e->getMessage(); } } } } $form->setSubmit(new Button(System::getLanguage()->_('Upload'), 'open')); if ($folderInput->selected_value == 0) { $form->addButton(new Button(System::getLanguage()->_('Cancel'), '', Router::getInstance()->build('BrowserController', 'index'))); } else { $form->addButton(new Button(System::getLanguage()->_('Cancel'), '', Router::getInstance()->build('BrowserController', 'show', new Folder($folderInput->selected_value)))); } $smarty = new Template(); $smarty->assign('title', System::getLanguage()->_('Upload')); $smarty->assign('heading', System::getLanguage()->_('FileUpload')); $smarty->assign('form', $form->__toString()); $smarty->assign('BODY_CLASS', 'preventreload'); $smarty->requireResource('upload'); $smarty->display('form.tpl'); }
/** * Returns the default string representation of this form. * * @return string The form as '<form>...</form>'. * @see Formulaic\Form::__toString */ public function __toString() { $this->attributes['method'] = 'get'; return parent::__toString(); }
/** * Register a new user */ public function register() { $param = array('id' => 'register-form', 'model' => 'User', 'reference' => array('id' => -1), 'fieldsets' => array('global' => array('legend' => Lang::get($this->_plugin . '.register-connection-legend'), new TextInput(array('name' => 'username', 'required' => true, 'unique' => true, 'pattern' => '/^\\w+$/', 'label' => Lang::get($this->_plugin . '.register-username-label'))), new EmailInput(array('name' => 'email', 'required' => true, 'unique' => true, 'label' => Lang::get($this->_plugin . '.register-email-label'))), new PasswordInput(array('name' => 'password', 'required' => true, 'encrypt' => array('\\Hawk\\Crypto', 'saltHash'), 'label' => Lang::get($this->_plugin . '.register-password-label'))), new PasswordInput(array('name' => 'passagain', 'required' => true, 'independant' => true, 'label' => Lang::get($this->_plugin . '.register-passagain-label'), 'compare' => 'password'))), 'profile' => array('legend' => Lang::get($this->_plugin . '.register-profile-legend')), 'terms' => array(Option::get($this->_plugin . '.confirm-register-terms') ? new CheckboxInput(array('name' => 'terms', 'required' => true, 'independant' => true, 'labelWidth' => 'auto', 'label' => Lang::get($this->_plugin . '.register-terms-label', array('uri' => App::router()->getUri('terms'))))) : null), '_submits' => array(new SubmitInput(array('name' => 'valid', 'value' => Lang::get($this->_plugin . '.register-button'))), new ButtonInput(array('name' => 'cancel', 'value' => Lang::get($this->_plugin . '.cancel-button'), 'href' => App::router()->getUri('login'), 'target' => 'dialog')))), 'onsuccess' => 'app.dialog(app.getUri("login"))'); $questions = ProfileQuestion::getRegisterQuestions(); foreach ($questions as $question) { $field = json_decode($question->parameters, true); //if(!empty($field->roles) && in_array(Option::get('roles.default-role'), $field->roles)) { if ($question->isAllowedForRole(Option::get('roles.default-role'))) { $classname = 'Hawk\\' . ucwords($question->type) . 'Input'; $field['name'] = $question->name; $field['independant'] = true; $field['label'] = Lang::get('admin.profile-question-' . $question->name . '-label'); // At register, no field is readonly! $field['readonly'] = false; $param['fieldsets']['profile'][] = new $classname($field); } } $form = new Form($param); if (!$form->submitted()) { return Dialogbox::make(array('page' => $form->__toString(), 'icon' => 'sign-in', 'title' => Lang::get($this->_plugin . '.login-form-title'), 'width' => '50rem')); } else { if ($form->check()) { try { $user = new User(array('username' => $form->inputs['username']->dbvalue(), 'email' => $form->inputs['email']->dbvalue(), 'password' => $form->inputs['password']->dbvalue(), 'active' => Option::get($this->_plugin . '.confirm-register-email') ? 0 : 1, 'createTime' => time(), 'createIp' => App::request()->clientIp(), 'roleId' => Option::get('roles.default-role'))); $user->save(); foreach ($questions as $question) { if ($question->type === 'file') { $upload = Upload::getInstance($question->name); if ($upload) { $file = $upload->getFile(0); $dir = Plugin::current()->getUserfilesDir() . 'img/'; $url = Plugin::current()->getUserfilesUrl() . 'img/'; if (!is_dir($dir)) { mkdir($dir, 0755, true); } $upload->move($file, $dir); $user->setProfileData($question->name, $url . $file->basename); } } else { $user->setProfileData($question->name, $form->inputs[$question->name]->dbvalue()); } } $user->saveProfile(); if (Option::get($this->_plugin . '.confirm-register-email')) { // Send an email to validate the registration $tokenData = array('username' => $user->username, 'email' => $user->email, 'createTime' => $user->createTime, 'createIp' => $user->createIp); $token = Crypto::aes256Encode(json_encode($tokenData)); $url = App::router()->getUrl('validate-registration', array('token' => $token)); $data = array('themeBaseCss' => Theme::getSelected()->getBaseCssUrl(), 'themeCustomCss' => Theme::getSelected()->getCustomCssUrl(), 'logoUrl' => Option::get($this->_plugin . '.logo') ? Plugin::current()->getUserfilesUrl(Option::get($this->_plugin . '.logo')) : Plugin::current()->getStaticUrl('img/hawk-logo.png'), 'sitename' => Option::get($this->_plugin . '.sitename'), 'url' => $url); if (Option::get($this->_plugin . '.confirm-email-content')) { $mailContent = View::makeFromString(Option::get($this->_plugin . '.confirm-email-content'), $data); } else { $mailContent = View::make(Plugin::current()->getView('registration-validation-email.tpl'), $data); } $mail = new Mail(); $mail->from(Option::get($this->_plugin . '.mailer-from'))->fromName(Option::get($this->_plugin . '.mailer-from-name'))->to($user->email)->title(Lang::get('main.register-email-title', array('sitename' => Option::get('main.sitename'))))->content($mailContent)->subject(Lang::get($this->_plugin . '.register-email-title', array('sitename' => Option::get($this->_plugin . '.sitename'))))->send(); return $form->response(Form::STATUS_SUCCESS, Lang::get($this->_plugin . '.register-send-email-success')); } else { // validate the registration return $form->response(Form::STATUS_SUCCESS, Lang::get($this->_plugin . '.register-success')); } } catch (Exception $e) { return $form->response(Form::STATUS_ERROR, DEBUG_MODE ? $e->getMessage() : Lang::get($this->_plugin . '.register-error')); } } } }