Jump to content

ryan

Administrators
  • Posts

    16,714
  • Joined

  • Last visited

  • Days Won

    1,515

Everything posted by ryan

  1. Yes, planning on this. May not be in the initial public/dev branch version though. Most definitely. I think that part of it should already work, but have not spent time testing it yet. That's probably one of the next things I'll be testing here, as this would be needed before adding it as a core module. It will work like the existing template/field import, i.e. you'll be able to un-check certain updates that you don't want to occur. Though for applying granular updates, the JSON copy/paste is really nice, as you can also just modify the JSON directly too. Not planning to pursue that. This is purely about page import/export. If it needs a particular Fieldtype module to be present in order to import a field, it'll let you know of the prerequisite. The info about required Fieldtypes are stored in the export, so that the import can look at that before attempting import. This one has already been in the core for awhile. See Setup > Templates, then see the Export/Import buttons at the bottom. We have the same for fields as well.
  2. This week we've got more to tell (and show) you about our upcoming page export/import feature, along with several screenshots of the progress: https://processwire.com/blog/posts/processwire-3.0.68-and-more-on-page-export-import/
  3. @Macrura looks like a could have saved a lot of time here if I'd found your module first, sounds like we were after the same thing, except that you were well ahead of the curve on this. Right down to the Selectize library even. I started working on this after the post a couple weeks ago detailing how to handle multi-language with images, and feeling like an idiot for not even checking to see if someone had built this already. I ended up modifying the Selectize library because I couldn't get it to work quite how I wanted to for a couple of instances. Like when doing the createFilter, where you only allow certain tags, if you hit enter and the tag wasn't allowed, it would submit the form and save the page, rather than just refusing the tag. There were a couple little things like that I had to tackle, but otherwise it's pretty close to stock. To answer your questions, I didn't add support for Selectize skin, and instead modified the default style to be independent of color palette so that it would work equally well regardless of admin theme. I just thought the other theme colors weren't mixing well with our admin themes. As for interference, there may be. I don't know a good way around it other than to check if Selectize is already in the core, like if(is_dir($config->paths->JqueryUI . 'selectize')) { $modules->JqueryUI->use('selectize'); } else { /* selectize not present */ }. But since your module came first, perhaps a good route would be for the core to detect if your module is present and skip over the built-in tag stuff when it is? Yes, the tags can be limited in the field settings. No it can't be changed per-template yet, but that's simple, I'll add that. @matjazp I'm not sure I understand the question? At least, I don't have to save a page before I can add tags, but if you think there's an error let me know steps to reproduce.
  4. This week's version includes some helpful UI updates to the tags feature available in our File and Image fields, which we'll be taking a closer look at in this post. Like many versions, this also includes some other updates consistent with submitted GitHub issue reports. Read on for all the details… https://processwire.com/blog/posts/processwire-3.0.67-upgraded-file-and-image-tags/
  5. We aren't using a load balancer for this processwire.com server (just a single Amazon instance). But for the sites where we are (and running PW), there is a shell script that syncs /site/assets/ and /site/templates/, across the instances. I don't know exactly how it works, but can find out more. I know it runs every 30 minutes (cron job) and whenever a change is detected. Note that it also specifically excludes /site/assets/cache/ and /site/assets/sessions/, as those vary between the instances. Also important, is that when it comes to using the PW admin, we setup a separate hostname for that purpose (admin.domain.com) that always hits the same instance (which we call the "A" instance). This is the instance that the shell script considers the master when it comes to syncing files. That way, any changes that occur to the synced files always originate on the A instance. There is a setting in AWS that lets you lock a hostname to a specific load balanced EC2 instance. Then we keep any editing locked to that hostname by adding this to /site/templates/admin.php: if($config->httpHost != 'admin.domain.com') { $session->redirect('https://admin.domain.com/processwire/'); } And we keep non-authenticated requests out of the admin hostname by having this in the /site/templates/_init.php file ($config->prependTemplatefile setting): if($config->httpHost == 'admin.domain.com' && !$user->isLoggedin()) { $session->redirect('https://www.domain.com' . $page->url); } This ensures search engines don't get in and start indexing another copy of the site on the admin hostname.
  6. I don't think it'll be an issue for this case because the words may be the same, but the case is different. But there's actually another function in the posted version called __value('name'), which is what you can use if you prefer it. It returns whatever bit of text has the given name, regardless of what kind it is. However, it's pretty easy to avoid these kinds of collisions even without the __value() function.
  7. This week we’ve got ProcessWire version 3.0.66, and this post takes an in-depth look at the new “Functional Fields” ProFields module, just released today… https://processwire.com/blog/posts/functional-fields/
  8. This week we’ve got a new multi-language email field, a tutorial on how to use file/image files as multi-language fields, plus we introduce a new and unique ProFields module that’s in the works. https://processwire.com/blog/posts/processwire-updates-and-new-field-types/
  9. This week’s core version on the dev branch includes a lot of small fixes and improvements. We’ve also got a new multi-language URL field available this week as well. https://processwire.com/blog/posts/processwire-3.0.65-core-updates/
  10. I actually think for this module the client expressed interest in us releasing it available for others to use once it's finished. I will confirm though. I used the process outlined on this page (link) to do a lot of it, though admittedly there was also a lot of stuff to figure out with some trial and error.
  11. This week we take a closer look at the useful new page export/import functions that we’re currently building into the core: https://processwire.com/blog/posts/a-look-at-upcoming-page-export-import-functions/
  12. I just returned back in town about 30 minutes ago, after being out of town with the family most of this week. As a result, I've got no blog post for this week. I'd hoped to at least get the email newsletter out, but unfortunately didn't have the necessary internet access to do so. Thankfully back online now. I'll be sending out a double issue of the newsletter next week. Hope that everyone had a good week and has a great weekend!
  13. This week we've got a great guest post from Alex Capes. Alex recently worked with design agency Human After All to build a website for Canongate, a leading independent book publisher. This post discusses the highlights, challenges and successes in building this impressive ProcessWire-powered site. I was really impressed with this site, and I think you'll like reading about it. https://processwire.com/blog/posts/building-canongate/ Next week I'm going to be out of town for much of the week so likely won't have a blog post next Friday. If anyone is interested or has ideas for another guest post, please drop me an email. Thanks.
  14. Are the photos taken with the phone, or does it happen with any photo uploaded from the phone? One thing about client-side resize is that I think resized versions are more like plain jpegs, rather than ones that include a bunch of exif meta data that may appear in the original. Perhaps the visible difference in the photos is due to something in the meta data (like color profile) rather than the pixels. On the other hand, maybe it's some difference between Android 6 and 7.
  15. @Ivan Gretsky Thanks for all the kind words! @bernhard I tried to duplicate the issue here on my Android phone (Nexus 6, Android 7.0, using Chrome) and do not see the effect you are seeing. In my case, the resize was identical to the one tested on desktop (OS X, Chrome). It looks like in your case, the one tested from your phone went a lot darker. I have a feeling it's got something to do with color, curve, gamma or level adjustments being applied by the phone (?) but curious to know what phone specifically, and what browser?
  16. Client-side image resizing has been on our roadmap for awhile, and this week we've got it ready on the dev branch in version 3.0.63. People expressed interest in this feature in the comments to last week's post, and I promised to give it a closer look sooner rather than later. After getting that closer look, and doing some research, I realized we could get in this week's version. After using it now for a couple of days this week, I think people are really going to like this feature, and it works a lot better than I had originally guessed it could. https://processwire.com/blog/posts/processwire-3.0.63-adds-client-side-image-resizing/
  17. Working with PNG and GIF now too. Looks really interesting! I'm impressed with how far you've taken this already. Is this a fairly common need? (chunked uploads). I'm not sure I've come across a case where I would have used this on a site before, but I imagine there are cases this could be a real life saver. Really cool libraries! Probably too much for our needs in the admin, but seems like a lot of great potential for modules here.
  18. I started experimenting this morning. It's not all that difficult to get going. Proof-of-concept up and running already, so should have this functional on the core dev branch this week hopefully. (note: works for JPGs only)
  19. Most of our image/file features have been developed by the community rather than me, and I'm guessing this will follow a similar path. It doesn't seem to come up very often, but since you've mentioned it here maybe we'll have to bring more focus to it. I'll try to get a closer look this week to get a better idea of when we might be able to get more momentum going here. I do agree it would be a nice thing to have sooner rather than later. Also, since you quoted both 2016 and 2017 roadmap, it's important to note that this is a roadmap. It is a list of goals, it is not a contract of promises. We never expect to be able to accomplish all the goals, but feel it's important to have them nevertheless. Always good to aim for more rather than less. What doesn't get completed in one year still stays on the roadmap for the next year, unless it's determined it shouldn't be for some reason.
  20. Speaking for my modules only, I'm marketing these as turn-key modules, not as API tools. With the exception of the ProfilerPro module and Likes modules, the Pro modules that I develop were never intended as primarily API programming modules. They are modules that, outside of output generation, are meant to be largely turn-key, without little or no coding needed. It is true that you can use them at the coding level to do lots of things, they have an API and hooks available, and we could write an encyclopedia worth of content to cover it all. And it's also true that there are a few people, perhaps 5% of the users, that pursue this kind of stuff with these modules (especially Robin S., Adrian, LostKobrakai). I think that's great, and I'm happy to support that for those that are interested in using them that way, and have been for a long time via the support boards. This is a welcome and valuable audience for these modules, but not the primary or intended audience. The intention with most of the Pro modules is to provide things you can install and start using, and not have to code around. The documentation is consistent with the audience and intention of the modules. For those that want to get into the code side, I welcome it, but prefer to support them via the support board and focus in specifically on their needs. Though in the ProFields modules we do cover a lot of API side stuff too. The code of the modules is also well documented with phpdoc as well, making it handy in an IDE environment. If I develop a module intended primarily for API usage in the future, then of course the approach would be different. But because that doesn't describe my current Pro modules, I prefer to support people individually when they want to pursue unique needs that might require additional code, as everyone's needs are slightly different. That's beautifully put together– joshuag is an amazing designer and front-end framework developer, and there's no way I could ever compete with his skills in those areas. Sorry about that, but that's just reality. I can make great modules, but I'm far more developer than designer and marketer. I gave up trying to be a designer long ago. Also should mention though that what he's marketing clearly has a larger API-side than what's intended for any of my modules. And I agree he's outlined everything really nicely. I feel that I covered everything about the product pretty exhaustively. What do you think is lacking? https://processwire.com/api/modules/lister-pro/ Actions are just one small part of ListerPro, but it comes with seven actions, including an action that's a template for creating your own. Also why the surprise (?), the ListerPro page outlines all of the seven actions here. Have you seen this? https://processwire.com/api/modules/profields/ I don't use this one very often, and may delete it. It started back before we had an on-site store, so isn't really needed anymore, as it's been replaced by our store. They are not outdated. As far as the information goes about the modules, they are fully relevant and up-to-date. Though I should mention I always try to provide more than I market, and feel this is a good thing. I like for people to feel that they got something more and better than what they expected, with everything I do.
  21. This week we’ve got ProcessWire 2.8.62 (corresponding to 3.0.62 master), a look at some current work-in-progress, and some nice momentum in ProcessWire usage and market share. https://processwire.com/blog/posts/new-2.8-version-current-projects-and-pw-usage/
  22. Peter, it sounds like you might have an older version of the ProcessWireUpgrade module. It had a bug in it that PHP versions prior to 7.x appear to have ignored, so it doesn't show up except in PHP 7.x versions. If you grab the current version of the ProcessWireUpgrade module and replace the files in /site/modules/ProcessWireUpgrade/, that should fix it. Alternatively, you could just delete the module files and install the upgrade later. If neither of these fixes it, try deleting the /site/assets/cache/FileCompiler/ directory as well.
  23. While a relatively quiet week due to travel, the 3.0.62 version has been merged from dev to master, plus a few other small updates in this week's blog post: https://processwire.com/blog/posts/pw-3.0.62-master/
  24. This post covers what’s in ProcessWire 3.0.62 and provides an in-depth look at the final spec of markup regions, how they work, and how to use them. https://processwire.com/blog/posts/processwire-3.0.62-and-more-on-markup-regions/
  25. Hi Fred, here's some code that might be helpful. Also, make sure page numbers are enabled on the page's template (URLs tab in Setup > Templates > any-template). $limit = 10; $items = $pages->find("template=something, sort=name, limit=$limit"); $total = $items->getTotal(); if($total) { // there are results present $numPaginations = ceil($total / $limit); $pageNum = $input->pageNum(); if($pageNum == $numPaginations) { // you are on the last page of results } else if($pageNum == 1) { // you are on the first page of results } else if($pageNum > $numPaginations) { // beyond the last page, do a redirect or a 404 } else { // somewhere in the middle of the paginations } } else { // there were no results on any pagination } Also see the PaginatedArray type (PageArray is a PaginatedArray): http://processwire.com/api/ref/paginated-array/
×
×
  • Create New...