Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/13/2016 in all areas

  1. So it finally happened – I (re)launched my first multilingual site built with PW. For the first time, I do not have to mention that the site is in German only and most of you will probably not be able to etc. etc. blues-baltica.de is a site for a couple of events surrounding the most important of them – the BluesBaltica or Bluesfest Eutin, which is considered to be Europe's second most important Blues festival. It will take place for the 27th time in a couple of weeks, as it does every year in May in the small town (about 17K people) in northern Germany that I live in. It's an admission-free, open-air festival. In addition, the association organizing it also hosts the German Blues Challenge & Awards, which is the German qualifiers for the International Blues Challenge in Memphis, TN. Okay, technical stuff. It's multilingual, which is the biggest thing about it for me since it was my first multilingual site. And it's been a blast. Seriously, all that multilingual stuff in PW? The multi-language fields, the alternate language fields, the tabbed interface? It's friggin' perfect. Whoever came up with all that is a genius. Other than that, it uses just a few modules, most of them are my “go-to modules” that I use in every project, like Markup Simple Navigation and Markup Sitemap XML. Used Hannah Code for the first time to include the code for the Piwik opt-in iframe in a WYSIWYG editor field – works like a charm. Also use Scheduled Pages since this site sometimes needs news posts to go live in the middle of the night. And Export Site Profile because it's the easiest way to back this up regularly. As for the design, it is a bit “special” because the main organizer, who is my contact person, it a bit particular about it. Also, they really don't have a huge budget, so this is kind of a pet project anyway. The main objective besides moving away from the old CMS really was to make it easier to maintain in the backend. But it is HTML5, responsive and even uses SVG sprites for icons, and hopefully performs well for everyone despite the about 60 301 redirects it needed after moving from Contao to PW.
    9 points
  2. That is a huge part of it, yes. As I said, this site used to run on Contao. Contao's way of handling this is two seperate page trees, which means every time you so much as edit a page, you have to do it twice in two different places in the backend. Now it's just a click away on the same page. This is a great testament as to how well the PW backend works in general and completely unrelated to which backend theme one chooses to use. I may be “surprised” by how well all this works since I haven't even so much as tested the multilingual stuff in quite a long time. When I last checked this out, languagefieldtabs was still a separate module! I remember when it wasn't easy to have a page exist in one language, but not in another – now that's just a checkbox to uncheck. I also remember when we did not yet have language-specific image descriptions. This really has come a long way, and it has improved as well. Very good job by everyone involved.
    5 points
  3. There are already a bunch of topics about exactly that topic. Currently your options are pagetable, pagetable extended or matrix fields, where the last one is a commercial pro module. Depending on the specific need one might be a better fit than the other.
    3 points
  4. I'll take the opportunity right now – after handling 1600 live users this morning creating 2000 registrations in just 15 minutes – to make some advertising for a website/api testing SaaS I've used in the past one and a half weeks. They provide you with a javascript driven custom domain language to build up custom scenarios (even multiple ones), which allowed me to test not only raw web server performance, but also the performance for user triggered queue workers or other cpu intensive tasks, which might not directly be handled by a request. But that's not the thing, which was so special to me, but rather the quick help they offered mostly through their in app chat. Half the time it was even initiated by them, because they reviewed shortly what I was doing, not leaving their customers alone. So yeah. I'd really like if some of you guys would take a look and maybe try it out (it's free to try). https://stormforger.com/
    3 points
  5. @Sergio I thought laravel's rollback does just rollback schema changes. That one can be easily done like I described it in the post bernhard linked above. Maybe I'll try to get it out as (a bit more) polished module on the weekend. It's actually working great for me.
    3 points
  6. Documentation Update (Work in Progress!) http://blog.kongondo.com/ Blog docs are back! Still work in progress though. Some latest methods and almost all methods' $options not yet covered in the docs. Will get there eventually. Site may not work properly on all devices (you know me and CSS, sigh... )
    2 points
  7. Documentation (Work in Progress!) http://mediamanager.kongondo.com/ Still working on this but at least the basics to get you up and running are covered Getting started Adding media to Media Manager fields in ProcessWire pages Currently, site might not work properly on all devices :
    2 points
  8. I may not completely understand what your requirements are however, I believe you could use the Profields: TextAreas module:
    2 points
  9. When it comes to handle multilingual content ProcessWire really outperformes any other system I've ever seen.
    2 points
  10. Easiest: Implement a password forgotten process and let users use this one to update/change their password on the new system Otherwise: Implement the old system's password comparison and use it to compare it to the submitted password. There are various threads about hooking into the login process of processwire.
    2 points
  11. Glad it works! I'll check if this is an issue with my module or mPDF in general. The order of the includes doesn't matter, but you need to be careful not sending any output (headers) to the browser before downloading the PDF. For example echo out something, though in the context of ProcessWire all echos in your template are catched by PHPs output buffer, so you should be fine. You'd get warnings if that happens, something like "Headers already sent" Cheers
    2 points
  12. That would require an in-memory sort. One way to do it (as we wait for @LostKobrakai's better answer ).... Create and populate a property 'distance' on the fly for each page in the PageArray then sort the array by that property. An example: // get a PageArray $res = $pages->find('template=basic-page, limit=15'); // assign distances to a property 'distance' created on the fly foreach ($res as $r) { $r->distance = rand(5, 100);// we assign some random distance just for testing } // testing output $out = ''; // sort #$res->sort('distance');// sort ascending $res->sort('-distance');// sort descending // confirm sorting worked $out .= '<ol>'; foreach ($res as $r) { $out .= '<li>' . $r->title . ': distance - ' . $r->distance . ' Miles</li>'; } $out .= '</ol>'; // it works! echo $out; You should get results similar to this: X-Small: distance - 84 Miles XX-Large: distance - 84 Miles Small: distance - 77 Miles US Open: distance - 75 Miles About Us: distance - 74 Miles Our Achievements: distance - 69 Miles Key Staff: distance - 65 Miles Who We Are: distance - 57 Miles X-Large: distance - 57 Miles Senior Management: distance - 51 Miles Medium: distance - 41 Miles Sizes: distance - 39 Miles Colours: distance - 25 Miles Large: distance - 10 Miles What We Do: distance - 9 Miles Useful reading: PageArray
    2 points
  13. Looks like we have a working solution to Bram's FormBuilder issue.
    2 points
  14. Thanks to Ryan the language fields on MarkupCookieconsents option work with this patch for devns. So either apply yourself (like I did) or wait for the next release, probably coming on friday. https://github.com/ryancramerdesign/ProcessWire/commit/2fe134b7b059fff023f0f37c7f172a9853c88af2 You only need to update ProcessModule.module from the linked GitHub page, the other fix is as mentioned in the title not needed for the language fields to work.
    2 points
  15. That's what GET parameters are for /enquiry/?email=1234, if you've them saved in some page, or /enquiry/?email=info%40xyz.com if you just want to pass the email address.
    2 points
  16. Try the multiplier fieldtype: https://youtu.be/xahmOuhec-o. It is one of Ryan's ProFields.
    1 point
  17. Bookmarking: How to setup cloudflare on non www. domains here, as this may come in useful for someone. I haven't tried this out yet, but may soon as my hosting provider only allows cloudflare support on www. domains - something that I'm moving away from.
    1 point
  18. I may not completely understand your requirements, however I believe you are maybe talking about the existing Fieldsetopen fieldtype. https://processwire.com/talk/topic/176-fieldsetopen-fieldsettabopen-%E2%80%93-what-is-it/
    1 point
  19. A few of the many links to get you started (google is your friend): https://processwire.com/talk/topic/10394-content-block-builder-in-processwire/ https://processwire.com/talk/topic/7350-smart-widgets-blocks/ https://processwire.com/talk/topic/10769-static-content-blocks/
    1 point
  20. That looks strange... Does anybody know why lostkobrakai's solution does not work?
    1 point
  21. Might not be of use to you presently, but thought to draw your attention to this thread (yes, about horses) where @Martijn comes up with some good solutions .
    1 point
  22. I have a working solution. I am taking a guess that it cannot update a field directly in the page you are saving without a bit of extra information: <?php $pages->addHookBefore('added', function($event) { $page = $event->arguments(0); if ($page->template->id == 46) { $p = wire('pages')->get($page->id); $p->setAndSave("text_1", "test"); } }); The solution by LostKobrakai works as well.
    1 point
  23. Create a new template and a new page which is public accessible. Load your horses in a PageArray and echo your output. To get a specific horse page you can use url segments if ($input->urlSegment1) { $horsename = wire('sanitizer')->pageName($input->urlSegment1); $horse = $pages->get("template=horses,name=$horsename,include=all"); echo $horse->render(); } else { $horses = $pages->find('template=horses,color=black,include=all'); echo "<ul>"; foreach ($horses as $horse) { echo "<li><a href='/public/horses/$horse->name'>$horse->name</li>"; } echo "</ul>"; } Assuming you have an overview site where all horses are listet and depending on your href attributes in the links to specific horses you could use $page->render() too in the 'else' part above. Using render() method you maybe have to disable appended/prepended template files by config.php in the template settings.
    1 point
  24. You need to save your change. For PW < 2.7: $of = $page->of(); $page->of(false); $page->set('text_1', 'test'); $page->save('text_1'); $page->of($of); Or for PW >= 2.7: $page->setAndSave("text_1", "test");
    1 point
  25. Hi Ian, Thanks for the offer, but I think we have second point figured out as well, I will post updates on a solution when I finalized it. Gr, Bram
    1 point
  26. The genius here is I believe adamspruijt for creating languagefieldtabs
    1 point
  27. That's why this is a wishlist topic. There's no pw way for that besides loading all pages to memory (kinda manually) and using unique().
    1 point
  28. If you're worried about that just use the mysql snippet ryan posted with the DISTINCT selector.
    1 point
  29. I think those might be what you're looking for: https://processwire.com/talk/topic/9730-get-pages-used-by-a-pagefield/ http://cheatsheet.processwire.com/pagearray-wirearray/getting-items/a-unique/
    1 point
  30. Just added a PR to disallow unchecking required radio buttons. It could be simpler but if inputs are in a fieldset then I couldn't find a working jQuery selector to properly target the inputs.
    1 point
  31. I agree that a template engine is an additional layer of complication but one have to decide whether it's worth or not. For me the benefits compensate the extra overhead - which, as szabesz wrote, is not significant if you have built a workflow that fits. Using them in a wrong way may lead to bad things of course, but this is the case with all the other tools like sass, gulp, etc.
    1 point
  32. Just be sure to sanitize the entry or people can just pass arbitrary emails to be send to, which you don't want to happen.
    1 point
  33. The double click issue for Media Manager admin link in Reno looks like it can be solved by setting the Media Manager sub pages to hidden. Not sure if that breaks anything else (didn't seem to in my quick test) but appears the system is looking for children pages hence the empty dropdown and requirement to double click to go to the main MM admin page.
    1 point
  34. Ok, I think I get it now. I knocked up the following code which I'll post here in case anyone else finds it useful. It seems to work ok public function ___uninstall() { $fields = wire('fields'); // Array of fields to delete $fs = array( 'test', 'test2', ); foreach ($fs as $f) { // Get each field from the array above $f = $fields->get($f); // Get the fieldgroups for each field $fgs = $f->getFieldgroups(); // Loop through each fieldgroup foreach ($fgs as $fg) { // Remove the field from each fieldgroup it's linked to $fg->remove($f); $fg->save(); } // Now delete the field $fields->delete($f); } }
    1 point
  35. Guys, keep it on topic! (it's my favorite topic, otherwise I wouldn't say )
    1 point
  36. Hello Juergen, I am sorry for such a late answer. You are right, this is not needed since PW manages the session. I will try to test this module with various PW versions and update it. Thank you for your post!
    1 point
  37. v002 is up on GitHub: https://github.com/rolandtoth/MarkupSrcSet
    1 point
  38. I've made a first translation file for german: GitHub All strings are translatable, but line 98 ist not working: 'notes' => sprintf(__("For example Font Awesome checkmark icon e.g. %s\n(You need to include Font Awesome on your own)"), "<i class='fa fa-check'></i>"), with single quotes it works, but without the newline \n. Maybe don't use the \n? Or delete part of string "(You need to include Font Awesome on your own)", because Font Awesome is already included in PW. same problem with line 217: 'notes' => __("Default true\nIt has been suggested that this setting can effectively help to reduce identity theft through XSS attacks"),
    1 point
  39. Hi folks, I quickly tested locally with ProcessWire 3.x and it worked by disabling the file compiler for the external mpdf library. I need to test a bit more, especially the multi language support of the module, before I commit a new version. But if you want to make it work in the meantime, here you go: Add // FileCompiler=0 to the first line after the php opening tag in the file /site/modules/Pages2Pdf/mpdf/mpdf.php Delete the folder /site/assets/cache/FileCompiler/site/modules/Pages2Pdf to make sure the module files are recompiled Now generating and downloading PDFs should work Cheers
    1 point
  40. OK, I'm finally going to be breathing some life into this project. I got the title sequence done (well a near final draft) along with intro music (bought the track music from audiojungle). Here's a little teaser: http://jonathanlahijani.com/wirecasts-teaser.mp4 The title sequence is a little choppy. Need to fix that. It's actually just a screen capture of an animation I made using plain old html/css with animate.css. I have about 15 videos done so far, but another 18 to go. This WordPress vs. ProcessWire series will cover many different features and quickly compare the two systems. It will not be biased and will compare the best of WordPress to the best of ProcessWire.
    1 point
  41. It does have one. Well works for me: http://processwire.com/blog/rss/
    1 point
  42. The site I have just uploaded today, http://claysvehiclerepairs.uk is the first site I have done where the pressure was on to speed it up. The site has a lot of graphics, it uses foundation which is far from lightweight, it has 890 or so pages (it has left Pete's sitemap module smouldering), various extra bits of JQuery going on like equal heights and is just big and weighty. I managed to get it running fine, actually, and then I added AIOM and the site shook itself into a higher gear - very pleased indeed. So Thanks to everyone involved with AIOM. Then I gassed up procache, pulled the choke out and hit the start button. The full roar of the ProCache 289 V8 with Holly double pumpers, slot change box and overcharger, thundered into action and the website just about catapulted itself out of the traps and round the internet track at lightning speed. The difference was seriously noticeable. And the result? Page analysis says - &*$£king fast. Mobile analysis says fast too, which considering what is going on is very pleasing. So Thanks to to Ryan for making a CMS that is a joy to optimise with no secret stashes of rubbish to drag you to your needs and for a module that adds rocket fuel to the finished item. Gertcha my son!
    1 point
  43. Once you register your domain with them, they crawl your server for elements that they can cache for you. I use CloudFlare, too, and it's very good. And the free account is exactly the right price!
    1 point
  44. I am playing around with the new addition getConfigAllowContext() http://processwire.com/blog/posts/processwire-2.5.7-core-updates/#field-template-context-now-available-for-any-field-property In my InputfieldTest.module I have this method: public function ___getConfigAllowContext($field) { $contextFields = parent::___getConfigAllowContext($field); $contextFields[] = 'cropSettings'; return $contextFields; } In the admin everything works like expected. But I have no idea how to use this with the API. In my "FieldtypeTest.module" I want to get the cropSettings in the context of a specific template. Until now I am using $inputFieldInstance->cropSettings to get my settings, but of course this gets me only the value without the context. Any ideas?
    1 point
  45. @teppo: the field does contain the value "wire_challenge". But your comment reminded me that i had modified the config file and set sessionChallenge and sessionFingerprint both to false when i had trouble login in to the manager just after moving the site to the live server. I have set these settings both to true again and now pro-cache works as expected again. So it was my own mistake that caused the wire_challenge cookies to not be set anymore
    1 point
  46. @Raymond: if you check the Bypass tab of ProCache setup page, is there anything listed in "Cookies that bypass the cache"? By default wire_challenge should be there and this should effectively disable ProCache for logged in users. See Ryan's screenshot above for an example. If that field is empty or this cookie isn't listed, add and test again.
    1 point
  47. I second Jeff's opinion of CloudFlare. I've been using the free version for a couple of months on 3 different websites, and the bandwidth saving + speed improvements do make a difference. Threat protection is a nice bonus too, and seems to work really well according to the statistics they provide. The $20-a-month pro version is tempting as it adds SSL encryption and two brand-new server-side image optimization services: what they call Mirage and Polish. Polish "applies 'lossless' or 'lossy' image optimization to reduce your image sizes by 35% on average". That's nice, but a program like ImageOptim does the same thing: http://imageoptim.com/ What really looks amazing is Mirage which "automatically resizes images for optimal display based on the screen size of your visitors' device." I haven't tried since I'm on a free plan, but that kind of server-side automatic resizing looks like the perfect solution to optimize loading time on mobile / responsive sites.
    1 point
×
×
  • Create New...