Skip to content

Commit ecb9d6d

Browse files
authored
Merge branch '6-dev' into behaviors
2 parents f49de7b + 57d2c18 commit ecb9d6d

File tree

6 files changed

+213
-58
lines changed

6 files changed

+213
-58
lines changed
93 KB
Loading

docs/backend/portal-actions.md

Lines changed: 129 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,138 @@
11
---
22
myst:
33
html_meta:
4-
"description": ""
5-
"property=og:description": ""
6-
"property=og:title": ""
7-
"keywords": ""
4+
"description": "Actions are links or buttons that allow users to perform specific actions on your site."
5+
"property=og:description": "Actions are links or buttons that allow users to perform specific actions on your site."
6+
"property=og:title": "Portal Actions"
7+
"keywords": "Portal Actions, actions, Plone, backend"
88
---
99

1010
(backend-portal-actions-label)=
1111

1212
# Portal Actions
1313

14+
Actions are links or buttons that allow users to perform specific actions on your site.
15+
These actions can be anything from viewing a content item to editing a page, to accessing a specific feature of your site.
16+
17+
```{note}
18+
Actions in Plone are provided by action providers.
19+
There are at least two providers for actions.
20+
21+
- Portal actions, provided by the actions tool named `portal_actions` in the ZMI
22+
- Content type actions defined by the Factory Type Information (FTI) of the Types Tool, and named `portal_types` in the ZMI
23+
24+
Here only the portal actions are described.
25+
```
26+
27+
Portal actions are typically displayed in the site's navigation menu or toolbar and can be accessed by users with the appropriate permissions.
28+
29+
Portal actions are managed using the {guilabel}`Portal Actions` control panel in Plone.
30+
This control panel allows you to add, edit, and delete actions, as well as organize them into categories and control where they are available on your site.
31+
32+
```{note}
33+
We use the terms "Portal actions" and "Actions" in this documentation to mean the same thing.
34+
```
35+
36+
## Anatomy of a Portal action
37+
38+
A portal action in Plone consists of a few settings, including the category, title, description, URL, and control parameters.
39+
40+
The action {guilabel}`Title` is the text that is displayed for the action in the site's navigation menu or toolbar.
41+
This text should be descriptive and indicate what the action does.
42+
The {guilabel}`Description` is used as an additional text shown when hovering over the link.
43+
The {guilabel}`Title` and {guilabel}`Description` can be translated using the translation system of Plone.
44+
Therefore the {guilabel}`I18n domain` can be set here.
45+
46+
The {guilabel}`Action URL` is the address of the page or feature that the action will access when it is clicked.
47+
This can be an internal page on your site or an external page on another website.
48+
49+
The {guilabel}`Condition` controls whether to show the action or not.
50+
51+
You can use expressions in the URL of an action to make the action more dynamic and flexible.
52+
Expressions are also used for the {guilabel}`Condition`.
53+
54+
The {guilabel}`Permissions` chosen also control the visibility of an action.
55+
56+
The {guilabel}`Visible?` setting can be used to show or hide actions.
57+
This can be handy to disable default actions or temporarily disable actions.
58+
59+
The {guilabel}`Position` setting is used to order actions within their category, and is numbered starting with `1`.
60+
61+
Together, these components make up a portal action in Plone.
62+
63+
You can use the {guilabel}`Portal actions` control panel to manage and organize your site's actions.
64+
65+
## Action categories
66+
67+
Several action categories are used for different purposes.
68+
These categories include:
69+
70+
Object Actions
71+
: Actions that are available when viewing a specific content item.
72+
73+
Object Buttons
74+
: Actions that are displayed as buttons when viewing a specific content item.
75+
76+
Portal Tabs
77+
: Actions that are displayed as tabs on the top of the page.
78+
79+
Site Actions
80+
: Actions that are available on every page of your site.
81+
82+
User Actions
83+
: Actions that are available to users when they are logged in to your site.
84+
85+
Each of these action categories serves a different purpose and is intended for use in specific areas of the site.
86+
For example, object actions are intended for actions that are specific to a particular content item, while site actions are intended for actions that are available on every page of your site.
87+
88+
## Expressions
89+
90+
An expression is a piece of code that is evaluated at runtime and can be used to insert dynamic values into the URL or provide the decision for the condition.
91+
92+
```{todo}
93+
Contribute to this documentation!
94+
A chapter about expressions is missing. As soon as it exists a link to this chapter needs to be placed here.
95+
See issue [Backend > missing chapter Expressions needs content](https://github.com/plone/documentation/issues/1370).
96+
```
97+
98+
## Adding or editing portal actions
99+
100+
To add or edit portal actions, you can use the {guilabel}`Portal actions` control panel.
101+
To access this, log in to your Plone site as a user with the appropriate permissions.
102+
Then select the menu item {menuselection}`[username] > Site Setup`.
103+
From there, click on the {guilabel}`Actions` link in the {guilabel}`General` section.
104+
You can also select {menuselection}`General > Actions` from the Site Setup or any other control panel.
105+
106+
Once you are on the {guilabel}`Portal actions` control panel, you will see a list of all the existing portal actions for your site.
107+
To inspect or edit an existing action's settings, click its {guilabel}`Edit` button.
108+
109+
```{image} /_static/backend/control-panel-action-edit-settings.png
110+
:alt: Action Settings editing interface
111+
```
112+
113+
To add a new action, click on the {guilabel}`Add new action` button at the top of the page.
114+
This will open a form where you can select its category and enter an arbitrary ID.
115+
Click the {guilabel}`Add` button to add the action.
116+
The new action should now appear in the actions listing under the selected category.
117+
You can now edit its settings by clicking its {guilabel}`Edit` button.
118+
119+
It's important to note that the ability to add or edit portal actions is only available to users with the appropriate permissions.
120+
If you do not have the necessary permissions, you will not be able to access the {guilabel}`Portal actions` control panel.
121+
122+
## Exporting or importing portal actions
123+
124+
You can export action configuration to XML using the built-in Generic Setup Tool export.
125+
126+
Then this XML can be imported again within a profile of an add-on package.
127+
Place the file as `actions.xml` in the profile of an add-on.
128+
You can cut out snippets from this file for creating `actions.xml` containing only changed or added parts.
129+
130+
To export all actions:
131+
132+
- Go to {guilabel}`Site Setup` and choose {guilabel}`Management Interface`.
133+
You can also select {menuselection}`Advanced > Management Interface` from the Site Setup or any control panel.
134+
- Click {guilabel}`portal_setup`.
135+
- Click the tab {guilabel}`Export`.
136+
- Tick the checkbox {guilabel}`Actions Providers`.
137+
- Click the button {guilabel}`Export selected steps` at the end of the page.
138+

