Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/16/2019 in all areas

  1. Here I'm introducing FlipFall Magazine, our multi-topic blog. It used to run on Wordpress but we recently switched it to ProcessWire. This was done the usual way we do it when converting our sites: install ProcessWire in a subfolder of the original Wordpress site under a hard-to-guess name, set up the new site there, then move content over manually, inspecting and updating each article as needed. After the ProcessWire site was ready, when we un-installed the Wordpress one and moved the ProcessWire site up one level to the document root, and... done. We used the W3CSS framework because it handles the responsive breakpoints so well (no extra work for us ?), and it tends to default to a clean modern look. We wanted full control over the back end of the site and do customized things without having to hire a developer. As FlipFall has grown, the ability to have in-house back-end control has become even more important. Case example: Ad partners - we now can quite easily, if we wish, place different ads on different topics on this blog at a moment's notice - no need to hire a developer. Changes like this can be implemented in-house right away. The fact that we can easily incorporate this sort of thing is really nice when we're talking with potential ad partners. Helpful features of ProcessWire during this experience: The ability to export and import fields in PW was key here. We had a few other article-style sites I had done in PW recently, so having the same types of templates was very helpful. We were able to export fields and templates from our existing sites and import into FlipFall as a starting base point. No need to re-invent the wheel here! Another helpful ability of PW was when we were dealing with the categories. We built the site without category templates (but with the category page field), then added the templates in later as needed - no disruption. In other words, a template-less page field worked perfectly for the categories until we needed the template, then we just created the template. Not every feature of the site needs to be thought out in absolute full beforehand, some can be added in later as needed. Very extensible and convenient. Internal links within blog posts worked well using the page select option in the link button on the editor. When moving out of staging folder and into document root, the links auto-updated, which was nice. Creating new articles is a breeze, because under PW our fields are now customized for our needs: we created all of the fields we need and none of the ones we don't. Again, this is unlike most blogging CMS's, where they try to guess what you want (and usually get it wrong). Even for people who are solely doing blogs/article sites, I feel that ProcessWire is a much better option than most blog-specific platforms, because of PW's flexibility. The only thing I miss about Wordpress is the ability to auto-schedule post publication, which for the serious blogger is important. For example, there were some occasions on some of our other blogs where we needed to schedule posts to auto-publish at 3:01am Eastern Time to allow a time-sensitive post to come out as early in time of day as possible on publication date (3:01 am US Eastern time ensures it's that same day 12:01 am on Pacific time). We were delighted to see that ProcessWire is much, much lighter on resources of the hosting environment than the same site on Wordpress - we could see this empirically on our web hosting stats before and after the switch.
    9 points
  2. SnipWire - Snipcart integration for ProcessWire Snipcart is a powerful 3rd party, developer-first HTML/JavaScript shopping cart platform. SnipWire is the missing link between Snipcart and the content management framework ProcessWire. With SnipWire, you can quickly turn any ProcessWire site into a Snipcart online shop. The SnipWire plugin helps you to get your store up and running in no time. Detailed knowledge of the Snipcart system is not required. SnipWire is free and open source licensed under Mozilla Public License 2.0! A lot of work and effort has gone into development. It would be nice if you could donate an amount to support further development: Status update links (inside this thread) for SnipWire development 2020-07-03 -- SnipWire 0.8.7 (beta) released! Fixes some small bugs and adds an indicator for TEST mode 2020-04-06 -- SnipWire 0.8.6 (beta) released! Adds support for Snipcart subscriptions and also fixes some problems 2020-03-21 -- SnipWire 0.8.5 (beta) released! Improves SnipWires webhooks interface and provides some other fixes and additions 2020-03-03 -- SnipWire 0.8.4 (beta) released! Improves compatibility for Windows based Systems. 2020-03-01 -- SnipWire 0.8.3 (beta) released! The installation and uninstallation process has been heavily revised. 2020-02-08 -- SnipWire 0.8.2 (beta) released! Added a feature to change the cart and catalogue currency by GET, POST or SESSION param 2020-02-03 -- SnipWire 0.8.1 (beta) released! All custom classes moved into their own namespaces. 2020-02-01 -- SnipWire is now available via ProcessWire's module directory! 2020-01-30 -- SnipWire 0.8.0 (beta) first public release! (module just submitted to the PW modules directory) 2020-01-28 -- added Custom Order Fields feature (first SnipWire release version is near!) 2020-01-21 -- Snipcart v3 - when will the new cart system be implemented? 2020-01-19 -- integrated taxes provider finished (+ very flexible shipping taxes handling) 2020-01-14 -- new date range picker, discount editor, order notifiactions, order statuses, and more ... 2019-11-15 -- orders filter, order details, download + resend invoices, refunds 2019-10-18 -- list filters, REST API improvements, new docs platform, and more ... 2019-08-08 -- dashboard interface, currency selector, managing Orders, Customers and Products, Added a WireTabs, refinded caching behavior 2019-06-15 -- taxes provider, shop templates update, multiCURL implementation, and more ... 2019-06-02 -- FieldtypeSnipWireTaxSelector 2019-05-25 -- SnipWire will be free and open source Plugin Key Features Fast and simple store setup Full integration of the Snipcart dashboard into the ProcessWire backend (no need to leave the ProcessWire admin area) Browse and manage orders, customers, discounts, abandoned carts, and more Multi currency support Custom order and cart fields Process refunds and send customer notifications from within the ProcessWire backend Process Abandoned Carts + sending messages to customers from within the ProcessWire backend Complete Snipcart webhooks integration (all events are hookable via ProcessWire hooks) Integrated taxes provider (which is more flexible then Snipcart own provider) Useful Links SnipWire in PW modules directory SnipWire Docs (please note that the documentation is a work in progress) SnipWire @GitHub (feature requests and suggestions for improvement are welcome - I also accept pull requests) Snipcart Website ---- INITIAL POST FROM 2019-05-25 ----
    4 points
  3. Are you aware that you can fully rewrite the UIKit admin theme? Just copy the wire/modules/AdminThemeUikit folder to site/modules/. The next time you load a page in the backend, PW will ask you which version you'd like to use. You can even choose if you'd like to use SASS or LESS, iirc. If that's overkill for you, you can just override paddings and margins if you write / load an extra admin.css. But the first thing you should consider, is to simply configure the admin theme via GUI @ site/backend/module/edit?name=AdminThemeUikit&collapse_info=1 And of course, PW lets you define borders, paddings, margins and background-colors on a per-field basis.
    2 points
  4. Seems like you have to install this permission first: https://processwire.com/blog/posts/processwire-2.6.15-makes-the-permissions-system-a-whole-lot-better/ (it's optional). https://processwire.com/docs/user-access/permissions/#page-hide It's under site.com/backend/access/permissions/add/ -> show system permissions
    2 points
  5. Maybe here?? https://github.com/processwire/processwire/blob/master/wire/core/Pagefiles.php#L409
    1 point
  6. Aha, thank you very much. I need this only for admin part. I found some old module that does exactly what I need PageListBetterLabels. It trows some errors but I fixed it. Again, thank you & pozdrav.
    1 point
  7. What do you need this for? Is it just for the backend, i.e. what you see in the page tree? If that's the purpose of your hook, you could use custom page list titles. There's a core method for that in advanced mode, and several modules.
    1 point
  8. Please post some code in here and let's see if we can help ?
    1 point
  9. Yes, for example the main slider on top here.
    1 point
  10. I've just re-read the previous posts and see that CLOSING ZIP actually happens after 0.0 seconds of operation. This is pretty unlikely since I expect some time for directory enumeration and packaging the first part. Can you send me that verbose log via PM?
    1 point
  11. Nope, that's the strange part. The other installs run the same PW versions, same file permissions, same PHP version.
    1 point
  12. I see. Learn a lesson. Thanks @Robin S Gideon
    1 point
  13. the if(false is my php replacement for #if 0 ?
    1 point
  14. ok, "no such file". No surprise, that re-opening and the package build fail. So I wonder why creation of the zip does not already throw an exception. Do you see that file on your server?
    1 point
  15. Sorry mate, missed this one. It is error 9. 2019-05-15 19:00:26: Unable to re-open ZIP (/home/xxxxxx-nl/webapps/xxxxxx-nl/public/site/assets/backups/2019-05-15_19-00-24-xxxxxx.nl.package2.zip): 9 When I disable that code block I get: 2019-05-15 19:04:00: - package build failed. 2019-05-15 19:04:00: - an error occured during package build. 2019-05-15 19:04:00: - an error occured while building the ProcessWire structure: /home/xxxxxx-nl/webapps/xxxxxx-nl/public/site/assets/backups/2019-05-15_19-03-56-xxxxxx.nl.package2.zip root: /home/xxxxxx-nl/webapps/xxxxxx-nl/public/ Array ( [filename] => 2019-05-15_19-03-56-xxxxxx.nl.package2.zip [folder] => /home/xxxxxx-nl/webapps/xxxxxx-nl/public/site/assets/backups/ [exclude] => Array ( [0] => /site/assets/cache/WireTempDir [1] => /site/assets/backups [2] => /site/assets/cache [3] => /site/assets/sessions [4] => %\.\d+x\d+\.[^/]+$% [5] => ) [extension] => Array ( ) [allowHidden] => 1 ) 2019-05-15 19:03:56: - package build failed. 2019-05-15 19:03:56: - an error occured during package build. 2019-05-15 19:03:56: - an error occured while building the ProcessWire structure: /home/xxxxxx-nl/webapps/xxxxxx-nl/public/site/assets/backups/2019-05-15_19-03-52-xxxxxx.nl.package2.zip root: /home/xxxxxx-nl/webapps/xxxxxx-nl/public/ Array ( [filename] => 2019-05-15_19-03-52-xxxxxx.nl.package2.zip [folder] => /home/xxxxxx-nl/webapps/xxxxxx-nl/public/site/assets/backups/ [exclude] => Array ( [0] => /site/assets/cache/WireTempDir [1] => /site/assets/backups [2] => /site/assets/cache [3] => /site/assets/sessions [4] => %\.\d+x\d+\.[^/]+$% [5] => ) [extension] => Array ( ) [allowHidden] => 1 ) Thanks again! I currently use 1.3.11.
    1 point
  16. When output formatting is off the value of a Images field is a Pageimages object (WireArray). So you have to do: $page->pageBanner->first()->focus(10,10);
    1 point
  17. Another solution is to use Analytics and use their API and present the data to your client in Process Module.
    1 point
  18. Outgoing link tracking is possible with Google Analytics, Google Tag Manager and Piwik. You could also create masked links with the Jumplinks module. It counts clicks on each Jumplink. You could combine these two methods to track a much broader audience.
    1 point
  19. Yes, it is about how you build the selector. When you are dealing with input coming from a search form you usually build up the selector in a string variable $selector, adding pieces to $selector for each populated GET variable. But before you try that start with something simpler. Rather than building up a selector string dynamically, experiment with writing out different selector strings and supplying the selector to $pages->find() to see if you get back the pages you expect. The selectors documentation is here: https://processwire.com/docs/selectors/ Each "clause" you add to the selector works with AND logic by default: field_1=foo, field_2=bar This matches pages where field_1=foo AND field_2=bar. For OR logic with different fields and values, check the documentation for OR-groups. (field_1=foo), (field_2=bar) This matches pages where field_1=foo OR field_2=bar. Regarding OR conditions for multiple values in a single field, or multiple fields with a single value, see the following sections: https://processwire.com/docs/selectors/#or-selectors1 https://processwire.com/docs/selectors/#or-selectors2 When you have sorted out what kind of selector you need to match the pages you want you can move on to building up the selector dynamically according to your GET variables.
    1 point
  20. Like this PW Marketplace? I get the idea of a marketplace, like the ones from Envato and similar, but to be honest: No. There are already really nice community projects out there: PW Recipes, weekly.pw, modules.pw, isit.pw, PW Review and at least another I know about which isn't public yet. Most commercial modules have their place in the modules directory, themes marketplaces came and are gone now. My advice... just start and try. Fingers crossed! Btw. Patreon isn't the best option for things like that. Even PayPal has better conditions. ?
    1 point
  21. I fixed this for you ? tbh though, people were using Modernizr for years, and still use polyfills and whatnot, that bloats the HTML tag with countless pseudo classes, just so the tools know if their polyfill function should do anything this way or another. And with tools like Angular, Vue or React, you have inline crap all over the place... ng-this, ng-that, CSS written in JS(X) etc.
    1 point
  22. As long as the language switcher is concerned: if you only have two languages, then you can do this in your template file: <a href="<?= $page->localUrl($languages->findOther()->first()) ?>"><?= $user->language->name == "default" ? "EN" : "HU" ?></a> Regarding translatable strings, I recommend this method (but in the forum you can certainly find other methods too in order to get inspiration from) :
    1 point
  23. @kongondo you should consider crowdfunding this. Kickstarter or whatever. The community needs an official or reputable shopping solution and what you’re doing is so much work without a guarantee that it will pay off for you.
    1 point
  24. There is no slider that fits for all, period An interesting one is CSS Fadeshow: https://github.com/alexerlandsson/css-fadeshow/blob/master/README.md
    1 point
  25. Why on earth would average business owner care if the website design is custom made or based on high quality template? I don't think they would like to pay extra for custom made car, much rather buy the Toyota hiace and add some nice looking paintings on it. Many people buy ready designed houses, instead of asking something just for them. Price matters. It's entirely different thing when the business is online or the main marketing channel is websites (and clients can be from all around the world). And of course if client just has money and wants something just for them (emotional buying).
    1 point
×
×
  • Create New...