### Example profiles.json Configuration Source: https://github.com/plone/documentation/blob/6.0/docs/developer-guide/create-a-distribution.md Defines the GenericSetup profiles to be installed for a new Plone site, including base profiles and optional example content profiles. ```json { "base": [ "plone.app.contenttypes:default", "plone.app.caching:default", "plonetheme.barceloneta:default", "plone.volto:default" ] } ``` -------------------------------- ### Plone Backend Server Startup Logs Source: https://github.com/plone/documentation/blob/6.0/docs/install/create-project-cookieplone.md Example console output indicating the Plone backend server has started successfully and is ready to handle requests. ```console 🐎 This Python uses horse-with-no-namespace to make pkg_resources namespace packages compatible with PEP 420 namespace packages. 2025-05-30 00:03:13,990 INFO [chameleon.config:39][MainThread] directory cache: /Users/username/PATH_TO/project-title/backend/instance/var/cache. 2025-05-30 00:03:14,760 WARNING [ZODB.FileStorage:409][MainThread] Ignoring index for /Users/username/PATH_TO/project-title/backend/instance/var/filestorage/Data.fs 2025-05-30 00:03:14,897 INFO [plone.restapi.patches:16][MainThread] PATCH: Disabled ZPublisher.HTTPRequest.ZopeFieldStorage.VALUE_LIMIT. This enables file uploads larger than 1MB. 2025-05-30 00:03:15,091 INFO [plone.app.event:18][MainThread] icalendar has been set up to use pytz instead of zoneinfo. 2025-05-30 00:03:15,917 INFO [plone.volto:22][MainThread] Aliasing collective.folderish classes to plone.volto classes. 2025-05-30 00:03:16,407 INFO [Zope:42][MainThread] Ready to handle requests Starting server in PID 31951. 2025-05-30 00:03:16,410 INFO [waitress:449][MainThread] Serving on http://[::1]:8080 2025-05-30 00:03:16,410 INFO [waitress:449][MainThread] Serving on http://127.0.0.1:8080 ``` -------------------------------- ### Example .pt File Paths Source: https://github.com/plone/documentation/blob/6.0/docs/classic-ui/views.md A list of example .pt file paths found within a Plone installation, demonstrating the structure and naming conventions. ```console ./parts/omelette/plone/app/contenttypes/browser/templates/listing_album.pt ./parts/omelette/plone/app/contenttypes/browser/templates/listing.pt ./parts/omelette/plone/app/contenttypes/browser/templates/newsitem.pt ./parts/omelette/plone/app/contenttypes/browser/templates/full_view.pt ./parts/omelette/plone/app/contenttypes/browser/templates/full_view_item.pt ./parts/omelette/plone/app/contenttypes/browser/templates/document.pt ./parts/omelette/plone/app/contenttypes/browser/templates/image_view_fullscreen.pt ./parts/omelette/plone/app/contenttypes/browser/templates/link.pt ./parts/omelette/plone/app/contenttypes/browser/templates/file.pt ./parts/omelette/plone/app/contenttypes/browser/templates/listing_summary.pt ./parts/omelette/plone/app/contenttypes/browser/templates/listing_tabular.pt ./parts/omelette/plone/app/contenttypes/browser/templates/image.pt ./parts/omelette/plone/app/contenttypes/behaviors/richtext_gettext.pt ./parts/omelette/plone/app/contenttypes/behaviors/leadimage.pt ./parts/omelette/plone/app/contentrules/browser/templates/manage-elements.pt ./parts/omelette/plone/app/contentrules/browser/templates/controlpanel.pt ./parts/omelette/plone/app/contentrules/browser/templates/contentrules-pageform.pt ./parts/omelette/plone/app/contentrules/browser/templates/manage-assignments.pt ./parts/omelette/plone/app/contentrules/actions/templates/mail.pt ./parts/omelette/plone/app/viewletmanager/manage-viewlets.pt ./parts/omelette/plone/app/viewletmanager/manage-viewletmanager.pt ``` -------------------------------- ### Get Installer Utility Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-addons-to-51.md Use `get_installer` from `Products.CMFPlone.utils` to obtain the installer utility. This is the recommended approach for Plone 5.1 and later. ```python from Products.CMFPlone.utils import get_installer qi = get_installer(self.context, self.request) ``` ```python from Products.CMFPlone.utils import get_installer qi = get_installer(self.context) ``` ```python qi = getMultiAdapter((self.context, self.request), name='installer') ``` ```python from plone import api api.content.get_view( name='installer', context=self.context, request=self.request) ``` -------------------------------- ### Clone coredev and set up Python 3 environment Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-to-python3.md Clone the buildout.coredev repository, check out the 5.2 branch, create a Python 3 virtual environment, and install buildout. This is the initial setup for porting an add-on. ```shell git clone git@github.com:plone/buildout.coredev.git coredev_py3 cd coredev_py3 git checkout 5.2 python3.8 -m venv . ./bin/pip install -r requirements.txt ``` -------------------------------- ### Install precompiler using buildout Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-to-python3.md Run this command to install only the `precompiler` part without a full buildout. ```shell ./bin/buildout -c local.cfg install precompiler ``` -------------------------------- ### Install Product Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-addons-to-51.md Use the `install_product` method to install a specific product. Note that keyword arguments are no longer accepted. ```python qi.install_product(product_name) ``` -------------------------------- ### Install Product Namespace Change Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-addons-to-51.md When installing products, prepend the namespace to the product name. For example, `CMFPlacefulWorkflow` becomes `Products.CMFPlacefulWorkflow`. ```python qi.install_product('Products.CMFPlacefulWorkflow') ``` -------------------------------- ### Plone Frontend Server Startup Logs Source: https://github.com/plone/documentation/blob/6.0/docs/install/create-project-cookieplone.md Example console output showing the Plone frontend server has successfully compiled and started, including HMR status and proxy configuration. ```console webpack 5.90.1 compiled successfully in 14898 ms sswp> Handling Hot Module Reloading ✅ Server-side HMR Enabled! API server (API_PATH) is set to: http://localhost:3000 Proxying API requests from http://localhost:3000/++api++ to http://localhost:8080/Plone 🎭 Volto started at 0.0.0.0:3000 🚀 ``` -------------------------------- ### Run Plone Development Environment Source: https://github.com/plone/documentation/blob/6.0/docs/contributing/core/index.md Install and run Plone using the 'make run' command within the buildout.coredev directory. This command handles the necessary setup to start the Plone instance. ```shell make run ``` -------------------------------- ### Install Add-on in Plone Backend Container Source: https://github.com/plone/documentation/blob/6.0/docs/install/containers/images/backend.md Use this command to run a Plone backend container and install a specified add-on during startup. Ensure the port mapping and image tag are correct for your setup. ```shell docker run -p 8080:8080 -e ADDONS="pas.plugins.authomatic" plone/plone-backend:6.2 start ``` -------------------------------- ### Install plonecli Source: https://github.com/plone/documentation/blob/6.0/docs/backend/vocabularies.md Installs the plonecli tool. Ensure you have UV installed. ```bash UV tool install plonecli ``` -------------------------------- ### Setup Virtual Environment for Zest Releaser Source: https://github.com/plone/documentation/blob/6.0/docs/i18n-l10n/resync-translations.md Creates a virtual environment and installs necessary packages like zest.releaser and zest.pocompile for managing Plone releases. This is a prerequisite for creating new plone.app.locales releases. ```shell `which python3.10` -m venv . ./bin/pip install zest.releaser zest.pocompile source bin/activate ``` -------------------------------- ### Install bobtemplates.plone and Create Addon Skeleton Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-to-python3.md Install the bobtemplates.plone package using pip and then use mrbob to generate a new add-on skeleton. This setup aids in creating a test environment for both Python 2 and Python 3. ```shell $ ./bin/pip install bobtemplates.plone $ ./bin/mrbob -O some.addon bobtemplates.plone:addon ``` -------------------------------- ### Install Plone and pipx Source: https://github.com/plone/documentation/blob/6.0/docs/admin-guide/install-pip.md Install Plone and the pipx package using the specified constraints file. ```shell venv/bin/pip install -c https://dist.plone.org/release/6-latest/constraints.txt Plone pipx ``` -------------------------------- ### Install Plone Backend and Volto Frontend Source: https://github.com/plone/documentation/blob/6.0/docs/install/create-project-cookieplone.md Install both the Plone backend and Volto frontend for your project. This command may take a few minutes to complete. ```shell make install ``` -------------------------------- ### Install Graphviz on Ubuntu Source: https://github.com/plone/documentation/blob/6.0/docs/contributing/documentation/setup-build.md Use apt-get to install Graphviz on Ubuntu for graph visualization. ```shell sudo apt-get install graphviz ``` -------------------------------- ### Start Plone Backend (Plone 6) Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/troubleshooting.md Use this command to start the Plone backend in Plone 6. This is useful for observing console output during troubleshooting. ```shell make start-backend ``` -------------------------------- ### Install Dependencies and Build Theme Resources Source: https://github.com/plone/documentation/blob/6.0/docs/classic-ui/theming/create-add-on.md Install the required Node.js dependencies for theme development using npm. Then, run the build script to compile SCSS and other theme resources. ```shell npm install npm run build ``` -------------------------------- ### Install npm Packages with pnpm Source: https://github.com/plone/documentation/blob/6.0/docs/classic-ui/mockup.md After creating a custom pattern, install the required npm packages using pnpm. ```shell pnpm install ``` -------------------------------- ### Install isort Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-to-python3.md Install the `isort` utility for sorting imports using pip. ```shell ./bin/pip install isort ``` -------------------------------- ### Start Custom Plone Backend Container Source: https://github.com/plone/documentation/blob/6.0/docs/install/containers/images/backend.md Start a container from a custom-built Plone backend image. This maps port 8080 and runs the 'start' command. ```shell docker run -p 8080:8080 myproject:latest start ``` -------------------------------- ### Install Buildout Requirements Source: https://github.com/plone/documentation/blob/6.0/docs/admin-guide/install-buildout.md Install the minimal Python packages required to run Buildout using pip. ```shell venv/bin/pip install -r https://dist.plone.org/release/6-latest/requirements.txt ``` -------------------------------- ### Python Source Binder Example Source: https://github.com/plone/documentation/blob/6.0/plone.app.dexterity/reference/dexterity-xml.md Provides a Python code example for implementing an IContextSourceBinder to dynamically provide vocabulary values. ```python from zope.schema.interfaces import IContextSourceBinder class Binder(object): implements(IContextSourceBinder) def __call__(self, context): return SimpleVocabulary.fromValues(["a", "d", "f"]) dummy_binder = Binder() ``` -------------------------------- ### Verify Behavior Installation Source: https://github.com/plone/documentation/blob/6.0/plone.app.dexterity/behaviors/testing-behaviors.md Checks if a behavior is correctly installed and registered as a utility. Verifies if the behavior's interface is a form field provider. ```python >>> from zope.component import getUtility >>> from plone.behavior.interfaces import IBehavior >>> tags_behavior = getUtility(IBehavior, name="collective.gtags.behaviors.ITags") >>> tags_behavior.interface ``` ```python >>> from plone.autoform.interfaces import IFormFieldProvider >>> IFormFieldProvider.providedBy(tags_behavior.interface) True ``` -------------------------------- ### Global Module Compatibility Example Source: https://github.com/plone/documentation/blob/6.0/docs/classic-ui/module-federation.md Example demonstrating how to use global modules like jQuery within an IIFE to maintain compatibility with older JavaScript implementations. ```javascript (function($) { // JS code which uses $ })(jQuery); ``` -------------------------------- ### Display available make commands Source: https://github.com/plone/documentation/blob/6.0/docs/contributing/documentation/setup-build.md Run 'make help' to see a list of available build and check commands for the documentation. ```shell make help ``` -------------------------------- ### Get Installer in Page Template Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-addons-to-51.md Access the installer utility within a Plone page template using the `@@installer` adapter. ```xml ``` -------------------------------- ### Create Plone Site with Addons and Profiles Source: https://github.com/plone/documentation/blob/6.0/docs/install/containers/images/backend.md Initializes a Plone site with specified addons and profiles. This example creates a Volto-ready site named 'Plone' and includes the 'eea.api.layout' addon. ```shell docker run -p 8080:8080 -e ADDONS="eea.api.layout" -e SITE="Plone" -e PROFILES="eea.api.layout:default" plone/plone-backend:6.2 ``` -------------------------------- ### Run Buildout Source: https://github.com/plone/documentation/blob/6.0/docs/admin-guide/install-buildout.md Execute Buildout to install and configure Plone. This may take a few minutes. ```shell bin/buildout ``` -------------------------------- ### Get Inline Icon Tag via Python Expression Source: https://github.com/plone/documentation/blob/6.0/docs/classic-ui/icons.md This example shows how to get an inline SVG icon using the 'tag' method of the 'icons' object. Custom classes and alt text can be provided. ```xml ``` -------------------------------- ### Clone documentation repository and build Source: https://github.com/plone/documentation/blob/6.0/docs/contributing/documentation/setup-build.md Clone the Plone Documentation repository, set up the environment, install dependencies, and build the documentation with live preview. ```shell git clone https://github.com/plone/documentation.git cd documentation make livehtml ``` -------------------------------- ### Get Icon URL via Python Expression Source: https://github.com/plone/documentation/blob/6.0/docs/classic-ui/icons.md This example demonstrates how to get an icon's URL using a Python expression within an 'img' tag. The 'icons' object is globally available in templates. ```xml foo ``` -------------------------------- ### Verify setuptools build backend in pyproject.toml Source: https://github.com/plone/documentation/blob/6.0/docs/developer-guide/native-namespace.md Inspect the pyproject.toml file to ensure setuptools is defined as the build backend. Add or modify the lines if they are missing. ```toml [build-system] requires = ["setuptools>=68.2,<80", "wheel"] ``` -------------------------------- ### Plone Buildout Configuration Source: https://github.com/plone/documentation/blob/6.0/docs/admin-guide/install-buildout.md This is the main buildout.cfg file for a Plone 6 installation, specifying the release and instance setup. ```cfg [buildout] extends = https://dist.plone.org/release/6-latest/versions.cfg parts = instance [instance] recipe = plone.recipe.zope2instance # user = username:password - Use a secure token in a production environment. user = admin:admin http-address = 8080 eggs = Plone ``` -------------------------------- ### Build Documentation Source: https://github.com/plone/documentation/blob/6.0/docs/contributing/documentation/admins.md After setting up external package documentation, use this command to build the HTML documentation. This command should be configured in the Makefile. ```shell make html ``` -------------------------------- ### Get Inline Icon Tag via Traversal Source: https://github.com/plone/documentation/blob/6.0/docs/classic-ui/icons.md This example demonstrates retrieving an inline icon tag directly through traversal in TAL templates. ```xml ``` -------------------------------- ### Prepare Checkout and Run Instance Source: https://github.com/plone/documentation/blob/6.0/docs/contributing/core/index.md Use these make commands to mark your sources as dirty and start your Plone instance with the checked-out package. Ensure you have run 'make sources-dirty' before 'make run' to include your local changes. ```shell make sources-dirty ``` ```shell make run ``` -------------------------------- ### Create Plone Classic Site with Addons and Profiles Source: https://github.com/plone/documentation/blob/6.0/docs/install/containers/images/backend.md Initializes a Plone Classic UI site with specified addons and profiles. This example creates a site named 'Plone' using the 'classic' type and includes the 'eea.facetednavigation' addon. ```shell docker run -p 8080:8080 -e ADDONS="eea.facetednavigation" -e SITE="Plone" -e TYPE="classic" -e PROFILES="eea.facetednavigation:default" plone/plone-backend:6.2 ``` -------------------------------- ### Plone Server Console Output Source: https://github.com/plone/documentation/blob/6.0/docs/install/create-project-cookieplone.md This is an example of the console output you can expect when the Plone server starts. It includes information about the server's status and listening addresses. ```console 🐎 This Python uses horse-with-no-namespace to make pkg_resources namespace packages compatible with PEP 420 namespace packages. 2025-05-30 00:31:48,278 INFO [chameleon.config:39][MainThread] directory cache: /project-title/backend/instance/var/cache. 2025-05-30 00:31:48,991 WARNING [ZODB.FileStorage:409][MainThread] Ignoring index for /project-title/backend/instance/var/filestorage/Data.fs 2025-05-30 00:31:49,106 INFO [plone.restapi.patches:16][MainThread] PATCH: Disabled ZPublisher.HTTPRequest.ZopeFieldStorage.VALUE_LIMIT. This enables file uploads larger than 1MB. 2025-05-30 00:31:49,443 INFO [plone.app.event:18][MainThread] icalendar has been set up to use pytz instead of zoneinfo. 2025-05-30 00:31:50,363 INFO [Zope:42][MainThread] Ready to handle requests Starting server in PID 35793. 2025-05-30 00:31:50,365 INFO [waitress:449][MainThread] Serving on http://[::1]:8080 2025-05-30 00:31:50,366 INFO [waitress:449][MainThread] Serving on http://127.0.0.1:8080 ``` -------------------------------- ### Clean and Build Documentation Source: https://github.com/plone/documentation/blob/6.0/docs/contributing/documentation/index.md Clean previous builds and run the 'html' and 'linkcheck' builds. Ensure these pass without introducing new errors. ```shell # Optionally clean the builds to avoid cache issues make clean make html make linkcheckbroken ``` -------------------------------- ### Build Distributions and Compare File Counts Source: https://github.com/plone/documentation/blob/6.0/docs/developer-guide/native-namespace.md After cleaning the `dist/` directory, build distributions using `uvx` and `python`. Then, compare the number of files in the source distribution (`.tar.gz`) and wheel (`.whl`) to the previous run. Minor differences are expected due to `__init__.py` and namespace package files. ```shell rm -rf dist/ uvx --from build pyproject-build python -c "import glob; import tarfile; print(len(tarfile.open(glob.glob('dist/*.tar.gz')[0], 'r:gz').getnames()))" python -c "import glob; from zipfile import ZipFile; print(len(ZipFile(glob.glob('dist/*.whl')[0]).namelist()))" ``` -------------------------------- ### Python 3 ZODB Migration Error Example Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-zodb-to-python3.md This traceback illustrates the error that occurs if Plone in Python 3 is started with an unmigrated Python 2 ZODB database. ```console Traceback ( File "/Users/pbauer/workspace/projectx/parts/instance/bin/interpreter", line 279, in exec(compile(__file__f.read(), __file__, "exec")) File "/Users/pbauer/.cache/buildout/eggs/Zope-4.0b8-py3.7.egg/Zope2/Startup/serve.py", line 219, in sys.exit(main() or 0) [...] File "/Users/pbauer/.cache/buildout/eggs/ZODB-5.5.1-py3.7.egg/ZODB/FileStorage/FileStorage.py", line 1619, in read_index raise FileStorageFormatError(name) ZODB.FileStorage.FileStorage.FileStorageFormatError: /Users/pbauer/workspace/projectx/var/filestorage/Data.fs ``` -------------------------------- ### Build Backend with uv Source: https://github.com/plone/documentation/blob/6.0/docs/_inc/_build-and-restart.md Use this command to build the backend when using uv as the package manager. ```shell make backend-build ``` -------------------------------- ### Invariant for Date Comparison Source: https://github.com/plone/documentation/blob/6.0/plone.app.dexterity/advanced/validators.md Implement an invariant to validate relationships between multiple fields. This example ensures that a 'start' date is before an 'end' date, raising a custom exception if the condition is not met. ```python from zope.interface import invariant, Invalid class StartBeforeEnd(Invalid): __doc__ = _("The start or end date is invalid") class IProgram(model.Schema): start = schema.Datetime( title=_("Start date"), required=False, ) end = schema.Datetime( title=_("End date"), required=False, ) @invariant def validateStartEnd(data): if data.start is not None and data.end is not None: if data.start > data.end: raise StartBeforeEnd(_("The start date must be before the end date.")) ``` -------------------------------- ### Migrate installProducts to install_product Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-addons-to-51.md The `installProducts` method has been removed. Use a loop to call `install_product` for each product individually. ```python product_list = ['package.one', 'package.two'] qi.installProducts(product_list) ``` ```python product_list = ['package.one', 'package.two'] for product_name in product_list: qi.install_product(product_name) ``` -------------------------------- ### Register a Distribution with a Post Handler Source: https://github.com/plone/documentation/blob/6.0/docs/developer-guide/create-a-distribution.md Register a custom Plone distribution named 'blog' using XML configuration. This example specifies a custom post_handler for additional site setup. ```xml ``` -------------------------------- ### Minimal Plone Classic UI Page Template Example Source: https://github.com/plone/documentation/blob/6.0/docs/classic-ui/templates.md A basic Page Template demonstrating the integration of TAL, METAL, and i18n namespaces. Use this as a starting point for creating your own templates. ```html

