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 recently started to build Vue SPAs with ProcessWire as the backend, connected with a REST API. Thanks to code and the help of @LostKobrakai (How to use FastRoute with ProcessWire) and @clsource (REST-Helper) I got it up and running pretty quickly and now have put all of it in a site profile for others to use. It includes the REST API with routing for different endpoints, JWT Auth and a simple Vue SPA which shows the process of logging in a user (nevertheless, you don't have to use the Vue part, the API will work on it's own). Check it out here: https://github.com/thomasaull/RestApiProfile I'm pretty sure, it's not the perfect or most sophisticsted solution, but it gets the job done for me… Feedback or Improvements are very welcome Update: This site profile is a module now: https://github.com/thomasaull/RestApi
    1 point
  23. This totally. If you install via npm you can use gulp to compile the scss. Create your own variables file, @import that, then @import whatever components you want, finally @import your custom styles. It's worth noting though, that although you can pull in 'just' a few components, on their own, these components are still a fair bit larger than a lean custom solution. I'm actually moving away from BS4 to Uikit 3 because it's more modular and I quite liked it after mucking around with the new admin theme. Hi @pwuser1 and welcome. Yes, css grid is responsive. Check out this pen (not mine): In all honesty, I wouldn't worry about css grid right now. It's just too new. Flexbox has only just gained enough browser support for me to switch over from floats (I loved bourbon/neat combo, alas, the new neat is still floats). But that combo gave me some super lean HTML markup,100% mixin based! No harm in learning it though for when it's ready for prime time, this is quite fun: http://cssgridgarden.com/
    1 point
  24. 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
  25. I'm using this one: https://marketplace.visualstudio.com/items?itemName=lukasz-wronski.ftp-sync I'm not 100% happy but it works most of the time. Searching through all files only works when you have all files on your computer. This ftp sync sucks for that part. I always zip everything and download it... much faster most of the time. Maybe the new duplicator module could help here... Another thing that I do is browsing the server over ssh via winscp and then just doubleclick the file. This opens the file on VSCode and on save uploads the new version.
    1 point
  26. 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
  27. 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
  28. +1 Bug report: https://github.com/processwire/processwire-issues/issues/452
    1 point
  29. 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
  30. 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
  31. Maybe not the best solution but you might want to export a profile and reinstall the system.
    1 point
  32. 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
  33. ah, it need some clicks to finally get the list displayed: https://publicsuffix.org/list/public_suffix_list.dat
    1 point
  34. 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
  35. I just bought Crysis (never played it!) and MotoRacer (oh the good memories...). Thanks for the tip @FrancisChung!
    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. I think you might be using the screen wrong. I tried that a long time ago and found it didn't really work. Edited to add: These new-fashioned LCD screens don't have quite the same kick as the old CRT monitors.
    1 point
  40. 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
  41. 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
  42. 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
  43. if that can reassure you, what you are experiencing here is normal and it has to do with php session locking mechanism. To be sure, you can do a simple test : - open the browser with a private "incognito" window and navigate to your website - open a normal tab window and start manually a duplicator job - then while the job is running, navigate your website with the incognito mode window You will see that you won't have issues and the navigation on the website is normal. Will test deeper LazyCron tomorrow. let me know if anything went wrong with the above
    1 point
  44. got some very good news on this (it feels like christmas for myself, because this made me some headache over the last months and the solution is quite simple and solves a lot of problems). I did some performance tests on a table with more than 10.000 rows and got the following results here on my local test environment (laragon + i7 @ 2ghz). rendering the table with javascript test-data works instantly (using deferrender option, did not try without) rendering the table with data coming from pw pages and 5 different fields takes around 16s single-language setup without caching takes around 5s to load multi-language setup without caching around 8s with markup cache enabled 180ms the screenshot shows a multi language table with 10.000 rows and 12 fields that loaded in 9,1s when building the cache. thats some really nice results, because it will make the setup even easier and it will even work with multilanguage wich I didn't know how to tackle before. my goal always was to stay on the client side, because there you have all the power of datatables: you have a powerful API to filter, sort etc the table and this plays perfectly well together with other clientside libraries like chart.js; my testcase showed that the search and sorting was also very snappy so I think it's definitely doable! It will be the first project after my master thesis and I may have something ready around 03/2018 I don't think that's a proper way to do this. I think there are only the 2 options: Release it for free (donations are always possible and welcome of course) without any support, documentation etc. or release it as pro module and provide proper support and docs. maybe @kongondo or @apeisa can share some of their experiences with us (or at least with me in a PM)?
    1 point
  45. @dragan you should be able to update the module to 1.1.7 and run the job from LazyCron.
    1 point
  46. Just basic test fields.. sometimes just some basic fields do break something. If I know that you use an email field with the checked option verify email address, it's pretty easy for me to submit a hotfix and exclude it from the counter. Thanks @maxf5 for pointing it out. You don't have to use the prefix at all. All fields which are added by the module will be prefixed – just to make sure the name has not been chosen yet. Please do not rename scf_website and scf_date because they are used for spam tests. The rest is up to you!
    1 point
  47. 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
  48. 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
  49. 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
×
×
  • Create New...