Leaderboard
Popular Content
Showing content with the highest reputation on 11/05/2021 in all areas
-
Now that we're in the last couple months of this year, I've been trying to implement a lot of plans that we discussed early in the year. That meant a lot of updates to repeaters in the last couple of weeks (and likely more on the way). But this week, I've been working on another thing we discussed earlier, which is bringing automatic save and live preview capabilities to ProcessWire, independently of ProDrafts, and with full repeater support. In ProcessWire, it's your own code (in template files) that renders the site’s output. ProcessWire delivers a $page to your template file(s), and your template file(s) render it in whatever manner they see fit. In this environment, we need an automatic save capability before we can have a live preview capability. Working on that automatic save capability is what I've been doing this week. I figure that once that is finished, then we'll be able to start developing the live preview capability. I'm glad to report that we now have automatic save fully functional and have tested pretty thoroughly with every Fieldtype/Inputfield I can think of. Unlike in ProDrafts, it also fully supports repeater, repeater matrix, and even nested ones. Actually, it looks like we'll be able to support everything you would want it to. But it's early yet it'll need a lot of testing before its production ready. I've built it into a module called PageAutosave. It requires the latest version of ProcessWire on the dev branch (3.0.189). I'm not yet positive whether this is going to end up as a core module or not. I thought I would gauge interest and see. For now, I'm posting a limited release test version of it in the ProDrafts support board and ProDevTools support board, if anyone is interested in trying it out. The PageAutosave module lets you configure whether you want it enabled for all pages or just for unpublished pages. When needed, you can also optionally choose to limit it to certain templates, certain fields, or certain user roles. Autosave isn't always desirable as it literally means your changes get saved to the $page as you type, so I imagine it's something people might use more for unpublished pages. Autosave is one side of the coin and live preview is the other. The current goal for live preview is to not depend on any particular view or admin interface and instead to just simply have the option of having a window open to a page in the website that detects changes and updates them automatically. So if you had one window open to the page edit screen, and another window viewing the page being edited, you could observe your updates as you made them. Once that is working reliably, we can decide on how best to put an interface around it, and maybe some will also like the option of just having two browser windows open wherever they want them. This won't be the kind of live preview where you'll see every character as you type it, but more likely you'll see updates a second or so after you make them. That's because your edits have to be auto-saved in the page editor, ProcessWire has to call your template file(s) to render the output, and the live preview has to update whatever has changed since the last update. It's that last part of it that I'll need the most help on. Some of you have mentioned htmx as a potential way to accomplish that and I think it looks compelling. And if you know of any other [likely JS-based] tools or technologies that we should also look at, please reply and let us know. I've bumped the core version to 3.0.189 primarily because the PageAutosave module requires updates that are in this version. This version also continues some longer term build out of a couple Fieldtype interface methods across multiple modules, and adds a new 'sorted' JS event that is triggered during sort actions (also used by PageAutosave). But if you aren't going to be installing the PageAutosave module, there's no urgency to update to 3.0.189 if you are on the dev branch and already using 3.0.188. Thanks for reading and have a great weekend!9 points
-
In preparation for testing of the initial (alpha/early beta) release of Padloper 2, I would like to gather expressions of interest. In the past, some of you expressed a willingness to help with testing. It has been many days since and your position might have changed. In addition, I would like to do this in an organised manner so we cover as much ground as possible. The grounds I’d like to cover are usability and technical aspects with a bias towards the latter. Please also note that there are a number of planned features that will follow the initial release. Hence, we shouldn’t focus much on those. These and similar thoughts will be added to a planned features list (more on this below). The main focus of this testing is to make Padloper 2 production-ready. In order to properly organise this testing, I will need to gather some information from you. I will be doing this via Google Forms. The most important detail will be your email address. I will need this in order to inform you how to access Padloper 2 as well as for other necessary communication. I will not use your email address for any other purposes nor pass it to any third-party ?. Other information to be captured in the form would be what areas of testing you will you want to be involved in and your preference for planned features (since I will need to prioritise them). Forms are better than plain emails in this respect. Please note the following if you wish to be involved in the testing programme: Pricing and subscription will follow the model I have previously stated (similar to ProcessWire Pro Modules). However, for the testing programme, your subscription period will NOT start counting down until after the production-ready release. You will still also have VIP support (please note the nature and location of this may change). To be fair to other testers, anyone joining the programme needs to actually spend time testing the product. If you won’t have time to do this, please wait for the production release. This initial release is NOT a production release. Although it may work for some in that regard, it will not be tagged as production-ready (hence the alpha tag). Licences will be the usual three: (i) Basic/Single Site Licence, (ii) Developer Licence and (iii) Agency Licence. I can explain the different between these three if anyone needs clarity. The initial release will have the introductory prices of €150, €300, €900 for single, developer and agency licences respectively. Cooling period will be 14 days (within which a full refund can be requested, no questions asked). Please note that this time period may change for the production release. Here is the link to the Google Form to express your interest in the testing programme. The form will close in 10 days. Many thanks for your patience. Hope to see you soon in the testing programme. I trust you will enjoy Padloper 2 as much as I have had the pleasure (and honour) of developing it ?.7 points
-
Hello boys and girls, here's my newest: https://drinkbodegabay.com/ Bodega Bay is a Hard Seltzer drink that's delivered sustainably and contributes to projects to move climate solutions forward and help those less fortunate than ourselves. The website was built with my customary repeater based content blocks solution. The frontend is based on webcomponents built with StencilJS, and as always, it was a pleasure to build. An interesting detail was the processing we had to make on the locations listed in the Where to Buy section. Basically we were handed an Excel list of locations with irregular addresses that had to be geographically located on google maps. Well, maps doesn't really agree with doing that much processing at once, so we had to convert each location's address into coordinates. We built a script that imported everything to pages, then another one that made requests to grab the coordinates from google maps, store them and move on. As Maps defends itself against multiple requests, this script had to wait, pick out the locations that were already georeffed, and repeat a few times until all were processed. In the end, only a couple of locations had to be manually referenced, as Google wasn't able to find them from the way the address was formed. Another detail was the interstitial we have here. Being an alcoholic drink, this must have an age verification popup. It also needed a cookies popup and language selection. So the solution here was to combine all that in an interstitial (languages are disabled now until they translate everything), where the user is redirected on the first time to get that out of the way, but with user agent testing it lets scrapers pass. I'm a bit worried this might cause problems down the line, so we're keeping an eye on it and will reconsider this solution if need be. Hope you like it. I'll have an even better one to show real soon ?3 points
-
Hi Ryan, I just gave the module a quick test with my super advanced out of this world builder setup and wow, this really works well! It even auto-saves Mystique-based fields which is absolutely perfect. Also, replacing a single image-field autosaves correctly too. So sweet.2 points
-
This capability would directly impact how many of my projects I do in Processwire and how many I do in Oxygen/Wordpress/ACF. I am currently only using Processwire for things that will make heavy use of the API for very custom projects, and using Oxygen for all projects that are design/marketing/brochure heavy. Its just so much faster to see changes as I make them. This is what I would like to see, working backward from the user side to the tech side. When I edit a page, as I am changing fields, if I change a text box or a drop down or a range slider to change a heading font size, my page preview is updated as fast as possible, so I can see what that new heading size looks like on the page. As soon as the field is changed, it adds the change to a change history list that I can use to roll back edits I don't like without needing to remember what changed. Next, when I am ready for the user to see my changes I have made to my draft version of the page, I can hit a publish changes button to make my draft version replace the live version of the page. I am assuming editing the page in this live preview mode would need to make a new copy of the page that would replace the live page if you save it. Right now, I must save after every font size change to see if it works, and it doesnt remember how far down the admin page I was, so I must scroll all the way back down to that field and change the size again and hit save again and switch tabs again. Its not a great experience. These changes would be great!2 points
-
I love ?the aesthetics of the site. Very great work and visually appealing ?️. There are some performance issues when zooming the map (because there are many retailers shown at once and maps get sluggish with many markers, even with MarkerClusterer), and the find function could be accomplished with a geolocate button (take actual position of you, to find dealers that are near you). Take a look at P. Jentschura – Natürliche Produkte für den Säure-Basen-Haushalt (p-jentschura.com) which as over 5000 dealers, where I tackled the performance problem. Also you could add a "Clear search" or "Reset" button, because If you clicked one dealer it is impossible to go back to the whole list. If you have interest in optimizing the whole map application you can contact me. I did several map applications in the last years. In addition I wrote an "ImportRetailers" module for one of my clients, that geocodes the addresses via geocoder-php/google-maps-provider which uses also caching if you query the same address again (and has almost no request restrictions).2 points
-
Czech Language Pack was updated again to PW version 3.0.184 https://github.com/PavelTajdus/ProcessWire-Czech-Language-Pack/releases2 points
-
Unlike the Integer input type, Decimal doesn’t allow for a default value. I’d love to see this added. I’m working on a mini project where this would come in really handy. The site admins would have all 7 fields pre-populated and they can then adjust as needed.1 point
-
1 point
-
1 point
-
1 point
-
Sir, please count me in ;) Waiting patiently for your Google Form thingy. And have a nice weekend, BTW!1 point
-
1 point
-
1 point
-
Just cross-referencing this announcement/call for testers here:1 point
-
Hi, I’m on my phone, but I think you might want to hook ProcessPageEdit::getSubmitActions and change the label in the returned array. It will look like this: $event->return['view']['label'] Apologies if this is not 100% correct – I’m looking through the code on a first gen iphone SE ? You should also be able to change the text using ProcessWire’s translation capabilities.1 point
-
Hi @gebeer Not sure that this issue is PW relative. Take a look at this thead on apple discussions: https://discussions.apple.com/thread/2524796161 point
-
1 point
-
Thank you for maintaining support on ProcessBlog. I know its a little older now and you have a zillion other projects to do but ProcessBlog is a good module! ProcessWire 3.0.184 and ProcessBlog 2.4.5 and SchedulePages 1.2.2 ( I will also try PW 3.0.164 and 3.0.148 which are the only two prior tags I can see on github and install ProcessBlog and report back on those two tests at end of this post) If I uninstall ProcessBlog and uninstall SchedulePages... then install SchedulePages there are no errors and I create a new test page without any errors. Then, uninstalling SchedulePages, and install ProcessBlog without SchedulePages, the initial install works fine, but when I go to menu > Blog and click Finalize Install... a bunch of errors appear: Notice: Trying to get property 'parentTemplates' of non-object in /home4/orodreth/wire/core/PagesEditor.php on line 326Notice: Trying to get property 'id' of non-object in /home4/orodreth/wire/core/PagesEditor.php on line 335Notice: Trying to get property 'fieldgroup' of non-object in /home4/orodreth/wire/core/PagesEditor.php on line 349Warning: Invalid argument supplied for foreach() in /home4/orodreth/wire/core/PagesEditor.php on line 349 ProcessWire: ProcessBlog: Can’t save page 0: /blog-author/: It has no parent assigned ProcessBlog: Can’t save page 0: /blog-author/: It has no parent assigned DEBUG MODE BACKTRACE ($config->debug == true): #0 /home4/orodreth/wire/core/Pages.php(799): ProcessWire\PagesEditor->save(Object(ProcessWire\Role), Array) #1 /home4/orodreth/wire/core/Wire.php(420): ProcessWire\Pages->___save(Object(ProcessWire\Role), Array) #2 /home4/orodreth/wire/core/WireHooks.php(951): ProcessWire\Wire->_callMethod('___save', Array) #3 /home4/orodreth/wire/core/Wire.php(485): ProcessWire\WireHooks->runHooks(Object(ProcessWire\Pages), 'save', Array) #4 /home4/orodreth/wire/core/Page.php(2774): ProcessWire\Wire->__call('save', Array) #5 /home4/orodreth/site/modules/ProcessBlog/BlogInstallWizard.php(324): ProcessWire\Page->save() #6 /home4/orodreth/site/modules/ProcessBlog/BlogInstallWizard.php(304): ProcessWire\BlogInstallWizard->createRole() #7 /home4/orodreth/site/modules/ProcessBlog/ProcessBlog.module(3335): ProcessWire\BlogInstallWizard->verifyInstall(Object(ProcessWire\InputfieldForm)) #8 /home4/orodreth/site/modules/ProcessBlog/ProcessBlog.module(778): ProcessWire\ProcessBlog->installWizard(Object(ProcessWire\InputfieldForm)) #9 /home4/orodreth/site/modules/ProcessBlog/ProcessBlog.module(1945): ProcessWire\ProcessBlog->renderFirstAccess(Array) #10 /home4/orodreth/public_html/storiesTEST/wire/core/ProcessController.php(337): ProcessWire\ProcessBlog->execute() #11 /home4/orodreth/public_html/storiesTEST/wire/core/Wire.php(414): ProcessWire\ProcessController->___execute() #12 /home4/orodreth/public_html/storiesTEST/wire/core/WireHooks.php(951): ProcessWire\Wire->_callMethod('___execute', Array) #13 /home4/orodreth/public_html/storiesTEST/wire/core/Wire.php(485): ProcessWire\WireHooks->runHooks(Object(ProcessWire\ProcessController), 'execute', Array) #14 /home4/orodreth/public_html/storiesTEST/wire/core/admin.php(160): ProcessWire\Wire->__call('execute', Array) #15 /home4/orodreth/site/templates/admin.php(16): require('/home4/orodreth...') #16 /home4/orodreth/wire/core/TemplateFile.php(327): require('/home4/orodreth...') #17 /home4/orodreth/wire/core/Wire.php(414): ProcessWire\TemplateFile->___render() #18 /home4/orodreth/wire/core/WireHooks.php(951): ProcessWire\Wire->_callMethod('___render', Array) #19 /home4/orodreth/wire/core/Wire.php(485): ProcessWire\WireHooks->runHooks(Object(ProcessWire\TemplateFile), 'render', Array) #20 /home4/orodreth/wire/modules/PageRender.module(554): ProcessWire\Wire->__call('render', Array) #21 /home4/orodreth/wire/core/Wire.php(417): ProcessWire\PageRender->___renderPage(Object(ProcessWire\HookEvent)) #22 /home4/orodreth/wire/core/WireHooks.php(951): ProcessWire\Wire->_callMethod('___renderPage', Array) #23 /home4/orodreth/wire/core/Wire.php(485): ProcessWire\WireHooks->runHooks(Object(ProcessWire\PageRender), 'renderPage', Array) #24 /home4/orodreth/wire/core/WireHooks.php(1059): ProcessWire\Wire->__call('renderPage', Array) #25 /home4/orodreth/wire/core/Wire.php(485): ProcessWire\WireHooks->runHooks(Object(ProcessWire\Page), 'render', Array) #26 /home4/orodreth/wire/modules/Process/ProcessPageView.module(225): ProcessWire\Wire->__call('render', Array) #27 /home4/orodreth/wire/modules/Process/ProcessPageView.module(171): ProcessWire\ProcessPageView->renderPage(Object(ProcessWire\Page)) #28 /home4/orodreth/wire/core/Wire.php(417): ProcessWire\ProcessPageView->___execute(true) #29 /home4/orodreth/wire/core/WireHooks.php(951): ProcessWire\Wire->_callMethod('___execute', Array) #30 /home4/orodreth/wire/core/Wire.php(485): ProcessWire\WireHooks->runHooks(Object(ProcessWire\ProcessPageView), 'execute', Array) #31 /home4/orodreth/index.php(55): ProcessWire\Wire->__call('execute', Array) #32 {main} Blog The process returned no content. ---------------------------------------------- UPDATE ---------------------------------------------- > Installed ProcessWire 3.0.148 and ProcessBlog 2.4.5 without SchedulePages, and saw no errors. > Installed ProcessWire 3.0.164 and ProcessBlog 2.4.5 without SchedulePages, and saw no errors. > Installed ProcessWire 3.0.184 and ProcessBlog 2.4.5 without SchedulePages (completely new install just in case) and same errors above with blog-author I reviewed the ProcessWire Release Notes and could only find one instance between 3.0.166 and 3.0.184 where something changed with "roles", in case thats related to the blog-author error1 point
-
Great news! Version 1.2.0 is here! The changes in the code are actually not huge, but all the bigger are the additional possibilities we have now: With the new version, modules can register their own endpoints. These endpoints are then merged with the traditional definition in Routes.php. You may ask: But @Sebi, why are you so excited about this? Well. This means that endpoints can now be easily installed and updated. And we can now easily share our great and useful endpoints with the ProcessWire community! I'll get started then: My first AppApi module is AppApiFile. This module provides the /file endpoint for retrieving files uploaded to ProcessWire pages. I have extended the wiki with a small tutorial and sample code for creating an AppApi module: https://github.com/Sebiworld/AppApi/wiki/4.0:-AppApi-Modules I can't wait to see what you people will do with it! ?1 point
-
Alternatively someone could build/generate a docset from the php sources for usage in dash or zeal. No stars required. https://zealdocs.org/ / https://kapeli.com/dash https://kapeli.com/docsets1 point
-
I really must make more of an effort to add more sites to this forum - we've done some nice work really. Women / Theatre / Justice is a case in point. WTJ is the umbrella title for research and public engagement activities undertaken by academics from various universities in partnership with Clean Break theatre company. Clean Break was founded in the 1970s by two women in prison and focuses on using theatre to help create positive change in the lives of women with experience of the criminal justice system. We wanted to reflect the origins of the organisation so we created a home made 'zine' like design with typewriter fonts and adding noise to the photographs and images to get a photocopied feel: There's not too much bespoke coding going on functionally - we created the usual blog and events as well as a simple photogallery, but most of the technical effort went into working out the best way to apply textures and filters to the images so that the admins could upload new content without needing to phaff around in photoshop ( CSS 'backdrop-filter' for the win). One interesting thing got thrown up in accessibility testing; originally we'd created the design using a fixed with typewriter font and even though we'd set a pretty large font size with good contrast that passed our automated accessibility testing, we found that real world users still had difficulty reading it. So we changed that to a more modern and readable slab serif. Testing with real users is always a good move.1 point
-
You can precede every desired module directory with a dot (.) to make it ignored by PWs module parsing. Example: site/modules/WiremailSmtp/ is picked up by PW, site/modules/.WiremailSmtp/ is ignored.1 point
-
Po delší pauze jsem dopřekládal, a opět můžete použít kompletní češtinu pro Processwire verze 3.0.165. https://github.com/PavelTajdus/ProcessWire-Czech-Language-Pack/releases EN: Czech Language Pack was updated again to PW version 3.0.165.1 point
-
Spoke too soon — there was actually a reason for this: "resources" is not a "path" for Wireframe, just an "URL". This may sound weird, but the point is that while Wireframe needs to keep track of code related paths (so that it knows where views, layouts, controllers, etc. are located), it doesn't really need to know where your static resources (CSS, JS, images, fonts, etc.) are. URLs are added as helpers, so that you can refer from code to your resources directory with <?= $config->urls->resources ?> instead of writing a long directory name over and over again. Anyway, upcoming 0.12.0 release will provide an option to create directories for specified URLs as well. This obviously only works if they are relative paths (they don't have to be — in some cases I've pointed resources directly to a CDN service, etc.)1 point
-
Got it, thanks. And your interpretation of those movies clearly goes much deeper than mine1 point