Skip to content

Commit 9fcecc1

Browse files
Docs: add descriptive alt text for Site Setup figure
1 parent 9590696 commit 9fcecc1

1 file changed

Lines changed: 0 additions & 163 deletions

File tree

docs/mastering-plone/add-ons.md

Lines changed: 0 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -17,166 +17,3 @@ Backend chapter
1717
For frontend add-ons see chapter {ref}`volto-addon-label`.
1818
1919
The creation of a custom backend add-on is explained in {doc}`voting-story/index`
20-
```
21-
22-
23-
Plone add-ons enrich the CMS by
24-
25-
- adding content types
26-
- adding behaviors with new fields, relations and other features for existing and custom content types
27-
- adding blocks to add elementary content snippets to a page
28-
- designing the layout
29-
- customizing the editor experience
30-
- adding content assembling features for overview pages
31-
32-
Plone 6 knows two groups of add-ons: add-ons for Plone and such for the frontend Volto.
33-
34-
Plone backend add-ons provide
35-
36-
- content types
37-
- behaviors to enrich content types
38-
39-
Plone frontend add-ons provide
40-
- new blocks
41-
- variations and enhancements of blocks
42-
- a theme to design the layout of a site
43-
- components independent of blocks like a dropdown navigation
44-
45-
Both can be coupled, if a frontend feature depends on a new content type, a new behavior or any other change needed in data structure.
46-
For example an add-on that has the goal to provide a bookmarking feature depends on a backend add-on that handles the storing of the bookmarks.
47-
48-
Have a look at the curated lists of add-ons:
49-
50-
51-
[Awesome Plone: backend add-ons](https://github.com/collective/awesome-plone/blob/main/README.md)
52-
[Awesome Volto: frontend add-ons](https://github.com/collective/awesome-volto/blob/main/README.md)
53-
54-
55-
56-
(add-ons-find-label)=
57-
58-
## How to find appropriate add-ons
59-
60-
It can be hard to find the right add-on for your requirements.
61-
Here are some tips.
62-
63-
- Make a list of required features.
64-
65-
- Find candidates on PyPI, npm or GitHub:
66-
67-
- curated list of [backend add-ons](https://github.com/collective/awesome-plone/blob/main/README.md)
68-
- curated list of [frontend add-ons](https://github.com/collective/awesome-volto#readme)
69-
- Python packages on PyPI: <https://pypi.org/search/?c=Framework+%3A%3A+Plone>
70-
- Plone add-ons on GitHub: <https://github.com/collective>
71-
- Plone core packages on GitHub: <https://github.com/plone>
72-
- Google (for example [Plone+Slider](http://www.google.com/?q=Plone+slider))
73-
- JavaScript packages on npm: <https://www.npmjs.com/search?q=Volto>
74-
75-
- Once you have a shortlist, test these add-ons.
76-
Here are the main issues you need to test before you install an add-on on a production site:
77-
78-
- Test all required features.
79-
Read but do not trust the documentation.
80-
- Check if the add-on runs on your required Plone and Python version.
81-
- Check if it is currently maintained.
82-
- Does it have i18n-support and is the user interface translated to your language?
83-
- Does it uninstall cleanly?
84-
A tough one.
85-
See <https://lucafbb.blogspot.com/2013/05/how-to-make-your-plone-add-on-products.html> for the reason why.
86-
- Check for unwanted dependencies.
87-
88-
- Once you found an add-on you like, you can ask the community if you made a good choice or if you missed something:
89-
90-
- Message Board: <https://community.plone.org>
91-
- There is also a talk that discusses in depth how to find the right add-on: <https://www.youtube-nocookie.com/embed/Sc6NkqaSjqw?privacy_mode=1>
92-
93-
- Either extend an existing add-on to fit your needs or create a new add-on that does exactly what you need.
94-
95-
96-
(add-ons-installing-label)=
97-
98-
## Installing Plone add-ons
99-
100-
We have two groups of add-ons: backend and frontend.
101-
102-
The training setup starts without any frontend add-on.
103-
Later on we will add features via a frontend add-on.
104-
See chapter {doc}`volto_addon` how to install a frontend add-on.
105-
106-
The training setup starts with one backend add-on `ploneconf.site`.
107-
Let's see how it is installed.
108-
109-
110-
### Making a backend add-on package available to Zope
111-
112-
First, we must make the add-on package available to Zope.
113-
This means that Zope can import the code.
114-
115-
A backend add-on is a Python package.
116-
Therefore we install it with pip.
117-
118-
Look at the {file}`requirements.txt` file.
119-
You add a package to the configuration by adding a new line containing the package name.
120-
121-
If the add-on is not released on [PyPI](https://pypi.org/), we tell Zope where to find the package on `Github` or another repository platform by including the necessary information in {file}`mx.ini`.
122-
123-
```ini
124-
[training.votable]
125-
url=git@github.com:collective/training.votable.git
126-
branch=main
127-
; tag=volto
128-
```
129-
130-
Adding the package to `instance.yaml` causes the generation of the Zope configuration to make the package available in a Zope app.
131-
132-
```yaml
133-
zcml_package_includes: training.votable, ploneconf.site
134-
```
135-
136-
Running `make build` has three effects:
137-
- The build installs the python package with `pip`.
138-
- The build generates in `instance/` a Zope instance configuration that makes the package available in our Zope app.
139-
- As soon as the Zope app is started via `make start`, the add-on can be enabled per Plone instance.
140-
A Zope app can include multiple Plone instances.
141-
So an add-on can be enabled per Plone instance.
142-
143-
```{seealso}
144-
Documentation {doc}`plone6docs:admin-guide/add-ons`
145-
```
146-
147-
### Enabling add-ons in your Plone site
148-
149-
An add-on can be enabled per Plone instance.
150-
151-
In your browser, go to `Site Setup` at `http://localhost:3000/controlpanel`, and open the `Add-ons` Panel. You will see a list of available add-ons.
152-
153-
```{figure} _static/site_setup.png
154-
:alt: Link to Site Setup
155-
156-
Link to Site Setup
157-
```
158-
159-
Enable `ploneconf.site` now if you haven't done already.
160-
161-
This is what happens: The GenericSetup profile of the product gets loaded. This does things like:
162-
163-
- Registering new content types
164-
- Registering behaviors
165-
- Configuring new actions
166-
- Create catalog indexes
167-
168-
All this is configured in the default GenericSetup profile, which can be found in `backend/sources/<package name>/src/<package name>/profiles/default`.
169-
In the next chapters we will add here our content type `talk`, configure a catalog index, and some more.
170-
171-
172-
173-
(add-ons-summary-label)=
174-
175-
## Summary
176-
177-
We have seen in short how to extend a vanilla Plone website with third party add-ons to add new functionality.
178-
Even if you do not use many of these, they are nonetheless an inspiration on how to implement features in Plone.
179-
180-
181-
182-
For frontend add-ons see chapter {ref}`volto-addon-label`

0 commit comments

Comments
 (0)