Leaderboard
Popular Content
Showing content with the highest reputation on 01/04/2019 in all areas
-
This week I’m glad to report the development progress on the new ProcessWire.com website is ready for preview and I’ve placed it in a subdirectory for testing. You can find it here: https://processwire.com/newsite/ Of course, this is just version 1 of the new site, but it’s now got quite a bit more updated content than the existing site, so I don’t want to wait much longer to replace the existing site. I’m still working out a few small details, but it should be 99% functional. I expect to replace the existing main site early next week. If you have a chance to test it out, please let me know how if you come across anything that isn’t working or any browser/platform specific issues. Thanks for taking a look and testing it out. I’ll have more details next week, along with a new core version on the dev branch with several updates currently in progress. Have a great weekend!13 points
-
Hi everyone, Yesterday I began working on a module to create a filesystem abstraction for files and images using the Flysytem library (http://flysystem.thephpleague.com), out of the necessity of having the images copied (and probably linked) on Amazon S3 and other places like Dropbox. There two reasons why I decided to tackle this: 1 - When I work on the project on my machine, I need a way to automatically sync the images from the server and/or the external storage. When an image is added on the server and the database is imported on my local env, PW shows a blank thumbnail of it. The idea for the module if to check if the page image has a width == 0 and if it exists on the server, add it to the local filesystem. 2 - In the past, I had to move a large website to a different server in a hurry and a lot of images were left behind (it was a mess). So I'm planning for a possible future worst-case scenario of the server exploding ? The code I quickly wrote is below (please bear with me that it's pretty raw at the moment). One thing I had to figure it out is why PW fires the Pageimage::size hook wherever a page is loaded in the admin, even though the thumbnails are already created. I was planning to save the image variations on S3 as well. Can someone clarify? I know that @LostKobrakai was working on a similar project, and so I would like to ask him and everyone else if you think I (and who may help) should evolve this idea into a full-featured module where the user can select which server (adapter) to use (AWS, Digital Ocean spaces, Dropbox etc.) <?php namespace ProcessWire; use Aws\S3\S3Client; use League\Flysystem\AwsS3v3\AwsS3Adapter; use League\Flysystem\Filesystem; use League\Flysystem\Adapter\Local; use Spatie\Dropbox\Client; use Spatie\FlysystemDropbox\DropboxAdapter; class ProcessFly extends WireData implements Module, ConfigurableModule { public static function getModuleInfo() { return array( 'title' => 'ProcessWire Flysystem Integration', 'version' => 001, 'summary' => 'Synchronize all the page assets uploaded through PW to a specified bucket in Amazon S3 and...', 'author' => 'Sérgio Jardim', 'singular' => true, 'autoload' => true, 'icon' => 'image' ); } public function init() { $this->client = S3Client::factory([ 'credentials' => [ 'key' => '', 'secret' => '', ], 'region' => 'sa-east-1', 'version' => 'latest', ]); $this->bucket_name = ""; $this->dir_name = "images"; $this->s3_adapter = new AwsS3Adapter($this->client, $this->bucket_name, $this->dir_name); $this->s3_filesystem = new Filesystem($this->s3_adapter); // DROPBOX $this->authorizationToken = ""; $this->dropbox_client = new Client($this->authorizationToken); $this->adapter_dropbox = new DropboxAdapter($this->dropbox_client); $this->dropbox_filesystem = new Filesystem($this->adapter_dropbox); $this->addHookAfter('Pages::saved', $this, 'checkImageS3'); // Download images that are not in local filesystem for whatever reason but are available in the remove one. $this->addHookAfter('InputfieldFile::fileAdded', $this, 'uploadImageS3'); // Fired when a file/image is added to a page in the admin // $this->addHookAfter('Pageimage::size', $this, 'uploadImageS3'); // Fired when a file is resized via API. Note: this hook is also called when the page is loaded in Admin. Need to know why. $this->addHookAfter('Pageimage::url', $this, 'redirectImageURL'); //Replace image URL for the S3 path } public function redirectImageURL($event){ if($event->page->template == 'admin') return; else $event->return = "https://s3-sa-east-1.amazonaws.com/[bucket name]/images/" . $event->object->page . "/" . $event->object->name; } // UPLOAD public function uploadImageS3($event){ if(count($event->return)) { //if it is a image resize event get image variation data $file = $event->return; } else { $file = $event->arguments(0); } $filename = $file->name; $filename_original = $file->url; $pathToFile = $file->page . "/" . $filename; $system_path = $file->filename(); try{ $file_on_s3 = $this->s3_filesystem->has($pathToFile); //check if file exists on AWS if(!$file_on_s3) { $contents = file_get_contents($system_path); $this->s3_filesystem->put($pathToFile, $contents, array( 'visibility' => 'public', )); //upload file with the same folder structure as in assets/files: page_id/file_name //Also add a copy to Dropbox (OPTIONAL) $this->dropbox_filesystem->put($pathToFile, $contents); } } catch (Exception $e){ throw new WireException("Error: Image not Added to S3: {$e->getMessage()}"); } } public function checkImageS3($event){ $page = $event->arguments(0); if(count($page->images)) { foreach($page->images as $file) { if($file->width == 0) { return $this->downloadImageS3($page, $file); }; } } } public function downloadImageS3($page, $file){ $pathToFile = $page->id . "/" . $file->name; $file_on_s3 = $this->s3_filesystem->has($pathToFile); //check if file exists on AWS if($file_on_s3) { $image = "https://s3-sa-east-1.amazonaws.com/[bucket name]/images/" . $pathToFile; // $page->images->remove($image); $page->images->add($image); $page->save(); } else { throw new WireException("Error: Image not found on S3: {$file->name}"); } } }5 points
-
4 points
-
I understand that you are exaggerating for effect, but your analogy is wrong in several ways. 1. Apart from in kidnapping scenarios, nobody is ever "put" into a helicopter. Rather a person chooses to get into a helicopter. And if an person chooses to get into the pilot's seat and start pushing buttons and pulling levers then it's their own responsibility to handle the consequences. 2. A company that manufactures helicopters usually does not teach people how to fly helicopters. Likewise a company that manufactures hammers usually does not include a brochure explaining how to build a house. It's not really the responsibility of the manufacturer to deliver comprehensive instruction to every person who might come in contact with their tool. Rather (as per point 1) the responsibility rests with the individual choosing to use the tool to pursue their own learning from any sources that might be available. 3. Despite there being no obligation on the manufacturer to produce it, the helicopter we're talking about does in fact come with loads of detailed mechanical documentation, written and video tutorials, demo helicopters that you can take apart to learn from, and a helpful community of pilots and engineers ready to answer questions. So it's not really true that there's only a small brochure that leaves most things undocumented - quite the contrary. It seems that your complaint is that you've found some small behind-the-scenes component (maybe a heated pilot seat that is more of an optional thing than a critical feature necessary for every flight) that is not explained in a way you can understand. 4. Now let's bring into the picture the fact that we're talking about a helicopter that is made available for free. The "company" that has produced this helicopter is actually just a small number of generous people who, after having finished their day jobs, put in unpaid hours to offer helicopters to the world at no cost simply because they want to share the miracle of flight. If after their day jobs and the unpaid time in the helicopter factory there aren't enough hours left in the day for those generous people to also open up a helicopter pilot training academy then I don't think we have much reason to complain about that. 5. The company that produces this helicopter operates on the collaborative open-source model. That means there's an open invitation for anyone who sees potential in the product to participate in adding further value to it. So if you, as an aspiring helicopter pilot, can see that it would be useful for other pilots to have some documentation on the heated pilot seat then you would be very welcome to write up a document and submit it to the CEO. I'm sure he'd be delighted to receive it.4 points
-
Overall looking great. Just a couple of quick things - I'll try to dig in deeper later. I think The API examples using a mix of $pages and pages() is confusing. I would stick to one approach The demo site should be running the latest stable which is currently isn't I'd like to see a Github link on the homepage or preferably the footer for all pages. I think it gives an open source project legitimacy and advertising this upfront can be an important thing for swaying someone to look around further. On the site directory, is there a reason for the category order? I think it's especially weird that "Newest Additions" is second. Speaking of the sites directory - are you running a regular check on all these site (using @teppo's isit.pw) to make sure they are still powered by PW - I think it looks really bad for PW if a listed site has been moved to another platform. The "What you'll love" page is so long. I saw the TOC links at the top and didn't initially realize that they scroll down on the current page. It seemed link too much to look at - where do I start? This page (http://processwire.com/newsite/about/requirements/) lists PHP 5.4, but this one (http://processwire.com/newsite/docs/start/install/new/) says 5.3.8 still. At the bottom of http://processwire.com/newsite/docs/start/install/new/ you state: "See our download page for additional download and installation options.", so I think it should link to http://processwire.com/newsite/download/core/, rather than http://processwire.com/newsite/download/ I think the master and dev download buttons on http://processwire.com/newsite/download/core/ should show the version numbers Afraid I don't really like the blog page - I feel like the blocks are too confusing - I'd rather a more normal vertical approach and an image (when available) to go with each summary. I was surprised that Page Reference fields are not listed here (http://processwire.com/newsite/docs/fields/). BTW - I think that all docs needs to use "Page Reference" rather than just "Page" because in PW "Page" is already used so much. BTW - thanks for the link to Tracy from http://processwire.com/newsite/docs/more/3 points
-
@Robin S - haven't tried these, but maybe https://sitemod.io/ or https://userstyles.org/ or https://www.styleurl.app/ or https://www.canvasflip.com/visual-inspector/?3 points
-
Thanks for all the feedback guys. I've been so busy this week I haven't had a chance to read and respond to it all yet, but will be sure to go through it all this weekend. I appreciate all of your interest. I've gone ahead and uploaded the site to a pre-launch preview location here: https://processwire.com/newsite/3 points
-
Put this in your ready.php file: $sitesettings = new WireData(); $sitesettings->foo = 'bar'; $this->wire('sitesettings', $sitesettings); Then you have your new api variable available and can access it or its properties: The great thing about defining it as WireData is that it does not throw exceptions when you access non-existing properties. So I'm just populating this variable via a repeater and echo that values in my templates.3 points
-
The problem behind 2. is probably due to the fact that any core code will still create new pages using new Page(), which will create a Page class and not a pageClass class. So any code running within that request will get a Page. On the next request the page will be loaded from the db and therefore the correct pageClass will be used. About 1.: It's not beta in any ways. E.g. the core User class is using the same system. It's hidden behind the advanced flag simply because you can create a big mess if you're not using it correctly. Imagine you use a pageClass, which does not extend PagesType, but is just some random class. It would probably break quite a lot of things in your website. It's also certainly an option your average developer shouldn't use especially without knowing what those setting do. "ProcessWire system development" does actually mean what it says. The pageClass option is there because the core uses it for its user pages. Ryan might use it for different pages in the future and if you override it it might clash and break your site. It's quite unlikely (there's been no need for years), but possible.3 points
-
2 points
-
Here are my optimization ideas: The dropdown menu on the right side is cut off (see screenshot) The link "Community" directly opens the forums which has a different look and provides a different navigation. Users will be disturbed by this, because they are being redirected to another site, instead of staying on ProcessWires site. The navigation item "Directory" should be named "ProcessWire Developers" or "Developer Directory". The best title IMHO would be "Find a ProcessWire developer" but that is too long for a navigation item. And "weekly.pw" should have an explanation like "Weekly blog". I think one of the biggest problems with the actual and the new site in general is, that information is distributed across different places. We have announcements in the ProcessWire blog, on weekly.pw and in the forums. Why isn't weekly.pw integrated into the ProcessWire site? I know it's a site by @teppo. But what if he had access to write blog posts on processwire.com? This would make much more sense, and on weekly.pw there is also duplicated content, as it often says the same things as the latest blog post (mostly in a reduced form). The weekly.pw blog post could have a title like "Weekly highlights" Also I think the comment function on the blog post could be moved to the forums, because again we have two places to comment (directly on the site, and in the forums). Why don't you automatically create a new topic in the forums for every blog post, and people can comment there, so the conversation/discussion isn't distributed to several places? More to come ?2 points
-
One nitpick about the server in general. You can access it (the home page for example) without https. Ideally http should redirect to https.2 points
-
Things and thoughts... will follow after a more in-depth look. Meanwhile I want to say: that's a super nice rebuild!2 points
-
I think you both have valid points. If ProcessWire wants to get more exposure and usage (…more devs creating quality modules) there are lot's of places to advance or update documentation or educate better. Especially module development can easily be daunting to newcomers as it's basically "do what you want" besides some conventions around config / module info / process module callbacks. There could also be more (UI) components to make processwire modules really feel like integrated into the backend. Currently this is mostly on the module developer which is neither efficient nor works really well. Besides the InputfieldWrapper and MarkupAdminDataTable component I feel like there's a severe lack of consistency in the ProcessWire UI a.k.a. truely reusable UI components to be used by module devs. One can certainly do a lot with just those two, but that depends on the module. It should be perfectly fine to talk about such shortcomings. Especially if it's the experience of someone new here it should be a clear sign about places to improve. What we should be aware though is that we're still talking about oss and resources are sparse. Ryan will do what he can in the places he thinks are most important. This might not necessarily align with what other people think is most important. E.g. from my years in this community I feel like Ryan sees ProcessWire much less as a CMF than many people use it as. So the developer turning the admin experience around by 180 degrees is not really the primary target group. This explains any lack of grand documentation in this place and maybe the quite a few modules needing to fill in the gaps.2 points
-
2 points
-
Same here: I usually put those things in a tab on the root page: Rendering the menu is easy: <div> <?= $pages->get(1)->footermenu->implode(" | ", function($p) { return "<a href='{$p->url}'>{$p->title}</a>"; }); ?> </div> Config Settings is a repeater field that populates a custom API variable with site settings: $uk->config->company and branding:2 points
-
When scrolling down the home page, the animations of the 8 callouts cause a horizontal scrollbar to temporarily appear while they animate in. Adding the 'uk-overflow-hidden' class to the #content-container div should fix that.1 point
-
Yes, there are many browser extensions that will let you do this, but we want something that can be shared and viewed easily by others via a link. Sounds perfect, will check it out. Update: I made my own tool...1 point
-
Tampermonkey will let you modify the code of a page: https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=en You could create your own CSS file, and then establish a setting in TM to load that file (other's would have to do it on their browsers as well however).1 point
-
Nice rebuild Ryan, well done. Some small but effective tweaks I think should be considered: a) Padding and line height it's too narrow for my eyes, I'd love to let the content breathe more. b) What about using a vector/flat/illustrated image of a browser instead of that big iMac? It looks to me as outdated as (or more than) the actual site. c) I'd like to see a bit more font-weight on the titles and a uniform size. d) I usually avoid pure black as hell. I'm looking at code examples on the homepage ? More subtle background, even a "light themed version" would be better. e) I know, you love it but....that blue it's way too much for me, expecially on the hero image on the top of the homepage. It's a personal preference though and I respect that. f) As @Robin S mentioned, +1 for the boxed version (1440px for my tastes) ? g) On the showcase page, what about using the Uikit card component for the previews thumbnails and the badge component for the respective categories? (eg. https://www.awwwards.com/websites/sites_of_the_day/) without the carousels?1 point
-
Looking good Ryan. One thing I noticed is the last dropdown menu "Docs" should open the same direction/way as the "Download" menu item but it doesn't. It opens off screen causing horizontal scrollbars. When viewing on Chrome. Edit: it looks like jmartsch beat me to it. Please consider giving the light grey and other muted text more contrast for accessibility. See https://contrastrebellion.com/ for humor. #666 for body copy gives AA, but #565656 gives AAA for example. Chrome's inspector now includes a contrast accessibility checker when you click on the color swatch/square. The curved line represents what passes the AA or AAA rating. After reading the API examples, I want to know more about it. I think we need a link or outlined button below the examples "Get started with the API" or "Learn more" so they can continue reading. Now that I look at it more, maybe each homepage section needs it own call to action button below. At first it wasn't entirely obvious that the headers on the homepage were links. Ex. Blog posts - might need a button below that say's "View all" or something similar. Same for the Processwire Showcase and Shop. - This might actually motivate new users to join the forums as well. Those are just a few of the first things that come to mind when viewing the site. Hope that helps1 point
-
Hey, does anyone know a web service that will load a website in an iframe or similar wrapper with custom CSS applied? So that the community can try out some alternative styling ideas for the new website design and share them here in a way that others can see directly in their browser rather than as static screenshots. I'm sure there used to be some tools that did this but after looking I can't find any working ones. The two I did find are only for font changes, and both seem to be broken for me: Typewonder - very basic (cannot target different fonts for headings or using custom selector), share function seems to be broken. http://typewonder.com/home Webfonter - only for FontShop fonts, also seems to be broken (font thumbnails fail to load and fonts do not update). http://webfonter.fontshop.com/ Anyone know of something better, ideally that will add any kind of custom CSS and not just font-face changes?1 point
-
Despite the mentioned things, I like the new site. Still looking what can be improved.1 point
-
I really like the new design Ryan! I have only one suggestion; would it be better to move "Getting Started" to somewhere a little easier to find for new users? Thus far, I have only been able to access it here, and it is tucked away from the main sidebar on the right.1 point
-
AAAAh ? Now I understand. That's the github version of the admin theme and the shipped version in the core is different. Thx for clarifying!1 point
-
Found that post from @ryan a while back about this "custom backend styles/theme" topic: https://processwire.com/blog/posts/processwire-3.0.54-and-adminthemeuikit/ Maybe this is a good starting point.1 point
-
You can mod everything from your taste using LESS or SASS. You can also make a complete new theme (I am for example building one based on the Bulma Framework). Another screen of an actual AdminTheme based on UiKit and Boss : Check this theme/thread and readme : https://github.com/ryancramerdesign/AdminThemeUikit edit: beaten by @bernhard ? ping @Pixrael ?1 point
-
That's a different topic then, so you might be right ?? You can see this thread how @Noel Boss developed his theme and a new question that I asked right now: It might also be possible to build a custom theme easily by replacing the _main.php file of the uikit admin file. You can try that out by copying the AdminThemeUikit folder to the /site/modules folder, then refresh your modules und tell PW to take the /site/modules version of the uikit admin theme. Then you can use a _main.php file like this: <body class='<?php echo $adminTheme->getBodyClass(); ?>'> <div class="uk-text-center uk-padding" style="border: 5px solid red;"> this is a demo header </div> <div uk-grid> <div class="uk-width-auto uk-padding" style="outline: 5px solid green;"> this is a demo sidebar </div> <div> <!-- MAIN CONTENT --> <main id='main' class='pw-container uk-container uk-container-expand uk-margin uk-margin-large-bottom'> <div class='pw-content' id='content'> <div id='pw-content-body'> <?php echo $page->get('body'); echo $content; echo $adminTheme->renderExtraMarkup('content'); ?> </div> </div> </main> </div> </div> <?php echo $adminTheme->renderExtraMarkup('body'); ?> </body> So I still think that building a wrapper around the pw admin will be a lot easier than building a GUI for the frontend on your own. Think of repeater inputs, file inputs with AJAX, security, CSRF and multi-post prevention, session handling, tabs, sidebar panel / modals, input validation and and and... PS: Just tried the upgrades process module, it looks like this: And the hello world process module: It does not show the warning and error messages - so this approach needs some tweaking, but it's a good first step and I'd be happy to see what you come up with!1 point
-
@Robin S Thank you very much. It is now very clear! Have a nice day sir.1 point
-
1 point
-
Not totally sure about this, but I think for Lister actions you can't selectively enable them for some templates and not others (or rather you can but it doesn't have any restricting effect). That's because the actions apply to all the pages shown in the Lister which could use any template. So you would either enable it for all templates or no templates by editing the role: And did you do the step of allowing the action for the Lister instance? You'd need to also save the role: $role->save(); But maybe you already did that?1 point
-
I'm not totally clear about what you're asking, but when it comes to accessing an image URL in a browser then this happens directly without PW getting involved. So if you use (or send someone) a URL to an image stored in a PW field... http://yourwebsite.com/site/assets/files/1234/some-image.jpg ...or an image not uploaded to a PW field... http://yourwebsite.com/site/templates/images/some-image.jpg ...or even outside the PW folder structure... http://yourwebsite.com/some-folder/some-image.jpg ...then PHP and PW are not involved in serving that image. Well, strictly speaking the rules in the PW .htaccess can be involved but no need to worry about that at this point. For images uploaded to a PW field you can get their URL via the API ($some_pageimage->url) or you can deduce the URL via the admin: But when it comes to things like logo images for use in an email signature I would tend not to store those in a PW field because you want them to be available at the URL for years to come and there's less chance of accidentally deleting the image or affecting its URL if you store it outside of a PW field.1 point
-
Hey, All the best in 2019! ? Thank you for answers, I will try to work something out and see what's going to come out ? Thank you ? R1 point
-
I think you are wrong ? Bringing custom functionality into your PW backend is simpler than you might think: The benefit is that you have ALL the features of PW built in, as @teppo already mentioned. You can build things like this: You should also have a look at RockGrid, if you want to show tabular data: PW is great for building backend applications. The only part that is not so clean/easy is how you handle migrations/upgrades. But that would not be different if you chose to build a custom frontend GUI for your users rather than using PW's backend. I had the same desicion to take before I started with my CRM and I'm really, really happy that I chose to stay in the PW backend.1 point
-
Hello @gebeer! I made a convert to object literal on your supposal but it had issue when "JavaScript loading method" was set to:manual (where emo.js is loaded after the inline script block). So script init is now again attached to the window onload event and emo.js can be included at any part of page. Thanks for the report! I also dropped ProcessWire namespace for continued 2.x support, thanks for a remind @Robin S! That was maybe too hesitated and no requirements for it. Version bumped to 1.1.1 and it's available at GitHub: https://github.com/BlowbackDesign/EmailObfuscation/releases/tag/1.1.1 Besides bugfixes this version adds support to multilanguage nosript text and template cache.1 point
-
All valid points. But in my eyes if @ryan is confident that the current "work in progress" is better than the current "live" is there any harm in pushing? If new visitors see better than what is currently there surely that will gain new users in the interim. Feedback can then be received and implemented to make it even better and boost new users even more. The website is looking tired as it is, and with so many opinions, when would something that everybody is happy with (is that ever the case) actually go live? Happy New year to everyone, it's been a great year with ProcessWire in our small team.1 point
-
Js is the way to go if you use cache as @bernhard suggested. However that will not ensure that the next random quote will be different than the previous, and with 30 items that would happen frequently. What I have done on my portfolio site is to - load all quotes to a js array - randomize this array - show quotes sequentially, and restart at the end1 point
-
I'd load all quotes on page load and display one random quote via javascript. Similar to this example https://embed.plnkr.co/plunk/RHIPp81 point
-
A few more CMS marketing pages that I thought were effective... https://www.silverstripe.org/ - I see SilverStripe as being quite similar to PW in terms of target market (or what I think the PW target market should be). If I wasn't in love with PW I'd probably be using SilverStripe, partly because of the New Zealand connection. https://dotcms.com/ - good use of a video https://prismic.io/ - simple with plenty of whitespace https://ghost.org/features/ - their Home page is weak but I like this Features page https://craftcms.com/ - the focus on custom design and development ("design and build exactly what you need") is similar to what we should do with processwire.com1 point
-
Some what? 5-10? 100s? 1000s? Yes ? But I don't get what you are trying to do exactly. Where does the user click? What should then be showed? Some quotes randomly sorted? Or one random quote of many? Please be more precise in your question - there are always many ways in ProcessWire and the best depends a lot on the scenario.1 point
-
Just read "headless" on their site and thought this would be an important keyword for processwire.com as well. Maybe something like: I'm neither a native speaker nor a marketing slogan guru, but I hope you get what I'm trying to say. And as a proof, this statement could be linked to this video as discussed here: While I love that video content and know how true every word in it is, I think for new users this might not be obvious. Quite on the contrary, I think a video with one stranger telling something about a great system that he developed in his living room (sorry ? ) does not have the professional impression that it deserves. Also 33k views since 2010 is really not a lot - all of us know that these are no fair indicators for the power or greatness of processwire, but new users might not get that. I think it would be great to have a 2minute introduction video in a modern and professional design. I even think that it would be great to let this video have 100% the same text of the first 2min of the ancient video from 2010 to show how revolutionary the platform was back then (all modern CMSs sell that as the new big thing) while on the other hand PW has it for 10 years and has been stable all the time! Maybe someone could help with such a video? @heldercervantes or @Jonathan Lahijani ? One more thing that I like on modern websites about products is a section where the product is compared to other players in the market. Like runcloud does it on their website: Here is how such a page looks like: I think such pages could make a LOT of sense because people already know DroomlaPress and such a comparison page could outline the differences and show the strengsths of processwire in a fair and efficient way. If you try to compare it via google/youtube searches processwire will always lose the game because it's just not focussed on marketing the way the other platforms are. But that could easily be outlined on such pages, e.g. comparing CMS XY to PW: Good luck with the new processwire.com and happy and successful new year to everybody ?1 point
-
Thanks for the detailed reply Ryan. That's a good point. We'll have a much clearer impression of the new site when we can see it rendered in our browsers. This is a very broad audience. When the market for a product is large (e.g. the car market), usually some market segmentation goes on so that you don't have every provider trying to reach the entirety of the audience. So instead of targeting all car buyers in the broadest way ("It has four wheels!", "It can transport you from A to B!") manufacturers tailor the product and its marketing towards the interests of a narrower group within the audience ("Lowest particulate emissions of any mid-size van!", "Traverse any terrain with huge 283mm ground clearance!"). But having said that and having now looked at the marketing of many CMS products it seems that few providers in the CMS space aim for a narrower market segment. This surprises me because there are many... Different kinds of web-delivered content (single landing page, small brochure site, huge corporate documents database, Ajax-driven SPA, the list is endless) Different levels of custom development (from off-the-shelf WP themes to fully custom design and coding) Different divisions of responsibility between client and professional (client cannot design anything and strictly manages content only versus client virtually designs the site themselves via the backend) Different preferences for templating (via templating language such as Twig versus pure PHP) Different levels of coding competency (experienced developer proficient in many programming languages versus newbie, or person who thinks website equals Squarespace - which is not a rare thing given the saturation marketing of that provider) Different relationships with the finished website (this is my own website and I enjoy tinkering with it, versus I am a professional and I need to get the job done because time is money, etc) I could go on... Maybe we don't want to narrow down our audience much, but I think we should at least be mindful of people who PW is not going to suit: People who want an off-the-shelf theme already integrated with a CMS product (we have few available themes/profiles I can't see PW seriously competing in this space). People who have little to no PHP experience. So I think there should be strong emphasis on the suitability of PW for custom design and development. And there should be some code shown on the PW home page ? (if that scares away anyone then PW was never going to be a good fit for them). The best CMS home page I came across in my search is for Wagtail: https://wagtail.io/ Not saying its styling is perfect (for one thing I'd say go for a fixed max-width rather than a fully fluid layout) but I like several aspects of it: Many short, punchy value statements It's a fairly long home page that highlights many aspects of the CMS but is not excessively wordy I really like the tabbed interface showing off the top four features It doesn't shy away from showing some code front-and-centre It speaks to different audience segments in the "You'll all love it" section1 point
-
Well... I'm excited to see Ryan's work (new processwire.com) that showcases what he created in the last years (ProcessWire). I'm excited to see how and what Ryan has built in the last weeks. If there is real need to fix something, we'll fix it. If there are ideas worth discussing, we'll do so. Ryan built several websites in the past. I guess he knew what he did. Always remember: release early, release often. (like PW Dev Branch)1 point
-
I agree with Jens on the "are you a..." split on the homepage (think I've mentioned it to you before Ryan once or twice ;)). If there's going to be a screenshot on the homepage then I think it needs to be below that section really, a bit like Activecollab and others show their main features here before leading into the screenshot - because the main selling points wouldn't immediately obvious from the screenshot itself: https://activecollab.com/ https://www.kayako.com/ and some CMS' don't even have a screenshot on their homepage: https://modx.com/ https://umbraco.com (.NET, but popular in that language) https://www.drupal.org/ https://www.joomla.org/ Wordpress do have a screenshot on wordpress.org, but only to show that you can install a blog with a theme in seconds (their strong point of course). I pretty much agree with everything Jens has said so far, especially this post: I also don't like the heading font, sorry! It seems like a small thing but ProcessWire is a professional system built for professionals, so somehow to me the playful curves on the heading font seems to detract from that for me. But since you're asking for everyone's opinion you're always going to get a split of "that looks fine" and "I don't like that" ? Another thought - is it actually wise to launch the new website just to get it out by a self-imposed deadline? I'm thinking in case there's something in the navigation structure that may change, but equally if any pages get their content majorly shuffled around due to feedback it's probably not wise to change them multiple times on a live site in quick succession. I've made suggestions for changes to the top-nav over the years that I think make sense and I'm worried that - without seeing the new structure - others may also have suggestions that could be adopted and changing the navigation structure more than once in a short space of time is obviously not great for SEO (if that were to happen - there's a lot of "what ifs" until we can see it of course ?). Putting it up somewhere behind a simple password screen where search engines won't immediately gobble up the content and getting feedback makes more sense to me, though I realise that getting feedback from so many people before launch could drag out the process quite a lot. Maybe give us somewhere to look at it before launch, see who's interested in helping out and get a small group together to help with the final touches? That way you get the best of both worlds, launch with any ideas you want to implement but then the small group collates and curates the feedback so it doesn't add too much time into the process.1 point
-
I'd start by reading about $cache. Try the examples at this link that I posted above especially under Cache PageArray objects. You would want the cache refreshed every time a quote page is created/edited. Secondly, do you really need repeaters for your quotes? You could store each quote as a page under one parent. Finally, without knowing a bit more about your template and page structure, it is hard to give more specific advice.1 point
-
If your site is not highly dynamic, then fetch all your quotes (I am assuming they are less than one hundred) once (or every now and then) and cache the results server-side. If your quotes appear on every page on your site, or most of them, you can get away with caching client-side (e.g. quotes in hidden elements) rather than making regular ajax calls. Otherwise, you'll need to fetch quotes from your cached server-side results (i.e., the quotes cached server-side) using ajax. Have a look at WireCache ($cache) and the links below. https://processwire.com/blog/posts/processwire-core-updates-2.5.28/#wirecache-upgrades1 point
-
We also have a nice Slack community http://webdevs.xyz/ here in Germany where we also have a dedicated #processwire channel. Maybe this could be added somewhere?!1 point
-
I think you should outline the fact that we have a friendly, warm and helpful community, which often responds to questions asked in minutes or hours. And the tone of conversations is very nice. This is ONE thing that I love about ProcessWire. Target groups You are writing, that there is a second target group "actual clients that hire web developers". So I think we need a separate landing page for this target group. The solution could be to present a chooser "Are you a developer/designer?" or "Are you a business owner, CEO... etc/ Are you looking for help?" on the main page which scrolls down on the main page if the first option is selected (because thats the main target group), and leads to another page if the second option was selected. Devs For devs please outline the use as a CMF. I developed two business applications with PW as a CMF, while using the existing backend, and customized it, to my likings. CEOs On the page for business owners there should be sections for getting support and the main selling points of ProcessWire, maybe even advantages over WordPress. Linking to blog post like my own "Why ProcessWire is the best choice for your website (not always, but in most cases)" could be helpful. Looking for a web developer to aid you? We have a list of devs available. Is this and that possible with ProcessWire? Most time the answer is "YES", but if you are curious: Go ahead and ask in the forums. Here the warm and helpful community should also be outlined. Backend showcase I think that ONE screenshot can not resemble ProcessWires backend accurate enough. Multiple sections that describe the main aspects are needed. Also I think that we need different screenshots or maybe even screencasts of the admin/backend for different target groups, because different aspects of the admin are important for these groups. What is important for developers? Everything is a custom field and custom fields can be easily added Dependency fields (showIf) Repeaters Backend is customizable (custom template input masks) Can even be replaced with an own backend Powerfull debugging tool (Tracy debugger, even if its not part of the core, maybe think about integrating it?) What is important for CEOs, marketers? Easy and intuitive backend Fast Access level control Security Customizable Designs SEO friendly Extendable Performance Thats all for now, but maybe I extend this post later, or do another one.1 point