Fountain

Changelog

v1.0.0-beta

  • Upgrade to Kirby 5
  • Upgrade to python-fontbro 0.25.0
  • Dockerfile updates, please run docker compose up --build
  • Changed plugin/package name, to avoid potential confusion. From "andreasnymark/fountain" to "nymarktype/fountain".
  • Changed webhook urls, in line with Paddle wording:
    • webhook/paddle/completed is now webhook/paddle/transaction
    • webhook/paddle/refund is now webhook/paddle/adjustment
  • Controllers for cart and checkout moved to page models.
  • Controllers for login and font-index moved to page methods and models.
  • Controller for account removed and handled via page.render:before and route account-login.php.
  • Security enhancements:
    • Implemented Content Security Policy (CSP) with nonce support for inline scripts.
    • Added CSRF protection and input validation/sanitization.
    • Improved data escaping for user inputs.
  • Full support for only variable font products.
  • Font template removed, never used since url redirects to font family.
  • New classes PaddleTransaction and PaddleAdjustment replace Paddle helpers
  • Notification key completed renamed to transaction
  • Separated site methods for better code organization
  • Implemented sales data, access to authorized panel users
  • Improved error messaging and documentation
  • Code cleanup including proper PHP file formatting (removing closing tags, newlines)
  • Enhanced webhook validation and field handling
  • Method toLinkRel() is now getLinkRel()
  • Method toFontFace() is now getFontFace()
  • Various refactoring and bug fixes

Cart template

  • $fontfiles from controller is now $page->fontfiles()
  • $cartItems from controller is now $page->products()
  • $cart from controller is now $site->cart()

Font-family template

  • $fonts from controller is now $page->fonts()
  • $licenseType from controller is now $site->licenseType()
  • $bundles from controller is now $page->bundles()

Font-index template

  • $fonts from controller is now $page->fonts()

v0.0.1-alpha

  • Initial alpha release.