/** * Generate Model config. * * @static * @access public * @return ModelCore\MConfig * @since 1.1.1-dev * @version 1.3.0-dev */ public static function generateConfig() { $config = parent::generateConfig(); // BACKEND $config->addField(Form\Field\Hidden::singleton('id')->setDisabled()); $config->addField(Form\Field\Text::singleton('title')->setLabel(__('Menu title'))); // return config return $config; }
/** * Generate config object of particular Model. * * @static * @author Krzysztof Trzos * @access protected * @return ModelCore\MConfig * @since 2015-01-10 * @version 1.1.1-dev, 2015-08-10 */ public static function generateConfig() { // get config $config = parent::generateConfig(); // add fields $config->addField(Form\Field\Hidden::singleton('id')); $config->addField(Form\Field\Text::singleton('name')->setLabel(__('Name'))->setRequired()); // return config return $config; }
/** * Generate Config. * * @static * @access public * @return ModelCore\MConfig * @since 1.0.0-alpha * @version 1.0.0-alpha */ public static function generateConfig() { // get Config from parent $config = parent::generateConfig(); // BACKEND $config->addField(Form\Field\Hidden::singleton('id')->setLabel(__('ID'))->setDisabled()); $config->addField(Form\Field\Text::singleton('title')->setLabel(__('Title'))); $config->addField(Form\Field\Textarea::singleton('description')->setLabel(__('Description'))); // return Config return $config; }
/** * Method which changes form object before all operations (validation and saving). * * @access protected * @param Form $form * @since 1.0.1-dev, 2015-02-20 * @version 2.1.1-dev */ protected function alterForm(Form &$form) { parent::alterForm($form); $sCurrentRoute = Router::getCurrentRouteName(); # other pages switch ($sCurrentRoute) { // USER PASSWORD CHANGE case 'user_password_change': case 'password_recovery_code': $form->getField('password')->setLabel(__('New password')); $form->addField(Form\Field\Password::factory('new_password_confirm', $form)->setRequired()->setLabel(__('Confirm new password'))->addRule(['\\Plethora\\Validator\\Rules::sameAs', [':value', ':valuefrom:password']])); break; // USER REGISTRATION // USER REGISTRATION case 'register': $loginAttributes = $form->getField('login')->getAttributes(); $loginAttributes->removeAttribute('disabled'); $emailAttrs = $form->getField('email')->getAttributes(); $emailAttrs->removeAttribute('disabled'); $form->addField(Form\Field\Text::factory('email_confirm', $form)->setRequired()->setLabel(__('Confirm e-mail'))->setWeightToBeAfter('email')->addRule(['\\Plethora\\Validator\\Rules::sameAs', [':value', ':valuefrom:email']])); $form->getField('password')->setWeightToBeAfter('email_confirm'); $form->addField(Form\Field\Password::factory('password_confirm', $form)->setRequired()->setLabel(__('Confirm password'))->addRule(['\\Plethora\\Validator\\Rules::sameAs', [':value', ':valuefrom:password']])->setWeightToBeAfter('password')); break; } if (in_array($sCurrentRoute, ['backend', 'user_profile_edit', 'user_password_change'])) { $confirmField = Form\Field\PasswordConfirm::factory('password_check', $form); $confirmField->setLabel(__('Enter your password')); $confirmField->setTip(__('This field is used for a security purposes.')); $confirmField->setWeight(999); $confirmField->setPrefix('<div class="field_prefix" style="margin-top: 50px;"></div>'); $form->addField($confirmField); } if (in_array($sCurrentRoute, ['user_profile_edit'])) { $form->removeField('roles'); } if (in_array($sCurrentRoute, ['backend'])) { /* @var $password Field\Password */ $password = $form->getField('password'); $password->setRequiredNot(); } # captcha on needed pages if (in_array($sCurrentRoute, ['register'])) { $captchaField = Form\Field\Captcha::singleton('captcha'); $captchaField->setLabel(__('Security field')); $captchaField->setWeight(999999999); $captchaField->setFormIfSingleton($form); } }
/** * ACTION - User login. * * @access public * @return View * @since 1.0.2, 2013-12-07 * @version 1.0.7-dev, 2015-05-04 */ public function actionLogin() { $this->setTitle(Core::getAppName() . ' - ' . __('Login form')); $this->addBreadCrumb(__('Login form')); $oLoggedUser = Model\User::getLoggedUser(); if ($oLoggedUser instanceof Model\User) { Route::factory('user_profile')->redirectTo(['id' => $oLoggedUser->getId()]); } $failedLogins = \User\LoginFail::getCachedData(); if ($failedLogins > 4) { return View::factory('base/alert')->set('sType', 'danger')->set('sMsg', __('to.many.incorrect.logins')); } $oLoginForm = Form::factory('login'); $oLoginForm->addField(Form\Field\Text::factory('login', $oLoginForm)); $oLoginForm->addField(Form\Field\Password::factory('password', $oLoginForm)); if ($oLoginForm->isSubmittedAndValid()) { $sUsername = $oLoginForm->get('login'); $sPassword = $oLoginForm->get('password'); $sEncryptedPassword = Helper\Encrypter::factory()->encrypt($sUsername, $sPassword); $oUser = DB::query("SELECT u FROM \\Model\\User u WHERE u.login = :login AND u.password = :pass")->param('login', $sUsername)->param('pass', $sEncryptedPassword)->single(); if ($oUser instanceof Model\User) { Session::set('username', $sUsername); Session::set('uid', (int) $oUser->getId()); $oUser->setLoginDateNOW(); DB::flush(); # Get role permissions for particular user and set them in session \UserPermissions::reset(); Route::factory(Router::getCurrentRouteName())->redirectTo(); } else { $currentUrl = Router::currentUrl(); $alert = __('You have entered wrong username or password. Try again.'); \User\LoginFail::addLoginFail(); Session::flash($currentUrl, $alert, 'danger'); } } $oLoginForm->addToSuffix(View::factory('user/frontend/login_links')->render()); return View::factory('base/form')->bind('oForm', $oLoginForm); }
/** @noinspection PhpMissingParentCallCommonInspection */ public function actionDefault() { // create pass recovery form $oForm = Form::factory('password_recovery'); $emailField = Form\Field\Text::factory('email', $oForm)->setRequired()->setLabel('E-mail'); $oForm->addField($emailField); $oForm->addField(Form\Field\Captcha::factory('captcha', $oForm)); // if form is valid if ($oForm->isSubmittedAndValid()) { $sEmail = $oForm->getField('email')->getValueFirst(); // find user with particular e-mail $query = DB::query('SELECT u FROM \\Model\\User u WHERE u.email = :email'); $query->param('email', $sEmail); $oResult = $query->single(); /* @var $oResult User */ if ($oResult instanceof User) { $this->sendRecoveryCode($oResult); $sMessage = __("Message has been sent on your e-mail address. Click on the link from it's content to recover password to your account."); Session::flash(Router::getCurrentUrl(), $sMessage); } } // return view return View::factory('user/frontend/recovery/default')->bind('oForm', $oForm); }
/** * Fields config for backend. * * @access public * @return ModelCore\MConfig * @since 1.0.0-alpha * @version 1.0.0-alpha */ protected static function generateConfig() { $oConfig = parent::generateConfig(); $currentRouteName = Router::getCurrentRouteName(); $currentRouteParams = Router::getParams(); $oConfig->addField(Form\Field\Hidden::singleton('id')->setLabel(__('ID'))->setDisabled()); // BACKEND if ($currentRouteName === 'backend' && in_array($currentRouteParams['action'], ['edit', 'list'])) { $oConfig->addField(Form\Field\Text::singleton('name')->setLabel(__('File name'))->setDisabled()); $oConfig->addField(Form\Field\Text::singleton('ext')->setLabel(__('File extension'))->setDisabled()); $oConfig->addField(Form\Field\Text::singleton('file_path')->setLabel(__('File path'))->setDisabled()); $oConfig->addField(Form\Field\Text::singleton('mime')->setLabel(__('File MIME type'))->setDisabled()); $oConfig->addField(Form\Field\Text::singleton('size')->setLabel(__('File size'))->setTip(__('File size in KB.'))->setDisabled()); $oConfig->addField(Form\Field\Select::singleton('status')->setOptions([0 => __('Temporary'), 1 => __('Permanent')])->setLabel(__('Status'))->setDisabled()); } return $oConfig; }
/** * Fields config for backend. * * @access public * @return MConfig * @since 1.0.0 * @version 2.1.0-dev */ protected static function generateConfig() { # get all permissions list $aRoles = []; $aResult = DB::queryList('\\Model\\User\\Role')->execute(); foreach ($aResult as $oRole) { /* @var $oRole User\Role */ $aRoles[] = ['value' => $oRole->getId(), 'label' => $oRole->getName()]; } # get config from parent $config = parent::generateConfig(); # create fields $config->addField(FormField\Hidden::singleton('id')->setLabel(__('ID'))->setDisabled()); $config->addField(FormFieldPassword::singleton('password')->setLabel(__('Password'))->addRulesSet(RulesSetBuilder\String::factory()->containNumbers(':value')->containText(':value')->containUppercase(':value')->containCustomCharacters(':value'))); $config->addField(FormField\Text::singleton('login')->setLabel('Login')->addTipParagraph(__('This value can contain only letters, numbers and "-" or "_" characters.'))->setDisabled()->addRulesSet(RulesSetBuilder\String::factory()->onlyLettersNumsAndChars(':value', '\\-_', __('This value can contain only letters, numbers and "-" or "_" characters.')))->addRulesSet(RulesSetBuilder\Database::factory()->unique(':value', ':valuefrom:id', '\\Model\\User', 'login'))); $config->addField(FormField\Text::singleton('email')->setLabel('E-mail')->setDisabled()->addRulesSet(RulesSetBuilder\String::factory()->email(':value'))->addRulesSet(RulesSetBuilder\Database::factory()->unique(':value', ':valuefrom:id', '\\Model\\User', 'email'))); $config->addField(FormField\Text::singleton('firstname')->setLabel(__('Firstname'))->addRulesSet(RulesSetBuilder\String::factory()->onlyLetters(':value'))); $config->addField(FormField\Text::singleton('lastname')->setLabel(__('Lastname'))->addRulesSet(RulesSetBuilder\String::factory()->onlyLetters(':value'))); $config->addField(FormField\Text::singleton('nickname')->setLabel(__('Nickname'))); $config->addField(FormField\ImageModel::singleton('image')->setBrokerModel('\\Model\\User\\Image')->setUploadPath('uploads/users/image')->setLabel(__('Image'))->addRulesSet(RulesSetBuilder\FileModel::factory()->allowedExt(':value', ['jpg', 'png', 'gif'])->maxSize(':value', 1024))); $config->addField(FormField\Text::singleton('city')->setLabel(__('City'))->addRulesSet(RulesSetBuilder\String::factory()->onlyLetters(':value'))); $config->addField(FormField\Textarea::singleton('description')->setLabel(__('Description'))); if (\UserPermissions::hasPerm('users_edit')) { $config->addField(CheckboxRelationFormField::singleton('roles')->setRelatedModelName('\\Model\\User\\Role')->setOptions($aRoles)->setLabel(__('Roles'))); } $config->addFieldFormatter('registration_date', FieldFormatterDate::factory()); $config->addFieldFormatter('login_date', FieldFormatterDate::factory()); # return config return $config; }
/** * Fields config for backend. * * @static * @access protected * @return ModelCore\MConfig * @since 1.1.0-dev * @version 1.3.0-dev */ protected static function generateConfig() { // get config from parent $config = parent::generateConfig(); // get list of all routes $routesList = array_keys(Router::getRoutes()); $routesOptions = []; foreach ($routesList as $value) { $routesOptions[$value] = ['value' => $value, 'label' => $value]; } // BACKEND $config->addField(Form\Field\Hidden::singleton('id')->setDisabled()); $config->addField(Form\Field\Select::singleton('route')->setOptions(array_combine($routesList, $routesList))->setLabel(__('Route'))->setRequired()); $config->addField(Form\Field\Text::singleton('route_parameters')->setLabel(__('Route parameters'))->setQuantity(0)); $config->addField(Form\Field\Text::singleton('url')->setLabel('URL')); $config->addField(Form\Field\Checkbox::singleton('active_routes')->setColumnsAmount(3)->setOptions($routesOptions)->setLabel(__('Active routes'))->setTip(__('List of routes for which the actual route will be active'))); $config->addField(Form\Field\Text::singleton('classes')->setLabel(__('HTML classes'))->addRulesSet(Validator\RulesSetBuilder\String::factory()->regex(':value', '[0-9a-z_-]*'))); // return config return $config; }
/** * Generate config object of particular Model. * * @overwritten * @static * @author Krzysztof Trzos * @access protected * @return ModelCore\MConfig * @since 2015-01-10 * @version 1.1.1-dev, 2015-08-10 */ public static function generateConfig() { // get all permissions list $aPermissions = []; $aResult = DB::queryList('\\Model\\User\\Permission')->execute(); foreach ($aResult as $oPermission) { /* @var $oPermission Permission */ $aPermissions[$oPermission->getId()] = ['value' => $oPermission->getId(), 'label' => $oPermission->getName()]; } $config = parent::generateConfig(); // return MConfig $config->addField(Form\Field\Hidden::singleton('id')); $config->addField(Form\Field\Text::singleton('name')->setRequired()->setLabel(__('Name'))); $config->addField(Form\Field\CheckboxRelation::singleton('permissions')->setRelatedModelName('\\Model\\User\\Permission')->setColumnsAmount(3)->setOptions($aPermissions)->setLabel(__('Permissions'))); return $config; }
/** * Fields config for backend. * * @access public * @return ModelCore\MConfig * @since 1.1.0-dev * @version 1.3.0-dev */ protected static function generateConfig() { $config = parent::generateConfig(); // BACKEND $config->addField(Form\Field\Hidden::singleton('id')->setDisabled()); $config->addField(Form\Field\Text::singleton('working_name')->setLabel(__('Working name'))->addRulesSet(Validator\RulesSetBuilder\String::factory()->regex(':value', '^[a-z_]*$', __('The working name must contain only lowercase letters and underscores.')))); // return config return $config; }
/** * Fields config for backend. * * @access public * @return ModelCore\MConfig * @since 1.0.0 * @version 1.0.3-dev, 2015-04-29 */ protected static function generateConfig() { # create config $config = parent::generateConfig(); # create fields $config->addField(Form\Field\Hidden::singleton('id')->setLabel('ID')->setDisabled()); $config->addField(Form\Field\Select::singleton('published')->setOptions(['Nie', 'Tak'])->setLabel(__('Published'))->setRequired()->addRulesSet(Validator\RulesSetBuilder::factory()->addRule(['in_array', [':value', [1, 0]]]))); $config->addField(Form\Field\Text::singleton('title')->setLabel(__('Title'))->setRequired()); $config->addField(Form\Field\Text::singleton('rewrite')->setRequired()->setLabel(__('URL alias'))); $config->addField(Form\Field\Text::singleton('keywords')->setLabel(__('Keywords'))); $config->addField(Form\Field\ImageModel::singleton('image')->setBrokerModel('\\Model\\Page\\Image')->setUploadPath('uploads/page')->setRequired()->setLabel(__('Image'))->addRulesSet(Validator\RulesSetBuilder\ImageModel::factory()->allowedExt(':value', ['jpg', 'gif', 'png', 'jpeg']))); $config->addField(Form\Field\FileModel::singleton('files')->setBrokerModel('\\Model\\Page\\File')->setUploadPath('uploads/page_files')->setQuantity(0)->setLabel(__('Attachments'))->addRulesSet(Validator\RulesSetBuilder\ImageModel::factory()->allowedExt(':value', ['txt', 'pdf', 'docx', 'doc', 'rtf', 'zip']))); $config->addField(Form\Field\Textarea::singleton('description')->setLabel(__('Description'))); $config->addField(Form\Field\Tinymce::singleton('content')->setRequired()->setLabel(__('Content'))); # return config return $config; }