Search the Community
Showing results for 'video'.
-
It's good to see Cursor getting a bit of airtime and some mentions. Been using it since around 2024, and it's improving rapidly. The latest AI models too are impressive. It helps me with development, some UI design, SEO and pretty much is across 90% of my daily work these days apart from some design work. One of the best things about AI Agents is they can run in the cloud. So I'll often fire up a Cusror AI agent while I'm out for a walk or at the gym. I get home and the development work is ready for review and merge. I have yet to use Claude Code yet but I also see people speak highly of it. It's more terminal-based. Worth a look. Especially with Claude's new skills. Here's a good video from a Meta Engineer using CC.
-
@bernhard thanks for sharing the video. And exciting journey you had there :-) Eventually this is where things are going, I guess. Would be great to know who in this community is working on similar stuff. I'm currently creating a collection of skills that can be plugged-in to PW projects here: https://github.com/gebeer/processwire-ai-docs Would love to collaborate with others on that and exchange ideas.
-
It's a bit over a year since I started this post and it's crazy how far AI and cursor got! Huge shoutout to @gebeer who is my main source of wisdom when it comes to AI related stuff 🙂 I wanted to share a video that I watched recently. It is quite lengthy, but I was looking for exactly that to make sure I don't miss any basics. For me it was eye opening, so I wanted to share it: My personal takeaways/learnings: I have thought for a long time that AI is great to read/understand/explain or help me find something in my codebase but for actual coding it's not very helpful most of the time (other than cursor tab, which is awesome!) You can run multiple agents in cursor at once, and you can run multiple models at once, which is crazy The better you setup your environment, the better the results (obviously...) AI can write all your RockPageBuilder blocks with RockMigrations code easily You can actually TALK to cursor in the chat, which is a lot quicker than typing. You can even TALK to it in german and it will translate it to english on the fly, which is crazy. This is just the beginning So the question for me was is it really worth the effort of setting up your environment so that AI does the work for you and then in the end you spend more time debugging than if you just went ahead and coded it from scratch? I'm not sure yet, and I asked that question today @gebeer. He said clearly yes, and my gut said I can imagine he is right, but I did not really experience it myself. Today that changed. I took some time to try a new workflow for a client request. Usually I would have added code by hand, as that's a lot quicker. Why? Because you either start prompting and get bad results or you have to invest a lot of time upfront. But I know how it feels to invest some time upfront and then have superpowers forever 🙂 So I gave it a try and after a quick emergency rescue session with @gebeer I got very good results in actually very little time. And once I started to adopt that workflow it started to make sense more and more and I started to answer the question to myself: Is the effort worth it? Clear answer: YES So I want to encourage everyone to watch the video, try it out, ask for help if you hit any roadblocks. So why do I think it's worth it? Simple example: I asked AI to implement a new RockPageBuilder block. It did the backend for me quickly and easily. Then it did the frontend for me. The frontend needed more time and debugging, but I then added the uikit docs to my project and told cursor to add the docs to my cursor rules/skills/whatever (still confused, but cursor knows what to do). Then results seemed to get even better and it even fixed an issue in a way that I would have never thought of (because I didn't know this option was there). So I even learned something new. Finally I saw an issue in my .latte file, which is quite a common mistake: AI forgot to add |noescape to the {$page->headline} output, which made the headline "Foo & Bar" show up as "Foo & Bar". I guess every latte user knows that problem 🙂 The solution: Tell AI to fix the issue and to also add that info to the frontend-dev skill/rules. That means it will likely never make this mistake again! This is a really powerful approach. I'm quite impressed. And I think I'll need a more expensive subscription soon ^^ Which is one of the downsides. You have been warned! 😄😉 PS: The initial setup is also quite easy. All I did is to talk to cursor: A bit messy instructions and lots of mistakes, but it doesn't matter as long as cursor understands you. I'm quite sure the results are not perfect, but from what I read in the instructions for the AI it's a quite good overview of the project! And it's something to build upon and grow 🙂
-
Agree that the site is too developer-centric at the moment. And while people might correctly say this is the target audience, none of my clients using ProcessWire are technical. They are marketing managers, business owners, copywriters, CEOs, eLearning folks etc. They don't care about the API, what a CMF means, what hooks are, or what Modules are. They want a nice, stable UI and editing experience, and to know that if they need custom stuff, it can be done. So my point is, the current Processwire homepage does an OK job of mentioning some of the features these personas might like (the tree, the simple editing etc). However, the site is largely developer-centric, and I believe the appeal can be broadened with: 1: A comprehensive ProcessWire for... section This would be a top-level nav item with dedicated pages for Marketing executives and assistants Content writers/copywriters SEO specialists social media/comms etc etc and thats just the tip of the iceberg, but we should approach it with three key non-developer personas in mind: Publishers (write/edit content) Maintainers (keep info accurate) Promoters (campaigns, SEO, sales, social) And I realise there will be a lot of overlap between the sections, but that's fine. 2: Video walkthrough The website badly needs a UI walkthrough. ProcessWire in 60 seconds... type thing. Made for non-technical people...a quick look around the UI and I honestly think that's 90% of the work done. I realise video work can be a time sponge so I'd focus on item 1 first. I'm happy to help out on item 1 if @ryan needs help there.
-
On my Ubuntu (Gnome) laptop, I often get a popup saying an issue happened when waking up computer. I also sometimes had pain accessing an external drive, plug in, plug out, in, out... and finally it worked. Usually it works immediately, but not this time. Recently I was looking to free space, I have old accounts in my /home (from previous installations of Manjaro KDE, Manjaro Gnome...) and found I had 150 GB in the Download folder of one of this accounts. I opened a video just to check its content, and explorer crashed. I restarted explorer, selected everything in folder, deleted and... explorer crashed again. I tried again and this time it crashed when selecting files... I finally succeeded, but what a pain. I rarely turn off computer, just put it in sleep, I suppose this is why sometimes Firefox freezes for a few seconds after days without restarting, so I restart and everything is OK.
-
I watched a video and Omarchy looks really great, but it's based on Arch Linux, I don't trust enough the stability of this distribution to use it for my daily job. I had a big issue in the past using Arch, only one time but when it happened the system was totally broken, after a simple "pacman -Syyu"... no more internet, no more access to external drives... The end. 😄 I also tried Manjaro, and after the dinner break, instead of a sleeping computer, I saw a black screen with graphic card fans at 100 % and everything else frozen. Ubuntu should be stable, but almost every day I have small issues on my Ubuntu laptop. That's why I didn't use Linux for my job since years, every time I try a distribution I see stability issues that scares me. Hope you'll have a great experience with Omarchy, keep us updated! 🙂
-
I’ve been working on a module to store ProcessWire files directly on Backblaze B2, and wanted to share it with the community. Why I Built This I needed to host video content without breaking the bank on storage costs. AWS S3 was too expensive, and I wanted something that integrates seamlessly with ProcessWire’s existing file fields. Key Features 🚀 Direct B2 Upload - Files go straight to Backblaze, no local storage needed 💰 Dirt Cheap - $6/TB/month (AWS S3 costs 5x more) 🌐 Custom Domain Support - Use your own CDN domain ⚡ Cloudflare Integration - Combine with Cloudflare for FREE bandwidth 📦 Works with Repeaters - Multiple files per repeater item 🎬 Perfect for Video - Tested with Plyr, Video.js, and HTML5 video Real Cost Savings Here’s what I’m actually paying for 500GB of video storage: Backblaze B2 + Cloudflare: - Storage: $3/month - Bandwidth: $0 (free via Cloudflare Bandwidth Alliance) - Total: $3/month AWS S3 (same usage): - Storage: $11.50/month - Bandwidth: $450/month (5TB) - Total: $461.50/month That’s a 99% savings on bandwidth costs! How It Works The module extends ProcessWire’s file fields to upload directly to Backblaze B2. You can use it just like regular file fields: // Single video <video controls> <source src="<?= $page->b2_video->url ?>" type="video/mp4"> </video> // Multiple videos in repeater <?php foreach($page->videos as $item): ?> <?php foreach($item->b2_video as $video): ?> <video controls> <source src="<?= $video->b2url ?>" type="video/mp4"> </video> <?php endforeach; ?> <?php endforeach; ?> Cloudflare CDN Integration Want free bandwidth? Here’s the magic setup: CNAME: cdn.yourdomain.com → f005.backblazeb2.com (with Cloudflare proxy) Transform Rule: Rewrite paths to include /file/bucket-name/ Module setting: Enable custom domain Now all files serve through Cloudflare’s global CDN with zero bandwidth costs thanks to the Bandwidth Alliance partnership. Setup is Simple Create Backblaze B2 bucket Configure module with API keys Create field (type: FieldtypeFileB2) Add field to template Upload files - they go straight to B2! Optional: Add Cloudflare for free bandwidth and caching. Use Cases Video hosting (my use case) Large image galleries Audio files / podcasts Downloadable resources Any high-bandwidth file hosting Technical Details Works with public and private buckets Supports custom Cache-Control headers Files are deleted from local server after upload Can use custom domains via Cloudflare CORS configurable for cross-domain access Try It Out GitHub: https://github.com/mxmsmnv/FieldtypeFileB2
- 9 replies
-
- 13
-
-
-
Hello @da² I have fixed the 2 bugs with the URL segments (fixes will be in the next update), but I have a question concerning the file upload issue in single upload fields. I have tested it with Firefox without any problems. Take a look at the video. Single file upload.MP4 In my case it works as expected. If I drag and drop more than 1 file only the last file will be taken and only 1 file will be submitted. What browser do you use? Maybe it could be a browser related issue. Best regards Jürgen
-
We've long wanted a way to utilise a CDN to offload images/files/videos from ProcessWire sites without losing all the native greatness of ProcessWire image and file field types. Having read various discussions on here about ways to approach this that never seemed to reach conclusion, I've thrown myself into creating a module that allows offloading of files to Bunny.net CDN as we need a solution for a specific project. I think this would be easily adaptable to any S3 compatible CDN but I've only tested on Bunny. ⚠️ This is still very beta! Use at your own risk! I've been conducting basic testing and so far, so good but there's bound to be holes or things that others may suggest better ways of doing. But I'm now at a stage where the insight/experience of the PW community might add value to the project - so I'm sharing now! Full disclosure: Once past the initial project scaffolding I've been using AI/careful prompting to write some of the code so that I can arrive at a prototype as quickly as possible. This seems to have worked well, although some of the code looks a little verbose and could probably be refactored later on. Also not security/pen-tested yet. https://github.com/warp-design/WireBunnyCdn/ Features: Automatically uploads images to Bunny storage on page save, including all variants and mirrors assets folder structure for simple merging back to local at a later date if needed. Automatically cleanses deleted files (or files from deleted pages) from your CDN. Option to mirror files to CDN or delete local copies (this is the main aim for me, otherwise we could just use ProCache). Handles (basic currently) image sizing - either using standard ProcessWire `$image->size(X,X)` methods or by implementing Bunny Optimizer for sizing using URL params. Rewrites image paths via CDN so that you can use standard `$page->imageField->url` calls with the output being a Bunny path rather than local PW path. Also handles the image previews in admin view. Roadmap: Support for video uploads (with optional separate CDN endpoint for Bunny Stream buckets). Support for front-end video output to templates using Bunny stream players/optimisation etc. Implement chunked/background uploads for large files. Support for other size() method options, like cropping etc and mapping to Bunny Optimizer equivalents. Anyway - look forward to hearing any advice/feedback/bug reports... I'm sure there's many!
- 2 replies
-
- 17
-
-
-
It's a simple Select: I tried again and find this is a random bug, sometimes it works, sometimes not. I made a video, we don't see the dropdown because I recorded only Firefox window, but I can confirm the list is always rendered in the same order as the top line "Mystery,PKO,Vanilla,", that is the order used to fill the Select element, so this is not a problem caused by a random order when initializing the form.
-
Hi, I do not know it this has been reported or not, but there is at lease one "This video is private": https://processwire.com/docs/multi-language-support/multi-language-fields/ see:
-
module PrivacyWire - Cookie Management & async external asset loading
tires replied to joshua's topic in Modules/Plugins
Ok, I have now found out that you can create a Consent banner with button, with the attributes: class="require-consent" data-src="https://www.youtube-nocookie.com/embed/abcd" data-category="external_media" data-ask-consent="1". This also works wonderfully, BUT only for 1 element. I have a YouTube video (iframe) and a google map (div) on my website. Unfortunately, a banner with a consent button is only displayed for the first element. Only when I comment out the iframe, the banner for the div #standortmap is displayed. echo '<iframe class="require-consent" data-src="https://www.youtube-nocookie.com/embed/123" data-category="external_media" data-ask-consent="1" data-ask-consent-message="Externere Inhalte von google.com und youtube.com werden aus Datenschutz­gründen erst nach expliziter Zustimmung geladen." data-ask-consent-button-label="Video laden" id="youtube-video" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen width="100%" height="100%" ></iframe> <br><br>'; echo '<div id="standortmap" data-lat="11.123" data-lng="1.123" data-zoom="12" data-category="external_media" data-ask-consent="1" data-ask-consent-message="Externere Inhalte von google.com und youtube.com werden aus Datenschutz­gründen erst nach expliziter Zustimmung geladen." data-ask-consent-button-label="Karte laden" style="height: 300px;"></div>'; Is this an error? Or can the module only display one banner at a time? -
module PrivacyWire - Cookie Management & async external asset loading
tires replied to joshua's topic in Modules/Plugins
I embed youtube videos and google maps into my site in various ways. To make the site privacy compliant, I would like to display an overlay above each video and map with a button “Load content” (loads the content once) and “Always load content” (sets the corresponding privacy wire cookie an loads the contents always). Is there already a solution for this? What is the best way to do this? -
Hello, i not understand have to retrive data from Notes filed on template on Page Auto Complete field on another page. i upload video. does anyone know how to do that? selector.mov
-
Funny. Found that same video some days ago in my Youtube channel and watched it. Good video, but used about 95% of the tips and tricks already that time.
-
...that's the title of this video that I found recently and it had some useful tips & tricks that I didn't know:
- 1 reply
-
- 9
-
-
@adrian I fully support adding whatever CSS vars Diogo and Jan want to add. But I’d hate to throw out the idea of using anything but root-level vars. They seem very powerful to me and a major benefit of using these CSS properties in the first place. I mention it just because my eyes are struggling with it in the screenshots and video above. Especially the white-on-green text. But if the company is used to that usage then I’m sure they’ll like seeing it in their admin either way. I'm not sure. I’ve not had that come up yet, so can’t really well speak to it. But I’m not opposed to it. While very customizable, this admin theme is also something that’s been designed. If “anything goes” and “anywhere” in terms of colors, it’s more of a blank canvas than a professionally designed theme. I don’t think this theme was intended as a blank canvas. So there have to be some constraints in place. Making some things customizable, where planned for by the designers, is great. But other things, like rethinking the foundation of a slightly off-white (or off-black) body background might be going too far, because it changes the whole balance of it. It appears to me the editing tools (Inputfields, etc.) are designed with the idea that they won’t share an identical background color as the body. So if you go pure-white or pure-black with the body background, I agree that it may be problematic. It may be that they can add more CSS vars, but it might also be that it goes outside the boundaries of how the design is supposed to work. But I’m not the designer, so I’m kind of speculating and might be wrong. Maybe so. But I will say that as someone new to CSS variables, it’s been refreshingly easy to change anything I need to with what we’ve already got. There hasn’t been any real fiddling, and the affected markup is not likely to ever change in terms of how it would be identified with CSS selectors. So I'm just trying to say that I think we're already in quite a good spot, being able to do stuff I hadn't thought possible before. But I'm not saying that we should stop there. There's always room for making things better and better, at least where the resources allow.
-
Hi everyone, Tracy is now using the brand new AdminNeo project. It's been quite a rollercoaster in the Adminer world with the apparent death of Adminer, to AdminerEvo, and then AdminerNeo, then the revival of Adminer, and now AdminNeo. I have been following both Adminer and AdminNeo and deciding which one to use and while I do worry that AdminNeo might not survive given the long history of the original Adminer (now it's alive again), the theme we were using was written by the AdminNeo developer and I just can't live with any of the Adminer themes by comparison. AdminNeo also introduces a robust external login system (instead of the hack needed by Adminer), so that's where we are now. Along the way I also added styling to page IDs so you can now tell if a page is hidden, unpublished, both, or trashed: I have also added a modal viewer for images, audio, and video, along with download functionality, along with thumbnails for images. And we also finally have a nice interface for the full Adminer Process module (Setup > Adminer) when not in Standalone mode - @Robin S - I think you might actually want to use this now 😜 Please let me know if you notice any issues or have any suggestions.
- 29 replies
-
- 12
-
-
-
Seems to be a great module, @psy. Just maybe a video or some screenshots could make it easier to understand what exactly it does without installing?
-
Module: Video embed for YouTube/Vimeo (TextformatterVideoEmbed)
PWaddict replied to ryan's topic in Modules/Plugins
Adding the native lazy load loading='lazy' on the 381 line of TextformatterVideoEmbed.module doesn't seem to lazy load the iframe. I can see the attribute on the page's code that is injected but all the YouTube scripts are loading on the initial page load even through the embed video is about 2000+ pixels from top. What am I missing??? EDIT: All the Chromium browsers have a very large threshold. On Mozilla the threshold is much lower and the iframe gets loaded when you're getting close to it at about 500px. -
Using DDEV for local ProcessWire development (tips & tricks)
gmclelland replied to bernhard's topic in Dev Talk
Great video by the DDEV creator that shows how to troubleshoot problems in your codebase by using DDEV with xdebug and breakpoints in his PHP editor. Then he shows how to go deeper by using DDEV and git bisect with a known good git point in the past when everything was working correctly and the current git commit where everything is broken. Then he shows how to take it further and automate all the manual steps he took and instead use a bash script that does the same thing but much faster. -
TinyMCE media plugin in combination with purifier does not work
gRegor replied to Didier B.'s topic in General Support
With the help of this thread and this StackOverflow response, I think this is working for me with TinyMCE so far: In site/ready.php: $wire->addHookAfter('MarkupHTMLPurifier::initConfig', function(HookEvent $event) { $config = $event->arguments(0); $def = $event->arguments(1); $config->set('HTML.SafeIframe', true); // Allow YouTube and Vimeo $config->set('URI.SafeIframeRegexp', '%^(https?:)?//(www\.youtube(?:-nocookie)?\.com/embed/|player\.vimeo\.com/video/)%'); }); Then, in the PW admin for the textarea field > Input tab > Custom Settings JSON: { "extended_valid_elements": "video,source,iframe[src|width|height|title|frameborder|allow|referrerpolicy|allowfullscreen]" } Note the list of attributes in square brackets after the "iframe". You can use wildcard `[*]` if you want to allow any attribute, though I haven't experimented with that. Finally, clear the HTMLPurifier cache from Tracy Console as described in that GitHub conversation: $purifier = new MarkupHTMLPurifier(); $purifier->clearCache(); This is very fresh, I'm still testing it out, but it seems to work. Might still need to add that bit from SO for the `allowfullscreen`: $def->addAttribute('iframe', 'allowfullscreen', 'Bool'); -
Thanks for sharing the video and the PM. I will have a look and get back to you soon. I am aware that sometimes the grid overlay is not updating immediately. I might fix this in the next update, but this is not related to your issue.
-
Hey, i think I caught a bug and I also managed to get it on video this time. I have a feeling this is significant. I'm also starting to think this is only related to the rich text block. I've got this long page with maybe 80 elements on it. See how the two vertical spacers are together at the bottom of the page? After i add an element on top one rich text is repositioned on the bottom of the page (goes in between the vertical spacers). You can see it here: https://streamable.com/tb27ma?src=player-page-share I'll try now to see if i can get the same error on a clean install. Update: Yes it behaves the same on a clean install. I made a clean install with nothing but the page grid and i added my vertical spacer element and i get the same behaviour with rich text elements moving in a similar manner on the bottom of the page. j