Leaderboard
Popular Content
Showing content with the highest reputation on 02/27/2016 in all areas
-
For this week we've got a new version of ProcessWire 3.x, version 3.0.9. This version adds some useful UI enhancements in the admin that were originally envisioned by members of the ProcessWire community. ProcessWire 3.0.9 and also has a few other refactoring, bug fixes and tweaks. We've also got more info on the new version of ProDrafts released yesterday. https://processwire.com/blog/posts/processwire-3.0.9-adds-new-long-click-and-save-actions/7 points
-
Hey Adrian. This is looking more awesome by the day. I have to agree with the boys though...It can feel a little overwhelming viewing the configurations' GUI. I agree that something simpler would work better. I would go with ASM as well, or some collapsed fieldsets to hide stuff if possible. As for contemplating adding these two panels: Available upgrades: core and site modules Data from Google Analytics - like realtime visitors and other timely stuff ...IMHO, I think these two are overkill. One, they are a 'digression' from the 'debugger' ball park, which is the core aim of this module. Secondly, we already have other modules that take care of those needs....to some extent. My suggestion is to only stick to tools/features that aid in debugging. Thanks!5 points
-
Maybe this: https://processwire.com/talk/topic/11499-admin-restrict-branch/4 points
-
I'm curious every week, what surprises you will pull out of the hat – feeling ProcessWire is a "living" thing, growing and growing... ProDrafts looks so great, especially the side-by-side preview – so let's do a purchase... EDIT: +1 for adding support for Repeater / Repeater Matrix in one of the next versions...4 points
-
$timerkey = Debug::timer(); //do lots of things echo "Lots of things took " . Debug::timer($timerkey) . " seconds to do."; Note Ryan’s benchmarking tips here: https://processwire.com/blog/posts/processwire-3.0.6-brings-pages-upgrades-and-link-abstraction/#how-to-benchmark-pages4 points
-
A few modules by @adrian mat help you out: http://modules.processwire.com/modules/page-protector/ http://modules.processwire.com/modules/admin-restrict-branch/ http://modules.processwire.com/modules/protected-mode/3 points
-
If the hackers are as good in hacking as in designing websites, then certainly not3 points
-
Perhaps I'm missing the point here, but why don't you just add a textarea field for custom CSS and output the contents of that in your template files?3 points
-
Officially in the module directory! http://modules.processwire.com/modules/webmention/3 points
-
Nice update, Ryan! My only suggestion would be to change "Publish + Exit" to "Publish + Close" as "Exit" seems a little much, if you know what I mean...3 points
-
Sorry for not replying. I was too busy, not only with updating this module. There's now a new dev version that fixes issues and improves some things. https://github.com/somatonic/Multisite/tree/dev For example the biggest change is that the configuration is now set in the config.php via an array in $config->MultisiteDomains $config->MultisiteDomains = array( "dev.domain.com" => array( // domain name can be used to map to root page "root" => "www.domain.com", // page name for the root page "http404" => 27 ), "dev.domain2.com" => array( "root" => "www.domain2.com", "http404" => 5332 ), ); This allows for different domain configurations on a dev and live stage, and since it's not in DB (via the module config) it can be easily transfered with a dump without worrying to overwrite or change the settings. Also there's no need to change the domain "root" pages name, as it's not directly coupled to the requesting domain. So you only change the array keys (=domain). Since the whole concept is all a pretty hack, I found that it comes with some complications that can't be solved in a elegant way. So for example the biggest issue is that you can't crosslink pages via the RTE Link plugin, since it doesn't know about Muiltisite. So you'll end with wrong URL's when for example link from a page of one site to a page of another site. If that's an issue it's still possible to copy the ProcessPageEditLink.module and modify the root parent for the page tree select. I'd be glad to help out with an example there. Further, the structure of a multisite install needs to be - Web (PW root page, I call it always "Web" since it isn't the homepage anymore) - www.domain.com (primary site home) - 404 Page - www.domain2.com (a second site home) - 404 Page ... I think I heard people were using a different structure in the current old version like: - Homepage (main site home) - About - Projects - 404 Page - www.domain2.com (second site home) - 404 Page - www.domain3.com (a third site home) - 404 Page ... But this wasn't ever recommended and it can lead to complications. ---- Again since this module is pretty much a hack, I'm not officially supporting and releasing this module. Use at your own risk. We use it in various projects now and while it works fine with all it's little drawbacks, the new version is little more solid. I would rather like to see if there's a way for a more integrated and supported way in the core. But not even sure how this could work out. Ryan may has some ideas or maybe thinks this isn't something PW could support. - Note that there's multisite core support, but it's for different DB's and "site" folders, but that's a different case altogether. Take care Soma3 points
-
Updated 2018-05-06: Version 2.0.0 released Updated 2017-03-27: Version 1.1.3 released Updated 2016-04-11: Version 1.1.2 released Updated 2016-02-26: Officially in the module directory! http://modules.processwire.com/modules/webmention/ Updated 2016-02-25: Version 1.1.0 is now released. It's been submitted to the module directory so should appear there soon. In the meantime, it's available on GitHub: https://github.com/gRegorLove/ProcessWire-Webmention. Please refer to the updated README there and let me know if you have any questions! ------------ Original post: This is now out of date. I recommend reading the official README. I've been working on this one for a while. It's not 100%, but it is to the point I'm using it on my own site, so it's time for me to release it in beta. Once I finish up some of the features described below, I will submit it to the modules directory as a stable plugin. For now, you can install from Github. It works on PW2.5. I haven't tested on PW2.6, but it should work there. Feedback and questions are welcome. I'm in the IRC channel #processwire as well as #indiewebcamp if you have any questions about this module, webmention, or microformats. Thanks to Ryan for the Comments Fieldtype which helped me a lot in the handling of webmentions in the admin area. ProcessWire Webmention Module Webmention is a simple way to automatically notify any URL when you link to it on your site. From the receiver's perspective, it is a way to request notification when other sites link to it. Version 1.0.0 is a stable beta that covers webmention sending, receiving, parsing, and display. An easy admin interface for received webmentions is under development, as well as support for the Webmention Vouch extension. Features * Webmention endpoint discovery * Automatically send webmentions asynchronously * Automatically receive webmentions * Process webmentions to extract microformats Requirements * php-mf2 and php-mf2-cleaner libraries; bundled with this package and may optionally be updated using Composer. * This module hooks into the LazyCron module. Installation Github: https://github.com/gRegorLove/ProcessWire-Webmention Installing the core module named "Webmention" will automatically install the Fieldtype and Inputfield modules included in this package. This module will attempt to add a template and page named "Webmention Endpoint" if the template does not exist already. The default location of this endpoint is http://example.com/webmention-endpoint After installing the module, create a new field of type "Webmentions" and add it to the template(s) you want to be able to support webmentions. Sending Webmentions When creating or editing a page that has the Webmentions field, a checkbox "Send Webmentions" will appear at the bottom. Check this box and any URLs linked in the page body will be queued up for sending webmentions. Note: you should only check the "Send Webmentions" box if the page status is "published." Receiving Webmentions This module enables receiving webmentions on any pages that have have "Webmentions" field, by adding the webmention endpoint as an HTTP Link header. If you would like to specify a custom webmention endpoint URL, you can do so in the admin area, Modules > Webmention. Processing Webmentions (beta) Currently no webmentions are automatically processed. You will need to browse to the page in the backend, click "Edit," and scroll to the Webmentions field. There is a dropdown for "Visibility" and "Action" beside each webmention. Select "Process" to parse the webmention for microformats. A better interface for viewing/processing all received webmentions in one place is under development. Displaying Webmentions (beta) Within your template file, you can use `$page->Webmentions->render()` [where "Webmentions" is the name you used creating the field] to display a list of approved webmentions. As with the Comments Fieldtype, you can also generate your own output. The display functionality is also under development. Logs This module writes two logs: webmentions-sent and webmentions-received. Vouch The Vouch anti-spam extension is still under development. IndieWeb The IndieWeb movement is about owning your data. It encourages you to create and publish on your own site and optionally syndicate to third-party sites. Webmention is one of the core building blocks of this movement. Learn more and get involved by visiting http://indiewebcamp.com. Further Reading * http://indiewebcamp.com/webmention * http://indiewebcamp.com/comments-presentation * http://indiewebcamp.com/reply2 points
-
Maybe this by @adrian? Admin Restrict Branch Edit:2 points
-
2 points
-
Is it for developing / internal use cases? Recently I found a module by user Adrian, called Tracy-Debugger: It shows you the processing time and *a lot* of other infos in a nice way, including PHP error reporting. If you don't know it, here's the thread: https://processwire.com/talk/topic/12208-tracy-debugger/2 points
-
@adrian: I have a running PW 3 now, and played a little with Tracy. Really, really useful. Thank's for that, (also to @tpr!) Regarding the configuration and features: Personally, I would like to only have those features visible / enabled, I currently need. phpinfo is definetly not one of them. I think when I use 1000 times the debugger, I would need 2 times the phpinfo. What's about a single and simple ASM in the configscreen, that lets the user enable / disable features? I have done it that way with ALIF, I don't think it is to much confusing or overwhelming. It would need one ASM in the configscreen and one additional line in your render method: https://github.com/horst-n/AdminLinksInFrontend/blob/master/AdminLinksInFrontend.module#L1437 Anyway, with or without configurable features, it's a very useful module, especially for remote debugging (on live servers) !!2 points
-
It depends on what you want to measure. If you want to start measuring the time when the prepend file is parsed, thats the right solution. If you want measure the time from the beginning of execution, you also can start in the _init.php and end in the _main.php. As I said, it completly depends on what you want do.2 points
-
Ah, sry wire('all')->toArray() or wire('*')->toArray() will get you the part you want. Might be because of the changes to the wire() function call to allow for multi instance. I've just looked into the 2.7 core files and the keys 'all' and '*' are also present there. I'm not sure for how long these are supposed to be used as replacement for fuel() calls.2 points
-
New version 0.6.0 brings an improved new command and a brand new module:upgrade command. I've been missing this for a very long time and finally I managed to implement it. Check if module upgrades are available. $ wireshell module:upgrade --check An upgrade is available for: - FlagPages: 0.0.8 -> 0.2.3 - ImageExtra: 0.0.1 -> 0.0.3 Download and upgrade existing module. $ wireshell module:upgrade ImageExtra An upgrade for ImageExtra is available: 0.0.3 Downloading module ImageExtra... 840.40 KB/840.40 KB ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100% Preparing module... Module ImageExtra downloaded successfully. Module `ImageExtra` was updated successfully.2 points
-
Tracy Debugger for ProcessWire The ultimate “swiss army knife” debugging and development tool for the ProcessWire CMF/CMS Integrates and extends Nette's Tracy debugging tool and adds 35+ custom tools designed for effective ProcessWire debugging and lightning fast development The most comprehensive set of instructions and examples is available at: https://adrianbj.github.io/TracyDebugger Modules Directory: http://modules.processwire.com/modules/tracy-debugger/ Github: https://github.com/adrianbj/TracyDebugger A big thanks to @tpr for introducing me to Tracy and for the idea for this module and for significant feedback, testing, and feature suggestions.1 point
-
No worries @adrian, yes, I can get by with alternative solution listet in this thread! Appreciate your effort and thank you very much.1 point
-
No problem - I can stick with the ASM option - I just wasn't sure whether anyone was using the ordering option - now I know you are, it's only a small inconvenience to allow that ability.1 point
-
Wow!!! Wordpress, Drupal and ProcessWire?? http://hackwithkali.net/how-to-be-a-professional-hacker-complete-guide/ Should we be worried?1 point
-
Just wanted to say that's working for me as well. I'm familiar with the wire( ) syntax but have not noticed wire('all') and wire('*') before. Thanks. Edit: Starting to make some progress with PW3 now. This Namespace FAQ (php.net) is helpful.1 point
-
Yes I'm only developing on windows and host on linux. I like the new phpinfo section, it's not in the way and it saves me oploading my own php scripts.1 point
-
This can be done very easy: http://processwire.com/talk/topic/2782-template-design-better-route/#entry27206 http://processwire.com/talk/topic/2210-help-getting-a-custom-styles-php-file-working/?p=20641 https://processwire.com/talk/topic/5162-how-to-load-js-css-plugins-colorbox-cycle2/ Also with the delayed output you can set default page css with _init.php and overrule with specifiq page css with template file1 point
-
@tpr: Yes, you are right, this is already known as possible solution. see: https://processwire.com/talk/topic/12326-redirect-after-login-to-original-page/#entry114235 I think, @adrian is interested in why it is not working with his module, because it should be. ?!1 point
-
As I said, I would not show permission, status and notes columns since they show wrong info on windows. Exist/readable/writeable columns are ok. I can't test what statuses are displayed on linux box, but flaging read/orange/green is also not trivial. If you want to be able to upgrade PW version using ProcessWireUpgrade Module, /wire has to be writeable and if that user wanted to do then it should be marked green (or orange), not red (I don't make /wire writeable in production). If you want to upgrade site modules, than /site/modules has to be writeable etc. I would limit phpinfo() just for admins. I'm hosting 3 live sites on Windows server for more than a year, 2 more to come. No problems so far.1 point
-
Thanks @Pierre-Luc for this, I use MAMP on a Mac and found the dependencies were present by default, and they are on my hosting also so I tried your module and it works exactly as I hoped; thank you! (and "Hi!" from just down the road (Ottawa )1 point
-
// so we only initiate plupload if a form with id fileUploadForm is present on the page // you can change it to look for a class name if you prefer.. var filesUpload = document.getElementById("fileUploadForm"); if (typeof fileUploadForm !== 'undefined') { // this is the part of the form where people can drag and drop files into // if it should be the whole form you can strip the next line and change all dropArea vars to filesUpload var dropArea = document.getElementById("dropArea"); // the next 3 events are only to visualize drag and drop // they're basically just adding/removing the dragOver class to dropArea dropArea.addEventListener('dragover', function(e) { this.classList.add("dragOver"); e.preventDefault(); e.stopPropagation(); }, false); dropArea.addEventListener('dragleave', function(e) { this.classList.remove("dragOver"); e.preventDefault(); e.stopPropagation(); }, false); dropArea.addEventListener("drop", function(e) { this.classList.remove("dragOver"); e.preventDefault(); e.stopPropagation(); }, false); // here we actually initiate pluploader var uploader = new plupload.Uploader({ browse_button: dropArea, // this can be an id of a DOM element or the DOM element itself drop_element: dropArea, url: './', resize: {width: 3000, height: 3000}, headers: { "X-Requested-With": "XMLHttpRequest" // without this Processwire's $config->ajax won't work }, filters: { mime_types : [ { title : "Image files", extensions : "jpg,jpeg,gif,png" }, { title : "Video files", extensions : "mpg,mpeg,mp4,mov,avi,wmv" }, { title : "Zip files", extensions : "zip" } ] }, runtimes: 'html5,flash,silverlight,html4', flash_swf_url: 'plupload/Moxie.swf', required_features: true }); uploader.init(); // here you can show a preview of each file (before actual upload) uploader.bind('FilesAdded', function(up, files) { var html = ''; plupload.each(files, function(file) { /* check file.size, remove if exceeds limit */ html += '<li id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></li>'; }); document.getElementById('fileList').innerHTML += html; uploader.start(); }); // this one handles the actual progress, I'm currently just showing in percents (without progress bar) // but you can use file.percent for whatever you like (e.g. changing the width of an element with it) uploader.bind('UploadProgress', function(up, file) { if(file.percent == 100 && file.status != plupload.DONE) { file.percent = 99; } document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>"; }); // after a file is ready, my PHP script is responding with the pageimage file, so I'm swapping the preview with the response uploader.bind('FileUploaded', function(up, file, result) { // remove upload progress for this file var progressElement = document.getElementById(file.id); progressElement.parentNode.remove(progressElement); // prepend uploaded files to gallery var gallery = document.getElementById('groupGallery'); gallery.insertAdjacentHTML('afterbegin', result.response); }); // error handler.. uploader.bind('Error', function(up, err) { // document.getElementById('console').innerHTML += "\nError #" + err.code + ": " + err.message; console.log("Error #" + err.code + ": " + err.message); }); } So this is exactly what I use right now. Added only a few more comments. Hope it helps to get you started. You can customize plupload for your needs and as far as I remember there is somewhere documentation on how to strip unneded runtimes, like flash or silverlight. But that depends on your needs ;-)1 point
-
Why not just append a URL param redir=URL and redirect after successful login? The original URL could be stored in session too.1 point
-
Replace 'fuel()->getArray()' with 'wire()->getArray()' and it should work. fuel() is already marked as deprecated for a good amount of time.1 point
-
In Sublime Text i can do this by quick search "inputfield.php@___"1 point
-
Latest version now includes a new Diagnostics /Debug panel. The diagnostics are currently just filesystem stuff - the idea coming from the excellent ProcessDiagnostics module (http://modules.processwire.com/modules/process-diagnostics/). I just wanted a way of making the filesystem stuff available on the frontend of live sites as a quick and easy way to check if there are any problems. Please help me to test the results this is returning and the logic regarding the Status and Notes - I expect this may not be perfect yet. I also added Owner (User:Group) and Permission (chmod) info for the template file of the current page to the Template Info section of the ProcessWire panel. I have moved the Debug section from the PW Info panel into the Debug panel because I thought the PW Info panel was getting too long. I have renamed a few classes and file includes, so you will probably need to revisit your "Show Panel" settings because some by now be hidden for you initially). The panels are also now orderable. PS Those results are not my real settings - just playing to get a variety of status and notes entries for you to look at1 point
-
Good thought but no luck. I was just reading up on the compiling and namespaces. Mostly in Ryan's blog posts. So far I'm still stuck at that same spot. Could try reverting to what I used to do before Spex but that would be a time consuming rewrite. Might be best to linger on 2.7.3 a while but wanted to make the jump now because I'm at a good spot for that otherwise. Wondering, do I have to put namespace markup in all the little files for partials and stuff that Spex uses?1 point
-
I think if you change fuel() to \ProcessWire\fuel() on line 250 that might work, or add namespace ProcessWire; to the top of the spex.module file just after the opening PHP tag. If it works, credit goes to Teppo: https://processwire.com/talk/topic/12304-pw-3-devns-cli-not-recognising-pw-classes/?p=1140261 point
-
Here's another clue. I'm using Spex with a fresh install of 3.0.8. spex.module has this: public function getTemplateVars($include_fuel=true) { return array_merge( $include_fuel ? fuel()->getArray() : array(), array('spex' => $this), array('slots' => $this->slots), $this->templateVars ); } Is that way of using "fuel" no longer supported? What should it be? Am I on the right track or is this a red herring. Error: Exception: Method ProcessWire::getArray does not exist or is not callable in this context (in /web/elastic/demo/wire/core/Wire.php line 347) #0 [internal function]: ProcessWire\Wire->___callUnknown('getArray', Array) #1 /web/elastic/demo/wire/core/Wire.php(303): call_user_func_array(Array, Array) #2 /web/elastic/demo/wire/core/WireHooks.php(555): ProcessWire\Wire->_callMethod('___callUnknown', Array) #3 /web/elastic/demo/wire/core/Wire.php(327): ProcessWire\WireHooks->runHooks(Object(ProcessWire\ProcessWire), 'callUnknown', Array) #4 /web/elastic/demo/wire/core/ProcessWire.php(471): ProcessWire\Wire->__call('callUnknown', Array) #5 /web/elastic/demo/wire/core/Wire.php(328): ProcessWire\ProcessWire->__call('callUnknown', Array) #6 /web/elastic/demo/wire/core/Wire.php(328): ProcessWire\ProcessWire->callUnknown('getArray', Array) #7 /web/elastic/demo/wire/core/ProcessWire.php(474): ProcessWire\Wire->__call('getArray', Array) #8 /web/elastic/demo/site/modules/Spex/Spex.module(250): This error message was shown because: site is in debug mode. ($config->debug = true; => /site/config.php). Error has been logged.1 point
-
ProDrafts version 2 is now available for download in the ProDrafts board. This one includes the "Live Preview" capability shown in that video above. It also includes "View Both" capability, and several other improvements.1 point
-
Thanks @tpr - great idea. That horrible hover background highlighting was a result of the built-in Tracy css. It was on my list of things to tweak, but never got it. The latest version has your code in place and also contains a new CPU usage item on the System Info panel. I have submitted a PR to the Tracy project to see if they will include that in their package. I don't really want to have to maintain this addition every time they release an update - hopefully they will include it.1 point
-
Thanks Charles, I am glad you like it! It's funny really - I initially didn't expect to spend much time on it - I thought I would just implement it as is, but then kept having more and more ideas - and getting suggestions from lots of you guys (especially @tpr) and it just snowballed1 point
-
Sorry, completely forgot about it! The admin user is sjardim. You can reset the password running on any page: <?php $users->get("sjardim")->setOutputFormatting(false)->set('pass', 'XXXXXX')->save();1 point
-
Should anybody need this: $pages->addHookAfter("ProcessPageEdit::buildForm", function(HookEvent $event) { $page = $event->object->getPage(); $form = $event->return; if ($page->template->id == 44 && $page->parent->id != 1020) { $fieldset = $form->find("id=Inputfield_fieldset_tab_2")->first(); $form->remove($fieldset); $event->object->removeTab("Inputfield_fieldset_tab_2"); } }); Just replace the $page->template->id with the id of your template, and the $page->parent->id to what you want (or something similar). Finally replace fieldset_tab_2 with the name of your field.1 point
-
Just wanted to throw in my two cents. If you come at it as a front-end developer that's a complete beginner to CMSs, then PW should be very easy to get going. It's built around working the same way that existing web technologies work… Pages map in the same way that URLs do… Template files are just plain HTML/PHP files… the API is largely the same as a front-end API (jQuery)… and so on. So if you know your basic web technologies outside of CMSs, then you won't find a simpler system than ProcessWire. The problem is most other CMSs don't work that way. So the line gets more blurry when you've become used to the terminology and approach of another CMS, because PW can be quite different. Sometimes you have to unlearn what you know from elsewhere in order to appreciate the simplicity of PW. People are always trying to find complexity that isn't there, especially those that grew up on other platforms. PW is a system that rewards you by being curious. We aim to show you how to fish so that you can catch the big fish. We're not here to catch the fish for you. You don't have to know anything about fishing, but you should know how to yell for help if you fall in the water. And you should be willing to learn by example. I learn best by example, so this is the way I tend to teach too (and I recognize not everyone learns the same way). PW is a CMS and CMF, not a website builder. If you are curious and willing to explore, you'll find it is very simple indeed. Certainly far simpler than even WordPress in creating a custom website. You do have to come from the point of view of "I want to create and have the system adapt to me" rather than "I will create something based on what the system provides." If you already know what you want to create and it's something unique, you won't find a simpler path to get there than PW. WordPress is a different beast, in that it's basically saying "YOU WILL CREATE A BLOG or modify this blog and call it something else." Some people like that underlying structure… "okay, we're starting with a blog, what can we do with it?" Others do not like that underlying structure. Our audience consists of those that want to have a system support their original creation rather than mash up an existing creation. There was a PDF posted earlier that I think hit upon some good points, and I appreciate the effort that went into putting it together. The fictional character being scripted in the dialog is not our target. I can go into specifics if anyone wants me to, but I was definitely left feeling at the end of it that we have to be careful about hand-feeding too much or else we'll start attracting people beyond our support resources. Folks that want the fish cooked and filleted rather than folks learning to fish. Perhaps in time we will want to attract more of the consumer-type audience, but currently I don't know how to support users looking to find all the answers in a sitemap file. Keep in mind that unbridled growth is not necessarily desirable. Most of us don't get paid for most of the work we do here and we do best if we grow in a more healthy manner, attracting more thoughtful designer/developers that are here to learn and also contribute. Obviously the author of the PDF is one of the thoughtful ones (and the PDF is a great contribution), even if his fictional character isn't necessarily, but we'll welcome him anyway. But we will definitely be going through the PDF in more detail to learn and improve from it where appropriate, while keeping our audience in mind. I think we're doing something right, because our audience is growing rapidly. I'm nearly full time on ProcessWire now, and it's still difficult to keep up with everyone. At present, I like that our audience is largely open-minded, curious and thoughtful designers and developers. Somehow we've attracted an incredible quality of people and that's what makes this place great. We could not ask for a better group of people here. I'm reluctant to lead PW towards a website builder direction because I think that's when the quality of the community could go down, as people come looking to eat fish rather than learn, catch some fish, and throw some back. The reality is that part of our long term goals include converting the rather large audience that has outgrown WordPress into ProcessWire users. I'm convinced that we do that by giving them more ProcessWire, and not more WordPress. But at the same time, we always have to keep an eye on WordPress and learn. They've been lucky no doubt, but they are also doing many things right. So we have been and always will be working to make the WP-side of users more comfortable in ProcessWire, while also trying to help them grow by distancing them from the limited WP mindset.1 point