docs/overview/history.md

Lines changed: 0 additions & 28 deletions
This file was deleted.

docs/overview/index.md

Lines changed: 82 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,64 +9,122 @@ myst:
99

1010
(overview-label)=
1111

12+
1213
# Overview
1314

14-
````{todo}
15-
This page needs content.
16-
```{seealso}
17-
[Issue #1352](https://github.com/plone/documentation/issues/1352)
18-
```
19-
````
15+
Plone is a content management system (CMS) that is well-known for its user-friendly interface and robust security features.
16+
With Plone, even non-technical users can easily create and manage the content for a public website or intranet using only a web browser.
17+
Plone's intuitive interface and comprehensive set of features make it a popular choice for businesses, governments, universities, and any organization that needs a reliable and easy-to-use CMS.
18+
19+
Plone has a long history and has been trusted by users around the world since its initial release on October 4, 2001.
20+
Over the years, Plone has undergone many improvements and enhancements, making it a highly mature and stable CMS.
21+
Additionally, Plone is supported by a strong community of users and developers who contribute to its ongoing success.
22+
23+
Plone has the maturity, stability, and reliability of an application maintained by open source developers with decades of experience, while continually evolving and adapting to modern technology.
2024

21-
(overview-2-label)=
25+
Lots of customizations can be made through-the-web, such as creating content types, themes, workflows, and much more.
26+
A full file system based development workflow is possible and recommended for team work and deployment, backed by source code repositories.
27+
Plone can be extended and used as a framework on which to build custom CMS-like solutions.
2228

23-
## Key concepts of Plone
29+
Plone works as a:
2430

31+
- Full-featured server-side rendered HTML CMS.
32+
- React-based frontend for editing and viewing content, backed by a server with a REST API.
33+
- Headless CMS server with a REST API, allowing a developer to build a custom frontend with their chosen technology.
2534

2635
(overview-3-label)=
2736

28-
### Web content management system
37+
## Key benefits
2938

39+
Security is built into Plone's architecture from the ground up.
40+
Plone offers fine-grained permission control over content and actions.
3041

31-
(overview-4-label)=
42+
Plone is easy to set up compared to other CMSs in its category, extremely flexible, and provides you with a system for managing web content that is ideal for project groups, communities, websites, extranets, and intranets.
3243

33-
### Add-ons
44+
- **Plone empowers content editors and web application developers.**
45+
The Plone Team includes usability experts who have made Plone easy and attractive for content managers to add, update, and maintain content.
3446

47+
- **Plone is international.**
48+
The Plone interface has more than 35 translations, and tools exist for managing multilingual content.
3549

36-
(overview-5-label)=
50+
- **Plone follows standards and is inclusive.**
51+
Plone carefully follows standards for usability and accessibility.
52+
Plone is compliant with WCAG 2.1 level AA and aims for ATAG 2.0 level AA.
3753

