Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. I feel the same way when things I'm used to change. E.g. the switch from XD to Figma a few years ago felt unfamiliar at first and it slowed me down. Mainly because I had a lot of things stored in my head that turned out to be different. Now it's the other way around and I could never go back to working with XD. I was also pissed at apple when they updated the OS to use the new Liquid Glass design system, now everyone seems to love it and designers copy it (still not the biggest fan, but I can live with it now) 🙂. I hope the new theme will grow on people. The simpler color scheme (compared to the original Uikit theme) and CSS variables make theming much easier. You can quite easiely customise it to your taste if you don't like the defaults. And it shares some concepts with AdminThemeCanvas like the fixed header and a more minimal modern aesthetic that fit very well for a web app like PW in my opnion. I am using the Konkat theme for all my new projects. @diogo has already sent detailed documentation for the Konkat theme to Ryan, which he will hopefully publish on the site soon. The new docs are especially interesting for module developers. @maximus has also done a great job with the style system guide. I think that will also help demonstrate the benefits of the new theming system. The theme now also supports UIkit components out of the box. We will have to wait a bit for Ryan to decide where those docs will be published. AdminTheme Canvas has served me well for many years, and I’m glad so many of you have used it! If anyone wants to take it over, feel free to send me a DM. But I think it’s better to use the core theme as a replacement.
  3. Today
  4. So Canva seems to be shaping up to be a real challenge to Adobe in some ways after acquiring Affinity's design suite, and now Cavalry. I haven't tested Cavalry yet but I didn't think it had any web animation capabilities until I came across this beta web-player integration (?) Have any of you tried Cavalry? https://docs.cavalry.scenegroup.co/web-player/ It looks like it's available for free now. https://www.canva.com/newsroom/news/cavalry/
  5. Good day, @teppo! Good day everyone! As the topic says. If I throw new Wire404Exception(); in Wireframe controller, I expect a redirect to 404 page to happen. But an error message is shown instead. Is it a bug?
  6. In case it helps anyone, these are the settings I've been using for while which I believe make a huge difference to how it looks and its usability: And then in custom CSS section: :root { --pw-text-color: #444; --pw-muted-color: #999; --pw-button-radius: 10px; --pw-main-background: #fbfbfb; --pw-menu-item-background-hover: #EEEEEE; } html { font-size: 15px; } .PageList .PageListItem:hover { box-shadow: inset 0 0.5px 0 0 #ccc, inset 0 -0.5px 0 0 #ccc; } h1, .uk-h1 { font-size: 1.6rem; } .uk-card :is(a, .uk-link) { text-decoration: none; } .InputfieldHeaderHidden { --pw-border-color: transparent }
  7. I tweaked the new Admin Theme KONKAT a bit to my needs via the config files provided and using it now for three months or so. Now it is the opposite. When I work an older projects, I wish to switch to the new layout. Changing stuff you are used to for months/years will take time to adopt. Now I couldn‘t even tell what exactly bothered my with the initial KONKAT theme when I tried it the first time. So for me it was just the human reflex BAHH looks different, want my old design back.
  8. At first, I couldn't get used to it either, and continued using the old one. But then at some point I got used to it and switched all my sites to the Konkat theme.
  9. Yesterday
  10. Version 1.1.2 Fix issue (https://github.com/neuerituale/ProcessCronJobs/issues/2) New `user` option to run a CronJob as a specific ProcessWire user. Support for different callback types: anonymous functions, object methods and static class methods.
  11. https://github.com/clipmagic/ProcessPromptManager @psy Thanx for sharing!
  12. Good morning @da² I have wrapped my head around your problem and I have found a possibility to check file uploads against the value of an input field by using a custom validation. In the following example you have 2 form fields: Field 1 is a text input where you have to enter the name of a file (for example "myfile") without the extension Field 2 is the file upload field where you upload a ZIP folder with different files. Validation check In this simple example it will be checked if there is a file with the filename entered in field1 present inside the files uploaded in field 2. In other words: Check if the uploaded ZIP folder contains a file with the filename for example "myfile" in this case. If yes, then the form submission is successful, otherwise an error will be shown at field 1. This is only a simple scenario to demonstrate how a custom validation could be done. You have to write your own validation rules. Now lets write some code for this example: The first one is the custom validation rule. Please add this code to your site/init.php. If this file does not exist, please create it first. <?php namespace ProcessWire; \Valitron\Validator::addRule('checkFilenameInZip', function ($field, $value, array $params) { $fieldName = $params[0]; // fieldname of the upload field $form = $params[1]; // grab the form object // get all the files from the given ZIP folder as an array $zipfiles = $form->getUploadedZipFilesForValidation($fieldName); // now start a validation rule with the value of this input field ($value) and the files inside the ZIP folder if (!is_null($zipfiles)) { $fileNames = []; foreach ($zipfiles as $zipfile) { $fileNames[] = pathinfo($zipfile, PATHINFO_FILENAME); } return in_array($value, $fileNames); } return true; }, 'must be a wrong filename. The ZIP folder does not contain a file with the given name.'); I have named the validation rule "checkFilenameInZip" in this case. The important thing is that you have to add 2 values to the $params variable: The name of the file upload field The form object itself To get all the files that were uploaded via the upload field, you can use one of these methods of the form object. getUploadedZipFilesForValidation (outputs only files of a ZIP file) getUploadedFilesForValidation (outputs all files of a file upload field) Important: To use these 2 new methods you have to update to the latest version of FrontendForms (2.3.14)! All ZIP files will be extracted automatically. Nested ZIP files are supported too. Now lets create the form $form = new \FrontendForms\Form('testform'); $form->setMaxAttempts(0); // set 0 for DEV $form->setMaxTime(0); // set 0 for DEV $form->setMinTime(0); // set 0 for DEV $form->useAjax(false); // set false for DEV // input field containing a filename $filename = new \FrontendForms\InputText('filename'); $filename->setLabel('Name of file'); $filename->setNotes('Please enter the name of the file without extension.'); $filename->setRule('required'); $filename->setRule('checkFilenameInZip', 'fileupload1', $form);// here is the new custom validation rule: Enter the name of the file upload field as the first parameter and the form object as the second parameter $form->add($filename); // the file upload field $file1 = new \FrontendForms\InputFile('fileupload1'); $file1->setRule('required'); $file1->setLabel('Multiple files upload'); $form->add($file1); $button = new \FrontendForms\Button('submit'); $button->setAttribute('value', 'Send'); $form->add($button); if ($form->isValid()) { // do what you want // $extractedFiles = $form->getUploadedFiles(true); // returns all uploaded files including extracted ZIP folder files // $nonExtractedFiles = $form->getUploadedFiles(); // returns all uploaded files but Zip files are not extracted // $values = $form->getValues(); // returns all submitted form values } echo $form->render(); Copy this code and paste it inside a template for testing purposes. Upload a ZIP folder and add the name of a file inside the "filename" input field. If the file exists in your ZIP folder you will succeed. Please note: The extraction of the ZIP files is done only once during the validation process. You can get the extracted files afterwards inside the isValid() method via the getUploadedFiles() method from the temporary upload folder. Use the return of this method to do some more work with the uploaded files. Take this example as a starting point for your own validation rules and let me know if it works for you. I think this is the only possibility to get what you need. Another hint: User browser validation in FrontendForms to make client side validation first by enabling it in the backend.
  13. Last week
  14. ProcessPromptManager is a ProcessWire admin module for generating site-aware prompt exports for external AI agents. It allows an administrator to select a template, define which fields an agent should populate, add instructions, and export a zip containing a markdown prompt and JSON field definitions. The module does not handle authentication or integration. It provides a controlled starting point for accepting structured input from external agents. Never include credentials or sensitive data in prompts. Module info: https://github.com/clipmagic/ProcessPromptManager/
  15. Hello @da² Thank you for your detailed explanation! Now I know what your goal is. The first problem by doing additional validations inside the "isValid()" method after all form values are valid is that the form has "status valid" and therefore the form values will be emptied to prevent double form submission. That is the reason why the form is empty. This can be prevented by adding the useDoubleFormSubmissionCheck() method with value false to the form object. The second problem is that the validation of max attempts (if enabled) will be reseted if the form is valid, but it would take further attempts if you are doing additional validations inside the isValid() method. So the max attempts validation in this case does not work. But this can be disabled by using the setMaxAttempts() method and setting the value to 0. So adding additional validations inside the isValid() method is a very dirty solution and the module is not developed to support such a scenario. So the goal you want to achive is very difficult to achive. I am afraid that the module will not be able to solve your problem, but I will wrap my head around it and maybe I have an idea.🤔
  16. I loved this theme - very similar to the new one, but somehow better. I actually prefer Bernhard's stock UIKit theme to the new one, not sure exactly why. I wish Canvas was the default theme.
  17. 50 Templates + 14 Repeaters 🙂
  18. I'll see if I have time to do a full case study. The map is easily explained though: Since Switzerland is a very small country, stretching it onto a 2D plane can be done without much distortion. That's where the LV03 and LV95 coordinate systems come into play. They are centered at the observatorium of the ExWi building of the University of Bern (where I studied CS :P). From there, you count the meters to the north and the east (and add some offsets so there are no negative coordinates). Using Switzerland's official map service, you can easily come up with LV95 coordinates for any address. These are then added to the locations in the PW admin. The map thus is just an SVG and placing the dots is just simple LV95 coordinate to pixels interpolation. No external services needed, no privacy concerns.
  19. 1) 75 (+15 Repeaters) 2) 62 (+4) 3) 50 (+7)
  20. Shocking stuff. Perhaps a good title would be Another great reason not to use WordPress. 🙂 In PW world, how many of us run Module updates through any audit before installing?
  21. https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/ Without any ill intent, this comes across to me as sounding like promotion for ProcessWire.
  22. I wasn't realy planning to, we'll see! R
  23. You can try to compare the Textarea field settings. I have seen this behaviour when the editor setting uses a faulty js / css file path. Maybe a custom JSON file have been moved.
  24. P.s. a Textarea field in the SEO section is on the other hand working properly.
  25. It could also caused by PHP version upgrade from your hosting provider or faulty TinyMCE / CKEditor JS settings. Do you have access to your server logfiles? Which PW version do you use? Which default editor has been set for the text field. TinyMCE or CKEditor? Did you try to re-save the textarea field settings?
  26. Hi Sabesz, I already tried that; both a different browser and icognito, it doesnt matter. The strange thing is, I see the Textbox litterally disappearing for my eyes, so I think it is something in Processwire, maybe a security or setting issue? Michael
  27. Hi, it might be a browser extension causing this. Do you have any extensions installed? If so, you can try a different browser or an incognito/private window, provided extensions are not allowed to run in that mode.
  28. Hi, As my developer has stopped with servising my Processwire site, I am asking for help here. In the admin area, it seems that pages with a "textarea" field dont show their content after 1 second. Even if I refresh the whole page, I can see the original input in the textarea, but it disappears after 1 second. It is not possible to edit the textarea... It looks like a system setting has been changed? The last time I used the site (2 months ago) everything was still working fine.
  29. Very useful, indeed! May I suggest an example in its docs for the developer to implement: - A URL segment `/md/` or, even better, adding `.md` to the URL to trigger the display of the markdown version of the page?
  1. Load more activity
×
×
  • Create New...