Work Package #45013

Flexible plugin integration (TODO: Reviews)

Added by Sebastian Kurfuerst over 2 years ago. Updated over 1 year ago.

Status:Resolved Start date:2012-04-09
Priority:Should have Due date:2013-04-20
Assigned To:Marc Neuhaus % Done:

100%

Category:General / Project Spent time: 103.00 hours
Target version:1.0 beta 1 Estimated time:120.00 hours

Description

Flexible plugin integration

  • Target Audience: developers and integrators who want to use Neos
  • Responsible: Marc Neuhaus
  • Implemented by: Marc Neuhaus, Bastian Waidelich
  • Amount: 20 work days
  • Version: must have for 1.0
  • Planned Implementation Timeframe: week 9 to 15, 2013

Motivation

About ten years ago when Kasper presented the first version of the Extension Kickstarter that was a little sensation and resulted in a boost of contributions. Without it's extensibility and without the good old pibase TYPO3 would probably not be as popular as it is today.
For Neos we want to provide a solid plugin foundation right from the start.

Goal

Neos already contains a plugin TypoScript object but the current implementation is very basic to say the least. We need to work on that in order to make it very easy for people to write plugins and/or to turn Flow packages into a Neos plugin without having to mess with the original package code.
What has been started at #40599 will be used as base for this.

Deliverables

  • MUST: Polished Backend UX (as described in #40599)
  • MUST: "touchless" integration of Flow packages
    • resolve links automatically
    • overridable View configuration (change templates, view implementation & options without changing the original package, see #42176)
    • improve Fluid link/uri ViewHelpers (#35790)
  • MUST: stable plugin API (provide a PluginService that can be used everywhere in order to fetch data about certain plugins & plugin views)
  • MUST: documentation (developer guide, integrator guide, step-by-step example)
  • MUST: solid test coverage
  • COULD: example plugin showing off all relevant features of the API

typo3neos-distribution-base-45013.pdf (4.3 kB) Sebastian Kurfuerst, 2013-02-16 15:10


Subtasks

Task #46321: Plugins with Views should resolve their Links automaticallyResolvedMarc Neuhaus

Task #46322: Documentation for the Flexible plugin integrationResolvedMarc Neuhaus

Task #46324: Example plugin showing off the Flexible plugin integrationResolvedBastian Waidelich

Feature #42176: Improve resolving of viewResolvedMarc Neuhaus

Story #40599: Include arbitrary Flow-Applications as PluginsResolvedMarc Neuhaus

Task #44954: Provide a way to render PluginViews and PluginConfigurati...ResolvedMarc Neuhaus

Task #46680: [FEATURE] Add ConfigurationProcessors for ContentTypesResolvedMarc Neuhaus

Feature #35790: allow f:link.action to operate on parent requestResolvedKarsten Dambekalns

Task #46857: Provide a PluginService as central API for Plugins and Pl...ResolvedMarc Neuhaus


Related issues

related to Base Distribution - Epic #40296: EPIC: Plugin Support Resolved

History

#1 Updated by Bastian Waidelich over 2 years ago

  • Subject changed from [WIP] Stable Plugin Integration API -> TODO discuss to [WIP] Flexible plugin API
  • Category set to General / Project
  • Assigned To set to Bastian Waidelich

#2 Updated by Sebastian Kurfuerst over 2 years ago

Hey Bastian,

thanks for your work on this! I'd like to go through this list with you again, to make the goals and deliverables more clear here :-) Just ping me when you have some time!

Greets, Sebastian

#3 Updated by Bastian Waidelich over 2 years ago

  • Assigned To changed from Bastian Waidelich to Marc Neuhaus

#4 Updated by Bastian Waidelich over 2 years ago

  • Subject changed from [WIP] Flexible plugin API to Flexible plugin API

#5 Updated by Bastian Waidelich over 2 years ago

  • Subject changed from Flexible plugin API to Flexible plugin integration

#6 Updated by Sebastian Kurfuerst over 2 years ago

  • Status changed from New to Accepted

#7 Updated by Sebastian Kurfuerst over 2 years ago

Has been discussed with Jan-Hendrik from the EAB on 12.02.2013; and has been accepted on 15.02.2013 by the EAB.
(The attached PDF is a snapshot of this work package at the time of acceptance.)

So, Marc and Bastian, you can schedule this work package in your day-to-day calendar and implement it then -- can't wait to see it in Neos 1.0 :-)

Another side-note: Please do not forget to add comments to this work package and update "% done" while you are working on this package.

Greets, Sebastian

#8 Updated by Marc Neuhaus over 2 years ago

I've created a Distribution that i'll use to work on this Workpackage:

https://github.com/mneuhaus/Workpackage.Flexible-plugin-integration

And i've created a really barebone Package for 'Contact Persons' that is in no way optimized as a Neos Plugin.
The goal is to integrate this as neatly as possible without any Neos specific changes.

https://github.com/mneuhaus/Flowstarter.Contact

#9 Updated by Aske Ertmann over 2 years ago

Would it make sense to set the due date to the end of week 15?

#10 Updated by Bastian Waidelich over 2 years ago

Aske Ertmann wrote:

Would it make sense to set the due date to the end of week 15?

FYI: You can't set the due date in this very issue. I set it by adding the due date to all open child issues

#11 Updated by Marc Neuhaus over 2 years ago

This workpackage is ready to be reviewed :)

Here are all related Changesets in the flexible-plugin-integration topic:

https://review.typo3.org/#/q/status:open+branch:master+topic:flexible-plugin-integration,n,z

Video Demonstration:

http://www.youtube.com/watch?v=s67T1vA0myc

Test it yourself:

I created a complete Distribution to make the testing simple:

https://github.com/mneuhaus/Workpackage.Flexible-plugin-integration

You can easily set it up like this:

composer create-project -s dev workpackage/flexible-plugin-integration fpi
cd fpi
./flow gerrit:update
./flow doctrine:migrate
./flow site:import --package-key TYPO3.NeosDemoTypo3Org
./flow user:create admin joh316 max mustermann
<pre>

#12 Updated by Sebastian Kurfuerst about 2 years ago

  • Subject changed from Flexible plugin integration to Flexible plugin integration (TODO: Reviews)

#13 Updated by Bastian Waidelich over 1 year ago

Status update: All the changes have been merged in the meantime and the functionality has been stabilized with the release of Neos 1.0 on the 10th of December. The demo site that comes with the default distribution contains a simple plugin that demonstrates most of the features of this work package being:
  • Plugin Views
  • Automatic link resolving
  • A standard Flow controller as Plugin

Documentation of the plugin integration (#46322) is still somewhat sparse and could use some fine tuning

#14 Updated by Marc Neuhaus over 1 year ago

  • Status changed from Accepted to Resolved

Also available in: Atom PDF