38-
### Traditional server side rendered HTML pages
54+
- **Plone is open source.**
55+
Plone is licensed under the GNU General Public License, the same license used by Linux.
56+
This gives you the right to use Plone without a license fee, and to improve upon the product.
3957

58+
- **Plone is supported.**
59+
There are over two hundred active developers in the Plone Development Team around the world, and a multitude of companies that specialize in Plone development and support.
4060

41-
(overview-6-label)=
61+
- **Plone is extensible.**
62+
There is a multitude of add-on products for Plone to add new features and content types.
63+
In addition, Plone can be scripted using web standard solutions and open source languages.
4264

43-
### Headless CMS with JavaScript frontend through a REST API
65+
- **Plone is technology neutral.**
66+
Plone can interoperate with most relational database systems—both open source and commercial—and runs on many platforms, including Linux, Windows, macOS, and BSD.
4467

4568

46-
(overview-7-label)=
4769

48-
### Explain frontend-backend terms
70+
(overview-4-label)=
4971

72+
## High Level Overview for Developers
5073

51-
(overview-8-label)=
74+
Plone is a content management platform with its backend written in Python.
75+
It is built on top of the open source Zope web application server and development system.
76+
Plone makes use of the pluggable Zope Component Architecture (ZCA) to provide a highly modular and extensible system.
77+
Throughout its history, Plone has used server-side rendering to generate HTML-based content, with advanced resource management features for adding and bundling CSS and JavaScript.
78+
Additionally, Plone's use of a component architecture makes it easy to extend and customize, allowing users to create unique, feature rich websites that are tailored to their specific needs.
5279

53-
### Security
80+
With the release of Plone 6, you now have the option to choose from two different out-of-the-box supported configurations when setting up a new Plone website.
81+
The Python-based backend server in Plone can still be used alone to render content server-side and deliver HTML to the browser, a setup that is referred to in the Plone documentation as "Classic UI".
82+
This configuration has been supported by Plone since its initial release and is still available in the latest version of the platform.
83+
For container-based deployment, only the `plone-backend` image is required.
84+
It may be used as a base image, adding customizations, to make a derivative image.
5485

86+
The default and recommended configuration for new websites in Plone is the new React-based JavaScript frontend called "Volto".
87+
For this setup you still need to run the Python-based backend server, as well as enable the REST API, and update the configuration profile.
88+
These settings and profile are applied automatically when you select the {guilabel}`Create Plone Site` option in the Plone website creation form.
89+
In addition a separate NodeJS based frontend server will serve the JavaScript frontend resources and provide SSR with hydration.
90+
To deploy this setup using containers, you will need the `plone-frontend` image for the frontend server.
5591

56-
(overview-9-label)=
92+
Beginning with Plone 6, we now support two programming language stacks, one each for Python and JavaScript.
93+
The documentation has been rewritten, but for this first release you will find some repetition of concepts in the documentation structure.
94+
See, for example, the development setup and information on deployment options.
95+
It will take some time until we find and can implement the best structure to explain these new possibilities and the expansion of Plone's capabilities.
96+
97+
```{seealso}
98+
https://training.plone.org/mastering-plone/what_is_plone.html
99+
```
57100

58-
### Accessibility (a11y)
59101

102+
(overview-5-label)=
103+
## Deployment
60104

61-
(overview-10-label)=
105+
To run a public Plone website in production, you will also need to configure and run a reverse proxy (or ingress), arrange for SSL certificates (either from Let's Encrypt or manually), guarantee persistence of the content database, and arrange backups.
106+
This is the domain of systems administrators and modern developer-operations professionals.
107+
Our documentation contains setup examples for these services, yet requires that the reader have some generic experience and knowledge of these domains.
62108

63-
### Internationalization (i18n)
64109

110+
(overview-6-label)=
111+
## Good to know / What to know
112+
113+
One of the key benefits of the new React-based frontend for Plone 6 is that you can now customize and theme Plone extensively using HTML, CSS, and JavaScript using up-to-date frontend technologies without having to set up a local Python development environment.
114+
The Plone backend can be run on a local developer machine in a container.
115+
116+
Basic familiarity with programming in Python and managing Python modules and packages using `virtualenv` and `pip` is required to work on the backend code.
117+
We use `virtualenv` and {term}`mxdev` to manage the source installation of packages in Plone 6.
118+
119+
Similarly, to develop for the new React frontend, you need to have some experience with setting up NodeJS, using a tool like NVM (Node Version Manager) to isolate your setup, and familiarity with {term}`Yarn` and {term}`React`.
120+
121+
If you are looking for more study material on these technologies beyond the documentation, see and follow one or more [Plone Trainings](https://training.plone.org).
122+
Our trainings are more verbose and contain extra clarification and examples.
65123

66124

67125
```{toctree}
68126
:maxdepth: 2
69127
:hidden:
70128
71-
history
129+
72130
```

submodules/volto

Submodule volto updated 94 files

0 commit comments

Comments
 (0)