Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 08/17/2016 in all areas

  1. Recently we have had the absolute pleasure of working the professional grade monitor providers, EIZO. EIZO provide colour accurate monitors, so we took heavy influence from colour in our design process. For the website, as always ProcessWire has been a perfect fit. The modules I have used are as follows: ProCache ProFields Hanna Code MarkupSEO ColorPicker MapMarker MobileDetect Any feedback would be much appreciated — http://eizocolour.com/
    9 points
  2. Thank you Lost, I really wish I could give you some useful information on how we convinced EIZO to use ProcessWire. However the truth is the choice of CMS was never a requirement and was left completely up to us. Since last year when I first discovered ProcessWire, I've actually never had trouble selling it in. Mentioning it's much simpler to use and securer than competitors, that more is possible with the flexibility of ProcessWire than what is with other CMS, always helps. I've actually had one site which I converted from CraftCMS to ProcessWire due to the speed in which ProcessWire runs with ProCache. Really, ProcessWire sells itself.
    7 points
  3. Just to be safe: which version of PW? I assume PW 3+ or 2.8+ But regardless of that, you need to install this: http://modules.processwire.com/modules/image-animated-gif/ EDIT: For the record: We want to implement an equivalent of the above module into the PW 3+ / 2.8+ core. But I first need to modify / write it.
    5 points
  4. That's some really nice work and certainly a nice showcase for processwire and it's abilities. I wonder if you can share something about how you managed to get a bigger company like EIZO to work with ProcessWire as cms, as actually selling a kinda niche software is often not an easy task.
    4 points
  5. i think the modal just loads the admin page in an iframe, not via ajax. the easiest solution would be to only redirect if the process is NOT ProcessPageEdit. You will have to allow requests to that process if you want to allow those modals. you could also limit it even further by checking the GET parameters used by the url of the iframe (eg /page/edit?id=123&fields=whatsoever)
    3 points
  6. Thanks @gingebaker - I have applied your curly brace fixes. Please let me know if you have any further troubles.
    3 points
  7. Any chance you could set this up on that test site you gave me access to? I think there might be some redirect going on in the repeater somewhere. The barDump content in the Tracy core only exists until the page is reloaded. If I can test your setup and confirm that would be helpful. I am also wondering if it might be useful for me to create a new panel that is a combination of expandable/collapsible nature of content that is sent via bd() and the persistence of content sent to the Tracy log files via l() - I think this "Persistent Dumps" panel could be very useful as I have come across similar situations myself where the data sent to bd() is lost due to a page reload, so I end up using l(), but this doesn't allow nice dumping of objects/arrays. This panel would have a "Clear Items" button so it's easy to reset when you have reviewed everything you've sent. Any thoughts on this idea? Or maybe this Tracy Issue would also deal with the problem: https://github.com/nette/tracy/issues/199 - it's not quite the same problem though, or maybe in your repeater case, it actually is the problem - more than one ajax call, rather than a redirect?
    2 points
  8. Thank you, it was a very thought through decision. We almost always avoid scrolljacking (I'm personally like yourself, not a fan). However we really wanted to give a full screen almost TV like experience for this. We felt this was the best way at the time. Maybe it's something we could revisit in the future if we find a better alternative.
    2 points
  9. Thanks for Ryan's quick work. This bugs has been fixed. Gideon
    2 points
  10. That is definetly the culprit, just changed it and can save the complete article content in just one textarea.
    2 points
  11. It's in InputfieldTextarea::init()
    2 points
  12. I might repeat myself in parts, but we already have ways to handle similarly shaped recurring data. It's by using a dedicated Template and Pages. The only thing missing from my point of view is a nice way of creating and handling those pages, which is something present in repeaters as well as in pagetables. It's just not available for a one-to-one relationship, which it would be for example for seo settings. Imagine your page could have a single, automatically created repeater page without the wrapping fieldset around it. I doubt anyone would ever notice that it's another page. But it would still have all the abilities you have for all other pages and nothing would need to change in the core of ProcessWire.
    2 points
  13. Ah, thought there would be a setting: The textarea inputfield is limited to 8 * 1024 characters and 3 * 8 * 1024 bytes. There are already lot's of topics around in the forums about that limit, but I cannot give you an answer on how to circumvent this limit or why it's this low (a text row in mysql could hold 60k bytes).
    2 points
  14. Yes, this is what I'd say. Can you find any similarities when or where the truncation happens? Is it after n characters or always after a certain char? Can you check the field table with phpmyadmin or something similar if a "tinytext" or a kind of charlength restriction is stated there? attached is a screenshot of my "body" textarea field. "mediumtext" indeed caps the amount of data the field will save, but shuld be enough for average sites (http://stackoverflow.com/questions/13932750/tinytext-text-mediumtext-and-longtext-maximum-storage-sizes#13932834 cheers Tom Edited: Hm, maybe the textarea() sanitizer is applied anyways, which would limit the amount to 16384 chars? http://cheatsheet.processwire.com/sanitizer/properties-and-methods/sanitizer-textarea-value-options/
    2 points
  15. Looks and works great! Love the map on the contact page: http://eizocolour.com/contact-us/!
    2 points
  16. It should - the screencap was filmed using a repeater field that is ajax-loaded. Otherwise, the markup is added by PHP so it's always there, plus the events are binded to $(document) so they should fire always.
    2 points
  17. it's now built into AdminOnSteroids:
    2 points
  18. Try the following : Put ajax.php file in the root directory : - root_dir - wire - site - index.php - ajax.php then bootstrap ProcessWire (write in ajax.php, at the beginning of the file) : include('./index.php'); and in your javascript code, write the correct path : [...] url: "/ajax.php", [...]
    2 points
  19. Maybe this is useful for you: http://cheatsheet.processwire.com/pagearray-wirearray/getting-items/a-eq-n/
    2 points
  20. Ok, I think these should be fixed - the problem was not just limited to the Mail panel. I have made a significant change to handle ajax requests in the backend - before they weren't detected as coming from the backend - I am relying on $_SERVER['HTTP_REFERER'] which isn't awesome, so please let me know if anyone notices any problems. The fix for the incorrect URL when clearing emails (and other things) now also uses $_SERVER['HTTP_REFERER']. Thanks @tpr for the server access - very helpful!
    2 points
  21. Hi, Mautic (www.mautic.org) is a open source marketing automation tool. Is there anyone have experience using Mautic with Processwire?
    1 point
  22. Thanks for the test example - I added an "exit" after your bd() call and that keeps the dumps panel active, so without investigating too much, I am guessing that there is a second ajax action that is clearing the dumps panel. So I think this is related to this: https://github.com/nette/tracy/issues/199 The Tracy guys might come up with a rework to make this possible, but in the meantime, I think I'll proceed with the idea of a "Persistent Dumps" panel as it has other/different benefits as well.
    1 point
  23. Your class signature isn't correct - you need to also: class TwigFunctions extends WireData implements Module { ... } Also, you will need to add the module so that PW can find it when it loads.
    1 point
  24. Sorry, there's so many iterations and experiments with this module I can't always recall what the current state is. I'm working on and off on this. I forgot the current dev still does alter the urls to strip out the domain segment. So as you seen, PW isn't able to resolve the url anymore. This also created various problems not only with link abstraction, but page path history view links etc etc. Current version I have, works fine here due to NOT rewriting anything in the backend (ready() hooks all commented out + some parsing of the urls on page render). So the only headache free and correct solution is to let them as is. A "/domain1/about/" vs a "/about/" also has some advantage in that it's the physical url and can be recognized and handled in some way if needed while the latter you can't. Domain1 and Domain2 could have both a "/about/" and you don't know which one is which. I guess it's not something we have many options unfortunately. I'm still testing and working on the new version, but have no ETA. So this modules is still in "alpha" and each version may not compatible with one or another previous version (also PW versions) and I still do not recommend using it in a important or critical project and only if you're aware of the consequences it may bring (broken links you can hardly recover).
    1 point
  25. Alex, an idea here, but I've not tried it yet. If you find it works, I can update our PageFrontEdit.js in a similar manner to trigger the events mentioned below. What's needed is an event triggered that you could monitor and then re-initialize your carousel. First you'd need to update the /wire/modules/Page/PageFrontEdit/PageFrontEdit.js file Starting at line 283, you'll see this: copy.hide(); orig.show(); Update that to this: copy.hide().trigger('pwreloaded'); orig.show().trigger('pwreloaded'); Then in your own JS, monitor the event and re-init your carousel when it occurs. Something like this: $(document).on('pwreloaded', function() { // whatever your carousel init code is, for example: $(this).find('.my-carousel').carousel(); }); Let me know if something like this provides what you are looking for?
    1 point
  26. my favourite: http://appvswebsite.com/ is your budget < 10.000$ ? ---> build a website
    1 point
  27. I guess the popup loads the admin via ajax, so you could perhaps check for wire('config')->ajax and if it's true, allow editing.
    1 point
  28. It's exactly the same when you're using repeaters. They'll also create a page for each item. Even though it might only hold 2 or 3 fields.
    1 point
  29. Loved the design! Very good execution as well. Congratulations! The only problem is the scroll highjack. I can understand the decision, but it's a pet peeve of mine.
    1 point
  30. as far as i understood currently the workflow would be like this: create a template "metatags" add fields, "author", "description" and so on create a page holding all those meta-tags pages, eg "/metatags" add a page field "metatagpagefield" to all those templates where you want to save metatags, eg "templatea" and "templateb" create a page "demo template a" with template "templatea" now you have your field "metatagpagefield" and you can add a page there. if you setup everything correctly (auto-name and predefined parent) you could add your metatags via a modal window. your metatags would get stored somewhere like /metatags/automatically_created_pagename now you could just edit the template "metatags" and all your templates with the field "metatagpagefield" would have those changes instantly. at the moment this workflow looks kind of complicated, but i think what lostkobrakai is saying, is that if the presentation (the GUI) of the pagefield would be different (automatically creating the page /metatags/automatically_created_pagename in the example above) and showing the fields of this page directly in the edit-screen of page "demo template a" the editor would not even notice whats going on behind the scenes. thats similar to repeaters and would be a great option imho! it was not at all a noob question. welcome to the forum btw @lostkobrakai - didn't want to beat you, just wanted to explain it in my words to see if i understood it correctly
    1 point
  31. Although this thread is somewhat «old», I'll add my two cents here from my experience as a new user: Following a short tutorial that taught how to add Meta-Tags for every page, I found two things: how to make a FieldsetTab and now to make fields global. To my surprise, I was able to make the fields global, but not the FieldsetTab. Which results in one template having a nice Tab grouping the Meta-Tag fields together and on all other pages they just linger around somewhere. This ain't a dealbreaker, but it surely isn't very handy either. All the suggested workarounds in this thread are just that: workarounds. I totally agree with bernhard and his usecases that such a functionality would be great to have and in some circumstances is even a necessity. And no, the template setup batcher isn't really an option, either, it's just another workaround that's unintuitive and cumbersome to use. It already hit me when I was introduced to PW that for bigger projects one accumulates a ton of fields and it occured to me that it gets pretty messy pretty fast. Grouping fields logically would be another great feature that would make the clusterf*** I witnessed on some of the projects that were showed to me much easier to handle. I'm far from being an expert in PW but one of the things that I read over and over by all the PW evangelists is its flexibilty. A.k.a. if you need it you can build it. But something that simple (and quite frankly very obvious) can't be built? I'm baffled, really...
    1 point
  32. Thanks man, good old leaflet + mapbox. You can do some amazing stuff! I'm now using that over Google Maps as it's much easier and also popups are simple to create.
    1 point
  33. I could have sworn that this was an option in the fields settings -- but I just looked up and down in my install (3.0.30) and the only reference to maxlength I found is in the $sanitizer options for text/textarea, which is not what I had in mind. Jut to make sure; you don't have a charset mix-up between what your site delivers and what your database expects? (just asking because I had such truncation issues back when WordPress moved from ISO-Latin to UTF-8, and weird things happenend with a utf-8 frontend saving into iso-latin DB tables and the other way round…) cheers Tom
    1 point
  34. Did you check your maxlength setting for the textarea field?
    1 point
  35. Thanks! Will report if I find something strange. There's one thing I noticed yesterday (before the Ajax changes). Using an ajax-loaded repeater, adding a bd() call the dump appears on the ajax bar for a split second, then disappears. I'm using bd() from an Inputfield::render hook. As I wrote this is not new, though haven't noticed earlier.
    1 point
  36. Just added a few CSS tweaks to the Pagelistunselect tweak: less prominent Clear button appearance and when hovering on it the selected page name gets a line-through, which makes clearer what will happen on click. See the screencap above.
    1 point
  37. +1 - I just tested a site with webpagetest.org and had a bunch of jpgs, saved as "progressive" in Photoshop, but a bit too large in dimensions for the final display. As soon as image->width() or image->size() was used to scale these images, none of them were "progressive" anymore. maybe @horst has something up his sleeve?
    1 point
  38. Hi Robin S, Thank you very much, that has fixed my issue. If only I had known that's where all the code was! I wish I could like your post twice. Thanks, Matt
    1 point
  39. Hi Henning, Interesting approach on how to use the module Looks like a caching problem to me, could you try to add $this->pdf = null after this line: https://github.com/wanze/Pages2Pdf/blob/master/Pages2Pdf.module#L218 The code should then look like the following snippet: [...] } else { $this->create($page, true); $name = $this->getPDFFilename($page); $this->wire('session')->message(sprintf($this->_("Pages2Pdf: Created PDF file(s) '%s'"), $name)); } // Add me! $this->pdf = null; } Cheers
    1 point
  40. Hello Stefanowitsch, I never used the plugin Adaptive Images, but I would highly recommend you to checkout Resonsive Images. If you want to use them today there is the popular polyfill Picturefill and if you want to use Reponsive Images in combination with lazy loading there is the awesome plugin lazysizes. There is also the module MarkupSrcSet by @tpr, but I never used it and prefer to include the markup myself. You have to get used to the markup at the beginning, but it is worth the effort. As far to your question: I don't think it is possible to use an different folder for uploaded images: Regards, Andreas
    1 point
  41. Looks like the markup for post-headline is set here: https://github.com/kongondo/Blog/blob/master/MarkupBlog.module#L916 This should work I think: $out .= "<$h class='post-headline' style='background-image:url({$page->blog_images->first->url});'><a href='{$page->url}'>{$page->title}</a></$h>"; You may want to resize the image - see the API methods for this. There is a support thread for the blog module. I believe @kongondo is away at the moment but if you post questions there other users of the module may have advice.
    1 point
  42. Didn't it work without? The compiler should normally take care of this automatically.
    1 point
  43. To get the module working out of the box on ProcessWire 3.0.x, just add to PublishToTwitter.module before installing it : namespace ProcessWire; Just tested this morning, it works like a charm
    1 point
  44. I have it working in the current 3.x version (3.0.30 devns), no problems or hick-ups so far. thanks for the module @adrian @mr-fan
    1 point
  45. Hi @Barido - thanks for reporting. Sorry for the delay - I was on vacation. Can you please test the latest version and let me know if that fixes things for you?
    1 point
  46. Just for reference, here is the origins of that module:
    1 point
  47. And a simple logo for $3,050, that's cool too! I would be rich by now if I could charge like that... Anyway I like the site. It's just perfect to scare the hell out of my clients so that they can be pleased by my prices...
    1 point
  48. I did not see this mentioned, but If you want to skip the first row of the csv which would be your headers you can simply add two simple lines. $row = 1; $fp = fopen("./skyscrapers.csv", "r"); $template = wire('templates')->get("skyscraper"); $parent = wire('pages')->get("/skyscrapers/"); while(($data = fgetcsv($fp)) !== FALSE) { if($row == 1){ $row++; continue}
    1 point
×
×
  • Create New...