Learning: Developers
Table of contents:
- Debugging
- Extensions
- Settings
- Security
- Plugins
- Login handlers
- Single Sign On handlers
- Datatypes
- Workflow event types
- Content action handlers
- Content edit handlers
- Search engines
- Extended attribute filters
- Designs
- Templates
- Template operators
- Template functions
- Notifications
- Notification events
- Notification handlers
- Collaboration handlers
- Image converters
- Image analyzers
- Metadata extractors
- RSS import maps
- Modules
- Scripts
- Kernel
- API code samples
- Solutions
- Upgrading
This article will give you an overview of the different possibilities for adding new functionality into eZ Publish.
Along with questions from the new-developer perspective trying to understand where to implement eZ Publish extension functionality to reach 'n' varying custom eZ Publish programming goals.
Debugging
Before you start to program, you should read the debugging tips. You'll have to learn how to adjust your site's configuration settings to make it easier to debug your new code and to track errors.
Extensions
Create segmented functionality and avoid future upgrade conflicts by implementing your solutions as an extension instead of changing base eZ Publish files (core/kernel).
Settings
Creating a new setting, types of settings, settings overrides, settings security and dynamic settings creation via php.
Security
Making eZ Publish secure, issues, experiences and footnotes.
Plugins
What are plugins? Give example of an eZ Publish plugin.
Login handlers
A login handler handles authentication of a user. The login handler is provided with a login id and a password, and returns a valid eZ Publish user for the system to use. This information can be used to authenticate against an external system.
Single Sign On handlers
An SSO handler is useful if you want to validate based on some other property of the user than login id/password, such as referring URL or client IP address. Or to support SSO; for example, if the session has some sort of token from an SSO server.
Datatypes
A datatype is the smallest possible entity of storage. It determines how a specific type of information should be validated, stored, retrieved, formatted and so on. eZ Publish comes with a collection of fundamental datatypes that can be used to build powerful and complex content structures.
In addition, it is possible to extend the system by creating custom datatypes for special needs. Custom datatypes have to be programmed in PHP. However, the built in datatypes are usually sufficient enough for typical scenarios. The following table gives an overview of the most basic datatypes that come with eZ Publish.
Workflow event types
What is a workflow event type? Give examples of when to create a workflow event.
Content action handlers
What is a content action handler? With a content action handler you can extend the content/action view.
Content edit handlers
What is a content edit handler? With a content edit handler you can extend the content/edit view.
Search engines
With the Lucene search plugin or other eZ search plugin you can customize and extend searching in eZ Publish completely!
Extended attribute filters
Extended attribute filters are used in combination with template fetch functions and applies custom filters...
Designs
eZ Publish uses designs as the basis of storing design related resources including templates, javascript, stylesheets, images, and siteroot files.
Templates
eZ Publish uses templates as the basis of website design. Templates plug directly into eZ Publish and are programed in eZ Template language (also known as tpl, eztpl). Templates represent the display formating, templating and internationalization layer of eZ Publish.
While simply elegant to use templates are a very powerful tool comprised of even more powerful tools and information. eZ Publish templates come with a large number of built in template features. This allows functionality to be implemented very quickly and simply. While larger templates may benefit in reduced performance load in implementing some functionality as a custom extension.
Template operators
Template operators plug into the Template system in eZ Publish and are programmed in PHP. Template Operators can take input, transform it, and return a result to the template. eZ Publish comes with a lot of built in template operators.
Template functions
Template functions are built in language constructs, functions which provide features within the template language.
Notifications
When to use notifications?
Notification events
When to use notification events?
Notification handlers
When are notification handlers a way to implement what functionality, wait, what are notification handlers?
Collaboration handlers
What is a collaboration handler?
Image converters
What is an image converter? Which converters are available?
Image analyzers
What is an image analyzer?
Metadata extractors
What is a metadata extractor?
RSS import maps
See the feature doc.
Modules
What is a module, why not to confuse modules and extensions, when are modules needed. Did you know that the eZ Publish kernel is comprised of modules? Did you know you can use these as a reference for your own development?
Scripts
When to write a script and what type? If you need automated execution you would write a cronjob, while if you only supported manual execution you would write a command line script.
Cronjobs
Cronjobs are useful for periodic tasks like updating content, sending emails (notification) and so on. But they are also useful for tasks that have a long runtime which you want to make sure that the execution timeout does not affect the script. Cronjobs can not have parameters.
Command line scripts
A command line script is a php script which can have parameters
Kernel
The eZ Publish kernel is a large set of subsystems. At times one needs to use intimidate knowledge of eZ Publish internals (kernel) to archive certain specific functionality. It is generally _not_ recommended to change the kernel or stock eZ Publish core, because upgrades will be much harder.
API code samples
The code samples will help you getting started with some commonly used parts of the eZ Publish API. They can be really useful in your custom modules, scripts and cronjobs.
Solutions
Solutions to a common need to extend eZ Publish in similar ways. These solutions can be minimal / direct or longer articles with source code examples.
Upgrading
- Upgrade experience notes from community member.
- Upgrade documentation from eZ systems