• Content count

  • Joined

  • Last visited

Community Reputation

35 Excellent

About ethanbeyer

  • Rank
    Full Member

Recent Profile Visitors

252 profile views
  1. If it's shared hosting and all of the sites on your IP are potentially sending emails, that is almost certainly your problem. Again, I'd look into an email delivery service like Sendgrid, Mandrill or even TurboSMTP - these will help with deliverability, and you won't be competing with other sites on the same IP to get emails out.
  2. Check this out: For OVH: Most likely because of bounces, your site is unable to send emails. A couple of things you can do: 1. Contact OVH and ask them to give you some idea of what your email's standing is. 2. Use a service like Sendgrid ( as an off-site SMTP delivery service. If I remember correctly, Sendgrid is free up to 12,000 emails a day. Hope this helps!
  3. Often times when things like this happen it's because you've gone over your limit for emails to send through a particular SMTP host. Who are you trying to send through?
  4. I know this is a pretty old thread, but every time it comes to creating a Repeater through the API, I get LOST. @thetuningspoon's function illuminates a LOT of what happens behind the scenes when a new Repeater is made through the GUI - but I just wishing it was as simple as: $f = new FieldtypeRepeater(); $f->set('name', 'repeaterTest'); $f->add($repeaterField1); $f->add($repeaterField2); $f->save(); Because that isn't technically possible without setting the Fieldgroup or Template that will be used by the Repeater first, right? At the end of the day, I think we should improve the docs for Repeaters ( to include a section on creating a Repeater from scratch through the API so that this process is more easily understood. I am always referencing several Forum posts and parts of the docs in order to get through the spaghetti - having everything in one place would be great. Otherwise it would be awesome to have some functions as a part of the FieldtypeRepeater Class that cut down on the amount of API calls one needs to make in order to create one of these. Just my 2 cents.
  5. I will happily help you with this - it seems like your modules totally pwn the one I wrote. I'd love to try it out!
  6. module

    God bless you, I was going to write something that did this - you did it better than I would've! Also - will you be adding this to the Module library?
  7. module

    I like the look of this!!
  8. @Alxndre' it definitely can. I can add a get() function that would return the entire output from into a WireData object, and then people could use that however they please. The render() function is written for me specifically, so it probably makes sense to give it a lot more flexibility than it currently has.
  9. @Robin S thanks for the feedback! I will make that change. @maxf5 I see what you're saying completely - but I am also endeavoring to keep my sites from disintegrating into the norm of wordpress sites - being made up of gazillions of similar, undocumented functions. At least with a module they're easy to find... I also plan to add more functionality to the module in the long run. I like your one-line solution, but as much as anything else, it was an educational experience for me, that's all!
  10. Thank you both, @LostKobrakai and @abdus ! Hugely revealing - and a good refresher on some Magic Methods! <3
  11. I've written a module called HTMLBodyClasses that renders classes for the <body> tag. echo HtmlBodyClasses::renderClasses($page); Outputs: <body class="home template-home page-id-1"> Page name, page template, page's ID. You can get it here:
  12. I've created a module that spits out a simple link to the most recent track a user has scrobbled on It's available here:
  13. Why don't Processwire Objects have all their properties visible? Here's what I mean. Take this super stripped-down class for example: class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; } $obj = new MyClass(); dump($obj); die; Output: MyClass {#244 ▼ +public: "Public" #protected: "Protected" -private: "Private" } This is straight from PHP's manual on Property Visibility. Now, if I do this with two different Processwire Modules, this is what happens. $soc = new Socicons(); $other = new InputfieldSimpleMDE(); dump($soc, $other); die; Output: Socicons {#248} InputfieldSimpleMDE {#113 ▼ +data: array:20 [▼ "label" => "" "description" => "" "icon" => "" "notes" => "" "head" => "" "required" => 0 "requiredIf" => "" "collapsed" => 0 "showIf" => "" "columnWidth" => "" "skipLabel" => false "wrapClass" => "" "headerClass" => "" "contentClass" => "" "textFormat" => 4 "renderValueFlags" => 0 "requiredAttr" => 0 "initValue" => "" "stripTags" => false "showCount" => 0 ] } Now, Socicons is a module I am currently writing, and it has about a dozen public properties. In the first example, the dump of the $obj class included all of that class' properties - so why don't I see all of the properties encased within Socicons? Secondly, why are all the properties of the InputfieldSimpleMDE within a data array? I'm sure this is part of the way that Processwire is written or configured, but I am often scratching my head over this. So again, I am hoping that someone can answer this for me. Why don't Processwire Objects have all their properties visible? Thank you!
  14. Thank you both! It looks like it was $p->of(false); . I have next to no idea how the Output Formatting works. To the docs!! All my best!!!
  15. I'm kind of at a loss with this: I wrote a function inside one of my modules that saves files to a Page through the API. The Field is a FieldtypeFile. $page = $this->storagePage; $files = $page->pdfStorage_files; $files->add($path); return $page->save($files); I can see that the file has been saved to the Page's directory, and if I dump $page->filesManager->getFiles(); , the file I add is present in the array. But in the field_pdfstorage_files table in the database - no entry. Which also means that the file is not visible as a part of the pdfStorage_files field in the Admin Backend. Is there a way to ensure that adding the file to the field saves it everywhere?