Hello, World!

Placeholder title

``` -------------------------------- ### Start Plone instance for testing Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-to-python3.md Launch the Plone instance in foreground mode to test the migration. This is useful for small packages or those with few dependencies. ```shell ./bin/instance fg ``` -------------------------------- ### Run Interactive Plone Debugging Shell Source: https://github.com/plone/documentation/blob/6.0/docs/install/containers/recipes/index.md Execute this command in your Plone Docker Compose setup directory to start an interactive debugging shell. Replace `backend` if your Plone service has a different name. ```shell docker compose run --rm backend console ``` -------------------------------- ### Conditional Import in registry.xml Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-to-51.md Use the 'condition' attribute in registry.xml to conditionally import records based on Python module availability or ZCML feature flags. This example shows importing records only when 'my.package' is installed. ```xml 40 We've got lions and tigers! ``` -------------------------------- ### Serve documentation with live reload Source: https://github.com/plone/documentation/blob/6.0/docs/contributing/documentation/setup-build.md Use 'make livehtml' to rebuild documentation as you edit files, with live reload in the browser. The console will provide the URL for preview. ```shell make livehtml ``` -------------------------------- ### setup.py Configuration for Dexterity Source: https://github.com/plone/documentation/blob/6.0/plone.app.dexterity/prerequisite.md Ensure 'plone.app.dexterity' is in install_requires to load Dexterity. Register the package as a z3c.autoinclude.plugin for automatic ZCML loading. ```python install_requires=[ 'plone.app.dexterity', ], entry_points=""" # -*- Entry points: -*- [z3c.autoinclude.plugin] target = plone """, ``` -------------------------------- ### Build and Serve Plone Development Environment Source: https://github.com/plone/documentation/blob/6.0/docs/backend/content-types/creating-content-types.md Build the Plone project and start the development server to test the newly created content types. ```shell plonecli build plonecli serve ``` -------------------------------- ### Install modernize Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-to-python3.md Install the `modernize` utility using pip. ```shell ./bin/pip install modernize ``` -------------------------------- ### Start Plone as Background Service Source: https://github.com/plone/documentation/blob/6.0/docs/admin-guide/install-buildout.md Start the Plone instance as a background service. ```shell bin/instance start ``` -------------------------------- ### Adding plone.mocktestcase to setup.py Source: https://github.com/plone/documentation/blob/6.0/plone.app.dexterity/testing/mock-testing.md To utilize the mock testing framework, add 'plone.mocktestcase' to your project's installation requirements in setup.py. ```python install_requires=[ # ... "plone.mocktestcase", ], ``` -------------------------------- ### Install Graphviz on macOS Source: https://github.com/plone/documentation/blob/6.0/docs/contributing/documentation/setup-build.md Use Homebrew to install Graphviz on macOS for graph visualization. ```shell brew install graphviz ``` -------------------------------- ### Run a Simple ZEO Server Container Source: https://github.com/plone/documentation/blob/6.0/docs/install/containers/images/zeo.md This command starts a standalone ZEO server container and exposes its default port. ```shell docker run -p 8100:8100 plone/plone-zeo:latest ``` -------------------------------- ### Install collective.outputfilters.tinymceaccordion via pip Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-to-61.md Use this command to install the add-on using pip. ```shell pip install collective.outputfilters.tinymceaccordion ``` -------------------------------- ### Configure local.cfg for add-on development Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-to-python3.md Add your package to the buildout configuration to enable development. This example assumes a 'python3' branch exists for the package. ```ini [buildout] extends = buildout.cfg always-checkout = true allow-picked-versions = true custom-eggs += collective.package test-eggs += collective.package [test] auto-checkout += collective.package [sources] collective.package = git git@github.com:collective/collective.package.git branch=python3 ``` -------------------------------- ### Run buildout after configuring local.cfg Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-to-python3.md Execute buildout with the local configuration file to check out the source code of your add-on package into the 'src' folder. ```shell ./bin/buildout -c local.cfg ``` -------------------------------- ### Install plonecli Source: https://github.com/plone/documentation/blob/6.0/docs/classic-ui/mockup.md Install the Plone CLI tool into your Python user packages to make it available for all your projects. ```shell pip install plonecli --user ``` -------------------------------- ### Bootstrap Buildout Source: https://github.com/plone/documentation/blob/6.0/docs/admin-guide/install-buildout.md Use Buildout's bootstrap command to install a local buildout script in the bin directory. ```shell venv/bin/buildout bootstrap ``` -------------------------------- ### Example zodbverify Output Source: https://github.com/plone/documentation/blob/6.0/docs/backend/upgrading/version-specific-migration/upgrade-zodb-to-python3.md This is an example of successful output from the `zodbverify` command, indicating no records could not be loaded. ```console INFO:Zope:Ready to handle requests INFO:zodbverify:Scanning ZODB... INFO:zodbverify:Done! Scanned 7781 records. Found 0 records that could not be loaded. ``` -------------------------------- ### Run Plone Backend with ADDONS and Persistent Data (Permission Error Example) Source: https://github.com/plone/documentation/blob/6.0/docs/install/containers/images/backend.md This example demonstrates running the Plone backend with the ADDONS environment variable and persistent data. It shows a potential permission denied error if environment variables like ADDONS are not compatible when running as an arbitrary user. ```console $ docker run --user="$(id -u)" -v $(pwd)/data:/data -e ADDONS="eea.facetednavigation" plone/plone-backend ... error: [Errno 13] Permission denied: '/app/lib/python3.9/site-packages/eea' ``` -------------------------------- ### Install rst-to-myst Source: https://github.com/plone/documentation/blob/6.0/docs/contributing/documentation/admins.md Install the rst-to-myst package with Sphinx support. This is required for converting reStructuredText documentation to MyST format. ```shell bin/pip install "rst-to-myst[sphinx]" ``` -------------------------------- ### Create Varnish Configuration Directory Source: https://github.com/plone/documentation/blob/6.0/docs/install/containers/examples/traefik-volto-plone-varnish.md Creates an empty 'etc' directory to store Varnish configuration files. ```shell mkdir etc ``` -------------------------------- ### Change Directory Source: https://github.com/plone/documentation/blob/6.0/docs/install/containers/examples/nginx-plone.md Navigates into the newly created project directory. ```shell cd nginx-plone ``` -------------------------------- ### View Member Variable Assignment Example Source: https://github.com/plone/documentation/blob/6.0/docs/classic-ui/views.md Example of assigning a content item to a view's member variable. ```python self.basket = my_basket ```