Jump to content


  • Posts

  • Joined

  • Last visited

Profile Information

  • Gender
  • Location
    The Netherlands

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

marie.mdna's Achievements

Jr. Member

Jr. Member (3/6)



  1. Hey ! I haven't used Padloper yet but it looks very promising, thank you for this ! I am looking forward to seeing the latest version, in the meantime, is there anywhere we could have a look at a live version (and idea of pricing?) @kongondo sorry for the bother, is there any way to get updated/notified about the upcoming release?
  2. Hi @Juergen, first of all, thanks for the module, it seems to be a time savior ! I now have a (probably very dumb) question, I've tried to use your code from "Create the first form" in your documentation. It worked nicely and as expected. However I left my computer and when I came back I refreshed my localhost page, got an error message mentioning that the amount of time for submitting the form had been way too long and that it could be bot behavior. My bad on this... The thing is that now I can't seem to be able to render the form anymore. Any idea on how to allow myself to keep working/discovering your module? Best,
  3. Indeed, I tried the module for the first time on a test website where I didn't care much about any SEO (so nothing had been really set for this purpose) but was then testing for upcoming projects!
  4. perfect! That's the point I got missing!
  5. Hi @Mike Rockett! Loving the module, it is such a timesaving module! I was just quickly wondering if there would be a way to add "www." after either "http://" or "https://" since I had included those in my original sitemap?
  6. $comments = $this->wire('modules')->get('fieldtypeComments')->find('text~%=., limit=20'); foreach($comments as $comment) { // do something } Oh I see! Maybe you can try something like this, but you might have to put a limit (see this for reference https://processwire.com/api/ref/fieldtype-comments/find/ )
  7. Hi @Chandini, if I understand correctly, you want to redirect to a specific url after posting the comment instead of: http://localhost/myblogs/?comment_success=1#CommentPostNote To change the success redirect url I went into the CommentForm.php file from the module. You should find this : $this->wire('session')->redirect($url); Replace this with the url you want: $this->wire('session')->redirect("./#loader"); And yes it is possible to get all comments into another page. I would do something similar to this, first find all pages with the template having the comments field, for each one of them get the comments field, then for each comment, if it is approved and published, retrieve the data you need (cite, url, date, text, votes, stars,...) and echo them the way you need : foreach($pages->find("template=yourTemplatewithComments") as $pageComment){ foreach($pageComment->get('comments') as $comment) { if($comment->status < 1) continue; //get what you need $cite = htmlentities($comment->cite); $commentUrl = $comment->url; $date = date('m/d/y g:ia', $comment->created); // format the date $text = htmlentities($comment->text); // do something } } Let me know if that works for you
  8. hi @formmailer, it has been some time since your post but I have kind of the same issue except that even admin notifications aren't sent, did you find out how to deal with this? Note: my comments are rendered via the customList but it is in the site/modules directory already, as suggested by @Juergen and I don't need comments approval, just email notifications to the page creator, as well as to all people who commented on the page. I have tried those but still didn't receive anything yet... Any help would be greatly appreciated!
  9. I have been trying to send email notifications but for some reason no email has ever been sent, even though I might have try all these different options I still can't get it to work. I am currently working on a forum and need to notify the createdUser of the page as well as all the people that commented (I've let the option to disable the notification). In the admin panel, under the Comments category, emails are there, and notify is set on All as it should. I there some settings somewhere I might have missed? Something to edit in the module itself?
  10. [edit] I found my way in, thanks again for sharing! I would be a great help to have some screenshots of how to set the fields and templates properly!
  11. Quick update! Thanks to your suggestion @Robin S, I could make it work without having to redirect to the child page. Here is the adjustments I came up with, I changed the action of the form to action='{$post->url}?submit_a_comment=1' Parent page template: <?php $form = $post->comments->getCommentForm([ 'className' => 'CommentFormCustom', ]); $formMarkup = " <form class='{form.class} discussions_message ' id='my-comment-form' action='{$post->url}?submit_a_comment=1' method='{form.method}' {form.attrs}> <div class='avatar'>"; // just added if(count($user->images)){ $imgUrl = $user->images->last()->url; } else{ $imgUrl = $user->url; } $formMarkup .= "<img src='{$imgUrl}' data-src='{$imgUrl}'>"; // end $formMarkup .= " </div> <p class='{cite.wrap.class}'> <label class='{label.class}'> <span class='{label.span.class}'>{cite.label}</span> <textarea name='{cite.input.name}' class='{cite.input.class}' required='required' value='{cite.input.value}' >{cite.input.value}</textarea> </label> </p> <p class='{email.wrap.class}'> <label class='{label.class}'> <span class='{label.span.class}'>{email.label}</span> <textarea name='{email.input.name}' class='{email.input.class}' required='required' value='{email.input.value}' >{email.input.value}</textarea> </label> </p> {if.website} <p class='{website.wrap.class}'> <label class='{label.class}'> <span class='{label.span.class}'>{website.label}</span> <input type='text' name='{website.input.name}' class='{website.input.class}' value='{website.input.value}' maxlength='255' /> </label> </p> {endif.website} {if.stars} <p class='{stars.wrap.class}' {stars.wrap.attrs}> <label class='{label.class}'> <span class='{label.span.class}'>{stars.label}</span> {stars.markup} </label> </p> {endif.stars} {if.honeypot} <p class='{honeypot.wrap.class}'> <label> <span>{honeypot.label}</span> <input type='text' name='{honeypot.input.name}' value='{honeypot.input.value}' size='3' /> </label> </p> {endif.honeypot} <p class='{text.wrap.class}'> <label class='{label.class}'> <textarea style='border: 1.5px solid !important;' name='text' class='{text.input.class} my-comment my-new-comment' required='required' rows='{text.input.rows}' cols='{text.input.cols}'>{text.input.value}</textarea> </label> </p> {if.notify} <p class='{notify.wrap.class}'> <label class='{notify.label.class}'> <span class='{notify.label.span.class}'>{notify.label}</span> </label> <label class='{notify.input.label.class}'> <input class='{notify.input.class}' type='radio' name='{notify.input.name}' checked='checked' value='{notify.input.off.value}' {notify.input.off.checked}/> {notify.input.off.label} </label> {if.notify.replies} <label class='{notify.input.label.class}'> <input class='{notify.input.class}' type='radio' name='{notify.input.name}' value='{notify.input.replies.value}' {notify.input.replies.checked}/> {notify.input.replies.label} </label> {endif.notify.replies} {if.notify.all} <label class='{notify.input.label.class}'> <input class='{notify.input.class}' type='radio' name='{notify.input.name}' value='{notify.input.all.value}' {notify.input.all.checked}/> {notify.input.all.label} </label> {endif.notify.all} </p> {endif.notify} <p class='{submit.wrap.class}'> <button type='submit' class='{submit.input.class} button' name='{submit.input.name}' value='{submit.input.value}'>Reply</button> {form.hidden.inputs} </p> </form> "; $form->markup('form', $formMarkup); $form->labels('submit', 'Submit Feedback'); $form->labels('notify', 'Email Me'); // form notifications $form->markup('notification', "<div class='uk-alert {class}'>{message}</div>"); $form->classes('success', 'uk-alert-success'); $form->classes('pending', 'uk-alert-warning'); $form->classes('error', 'uk-alert-danger'); echo $form->render(); ?> Child page template: <?php // Show the comment form echo $page->comments->renderForm(); // If the submit_a_comment URL parameter is not present then redirect to parent page // This must go after the form render so that comment submissions will be processed before redirecting if(!$input->get('submit_a_comment')) $session->redirect($page->parent->url); ?> Comments are now adding to the right child without redirecting! Thank you so much for your time and help. This community is amazing!
  12. @Robin S thank you so much for your detailed answer! Your solution works nicely thank you , I have been wondering if using an ajax function would be a smart idea to prevent seeing the group-post page at all... I will give it a try shortly but will keep this solution in case I can't make it.
  13. @Robin S thank you for taking time to test is out, I will forward the issue on GitHub. Meanwhile, if this can't get a fix, I have been thinking about an alternative solution, but there is some more questions to it. I could get rid of the group-post template and giving the comment field to the group template. It would then bring only one comment form to the page and the "group-post" would then be comments with depth. My only concern would be for two kinds of inputs that would have to be added as custom fields for the form : images and page reference. I saw I can add the youtube link field by adding another URL field similar to the website field already existing in the comment form. https://processwire.com/talk/topic/760-add-a-url-field-to-the-comments-form/#comment-6346 But I am not sure about the difficulty when it comes to add images and page reference fields... Here is my current form for creating the group-post child as an example of the expected behavior: <?php if($input->post->post) { $upload_path = $config->paths->assets . "files/temp/"; $contact_photo = new WireUpload('contact_photo'); // References the name of the field in the HTML form that uploads the photo $contact_photo->setMaxFiles(1); $contact_photo->setOverwrite(false); $contact_photo->setDestinationPath($upload_path); $contact_photo->setValidExtensions(array('jpg', 'jpeg', 'png', 'gif')); // execute upload and check for errors $files = $contact_photo->execute(); //removed because this input isn't required // Run a count($files) test to make sure there are actually files; if so, proceed; if not, generate getErrors() // if(!count($files)) { // $contact_photo->error("Sorry, but you need to add a photo!"); // return false; // } $theUser = $user->name; $contentText = $input->post->body; $short = strlen($contentText) > 20 ? substr($contentText,0,20)."..." : $contentText; $whatType = $input->post->type; $p = new Page(); $p->template = "group-post"; $p->parent = $page->url; $p->title = $theUser . " - " . $whatType . " - " . $short; $p->types = $input->post->type; $p->youtube = $input->post->youtube; $p->body = $input->post->body; $p->save(); $p->title = $sanitizer->text($theUser . " - " . $whatType . " - " . $short); $p->youtube = $sanitizer->text($input->post->youtube); $p->types = $sanitizer->checkbox($input->post->type); $p->body = $sanitizer->textarea($input->post->body); $p->save(); foreach($files as $filename) { $pathname = $upload_path . $filename; $p->images->add($pathname); $p->message("Added file: $filename"); unlink($pathname); } $p->save(); // $session->redirect("./" . $sanitizer->pageName($post->titre, true)); $session->redirect("./"); return true; } ?> <form action="./" method="post" enctype="multipart/form-data"> <div id="my-comment-form" class="discussions_message"> <div class='avatar'> <?php // user image instead of gravatar if(count($user->images)){ $imgUrl = $user->images->last()->url; } else{ $imgUrl = $user->url; } ?> <img src='<?php echo $imgUrl; ?>' data-src='<?php echo $imgUrl; ?>'> </div> <div class="infos"> <p class='CommentFormText CommentForm_text'> <textarea class='my-comment' name="body" rows="5" cols="50"></textarea> </p> <div class="radio-toolbar small CommentFormText CommentForm_text"> <?php //the page reference input, I use them as tags for a search on the page $types = $pages->get('types'); foreach($types->children as $type){ echo "<input class='tags' type='radio' id='tag{$type->title}' name='type' value='{$type->title}'/><label for='tag{$type->title}'>#{$type->title}</label>"; } ?> </div> <div class="uploads flex-top CommentFormText CommentForm_text"> <div class="image-upload"> <label for="upload-image">Upload your image</label> <input id="upload-image" class="photo-button" type="file" name="contact_photo" hidden/> <span id="file-chosen">No image chosen</span> </div> <div class="button">or</div> <div class="youtube-upload radio-toolbar small"> <input name="youtube" placeholder="Share a youtube video..."> </div> </div> </div> <input id='post-button' type="submit" name="post" value="Post"> </div> <script> // showing the name of the selected image const actualBtn = document.getElementById('upload-image'); const fileChosen = document.getElementById('file-chosen'); actualBtn.addEventListener('change', function(){ fileChosen.textContent = this.files[0].name; }) </script> </form> Thank a lot for your help so far! I really appreciate!
  14. Hi @Robin S, I tried to double check with the renderSuccess function redirect. I had a different redirect setting in the CommentForm.php file for the comments to prevent redirecting to children pages in case there was some, I put it back as it was originally to test : <?php protected function renderSuccess(Comment $comment = null) { $pageID = (int) $this->wire('input')->post('page_id'); if($pageID && $this->options['redirectAfterPost']) { // redirectAfterPost option $page = $this->wire('pages')->get($pageID); if(!$page->viewable() || !$page->id) $page = $this->wire('page'); $url = $page->id ? $page->url : './'; $url .= "?comment_success=1"; if($comment && $comment->id && $comment->status > Comment::statusPending) { $url .= "&comment_approved=1#Comment$comment->id"; } else { $url .= "#CommentPostNote"; } $this->wire('session')->set('PageRenderNoCachePage', $page->id); // tell PageRender not to use cache if it exists for this page $this->wire('session')->redirect($url); // $this->wire('session')->redirect("./#"); //_________________added ffor my website return ''; } ?> it is actually really redirecting to the right page: http://localhost:888/groups/group/group-post-id-1218/?comment_success=1&comment_approved=1#Comment68 but adding to the wrong one:
  15. Thank you @Robin S for your very fast answer and for the welcoming! I also thought so but the ID are different for each comment form on the current version, would there be a way to double check the post request before it is actually sent? They currently all get sent on the one with the id 1230... For example, here are the other two ones I have been testing my page with.
  • Create New...