pwFoo Posted October 12, 2015 Author Share Posted October 12, 2015 In documentation I used $redirectDestination, which isn't optional I'll add it to the wiki page. Thank you a lot. I think it would be enough to mention this in your documentation. I was really confused about the endless loop redirects. And is there any ability to send mails? Because I have the problem that any redirect is looses the data from posting the form. It would be helpful to send the admin an email that a new user is registered. Just write a small extension (a PW hook) to send an email? Could be done inside the template file or a small PW module. Link to comment Share on other sites More sharing options...
pwFoo Posted October 12, 2015 Author Share Posted October 12, 2015 (edited) Hint about redirect loops is added to the wiki documentation. @Florian Grüttner FrontendUser is build with flexibility and PW core features in mind. So you can add an hook to send an email after successfully registered a new user. Use addHookAfter FrontendUser save() method. User registration was successful if you return value is "true" (exactly "true" checked with "==="). You can use WireMail to send an email with the form data. wire('fu')->form Edited October 12, 2015 by pwFoo Link to comment Share on other sites More sharing options...
Webrocker Posted October 29, 2015 Share Posted October 29, 2015 Hi, I'm trying to override the "Send email validation code" value of the UserRegistration submit button, I need it to be translatable. Since I don't want to hack the module (line 157 of FrontendUserRegisterEmailValidation.module) by putting a _('Send email validation code'), I tried to set the custom value with a $fu->addHookBefore('render',function($event){ $form = wire('fu')->form; if (!wire('session')->get('registerStep')) { $form->fhSubmitBtn->value = __('My custom text',$langfile); } }); but to no avail -- it seems that the module's hook function ( hookRegisterFormBeforeRender ), which also will hook into before render, always trumps "my" value. What am I missing? thx Tom 1 Link to comment Share on other sites More sharing options...
Webrocker Posted October 29, 2015 Share Posted October 29, 2015 ok, found it (with the support of @inspeCTor) $fu->form->addHookBefore('render',function($event){ if (!wire('session')->get('registerStep')) { $event->object->fhSubmitBtn->value = __('Send validation code',$langfile); } }); Link to comment Share on other sites More sharing options...
Webrocker Posted October 29, 2015 Share Posted October 29, 2015 Hi again, I think we found a bug regarding the emailValidation E-mail: The email contains some markup residue which is pulled from the _main.php file (for example some google analytics script code), even if sent as text email. If the vars for the render() func contain $vars['prependFile'] = null;$vars['appendFile'] = null;$vars['allowCache'] = false; this is gone. Is there a way to insert this via hook, or only in FrontendUserRegisterEmailValidation.module, line 97ff…? // Set email template variables $vars = array( 'username' => wire('session')->get('registerUsername'), 'email' => wire('session')->get('registerEmail'), 'token' => wire('session')->get('registerToken'), 'url' => wire('page')->httpUrl . '?registerToken=' . wire('session')->get('registerToken'), 'content' => $this->content, // config variable // ToDo: Tests with php 5.3 // no markup from page template: 'prependFile' => null, 'appendFile' => null // ---- // ); // Load the plain / html email templates $emailContentHtml = wire('page')->render(wire('fu')->getFile('validationEmail.php', 'templates'), $vars); // Send verification email with the generated token $mail = wireMail(); $mail->to($form->fhValue('email'))->subject($subject); if ((int)$this->emailType == 1) { $mail->bodyHTML($emailContentHtml); } else { $emailContentPlain = preg_replace('/^\h+|\h+$/m', '', strip_tags($emailContentHtml)); $mail->body($emailContentPlain); } $mail->send(); 1 Link to comment Share on other sites More sharing options...
Webrocker Posted October 29, 2015 Share Posted October 29, 2015 btw, what is the "\h+" in the preg_replace supposed to match against? Link to comment Share on other sites More sharing options...
Christophe Posted October 29, 2015 Share Posted October 29, 2015 Perhaps: /\h+/ \h+ matches any horizontal whitespace character (equal to [[:blank:]]) Quantifier: + Between one and unlimited times, as many times as possible, giving back as needed [greedy] You can test it at https://regex101.com/ 1 Link to comment Share on other sites More sharing options...
pwFoo Posted October 30, 2015 Author Share Posted October 30, 2015 @webrocker Thanks for reporting. I'll release an updated version soon... 1 Link to comment Share on other sites More sharing options...
Webrocker Posted October 30, 2015 Share Posted October 30, 2015 @Christophe Thank you, didn't know about that special char, and my google skills need some improvement, it seems @pwFoo Cool, thanks. Perhaps this could be triggered via a settings option? I guess 'our' problem is caused because we have all the 'surrounding' markup in the _main.php, other structural designs may not be bothered by this. On the other hand, in your demo mail template the complete 'surrounding' markup is contained, so no need for inheritance from the page/main template. hm. on the other hand, what if you need to access some vars or funcs from _init.php or _func.php … guess what i'm trying to say: as so often with processwire: it depends cheers Tom Link to comment Share on other sites More sharing options...
pwFoo Posted November 8, 2015 Author Share Posted November 8, 2015 @webrocker Both changes are committed. Make string translatable: $form->fhSubmitBtn->value = __('Send email validation code'); https://bitbucket.org/pwFoo/frontenduser/src/1bb7c66f83c583b7913c21516bf7c6675a8ca147/FrontendUser/FrontendUserRegisterEmailValidation.module?at=master&fileviewer=file-view-default#FrontendUserRegisterEmailValidation.module-160 prepend / append page template fix 'prependFile' => null, 'appendFile' => null, https://bitbucket.org/pwFoo/frontenduser/src/1bb7c66f83c583b7913c21516bf7c6675a8ca147/FrontendUser/FrontendUserRegisterEmailValidation.module?at=master&fileviewer=file-view-default#FrontendUserRegisterEmailValidation.module-104 No time to do some tests. So please verify and report back problems. 1 Link to comment Share on other sites More sharing options...
Webrocker Posted November 19, 2015 Share Posted November 19, 2015 Hi pwFoo, sorry for the late reply; it seems to work as intended in our install, thank you (one minor thing, tho, the FrontendUserRegisterEmailValidation module is not updatable from the backend, it still claims to be 6 months old, even with the fresh 13.11.15 version on the server…) cheers, Tom Link to comment Share on other sites More sharing options...
pwFoo Posted November 20, 2015 Author Share Posted November 20, 2015 Thanks for Testing FrontendUserRegisterEmailValidation isn't an independent module and packaged with the main module (same git repo and PW module). Link to comment Share on other sites More sharing options...
modifiedcontent Posted December 12, 2015 Share Posted December 12, 2015 I am just getting started on this - building a forum site where users can register an account, have a profile page and then expand from there... Could someone give a summary of this thread. How far along is this module? FrontendUser is listed as alpha/not stable, but does the basic process work? Is it good enough to get started? Is a stable version 1.0 coming any day now or is this an abandoned experiment? Would I be better off trying to develop something very rudimentary from scratch? Link to comment Share on other sites More sharing options...
pwFoo Posted December 12, 2015 Author Share Posted December 12, 2015 Hi, the module is listed as unstable because I don't use it with a production site at the moment and there isn't that much feedback about production usage yet, but I think some members here are using it. Reported issues should be fixed. The module IS designed as a starting point and easy to extend by writing plugins (based on PW hooks) without hacking the module itself. *UPDATE* You plan to build a PW based forum? https://processwire.com/talk/topic/11201-hermodbb-basic-bbforumcomments-module 1 Link to comment Share on other sites More sharing options...
Beluga Posted December 12, 2015 Share Posted December 12, 2015 I'm using it in a low-traffic site since summer 2015 and no reports of problems so far from users. 2 Link to comment Share on other sites More sharing options...
modifiedcontent Posted December 12, 2015 Share Posted December 12, 2015 Thank you for your quick response pwFoo. And Beluga. I have forum websites based on heavily customized Wordpress Multisite now, but it is a structural mess - http://geowebforum.com etc. In Wordpress Multisite each new site is completely independent/disconnected from the others. Buddypress works around that by adding a second users database table. I tried a different approach to minimize the number of plugins and keep everyhing as standard as possible, but Wordpress still makes it hard to manage as one platform. I don't want a classic old skool forum/BB, like this support forum. It should be more like a social network; users have their own profile pages where they can post content in their own channel/newsfeed and then can comment on eachothers content. Whatever the features are going to be, I need a solid, straightforward users/members management system to get started. I'll try your module and will report back here. Thanks again! Link to comment Share on other sites More sharing options...
pwFoo Posted December 12, 2015 Author Share Posted December 12, 2015 Maybe EsoTalk and particularly its successor Flarum could be inspiration. I started such a basic discuss module (just some code for testing, nothing which could be used yet) but stopped it because of lack of time. 1 Link to comment Share on other sites More sharing options...
modifiedcontent Posted December 12, 2015 Share Posted December 12, 2015 EsoTalk and Flarum look like old-fashioned bulletin boards to me. I want something much more content focused; member profile pages as content channels and then collect some platform activity on a general homepage. I like the straightforward way PW handles content. If PW can handle users/members in a similar straightforward way, that would be a great starting point. I don't want to use yet another php script that only does one thing. Link to comment Share on other sites More sharing options...
pwFoo Posted December 12, 2015 Author Share Posted December 12, 2015 I tested FrontendUser module with PW 3.0 dev and it seems to works fine, but minimal changes to FormHelper are needed because of namespace compatibility... The FrontendUserRegisterEmailValidation plugin send an empty mail body and a update is needed to make it work with PW 3.0! Maybe I'll optimize my modules for the PW3.0dev usage soon. FormHelper PW 3.0 dev compatibility: https://processwire.com/talk/topic/7860-module-formhelper/?p=108577 Link to comment Share on other sites More sharing options...
Hereward Posted January 7, 2016 Share Posted January 7, 2016 Hi, I have have added an extra field for registration as per your instructions in Code snippets, however the field data is missing after registration is completed. I have updated the relevant template in admin so that "firstname" is now a user field, and this is working fine. My code is all working ok but the "firstname" field remains empty upon registration. I can only manually update it through admin. ProcessWire 2.7.1 FrontendUser 0.8.9 My code is posted below. $fu = $modules->get('FrontendUser'); $FirstName = $modules->get('InputfieldText'); $FirstName->label = $this->_('First Name'); $FirstName->attr('id+name', 'firstname'); //$FirstName->required = 1; $FirstName->fhSanitizer = 'text'; // Call hook after field is processed by PW form api $FirstName->addHookAfter('processInput', function($event) { $field = $event->object; // Value will be sanitized as text with "$sanitizer->text()" $mySanitizedCustomInput = wire('fu')->form->fhValue($field->name); // Do ... // Example: Add value to user during registration wire('fu')->userObj->myField = $mySanitizedCustomInput; // Need to set an field error? // $field->error('Custom field has an error...'); }); // Define the field before you call FU and add it as additional field... $fu->register(array('username', 'email', 'password', $FirstName)); //$fu->register(); $fu->process("/member-area/login/"); echo $fu->render(); Link to comment Share on other sites More sharing options...
Hereward Posted January 7, 2016 Share Posted January 7, 2016 Acutally I just realised my mistake > "wire('fu')->userObj->myField" . All good. Working now. Link to comment Share on other sites More sharing options...
Florian Grüttner Posted January 11, 2016 Share Posted January 11, 2016 Hello everyone, there is an option in the frontend of the site to create a new user and then to login for downloading the content. I have the following problem: In the PW-backend I can create a new user with access restrictions. When this user has admin rights, he can login in the PW-backend, and when he is loginned in the PW-backend I can see in the frontend the files to download and can logout. But when this user is not logined in the PW-backend he can’t login directly from the frontend. I can’t also create a new user from the frontend. When I'm trying to login or to create a new user in the frontend, I'm redirected to the homepage. What can cause this problem? I took the code from the same project I made earlier. <?php // process register / form submit ?> <?php $downloads = $pages->get(1062)->url; ?> <?php $erfolg = $pages->get(1224)->url; ?> <?php echo $erfolg; ?> <?php $my_downloads = $pages->find("template=download-detail, include=all"); ?> <?php $logout = $pages->get(1363)->url; ?> <div class="register"> <div class="col col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 download"> <?php if($user->isLoggedin()): ?> <div class="col col-xs-12 col-sm-10"> <?php echo "<h3 class='primary headline3 download-text'>Sie sind eingeloggt als '".$user->name."'.</h3>"; ?> </div><!-- col --> <?php else: ?> <div class="col col-xs-12 col-sm-6"> <div class="col col-xs-12 col-sm-10"> <h3 class="primary headline3 register-text">Registrierung</h3> <!-- col --> <?php $fu_r = $modules->get('FrontendUser'); ?> <?php $fu_r->register(); ?> <?php $fu_r->process($erfolg); ?> <?php echo $fu_r->render(); ?> </div> </div> <div class="col col-xs-12 col-sm-6"> <div class="col col-xs-12 col-sm-10"> <h3 class="primary headline3 register-text">Login</h3> <?php $fu_l = $modules->get('FrontendUser'); ?> <?php $fu_l->login(); ?> <?php $fu_l->login(array('username', 'password')); ?> <?php //// Additional LoginPersist and ProcessForgotPassword module integration (built-in) ?> <?php //$fu->login(array('username', 'password', 'persist', 'forgot')); ?> <?php //// process login / form submit ?> <?php ?> <?php $fu_l->process($downloads); ?> <?php //// output form ?> <?php echo $fu_l->render();?> </div> </div> <?php endif; ?> </div><!-- col --> <?php if($user->isLoggedin()): ?> <div class="download-list"> <div class="col col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1"> <div class="col col-xs-12 col-sm-5 col-sm-offset-0 main-text"> <?php $user_pages = $user->download_selector; ?> <?php if($user_pages[0]): ?> <p class="secondary copy">Ihre verfügbaren Downloads:</p> <?php else: ?> <p class="secondary copy">Für Sie sind derzeit keine Downloads verfügbar.</p> <?php endif; ?> <ul class="download-text"> <?php foreach($user_pages as $user_page): ?> <li><a class="secondary copy" download="download" target="_blank" href="<?php echo $user_page->download_file->url; ?>" title="<?php echo $user_page->title; ?>"><?php echo $user_page->title; ?></a></li> <?php endforeach; ?> </ul> <?php if($user->isLoggedin()): ?> <div class="col col-xs-12"> <a class="primary headline3 cta icon-open icon-close download-text" href="<?php echo $logout; ?>">Logout</a> </div><!-- col --> <?php endif; ?> </div> <!-- col --> </div> </div><!-- download list --> <?php endif; ?> Maybe its a simple task but I am not sure where to look for the problem. Thanks for your help - I really appreciate all that kind support here in the forum! Cheers, Florian Link to comment Share on other sites More sharing options...
Florian Grüttner Posted January 12, 2016 Share Posted January 12, 2016 I have found where the problem is and realized my mistake. we had the base-tag with the URL where the site is situated. without this tag has the module the full functionality on the site. Everything is working now. Link to comment Share on other sites More sharing options...
pwFoo Posted January 12, 2016 Author Share Posted January 12, 2016 Hi Florian, thanks for feedback. Nice to hear that it works now. Link to comment Share on other sites More sharing options...
iNoize Posted February 4, 2016 Share Posted February 4, 2016 Hello, i have some problems with the Forgot password function ? I have both calls for login and register on one page now i if try to restore the password i see the url two times the reset field so if i use one of them i get the mail but on click on the link eg http://domain.de/registrieren/?forgot=1&user_id=1125&token=b13bd5da7e7458479868969 nothinh happens ? I see also this two fields and jump also to http://domain.de/registrieren/?forgot=1 how to not render the register for the page if user try to reset password ? Tnx Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now