This lesson provides a high-level overview of packages - including their purpose, structure, and some additional related concepts. We will also highlight how packages are different from plugins and similar concepts in other systems.
At their core, Marketpath CMS packages are simply configurable collections of assets (code and content) that get copied for re-use across multiple sites. They are authored on one site (the source site) and then installed on other sites. In contrast to the common cenception of plugins, packages do not enable third-party code to be run inside Marketpath CMS - which drastically increases the security, stability, and performance of our systems while still enabling sites and users to share solutions and build on each others work.
The purpose of packages is to allow for rapid website development by enabling code and data reuse and providing an easy update mechanism across sites.
By placing data and code inside a package, it can easily be copied to other sites without having to deal with third-party solutions or crazy workarounds. Because assets are copied and mapped to the current site, they function as though they were build direclty on the site they are installed on. In part, this means that they may be viewed, configured, modified, and even deleted by administrators of that site. However, they still maintain a permanent link back to the original package so that udpates to the original package can easily be applied when desired.
If all packages did was create a one-way copy of data and code from the source site to the target site it would still be helpful but then making updates to existing sites would be a nightmare. That is why Marketpath CMS packages also have the ability to apply updates to sites - which may be done either automatically or manually. This may be used internally for updates to a suite of sites (eg: maintaining a common multi-site menu and banner between sites), to add new functionality and features to a template (eg: improved accessibility attributes for a slideshow widget), to fix a bug with a package (eg: incorrect URL decoding of search parameters for a search page), or for a variety of other purposes.
Please fill out the form below with your feedback or any questions you may have after working through the "About Packages" lesson.