Leaderboard
Popular Content
Showing content with the highest reputation on 11/01/2014 in all areas
-
How do you learn best? A: Following a tutorial and following along and coding/copying/pasting? B: or disassembling things and learning how they work and fixing them again? scientific background?! If you are B (like me) then the best way to learn is to "View Source". See something cool you like on some site? You can most likely just right-click > view source. HTML at its simplest is fairly simple to learn. Here's a great tutorial I recommended to a friend the other day: http://learn.shayhowe.com/advanced-html-css/ --------------------------------------------- The following is take from my collection in a G+ post: https://plus.google.com/+JaimitoAleman/posts/9dKb4rJszAu If you should have any questions about HTML/CSS/JS/PW, then this is the place to ask. I've found this community of weirdos members to be the most helpful and courteous of all the communities I've been a part of. Best of luck to you and welcome to ProcessWire.4 points
-
Hey Joss, Once you switch fully to Sass (.scss syntax) it's just like CSS, but with nesting and variables. There is way more to it than that, but if you start there it's easy to switch. After that, look into Bourbon and Neat (on mobile or I would link), With neat you don't need grids. Just code semantically, and use media queries nested right inline. Sure, the complied CSS has a lot of media queries, but it'll get minified and maybe gzipped anyhow. I don't use break points at all anymore, I just make adjustments to elements where the layout starts to break. So from a mobile first perspective, start widening the viewport until the layout needs to adjust, and then make an adjustment at that point. Neat makes all this super easy. Anyhow, just my 2 cents.4 points
-
I understand what you are saying and appreciate the feedback. People in the industry that know me, know I am blunt and honest so I go based on my reputation rather than what the site may construe. I need to make a living and I have no problem slamming projects I think aren't doing things right whether they advertise or not (see my recent video of webydo to get an idea). They were an advertiser and they left shortly after but it certainly didn't stop me from calling their product what it was.. crap. Anyways, it's a fine balance that I simply have to work to maintain.4 points
-
Hi aren, I just committed an update to Custom Upload Names for you. It now has an option to generate a random string at a length of your specification. Please take a look and let me know if you need any assistance.4 points
-
When installing ProcessWire out of the box (Softaculous), there is one minor mistake in making it truly https friendly. site/templates/_main.php - the http: has to be removed in order to load the google font accordingly to the site setup https/http. <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title><?php echo $title; ?></title> <meta name="description" content="<?php echo $page->summary; ?>" /> <link href='http://fonts.googleapis.com/css?family=Lusitana:400,700|Quattrocento:400,700' rel='stylesheet' type='text/css' /> <link rel="stylesheet" type="text/css" href="<?php echo $config->urls->templates?>styles/main.css" /> </head> Great product! Continue the brilliance.3 points
-
Hey charger - woke up with an obvious solution. I just committed an update that should take care of your needs. Now the temporary filename is: original-filename.upload.tmp.pdf Hope that works well for you. Thanks for letting me know about this.3 points
-
Some ideas I recently had to make it even better: Resort the icons and searchbar at the top right corner: (P.S.: In this case you would have to add a border at search suggestions right side, too) Select menu for "Pages" in configuration (Tree, Lister, Both (dropdown)) I never use "Lister" so it would be much better for at least me if I could choose that pages directly takes me to page tree. Don't need a accordion here. But maybe other people. So a config option would be the best, I guess.3 points
-
FieldtypePageWithDate & InputfieldPageWithDate Module for ProcessWire - Page Reference with Date Field - Field that stores one or more references to ProcessWire pages Modified version of the FieldtypePage module in ProcessWire with extra datetime field containing the date a page was added to the inputfield. Github URL Link: FieldtypePageWithDate To install Copy to /site/modules/ and go to Admin > Modules > Check for new modules. Requirement Requires: InputfieldPageWithDate (will be installed automaticly) Tested on ProcessWire 2.5.6 dev Setup in back-end install both modules:FieldtypePageWithDate InputfieldPageWithDate create a new field in ProcessWire and give it a nameeg. myfriends as type choose PageWithDate choose the right dereference for your needs (all 3 modes work fine with this field)Multiple pages (PageArray) (in this example we are using this) Single page (Page) or boolean false when none selected Single page (Page) or empty page (NullPage) when none selected assign a selector to the field, in this example we will use users Template of selectable page(s) (select the user template) choose a label field, since we are using users set it to name Label Field name set an input field type, depending if you are using dereference of multiple or a single pagefor this example we are using AsmSelect save the field and assign it to a template of choice Add some users/friends to the field by editing a page with this template Usage in front-end In you template you can acces the field as you usualy do with any FieldtypePage. In addition to this the new parameter "assigned" is available Multiple pages if (count($page->myfriends)) { foreach($page->myfriends as $friend) { echo "id: ".$friend->id."<br>"; echo "name: ".$friend->name."<br>"; echo "assigned on: ".$friend->assigned."<br><br>"; } } This will output something like: id: 1031 name: johndoe assigned on: 2014-10-31 14:22:02 id: 1032 name: janedoe assigned on: 2013-04-15 23:16:38 Note: To use your own data/time formatting set $friend->of(false); to get a unix timestamp from the database Single page echo "id: ".$page->myfriends->id."<br>"; echo "name: ".$page->myfriends->name."<br>"; echo "assigned on: ".$page->myfriends->assigned."<br>";This will output something like: id: 1031 name: johndoe assigned on: 2014-10-31 14:22:02 Note: To use your own data/time formatting set $page->myfriends->of(false); to get a unix timestamp from the database Edited: removed extra date() formatting since value is formatted by default. Set assigned datetime manuallyYou can set datetime manually by assigning it to the page you add $friend = $users->get('johndoe'); $friend->assigned = "2012-01-01 12:12:12"; $page->myfriends->add($friend); $page->of(false); $page->save(); Edited: Added information on manually setting the assigned to a datetime value. (if you previously installed this module you need to update atleast the FieldtypePageWithDate.module file)2 points
-
Not sure about actually dreaming, but definitely in that blurry time while falling asleep and then lying there after just waking up - brain seems more clear and tries to actually figure out the problem, rather than the trial and error approach that can sometimes happen when you're at the computer trying to get something to work.2 points
-
2 points
-
new german updates for actual PW dev 2.5.7 (01 November 2014). https://github.com/Manfred62/pw-lang-de/tree/dev2 points
-
Pwired, instead of http:// the Google fonts should be loaded just with //, then it would use http/https according to the current page. That is of course quick change and pretty much site specific setting. And welcome to the forums vegardw!2 points
-
Hi everyone, I'm glag to introduce pierre-diagnostic.fr. This is the corporate website for a french real estate services agency. It was built with Processwire 2.5.3 and the following modules : AIOM ProcessBatcher Zurb Foundation 5 (wich is a delight to work with) Go Processwire!2 points
-
Yeah, I've been trying to "figure it out" for 2 days... EDIT: Okay, I got it! The problem is that I was using display: flex; on the body element, which was also getting imported into my contents.css file. I changed this to display: block; and we're good to go.2 points
-
Wire Mail SMTP An extension to the (new) WireMail base class that uses SMTP-transport This module integrates EmailMessage, SMTP and SASL php-libraries from Manuel Lemos into ProcessWire. I use this continously evolved libraries for about 10 years now and there was never a reason or occasion not to do so. I use it nearly every day in my office for automated composing and sending personalized messages with attachments, requests for Disposition Notifications, etc. Also I have used it for sending personalized Bulkmails many times. The WireMailSmtp module extends the new email-related WireMail base class introduced in ProcessWire 2.4.1 (while this writing, the dev-branch only). Here are Ryans announcement. Current Version 0.8.0 (from 2024-09-25 -- initial version 0.0.1 was pushed on 2014-03-01) Changelog: https://github.com/horst-n/WireMailSmtp/blob/master/CHANGELOG.md Downlod: get it from the Modules Directory || fetch it from Github || or use the module-installer in PWs admin site modules panel with its class name "WireMailSmtp". Install and Configure Download the module into your site/modules/ directory and install it. In the config page you fill in settings for the SMTP server and optionaly the (default) sender, like email address, name and signature. You can test the smtp settings directly there. If it says "SUCCESS! SMTP settings appear to work correctly." you are ready to start using it in templates, modules or bootstrap scripts. Usage Examples The simplest way to use it: $numSent = wireMail($to, $from, $subject, $textBody); $numSent = wireMail($to, '', $subject, $textBody); // or with a default sender emailaddress on config page This will send a plain text message to each recipient. You may also use the object oriented style: $mail = wireMail(); // calling an empty wireMail() returns a wireMail object $mail->to($toEmail, $toName); $mail->from = $yourEmailaddress; // if you don't have set a default sender in config // or if you want to override that $mail->subject($subject); $mail->body($textBody); $numSent = $mail->send(); Or chained, like everywhere in ProcessWire: $mail = wireMail(); $numSent = $mail->to($toEmail)->subject($subject)->body($textBody)->send(); Additionaly to the basics there are more options available with WireMailSmtp. The main difference compared to the WireMail BaseClass is the sendSingle option. With it you can set only one To-Recipient but additional CC-Recipients. $mail = wireMail(); $mail->sendSingle(true)->to($toEmail, $toName)->cc(array('person1@example.com', 'person2@example.com', 'person3@example.com')); $numSent = $mail->subject($subject)->body($textBody)->send(); The same as function call with options array: $options = array( 'sendSingle' => true, 'cc' => array('person1@example.com', 'person2@example.com', 'person3@example.com') ); $numSent = wireMail($to, '', $subject, $textBody, $options); There are methods to your disposal to check if you have the right WireMail-Class and if the SMTP-settings are working: $mail = wireMail(); if($mail->className != 'WireMailSmtp') { // Uups, wrong WireMail-Class: do something to inform the user and quit echo "<p>Couldn't get the right WireMail-Module (WireMailSmtp). found: {$mail->className}</p>"; return; } if(!$mail->testConnection()) { // Connection not working: echo "<p>Couldn't connect to the SMTP server. Please check the {$mail->className} modules config settings!</p>"; return; } A MORE ADVANCED DEBUG METHOD! You can add some debug code into a template file and call a page with it: $to = array('me@example.com'); $subject = 'Wiremail-SMTP Test ' . date('H:i:s') . ' äöü ÄÖÜ ß'; $mail = wireMail(); if($mail->className != 'WireMailSmtp') { echo "<p>Couldn't get the right WireMail-Module (WireMailSmtp). found: {$mail->className}</p>"; } else { $mail->from = '--INSERT YOUR SENDER ADDRESS HERE --'; // <--- !!!! $mail->to($to); $mail->subject($subject); $mail->sendSingle(true); $mail->body("Titel\n\ntext text TEXT text text\n"); $mail->bodyHTML("<h1>Titel</h1><p>text text <strong>TEXT</strong> text text</p>"); $dump = $mail->debugSend(1); } So, in short, instead of using $mail->send(), use $mail->debugSend(1) to get output on a frontend testpage. The output is PRE formatted and contains the areas: SETTINGS, RESULT, ERRORS and a complete debuglog of the server connection, like this one: Following are a ... List of all options and features testConnection () - returns true on success, false on failures sendSingle ( true | false ) - default is false sendBulk ( true | false ) - default is false, Set this to true if you have lots of recipients (50+) to ($recipients) - one emailaddress or array with multiple emailaddresses cc ($recipients) - only available with mode sendSingle, one emailaddress or array with multiple emailaddresses bcc ($recipients) - one emailaddress or array with multiple emailaddresses from = 'person@example.com' - emailaddress, can be set in module config (called Sender Emailaddress) but it can be overwritten here fromName = 'Name Surname' - optional, can be set in module config (called Sender Name) but it can be overwritten here priority (3) - 1 = Highest | 2 = High | 3 = Normal | 4 = Low | 5 = Lowest dispositionNotification () or notification () - request a Disposition Notification subject ($subject) - subject of the message body ($textBody) - use this one alone to create and send plainText emailmessages bodyHTML ($htmlBody) - use this to create a Multipart Alternative Emailmessage (containing a HTML-Part and a Plaintext-Part as fallback) addSignature ( true | false ) - the default-behave is selectable in config screen, this can be overridden here (only available if a signature is defined in the config screen) attachment ($filename, $alternativeBasename = "") - add attachment file, optionally alternative basename send () - send the message(s) and return number of successful sent messages debugSend(1) - returns and / or outputs a (pre formatted) dump that contains the areas: SETTINGS, RESULT, ERRORS and a complete debuglog of the server connection. (See above the example code under ADVANCED DEBUG METHOD for further instructions!) getResult () - returns a dump (array) with all recipients (to, cc, bcc) and settings you have selected with the message, the message subject and body, and lists of successfull addresses and failed addresses, logActivity ($logmessage) - you may log success if you want logError ($logmessage) - you may log warnings, too. - Errors are logged automaticaly useSentLog (true | false) - intended for usage with e.g. third party newsletter modules - tells the send() method to make usage of the sentLog-methods - the following three sentLog methods are hookable, e.g. if you don't want log into files you may provide your own storage, or add additional functionality here sentLogReset () - starts a new LogSession - Best usage would be interactively once when setting up a new Newsletter sentLogGet () - is called automaticly within the send() method - returns an array containing all previously used emailaddresses sentLogAdd ($emailaddress) - is called automaticly within the send() method Changelog: https://github.com/horst-n/WireMailSmtp/blob/master/CHANGELOG.md1 point
-
PlaceholderImage A simple placeholder class to generate base64 data uri string that can be used to create placeholders for prototypes or as placeholders for lazy-loaded images. Original credits for the PHP Class go to Patrick van Marsbergen. https://github.com/marsbergen/PHP-Placeholder Use this module in templates to generate placeholder images. It doesn't create a physical image but a base64 data uri string to use as the src of image tag. You can get the base64 code or the complete img tag for convenience. Example chained call: $base64 = $modules->PlaceholderImage->width(640)->height(480)->background('DDDDDD')->render(); Then insert the string as the src like: <img src="<?php echo $base64?>"> Or pass true to render() to get a complete <img> tag $imgTag = $modules->PlaceholderImage->width(640)->height(480)->render(true); Or static calls for convenience: $base64 = PlaceholderImage::image(150,100); $base64 = PlaceholderImage::image(150, 100, 'FF0000', 'FFFFFF', 'Custom text'); $imgTag = PlaceholderImage::imagetag(150, 100, 'FF0000', 'FFFFFF', 'Custom text'); Github repo https://github.com/somatonic/PlaceholderImage On PW modules http://modules.processwire.com/modules/placeholder-image/ Live Example on lightning.pw http://radium-0rq.lightningpw.com/1 point
-
Assign edit access to individual users on a per-page basis The user must already have page-edit permission on one of their roles in order to get edit access to assigned pages. Otherwise, they will only gain view access. This module is fully functional as-is, but intended as a proof-of-concept for those wanting to go further with adding custom edit and/or view access. The main functionality in this module consists of only a few lines of code, so it should be a simple edit for anyone wanting to take it further. If you make some useful additions to it, please post them. How to use Create a new role called "editor" (or whatever you want to call it) and give the role "page-edit" permission. If you already have a role in place that you want to use, that is fine too. Under "Access > Users" locate the user you want to assign edit access to. Edit this user. For this user's "Roles" field: choose the new role you added, "editor" (or whatever you called it). For this user's "Editable Pages" field: select one or more pages you want them to be able to edit. Save the user and you are done. To test, login as the user you edited to confirm it works how you expect. http://modules.processwire.com/modules/page-edit-per-user/ https://github.com/ryancramerdesign/PageEditPerUser1 point
-
TextformatterMakeLinks This Textformatter module is just a wrapper around the method fHTML::makeLinks from flourishlib (http://flourishlib.com/api/fHTML#makeLinks) The following description is basically just slightly modified copy from the official flourishlib documetation (http://flourishlib.com/docs/fHTML): The Textformatter will parse through a string and create HTML links out of anything that resembles a URL or email address, as long as it is not already part of an tag. Here is an example of it in action: If you put this text into a textarea inputfield which uses this textformatter Example 1: www.example.com. Example 2: https://example.com.'>https://example.com. Example 3: john@example.com. Example 4: ftp://john:password@example.com.'>ftp://john:password@example.com. Example 5: www.example.co.uk. Example 6: john@example.co.uk. Example 7: <a href="http://example.com">http://example.com</a>. The output would be: Example 1: <a href="http://www.example.com">www.example.com</a>. Example 2: <a href="https://example.com">https://example.com</a>. Example 3: <a href="mailto:john@example.com">john@example.com</a>. Example 4: <a href="ftp://john:password@example.com">ftp://john:password@example.com</a>. Example 5: <a href="http://www.example.co.uk">www.example.co.uk</a>. Example 6: <a href="mailto:john@example.co.uk">john@example.co.uk</a>. Example 7: <a href="http://example.com">http://example.com</a>. Downloadhttps://github.com/phlppschrr/TextformatterMakeLinks http://modules.processwire.com/modules/textformatter-make-links/1 point
-
Lots of people have been asking for a way for ProcessWire to support sending of email, outside of just using PHP's mail() function. I haven't really wanted to expand the scope of ProcessWire that deep into email sending, but I have been wanting to setup a way so that people could override how emails are sent, with modules. For people that are interested in making other ways of sending email in ProcessWire, I've setup a new module base class called WireMail, and a new function called wireMail(). The wireMail() function will use whatever WireMail module is installed. If none is installed, then it will use PW's default WireMail implementation (based on PHP's default mail function). The wireMail() function replaces all instances of PHP's mail() function in ProcessWire's source. It works in a similar way as PHP's mail() except that supports a few different usages. Standard usage would be this: // to, from, subject, body wireMail('user@domain.com', 'ryan@runs.pw', 'Mail Subject', 'Mail Body'); Another usage would be to give it no arguments, and it'll return whatever WireMail module is installed for you to use yourself. If no WireMail module is installed, then it returns ProcessWire's WireMail. $mail = wireMail(); $mail->to('user@hi.com')->from('ryan@runs.pw'); // all calls can be chained $mail->subject('Mail Subject'); $mail->body('Mail Body'); $mail->bodyHTML('<html><body><h1>Mail Body</h1></body></html>'); $mail->send(); Since all of this stuff is only on the PW 2.4 dev branch at present, I'm posting this primarily for people that are interested in creating WireMail modules. For instance, I know that both Teppo and Horst (and perhaps others?) have put together such modules and ideas, so this is all aimed at coming up with a way for those ideas to be easily integrated into PW by way of modules. To make your own WireMail module, you simply create a module that extends WireMail and provide your own implementation for the send() method. Of course, you can go further than that, but that's all that is technically necessary. I've attached an example module called WireMailTest that demonstrates a WireMail module. When installed, it is used rather than PW's WireMail. This WireMailTest module includes lots of comments for you in the code of it, and you may find it helpful to use it as your starting point. WireMailTest.module For you guys developing modules, please throw any questions my way and I'm happy to help. Likewise, let me know if you think I'm missing anything important in the base interface that the modules are based upon and we can update it.1 point
-
1 point
-
FrontendUserLogin Module to handle frontend user login / logout. Also should work with Persistent login for users (mode: automatically) out of the box Version 0.3.1Requires PW 2.5.5 (fields defined by array) Download Processwire module page: http://modules.processwire.com/modules/frontend-user-login/ Bitbucket Repo: https://bitbucket.org/pwFoo/frontenduserlogin/ Usage Readme file Module isn't available anymore, but it's planed to replace FrontendUserLogin and FrontendUserRegister with the new FrontendUser module which is not released yet. A new support topic will be created after FrontendUser module is added to the PW module repo. FrontendUser module1 point
-
Doesn’t seem to happen for me. I’m also using the start and limit parameters and sorting by an integer field. This might have something to do with your DB configuration and thus not affect all PW sites equally. Perhaps posting your full selector string can shed some light on this, although I doubt anything short of using sort=random as a second parameter can explain this In any case, if you sort by something you expect to tie frequently, it’s definitely bad practice to not specify a second field. Databases do all kinds of magic and usually can’t guarantee tables to be read in a reliable order. For perfect consistency (pages can have identical titles as well), best sort by ID, which must be unique anyway.1 point
-
1 point
-
Its down to me finding time to learn, really. The list of things to learn is getting depressingly long.....1 point
-
1 point
-
Thakns for the Info. We might also have to look into this issue. Maybe our server admin can figure it out and then we can report back.1 point
-
1 point
-
I didn't notice any ads as I use Adblock plus . Just switched it off to have a look. woooooooooooooo that was quite a shock. Maybe you could please more of us if you had some kind of game on the page that gives those of us that don't like the ads an opportunity to shoot at the banners and destroy them before reading an article. I think my first shot would be at weebly side banner.1 point
-
Thanks for giving my module a try. I see that it would be handy in your case, but I think it's better to keep these Textformatters separate. Not everybody wants obfuscation, and having separate Formatters is way more flexible.1 point
-
Hey Marty, Migrator should handle Page field creation correctly - I was doing lots of testing yesterday with WP migration and the categories page field was working perfectly. The only caveat I am currently aware of is that the page field must have "Parent of selectable page(s)" defined to be included in the migration. I am planning on removing this limitation in the next major enhancement. If you manage to test further and find that it is a repeatable bug with migrator, please let me know and I'll take care of it. I will be offline for the next two weeks starting tomorrow, but will get to it after that. PS Don't forgetwhen using Migrator you should use the Backup option when importing so you can easily restore if something doesn't go as expected. Also, please always check for the latest version - it has been getting lots of small updates lately.1 point
-
Couldn't this be done with this Textformatter afterwards? http://modules.processwire.com/modules/email-obfuscation/1 point
-
Hi there, Fred. The answer to your question is "no", I'm afraid. You just can't build a site with ProcessWire without knowing any PHP, HTML, CSS, etc. at all. You can install one of the pre-built site profiles, though, if that's good enough for you. ProcessWire is a very good platform to use while you're learning these thing. If you're point is that you don't know these things yet, but would like to learn, then you're in the right place. I'd suggest browsing the net for some proper HTML tutorials first, though -- I'm in a bit of a hurry here, but I'm sure we can find something for you if you're interested. On the other hand, if you're saying that you don't know them and don't want to learn either, you'd probably feel more at home with a "website builder" than any actual CMS product. (I've heard good things about Wix and SquareSpace, but there are many others out there too.) Hope this helps a bit!1 point
-
I meet a nice group of designers and developers yesterday and some of the mentioned a CMS called Perch. Interested, I’ve looked at their page. A nice and small CMS. Really great introduction and nice copy writing but it didn’t convince me to switch away from ProcessWire J Meanwhile, I’ve found a table that compares their two versions (“normal” and runway). I added ProcessWire to this comparions in my break, that’s what I got: We can really keep up with most of the features. I even think ProcessWire has a wider range of possibilities and scales as easy as them. But maybe we can try to improve the areas, where Perch “would have won” like the CDN/S3 Layer and the Draft,Undo etc. features. I think those features are not something like pre-defined fields and tables but more something that would really improve ProcessWire as a tool for developers and designers. Maybe we can have a look at popular features on other systems (beside the large ones like WordPress) and try to find a solution on how to do this in ProcessWire. Not adding it to the core, but maybe provide it as modules and/or guidelines. EDIT: Maybe I should mention, that a Dashboard-Widget would be really low-priority1 point
-
Playing with pocketgrid is interesting. Since there is no grid system within it, you just throw percentages at it and play with blocks, that really frees up the thinking. The media queries above are just ones I have worked out thinking about target audience - I know at some point I have to fit into that space in one way or another. Whether I use one, none, all, or add some specific ones for one little bit, is another thing entirely.1 point
-
Meanwhile no one cared about correcting your wrong code Here it goes: <?php $x=1; // Start a fairyball at 1 <- this is fine $faqs = $pages->find("template=faq-detail"); echo "<dl class='accordion' data-accordion>"; foreach ($faqs as $faq) // here I changed your $x++ to only $x // By calling one after the other you were incrementing them between the <a> and the <div>, when what you really want is them to have the same value // also added the {} for clarity echo " <dd class='accordion-navigation'> <a href='#{$x}'>{$faq->title}</a>; <div id='{$x}' class='content'> {$faq->faq_body} </div> </dd> "; echo"</dl>" $x++; // <- here is where you want the value of $x to be incremented, so it holds a higher number in the next loop ;?>1 point
-
Hello, I've just gone to http://pierre-diagnostic.fr/, it doesn't stop loading... (Firefox 32.0 - Linux Mint) It could be because of http://pierre-diagnostic.fr:3000/browser-sync/browser-sync-client.1.5.7.js (Firebug).1 point
-
I redesigned FCM to be more flexible. New testing branch working like this (inside a demo module "conversation"). public function add ($parent, $redirect = null, $options = array('clearValues' => true)) { $fcm = $this->modules->get('FrontendContentManager'); $form = $fcm->createForm($parent, $options); if ($fcm->formProcess()) { $page = $fcm->add($parent); // Manipulate page object from outside... $page->name = $page->id . '-' . $this->sanitizer->pageName($page->title); $fcm->save(); if ($redirect === null) $redirect = $page->url; $this->session->redirect($redirect); } return $form->render(); } public function edit ($topic, $options = null) { $fcm = $this->modules->get('FrontendContentManager'); $form = $fcm->createForm($topic, $options); if ($fcm->formProcess()) { $page = $fcm->edit($topic); // Manipulate page object outside... $page->name = $page->id . '-' . $this->sanitizer->pageName($page->title); $fcm->save(); $this->session->redirect($topic->url); } return $form->render(); }1 point
-
Adrian, that's a valid sequence when using SSL (Port 465 is required). Port 587 requires TLS. The first link I posted explains what normally works, according to Gmail themselves. I host with Dreamhost and when I was using ActiveCollab, I could use either or both within that application. Gmail has other relay addresses that also work. Here's Dreamhost's take on SMTP/SSL/TLS http://wiki.dreamhost.com/Secure_E-mail I'm no Gmail or SMTP expert, so I usually just play around with the settings until I get one that reliably works. I don't think there is a default right answer to getting your mail to send reliably, because we are dealing with different email vendors, Operating Systems, Webhosts and other factors we don't even know about.1 point
-
1 point
-
Wow! I have found out that in the Connect() method of the base SMTP class it comes to a point after trying to start a TLS connection that a variable $success is set to true if the smtp-server simply supports TLS. After that a if condition checks if there are settings available for user, if not it passes through to the end of the method with $success set to true! A Bummer! If there is given a username, it trys to authenticate that user and the variable $success is set to that result. So, at least this is not a bug, because in the past or in private networks SMTP servers could be configured to work without authentication, that is what this class does. What should I do with this situation? I tend to ignore a usage without user authentication. This way it tries everytime to establish a connection via authentication, what will fail with an empty user or pass. Good to know that typos would be detected in the past but only empty usernames raised this behave. Now the class gives two errors: WireMailSmtpConfig: ERROR: SMTP settings did not work. WireMailSmtpConfig: 535 5.7.8 Error: authentication failed1 point
-
@Nick: I'd like to point out that the approach you're taking is not what I'd advice on doing. It's very important to understand that ProcessWire is, first and foremost, a CMF. What this means is that it's very good at dealing with various content items (which it calls "pages"), describing the schema of those items, allowing you to manage them via API calls, define relations between them etc. Without going into too much detail about this, I'll just say that by using ProcessWire's own tools you are not just getting more benefit out of the system, but also more likely to build a solution that's manageable in the long run, easy to extend and update via built-in tools.. and, perhaps most importantly, as safe as possible (as long as you prefer API calls over SQL there's literally no way for SQL injection issues to creep into your code). What you are doing here sounds essentially like taking ProcessWire as a starting point but then coding an application that does effectively the same thing over and around it. This approach fits better one of the more bare-bones application frameworks (Zend Framework, Laravel etc.) It may seem like the obvious choice before you get to know ProcessWire's capacity and set of features (and there are valid use cases for it even then), but I hope you see why I don't think it's the best option in this case Anyway, since ultimately you should do what you see as the best option here: With ProcessWire you don't typically add columns to database tables or new tables to the database, so there's no UI for this (apart from PHPMyAdmin, of course, if you prefer something like that). You can communicate with the database using API variable $database, which is just a fancy way to use PDO style queries directly from your own code. You can see some examples of that in the source of my Version Control module. It's a bit old topic (there's probably newer material available too if you try searching the forum), but here's some discussion about custom login forms. Personally I tend to avoid custom login forms and rather allow users to login via native login page. This is connected to the fact that I don't like creating new custom Admin tools for them either and would much rather either let them use built-in tools or create a new Process module for them to use (method no. 3 in my earlier post). Hope this helps a bit.1 point
-
Hi all - I'm running into a snag with a new project - we need a good calendar script that can handle repeating events, and can send an automated (cron) email reminder to the user at some specified interval. I want to do the main site in Processwire, and then incorporate the calendar. Just wondering if anyone has any advice or leads on really good calendars. A few years back, i discovered an amazing calendar, called Thyme. This script was so advanced, it could handle virtually anything (multiple users, groups, subscriptions, reminders, attachments, etc..). I still use Thyme on 2 sites, and it's really a solid script, and has been a workhorse for me for a really long time. At some point several years ago, the developer of Thyme vanished, leaving a lot of users 'up the creek', because the script was basically frozen at that point and parts of it were encoded. I have since heard that the company allowed for the script to be de-crypted, and for a while there was a site that hosted it; now you can find it on github: https://github.com/acorscadden/Thyme-Revival I'm running a version of Thyme on a site where i rewrote parts of the code to make it php 5.3 compatible. In any case, I thought for sure by now someone would have come up with a calendar that could beat Thyme, maybe use ajax, and more modern technologies (Thyme is getting sort of old school in terms of JS and markup); I finally came across this one that seems to be a light at the end of the tunnel: http://smartphpcalendar.com/ However, I did a pre-sales inquiry and it turns out that the download version (non-hosted) has a max-user limit (default 20, but they were willing to increase it for me), which i find to be a concern; the script itself is sort of expensive, about $200, which is fine, if there were no user restriction... One thing that is notable about Smart PHP Calendar is that it has it's own api and can integrate with other web apps; so it seems like a really good choice for something to integrate into PW;1 point