Jump to content

Recently Updated Topics

Showing topics posted in for the last 7 days.

This stream auto-updates

  1. Past hour
  2. So happy to be a Processwire user: https://news.ycombinator.com/item?id=30041815
  3. Sounds good - I might actually be tempted to go back to this module - I do prefer the inheritance flexibility of it.
  4. Yesterday
  5. Some of you might of used my previous U2F module for their two factor needs. Well I was recently informed that Chrome is dropping plain U2F support in favour of WebAuthn. So after a full day of debugging some cryptic errors I am proud to announce a WebAuthn module. This has some major improvements. For example you can now use on-device credentials like Windows Hello/Apple Touch ID. This means that even people without a Yubikey can benefit from modern two factor authentication. It also has much better cross platform support. For example NFC will now work on an iPhone. I do not recall the original U2F stuff working well on iPhones so yay? The is still the original issue that ProcessWire imposes with its Tfa class, That being it is a setup once and never edit again system so you can only add your on-device credentials for a single device because once saved you cant then edit your credentials on a second device. You also lack the options to revoke a single credential or add a new one. You have to wipe out the config and re-add your keys again. It sucks but realisticly if you need more than 3x credentials your almost defeating the point of Tfa I feel the need to also point out that this does not replace passwords. That is something WebAuthn can do a fully passwordless setup. But I think implementing that inside ProcessWire would be a huge challenge. It is frankly a form of magic that I was able to make WebAuthn work within the confides of ProcessWire's Tfa class. Github: https://github.com/adamxp12/TfaWebAuthn ProcessWire Modules: https://processwire.com/modules/tfa-web-authn/ I hope this module helps you guys out securing your ProcessWire websites If you have any issues just reply and I will do my best to help you out
  6. I even use Cloudflare on the most of my sites and had the same issues. Since i use $config->sessionFingerprint=false; everything works fine. Maybe you have to use false instead of 0?
  7. Hi @bernhard, thanks for the tip! That sure is an extremely usefull module to have during the building-phase!
  8. Yes, currently generating diagramms by code definition in the editor, but planning to let generate diagramms by parent-child relations in a future iteration. Its good for now and me but not that user-friendly πŸ™‚
  9. Last week
  10. Thank you @TheMick- it looks like I did miss that. It sounds like it would work, although I admit it's a bit beyond me - I'm not an experienced programmer. I was hoping to avoid writing functions. I can't remember what I did in the end on my particular project - I think I just decided to use a reasonable number of images that would look OK on 1 page and didn't bother paginating them. If I need to go back to that I will definitely take another careful look at the solution you mentioned and implement it for my situation. Thank you for bringing this to my attention, as other people who come across this thread will now be able to direct themselves to the solution you mentioned πŸ‘ πŸ˜€
  11. Would you mind telling us a bit more about your workflow in regards to projects and their migration? This would be super interesting.
  12. @Krlos I agree with @bernhard - more detail is required on your constraints to really advise. However we've built a number of data-driven sites using PW in this way and I would say putting all pages of a specific type under one parent is my preferred approach vs nesting in multiple sub-folders. It's also more like a regular database table). You can then just use selectors to filter the output and it makes more sense if you have entities that might apply to multiple parents. E.g. a staff member that works at multiple locations. For those maintaining the site/data you can make it easy on them by configuring the 'family' tab for each template. So for instance, only a 'hotel' can be added as a child of 'hotels'. When an editor wants to add a new hotel they can't then accidentally use the wrong template, or put it in the wrong place. Finding an existing hotel to edit is as simple as tapping the name into the default PW search box.
  13. Yes my colleague tested the demo site and Apple watch worked as did iPhone πŸ™‚ I may get rid of my Yubikey in future as fingerprint auth on phone is as good in my opinion, and I'll have my phone closer than my keys usually. My face is also usually nearby when I'm on my laptop πŸ€”
  14. Yes - Formbuilder has the option to output each form in adherence with a number of popular frontend frameworks - bootstrap included (see screengrab below). There's also a number of embedding options which include the option to completely customise/control the code output so you should be covered from this angle too. Out of curiosity, what are the shortcomings of the default comments you are looking to overcoming. If it's just styling/presentation couldn't you just modify the markup for this instead?
  15. Hi all, Can anyone confirm 100% does ProDrafts work with repeater fields? The pro module store page says not, but this update from @ryan says it was added in 2017 - just want to be sure before buying it for a specific repeater-heavy site. TIA πŸ™‚
  16. Since you cannot get access to your developer and since it seems you will not be getting a replacement developer for this, I would suggest, albeit with caution/caveats, that you take over the current superuser account. This will mean changing the following: The current superuser password The current superuser email If needed, the current superuser username 1 and 2 are more important. 1, since you need to be able to log in and 2 since you want ProcessWire to send messages (when needed) to an email account you have access and control over. The above requires that you have access to the ProcessWire files. This can be either via FTP or CPanel. In any case, you need to be able to edit at least a template file. Please let me know. Please don't post your FTP/CPanel details here πŸ™‚. At this point, we just need a yes or no response if you have access to files. By the way, if you'd rather discuss via PM, please feel free to message me here in the forums.
  17. Thx for that example. I understand now. <?php // migrate field content only if the address field exists if($rm->fields->get('address')) { // first we make sure the fields exist $rm->createField('foo', 'text'); $rm->createField('bar', 'text'); $rm->createField('baz', 'text'); // then we make sure they are added to xyz template $rm->addFieldsToTemplates(['foo','bar','baz'], 'xyz'); // then we migrate data foreach($pages->find('template=xyz,address!=') as $p) { $parts = ...; // split address into parts $p->of(false); $p->foo = $parts[0]; $p->bar = $parts[1]; $p->baz = $parts[2]; $p->save(); } // then we delete the obsolete field $rm->deleteField('address'); } // then we use the existing migration config for future use // so you can easily add other stuff (like whatsoever field) $rm->migrate([ 'fields' => [ 'foo' => [...], 'bar' => [...], 'baz' => [...], 'whatsoever' => [...], ], 'templates' => [ 'xyz' => [ 'fields' => ['foo', 'bar', 'baz'], ], 'whatsoever' => [ 'fields' => ['whatsoever'], ], ], ]); If you are inside a module that uses a migrate() method to migrate data this could easily been refactored to this: <?php class MyModule ... { public function migrate() { $rm = $this->wire->modules->get('RockMigrations'); $this->migrateAddressData(); $rm->migrate([ 'fields' => [ 'foo' => [...], 'bar' => [...], 'baz' => [...], 'whatsoever' => [...], ], 'templates' => [ 'xyz' => [ 'fields' => ['foo', 'bar', 'baz'], ], 'whatsoever' => [ 'fields' => ['whatsoever'], ], ], ]); } public function migrateAddressData() { // if the address field does not exist any more // we can exit early as we have nothing to do if(!$rm->fields->get('address')) return; // first we make sure the fields exist $rm->createField('foo', 'text'); $rm->createField('bar', 'text'); $rm->createField('baz', 'text'); // then we make sure they are added to xyz template $rm->addFieldsToTemplates(['foo','bar','baz'], 'xyz'); // then we migrate data foreach($pages->find('template=xyz,address!=') as $p) { $parts = ...; // split address into parts $p->of(false); $p->foo = $parts[0]; $p->bar = $parts[1]; $p->baz = $parts[2]; $p->save(); } // then we delete the obsolete field $rm->deleteField('address'); } } This is one of the situations that are not possible using YAML of course πŸ™‚ But the "migrateAddressData" could be done in PHP while the migrate() could migrate YAML data still.
  18. @kongondo can you remind me on Monday and I'll get a forum set up? Not sure if we should call it Padloper Pre-Sales or something and have a pinned topic at the top saying for paid support to request access to the other forum or something like that?
  19. That is just amazing news! Created a github issue about this enhancement so we can track it.
  20. Done. I wish we could have the roadmap clearly visible in github. I you agree, maybe do start adding issues there. Thanks!
  21. Hi guys, I need some help with this gallery: <?php $options = array('cropping' => true, 'upscaling' => false, 'quality' => 80); // cropping => true is default and same like 'center' foreach ($item_gallery->gallery as $img) { if ($img->width > $img->height) { // check for orientation $slide = $img->size(2400, 0); // we have a landscape oriented image } else { $slide = $img->height(1800); // we have a portrait oriented image } // output your markup here echo " <figure> <a class='uk-inline' href='{$slide->url}' data-caption='{$slide->description}'> <img class='photo' data-src='{$slide->size(760, 0,$options)->url}' alt='{$slide->description}' uk-img> </a> <figcaption class='uk-hidden@s'> <p>{$slide->description}</p> </figcaption> </figure> "; } ?> The goal is to show in a uikit lightbox images that are max. 1200px wide and the max height is 900px. The client will upload images that are 2x bigger, to have resources for the retina output. How should I define the srcset and the sizes if you have all these different proportions and orientations? I saw that in sizes I can use this: (orientation: portrait) Thanks in advance.
  22. @guy You could try this: if($this->wire()->process == 'ProcessPageEdit') { // save from page editor } If you want to capture other types of page editors, like ListerPro, User Profile, etc. you could do this: if(wireInstanceOf($this->wire()->process, 'WirePageEditor')) { // save from any page editing process }
  23. Finally an authority that stands up and no longer follows main stream and established behavior. Trying not to be a sheep doesn't get much support or likes Matomo is not like it used to be anymore https://matomo.org/pricing/ My 5cts for an alternative, I use bbclone a lot as it gives just enough in most cases https://www.bbclone.de/features.php
  24. EDIT: ryan allready fixed it, thanks πŸ™‚ Thanks for the hard work as always. There seems to be something broken in WireHttp in this version i filed issue report here: https://github.com/processwire/processwire-issues/issues/1506
  25. I have not thought about it) That would force us to use the templates root based partials all the time. This is an option. But it feels like too much of a deviation from the mainline usage. It seems to me that the best way would be distinguish between full and relative paths, so we could render a partial from a non-standard path time to time, leaving the defaults for common usage. Anyway, thanks @Zeka for digging in this and giving such creative options!
  26. hi, wow, of course, first thing to check out, i forgot, you're right πŸ™‚
  1. Load more activity
  • Create New...