Contents

Appendix C. Developer Reference

JLayouts You Can Override developer

The small layouts in components/com_paddlesubs/layouts are overridden in templates/template/html/layouts/com_paddlesubs/. They are rendered inside a view, and every site view renders inside <div id="paddlesubs">: keep that element in a view override, since the copy of Bootstrap that Load Bootstrap loads styles only what is inside it.

Layout$displayDataKeep
product.priceoption (a PriceOption), headingTag, buttonTextAn element with data-paddlesubs-price-preview and data-price-id for the amount, and one with data-paddlesubs-checkout, data-price-id and data-product-id for the button. For a paid trial's amount, the element with data-paddlesubs-trial (trialLabel(), trialAmountLabel()).
product.detailsname, description, imageUrl (each from Paddle; the last two may be null)Nothing in particular.
product.accountuser, returnUrlNothing in particular.
products.gridview, items, headingTagEach card's price element, with the class js-paddle-product-price and data-price-ids, which products.prices fills, inside the #paddlesubs element the prices layout follows. The description has the class ps-clamp-3 (stylesheet asset com_paddlesubs.text, which the layout loads), which cuts it to three lines.
products.pricesNoneThe call to PaddleJs::useProductPrices().
checkoutcomplete.actionsaccessSubscription (once the webhook has written it) or selectedItem (the product and price bought, meanwhile)Nothing in particular: it is the place for next steps after a purchase, such as a download link.

Read the original layout's docblock for its exact variables before overriding it. Whole views (tmpl/view/default.php) are overridden in html/com_paddlesubs/view/ as usual.