Base Plumrocket extension for M2 ### Abstract Classes: * `Model\OptionSource\AbstractSource` - for creating system config sources * `Setup\AbstractUninstall` - for creating uninstall scripts; ### Utils * `DeviceDetectInterface` - provides isMobile and isTabled methods * `Model\ConfigUtils` - all what you need to read configs * `Model\Utils\HtmlTag` - regex based tool for editing HTML tags ### Frontend #### Themes We add classes to `` and layout handles depend on a current theme. It simplifies adding support of different themes, add separate styles or event separate layouts for each theme. **Themes support** First, extension adding two layouts handles of current theme, eg: 1. `pl_thm_smartwave_default` 2. `pl_thm_smartwave_porto_default` Second, two classes to body: 1. `pl-thm-smartwave` 2. `pl-thm-smartwave-porto` #### Catalog `ViewModel\Catalog\CurrentProductRetriever` - alternative of using deprecated registry ### System config #### Layout handles Extension adding two handles to each plumrocket configuration. 1. `pr_system_config_edit` 2. `pr_system_config_edit + section_id` e.g - pr_system_config_edit_pr_cookie