Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Mikie last won the day on December 6 2018

Mikie had the most liked content!

Community Reputation

163 Excellent

About Mikie

  • Rank
    Sr. Member

Profile Information

  • Gender
  • Location

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Just noticed the class name up the top in the blue banner as a sort of title. I still think the class name needs to be spelled out in the module info panel on the right. If you are new pw developer and see the instructions in "Add Module from Directory" section of the admin then you will visit a module page and look for the class name.
  2. Heya, love to see module site in the refreshed look! Am I something here... where is the module class name and version compatibility info listed in each module? There is the user modules list on the left hand side which seems to output class name, but it quite hard to copy from and not noticeable at first.
  3. I've tried using Tailwind but the verbosity of the classnames was a killer for me. Then I tried using tachyons which I much preferred but didn't like the lack of configurability. Tachyons (which came LONG before Tailwind) never pretended to be a holy solution for managing css, it was clearly defined as a quick way to get ideas onto the screen, with the view that you would slowly strip out all the utilities into regular css as your design system evolved. On the flip side, what tailwind did right for me was the theming system, however as a diehard stylus user I found it frustrating I couldn't use the theme variables in my custom stylesheets. Based on the above, I wrote my own utility functions in stylus that could 1:1 replicate tachyons or tailwind (or a mix of the two / whatever you wanted), with a theme defined in stylus hashes that could then be used throughout my custom stylesheets, plus mixins that replicate a lot of the utilities, eg px(2). Even still, I found that generally I would generally only end up using a few of the utilities like spacing, text-align, display etc. These days I follow a methodology mainly based on https://rscss.io and https://piccalil.li/cube-css/, with some ideas from https://github.com/ahmadajmi/awesome-itcss thrown in. I have a theme that defines defaults, still use some utility classes whilst developing, but basically break things up into: - theme (this is very simple similar to https://github.com/hankchizljaw/gorko, generally it just has: colours, breakpoints, media queries, fonts, spacing scale ) - mixins (I use some flex-box grid, media query and spacing mixins and that is about it) - base (resets, classless base styles etc) - elements (semi utilities for type, links, buttons, input fields, sort of like bootstrap) - components (pretty much everything is a component following rscss conventions) - utilities (rather than a separate utility stylesheet I now output the ones I want to use at the end of stylesheet and slowly strip them out) Currently this is working really well for me although I am sure it will continue to evolve. One thing I also do is try never to change classnames with javascript, but instead use data-attributes. This way you can very quickly parse what javascript is doing in your html.
  4. Mikie

    Hanna Code

    That is actually part of what confused me. What that says is the opposite of my experience as outlined above, ie $page in the Hanna Code snippet wasn't scoped to the page with the hanna code.
  5. Mikie

    Hanna Code

    Just writing all that out made me wonder if render accepts more arguments, which it does: https://github.com/ryancramerdesign/ProcessHannaCode/blob/5801578889bad3786e951427e64f3bc2146d3ba4/TextformatterHannaCode.module#L230 Passing $p from example above as second argument works: echo $hanna->render($p->body, $p);
  6. Mikie

    Hanna Code

    Thanks @kongondo I saw that... when I try that from a script that is bootstrapping processwire the $page variable is not available in the Hanna code snippet. Eg when visiting "test.php" in site root in the browser the below setup results in "Title: 404 not found', the $page variable populated to the Hanna snippet appears to be the 404 resulting from visiting test.php. "body" field content on page /path/to/page/ [[title]] /site/assets/cache/HannaCode/title.php <?php $title = $page->title; echo "Title: $title"; /test.php <?php include "./index.php"; $hanna = wire("modules")->get('TextformatterHannaCode'); $p = wire("pages")->get("/path/to/page/"); echo $hanna->render($p->body);
  7. Mikie

    Hanna Code

    Hi apologies if I have missed this previously. Can hannacode work from the api? Specifically I am trying to render email body templates from pages via a cli script, and need access to the page data.
  8. Hi, If you want stock management double check your PadCart module settings. Allow Negative Stock needs to be unchecked and pad_quantity needs to be selected in the Quantity Field dropdown and added to your product and / or product variation templates. The cart page can be any page you want, the basic example would be create a "cart" template and then create a "Cart" page using that template. Follow step 4 here for rendering cart https://www.padloper.pw/documentation/installing-padloper/ and see this https://www.padloper.pw/documentation/making-it-ajax/ for more info around the cart. Hope that helps.
  9. Just dropping in to say thanks for this module! Saving me soooo much time on a current job. 👍
  10. As far as I remember ProDrafts got an update at some point to work with RepeaterMatrix. Could be wrong but I feel it was in a blog post. Edit: here's the post, with caveats about auto-save https://processwire.com/blog/posts/processwire-3.0.75-and-a-new-version-of-prodrafts/
  11. Will second https://www.11ty.dev/ as an awesome static site generator, really great product. For a list of lots of options check https://www.staticgen.com/ Gatsby isn’t really a pure static site generator, it’s more a framework for creating progressive single page app websites with react. It has a heavy reliance on graphql and can handle server side rendering like next / nuxt / sapper. It would actually be pretty overkill to use gatsby just for a completely static site (ie one that doesn’t use a database of any kind). The power of these frameworks is data is pulled in from one or more sources at build time which is used to programatically create pages / populate content. This data can come from the file system, from a csv file, but mostly it is stored in a cms. There are lots of “headless cms” out there (I like to think of these as more cms as a service) that you will read about being used with gatsby. The most promising of these in my opinion is https://www.sanity.io/ which is a pretty amazing product. However there is nothing stopping you from using PW for this. 11ty makes it super easy to grab data from anywhere to use at build time (unlike gatsby where it all has to be ported into its own graphql instance), and if you wanted you could have all your content stored in PW, create some json api endpoints manually or using a module like the graphql one, and use that data to build a flat HTML static site with 11ty that you host on netlify or zeit. Obviously this requires rebuilds when content changes, and doesn’t allow much interactivity, which is where the more complex feature set of gatsby comes in... server side rendering etc. Another project I am really digging at the moment which I think more meets the topic of this post is https://saber.land/ If you are into vue definitely check it out.
  12. Also check out http://devilbox.org/ its cross platform, mature and actively developed.
  13. Interested in updates on how deep any of you went with Shopify PW integration. Like: What were the edge cases? How did you deal with users and auth? Did you set up CRUD for products directly in PW admin directly? Just finished one Shopify site and starting work on another, OMG the content management outside products in Shopify is a complete and utter disaster. I am really reticent to build this new store as a shopify theme simply because of how broken Shopify content management is... even the upcoming sections everywhere architecture seems wrong to me in lots of ways. Here are some of the more interesting things I have found: https://github.com/sellfino/sellfino Self hosted open source App Store with a content builder app that from my research is the only shopify app anywhere that offers a flexible content field (a la Repeater Matrix). https://github.com/ctrl-alt-del-world/midway Gatsby stater for shopify + https://www.sanity.io. Sanity is an amazing product with very attractive pricing but I wouldn't touch Gatsby with a 10 inch pole. https://saleor.io Seems very mature and capable but the massive install freaked me out since I have never used Django nor python much besides writing my own little sublime plugins. I can't really tell if this is meant for smaller merchants or massive enterprises. https://github.com/panoply/shopify-sync If you are developing a shopify theme this is a great little node syncing library so you can drop themekit and run whatever build system you like. Works a treat.
  14. Ah thanks for the heads up @bernhard I never got to play with them all I thought at least one of them let you edit. Sorry for the red herring.
  15. Hey, no offense but your client sounds like a real punish. Here is a simple definition of a relational database pulled from the web: "A relational database organizes data into tables which can be linked—or related—based on data common to each". In PW each field gets its own table in the db, and each of these tables starts with a "pages_id" column (the primary key) that "relates" the data in a row to a specific page. This is by definition an example of following the relational model in database design. If you are seeing empty tables in the db, that is because you have fields that have no data associated with them. Perhaps try cleaning up some of your unused / redundant fields. It seems that some of @bernhard 's amazing Rock modules might help here. Have a look at the below, and check the post on the original RockGrid module (the precursor to RockTabulator) for examples of how it can be used:
  • Create New...