Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/14/2017 in all areas

  1. Don't be put off by what your competitors are doing. They can be wrong. Google gives lower ratings to pages that it sees as lower down the page tree... eg page abcd in the tree abcd.com.au/all/about/abcd would rate lower (probably 40%) than page all-about-abcd in url abcd.com.au/all-about-abcd (probably 80% as it's one page off the root) Google is also smart enough to recognise hyphens in URLs as spaces. The only suggestion I would make would be to rename the URL to abcd-is-about - that way abcd is up front Hope this helps
    5 points
  2. Welcome to the forum @planetmarrs23 It's actually not an easy fix, and it's also not advisable because the slashes in the urls represent a new document. Not only in ProcessWire, but in the web in general. In your case this would mean that "all" would represent a document, "about" would represent a document below it and abcd even another. It's also not advisable depending on how long this document exists already. Changing it's name would break the links that might be directing to it from external pages. Is there any special reason why you want to do this?
    5 points
  3. In BS4 (in BS3 too) you can on/off the inclusion of any component (javascripts or styles) in your project, it's not mandatory to download and use the whole framework http://getbootstrap.com/docs/4.0/getting-started/webpack/ https://getbootstrap.com/docs/3.3/customize/ if you know how to work with SASS you can create your own grid system in your stylesheet using the SASS mixins without include the BS library http://getbootstrap.com/docs/4.0/layout/grid/#sass-mixins
    4 points
  4. https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/
    4 points
  5. Minor change of plan. The ReadMe was going to be too long for the entry in the modules directory and also the TOC links didn't work there, so I have moved the docs into DOCUMENTATION.md and @netcarver has committed a change to ModuleReleaseNotes (which if you don't have, you should get) so that this DOCUMENTATION.md will now be displayed in the module settings, like this: I think I am really happy with this approach! Once the docs are more comprehensively populated, I will adjust the links from the Selector panel info icons to point to the appropriate panel info here, rather than the old blog post.
    4 points
  6. For those (retro) gamers out there, GOG.com is having its winter sale on now. They're giving away free games with Grim Fandango Remastered being the first giveaway valid for the next 8hrs. https://www.gog.com https://www.ghacks.net/2017/12/13/the-gog-winter-2017-sale-is-on/
    3 points
  7. Crysis for 5 bucks and Grim Fandango for free! A nobrainer. There goes the workload of today...
    3 points
  8. @horst There's a pull request on your module that should update the formatting of the Changelog to allow it to be parsed by the existing code in my module. I've also fixed a couple of issues with the Markdown in the readme file as well. I hope this helps. As long as the changelog markdown is of the following format, markers should be correctly inserted... # Changelog // this line is optional - not needed, but if it is present it is sliced off and presented left justified above the versions. ## {version string} {optional information, usually the release date} // H2 - github will style this with a bottom border - Change 1 - Change 2 - or - ### {version string} {optional information, usually the release date} // H3 - github will style this without a bottom border - Change 1 - Change 2 @tpr There was a bug in the way I was comparing versions. You should be able to stick with whatever formatting you prefer. That said, I think there is more flexibility with string versioning than using integers. With string versioning you should be able to have deep version if you'd like - "0.7.8.1" or "1.5.2dev" are all possible. I'll be moving my modules over to string versions as and when I update them from now on.
    3 points
  9. I opened a new GitHub issue for this: https://github.com/processwire/processwire-issues/issues/454
    3 points
  10. Hi @tcrocks, I edited your post to remove the link. It's our policy to not let first posters link to urls not related to ProcessWire. @Alex is asking this question here in the forum because he's looking for an answer from someone that already used these tools alongside with ProcessWire, and I suspect you haven't. We'll gladly put your link back there if you prove me wrong.
    3 points
  11. CSS grid is „just“ new CSS technology which bootstrap will most certainly adopt in the future - just like the newer frontend frameworks are using flexbox now. It allows some pretty neat and clever layouting. CSS grid, just like all other CSS (flexbox, float, etc, etc ...) is the underlying technology the frameworks rely on. It is roughly a matter of „will readymade feature X / Y / Z of bootstrap easen the development of the project“ and „which browser versions do I need to support at reasonable effort“ to decide on using frontend frameworks. https://gridbyexample.com/examples/ https://css-tricks.com/snippets/css/complete-guide-grid/ cheers
    2 points
  12. .foo is another tld they they force https on, here is a blog post by google https://security.googleblog.com/2017/09/broadening-hsts-to-secure-more-of-web.html
    2 points
  13. Bingo! That was it! Grr Google! I'll take the easy way out and just rename to .local. Thanks guys.
    2 points
  14. I for one do not use bootstrap anymore. I got fed up with the bloat and components that I just never used. I found that I was using about 8% of what was being offered out of the box, so I started to look for alternatives. I followed a great tutorial by Chris Coyier and rolled the things I learned into my own grid system. Thus far, I really am enjoying it. If I need a slider or library, I just include it with my work flow so my grid stays nice and light. Also, if I need something in particular that my grid does not do, I simply update it to encompass it.
    2 points
  15. I guess it depends on how you expect to find visitors. Imagine spending a few days trying to optimize for pagespeed to please almighty google (and maybe get some random tyre kicker search visitors), then think that you could have done a facebook/twitter campaign, or even physically went out to find customers in that same time instead and maybe get some serious leads. For what I'm doing, word of mouth is going to be far more important than shaving a few milliseconds off pagespeed. You just have to use your time wisely, if pagespeed is important and will benefit you directly, then sink a few days into it. ps if you find a way to ever get rid of "Eliminate render-blocking JavaScript and CSS in above-the-fold content", then please let me know. Inline css is bad, let's use separate stylesheet files. Actually let's combine them into one file, and let's minimize them. No, let's use webpack to use JS to pull in CSS inline. No, let's just load a small part of CSS 'above the fold' and the load the rest later. What about smart watches? At this rate, we don't need to worry about IPv4 running out, everyone's too busy optimizing existing sites and learning tools to make anything new.
    2 points
  16. Bizarrely the starter group did have unlimited attachments - I've fixed that now as that's a recipe for disaster I think we can do something really simple like "above 100 posts, have an extra few hundred mb, above 500 posts have more again" or something, but just waiting to hear back from Ryan. That's the easiest way to do it using member groups so when you get to X posts it puts you in another group with the extra size limit. The only other setting is a per-upload size which isn't as useful but can stop spam accounts from uploading junk I guess. Basically, there's not a lot of settings we can tweak but I'm sure the option I've just mentioned will be enough. No point restricting our most helpful members!
    2 points
  17. Check out AutoSmush module for image optimization, with that you can easily optimize images that google pagespeed accepts in most of the time. Usually I can get pagespeed "green" values and that's where I stop optimizing, unless there's something trivial I can solve easily. The more optimization trick or workaround you make the less maintainable your site will become, so there is a point you better stop. Page speed analyzers are only indicators, not standards, this is something the so-called SEO experts usually get wrong
    2 points
  18. not related to processwire but may be of interest anyhow:
    2 points
  19. Ok, @szabesz, @bernhard and anyone else who is interested I have started populating the ReadMe with documentation (https://github.com/adrianbj/TracyDebugger). I have made a start on the Table of Contents (TOC) and done a quick population of some content for Captain Hook and the Console. Basically just copied from the original Tracy blog post at the moment. The TOC links work on Github, but unfortunately they don't work in @netcarver's Module Release Notes, but I doubt there is anything that can be done about that. CTRL/CMD+F always works fine though. I might spend some more time today fleshing things out a little more, but I would really love some help populating these docs if anyone feels motivated - PR's gratefully accepted
    2 points
  20. The 2018 Guide to Building Secure PHP Software
    2 points
  21. 2 points
  22. I think that's two totally different things... Migrator is for applying changes to sites in a programmatical way. So you can do... migrations Page Import/Export may be helpful when you transfer sites or parts of sites. But I don't think it will be helpful when you have a live site and want to add some new features while you cannot take the site offline and there might be changes in data/content while you are working on the updates. But I haven't used both of them so far. But I'm watching them for a long time... For me until now it was sufficient to work directly on the live server (having proper backups of course). I did some tests writing my own modules and applying update scripts... that was also quite easy. But there where situations where I wished I had a helper that takes care of some things like checking if the field that i want to create already exists, deleting all pages before deleting a template etc.; not sure how or if migrator handles that or what you plan exactly by your rewrite but I'm quite sure I would pay for a module that makes this process easier. And I'm quite sure that there is some demand on this staging/production migration topic... But I also think that tracydebugger has the bigger audience - so this would be more interesting as a business case
    1 point
  23. I read the opening post earlier and I was like wha? Just now I loaded up my localhost pw.tuts.dev and BOOM! "Your connection is not private". The same damn site I was working on like 6hrs ago without issue. Now I gotta change my hosts and vhosts and all that crap. Looks like I'll be going down the .local route. Thanks for the answers here everyone.
    1 point
  24. When upgrading from a 3.0.77 to a 3.85 installation, multilanguage setup and new UIKit theme I am getting the following error: Error: Call to a member function addBodyClass() on null (línea 114 de /web/content/wire/modules/LanguageSupport/LanguageTabs.module) Line in question: https://github.com/processwire/processwire/blob/master/wire/modules/LanguageSupport/LanguageTabs.module#L114 Seems the wire('adminTheme') si not available for some reason, time to learn more of PW inners haha Any suggestions??
    1 point
  25. +1 Bug report: https://github.com/processwire/processwire-issues/issues/452
    1 point
  26. I would do the validation a little differently, to avoid loading any more pages than you need to: // if there is a URL segment 1 if($segment1) { // get catType page $catType = $pages->findOne("parent=/type/, name=$segment1"); // if catType page exists if($catType->id) { // add this to the selector $selector .= ", catType=$catType"; } else { // invalid URL segment 1 throw new Wire404Exception(); } } Not sure in what way you were considering using has(), but that method is for checking against a PageArray/WireArray that is already loaded to memory - better to load just the page (category) you want than to load many just to filter it down again.
    1 point
  27. I know this post is ancient, but I went to use Migrator today and experienced the same problem. I have committed a fix that seems to be working fine. If you or anyone else is still interested in this module, please let me know how the new version goes. I am still not certain about the future of this module, especially now that the PW core has template, field, and page export/import, but to be honest I think Migrator currently handles more field types and of course has the added benefit of dealing with field, templates, and pages as one entity and takes care of them all for you. I am curious if others have used the core import/export features and how successful they've been and whether you'd still prefer and all-in-one solution like Migrator and whether you'd consider paying for it. I think I would want to do a considerable rewrite if I went this route, but I am really not sure what the demand is.
    1 point
  28. Not critical but somewhat important, at least from a marketing perspective. The other day I was out of the office and detected a problem in one of my sites. I had to use my phone to fix it and found out that on my phone I can't select text from a textarea that's powered by CKE. Can't select, means can't copy/paste, and if what you need is to do is moving a bunch of text around you're screwed. Of course CKE is now PW, but being the standard rich text editor for PW, I'd say we should look into making it more usable on phones.
    1 point
  29. Well, I still want to extend the breaking change search to apply to the text of commit messages. Currently the search is only applied to the changelog (if any.) I think extending the search for breaking changes and simply highlighting where a breaking change phrase occurs is probably enough.
    1 point
  30. ah, it need some clicks to finally get the list displayed: https://publicsuffix.org/list/public_suffix_list.dat
    1 point
  31. as far as I could see by a quick glance over the url provided by @fbg13, it is due to that G**gle has owned some .dev tlds, and that chrome (now) implements a HSTS. So best bet would be to change to .local what never will change to become a public tld. Or you installs LetsEncrypt on windows. (not really) Edit: ok, you were faster in reading than I was in writing.
    1 point
  32. A better solution IMO: before changing pathes, install PagePathHistory. This one does it automagically for you, without the need of an (optionally error prone) extra step. It is a core module that only needs to be installed: You will find it in the admin under: modules -> core-tab (-> section Page) PS: the great Jump-Links module from Mike is the tool when it comes to handle links from earlier sites / cmses and such stuff. But once you runs a PW site for the first time, you should enable PagePathHistory, IMO. Only exception are sites that programatically create, modify and delete a high amount of pages / urls. But for all others, I enable this by default.
    1 point
  33. That just feels a bit too impractical, because they involve ssh tunneling and open a single file, out of the vscode interface. I think I found what I'm looking for but it's not released yet: https://code.visualstudio.com/updates/v1_17#_preview-remote-file-system-api This let's you navigate the remote server as if it was local.
    1 point
  34. I just bought Crysis (never played it!) and MotoRacer (oh the good memories...). Thanks for the tip @FrancisChung!
    1 point
  35. Picked up grim fandango yesterday! Got Oddworld: Abe's Oddysee for free a few months back. Use emulation station + retroarch for those Megadrive/SNES/Gameboy/MAME/PS1 games. Love me some retro gaming!
    1 point
  36. I see the point, but I would personally expect a page /product-categories/ and the same at /skin-concerns/ which lists the actual menu items (in the right sidebar) but if they're not there by design then URL segments are win
    1 point
  37. Same here, if someone tells the recommended format for version numbering I'll stick to that in my modules.
    1 point
  38. Im not fixed with this format. I can change to the more common format if that helps out.
    1 point
  39. Sadly a lot of the new features can't be turned off, including this one, but we have to keep upgrading to stay current with security fixes. Not sure why that was forced - it's not now so you can change it
    1 point
  40. just a quick sidenote to google pagespeed insights and pingdom... i analysed a page today by curiosity because the images where loading slowly... devtools showed that the frontpage loaded 19,8MB (wordpress, what else...); pagespeed insights sais 80/100 "needs work". so i checked another site from some days before which i knew got 22/100... this one has 9,1MB for the frontpage... pingdom at least has the amount of seconds for load time and shows a percentage of slower websites... but still the 20MB site (pingdom said it are even 28MB) is faster than 38% of the tested sites... seriously?! ok, i get it... but jquery with its 84kB is too huge for the modern web
    1 point
  41. Ok guys, I got some REALLY nice results today @dragan sorry, I was unclear in my previous post... I had to leave to a christmas party So here are some explanations and the new results: Table with 10.000 rows without cache: 400ms (see the screenshot) Table with 10.000 rows with cache: 200ms The key was to get the data directly from the database. Of course I knew before that this possibility exists, but I didn't know how to solve the problem of multilanguage and returning complex data (like $page->parent->title for one column) and still keep the setup of a table simple and straightforward. Now I found a great way and I'm really eager to start working on this What I meant by "stay on the client side" was, that I want all the data get transferred to the client and then rendered by datatables. The other option would be to use ajax pagination and load only junks of the data to the client. But having all the data on the client is a huge benefit for manipulating, filtering, sorting, charting etc.; and you where right about my "cache" wording: I'm talking about a cached string holding all the data for the datatable. So if the cache exists it just loads the string - if not it creates the string from the database and then loads the data into the datatables. Any wishes/ideas for features that I should think of when developing the next version of the module? ...see the feature list in the first post
    1 point
  42. It turns out the culprit was that I misspelled the locale name in this translation file: /wire/modules/LanguageSupport/LanguageSupport.module Essentially, I had en_GB.UTF8 and es_ES.UTF8 instead of en_GB.UTF-8 and es_ES.UTF-8, that is , I forgot the hyphen. I know it's quite silly, but I'm posting this here just in case someone else runs into a similar issue.
    1 point
  43. @dragan you should be able to update the module to 1.1.7 and run the job from LazyCron.
    1 point
  44. @see: How to send more than one email
    1 point
  45. Do you have an email field in the form? Make sure that in this field settings under input -> verify email address is not checked. the form is counting this field as two fields instead of one and you will get that error.
    1 point
  46. Latest version is 0.5.1, which contiains Latte 3.0.0-dev, which means the module requires PHP 7 from now on. A new savetemp filter was added in v0.5 that allows saving temporary data. This can be handy eg. when creating an image variation in a src attribute, and would like to add a width/height attribute with the resized image data. Before savetemp you had to save the resized image to a variable first and use this variable in src/width/height attributes, now you can do it much simpler. You could use the "iff" or "setvar" macros too but savetemp is only a matter of adding "|savetemp" where you need it (even inside a filter chain).
    1 point
  47. This was helpful debugging one issue. In later PW-versions you have to add findOne into $options array to make it work: $selectors = new Selectors("template=blog-post, limit=5, sort=name"); $pagefinder = new PageFinder(); $options = array('returnVerbose' => true, 'findOne' => false); $sql = $pagefinder->getQuery($selectors, $options)->getQuery();
    1 point
  48. None that I'm aware of. Of course you can always use PageFinder for this, but it's going to look a bit hacky: $selectors = new Selectors("template=blog-post, limit=5, sort=name"); $pagefinder = new PageFinder(); $options = array('returnVerbose' => true); $sql = $pagefinder->getQuery($selectors->getArray(), $options)->getQuery(); // .. and so on, depending on what exactly you're looking for
    1 point
  49. That's unexpected. I have no idea what that would be. Doesn't sound like something coming from ProcessWire. I agree with everything Soma and 12345J said. When you get a "destinationPath is not writable" message, that only comes as a result of a permission issue. 12345J's suggestion was just to rule out the possibility that destinationPath isn't what we think it is for one reason or another, as well as to point out what the directory is so that we know what we're troubleshooting. But if you aren't even getting an error message when changing to his suggested code, that's a bit unusual. Why don't you just try changing it to this temporarily: if(!is_writable($this->destinationPath)) die($this->destinationPath . " is not writable"); That will halt execution and give you the message indicating exactly what directory isn't writable. Most likely there is a permission issue affecting the directory due to some change at the server or a site migration that didn't retain permissions. If you have shell access, a simple way to resolve it would be this: cd /your/web/root/ chmod -R og+rw ./site/assets If that doesn't do it, or you don't have shell access to do that, then I'd suggest creating a simple test script that you can use to help resolve it without having to upload an image every time. Place this in your web root in a file called test.php: /test.php: <?php if(is_writable('./site/assets/files/1/')) echo "Writable!"; else echo "NOT writable!"; If you know the ID of your page, replace the "1" in the path above with the ID of your page. For instance, ID 123 would be: ./site/assets/files/123/
    1 point
×
×
  • Create New...