Hi,

I was talking to Steven Merrill who is also doing a lot of work on ESI, and we agreed that ESI should be a base module and that we should have sub-modules handle the actual interaction to the subsystem. An example of this would be that I am working on Panels ESI integration and I am having to duplicate some code that comes from the ESI module's blocks integration. I think we could refactor this so that we don't need to have blocks esi on if we are using panels.

For now, I feel like we should try to use the following methodology:

Modules:
ESI - Base ESI functionality. Including URL structure and validation of private key. Ability for submodule to register a path for esi callback.
ESI Block - Module that uses the ESI functionality for blocks. Should respect Block Cache settings instead of using internal ESI settings.
ESI Panels - Module that allows panels to use ESI similar to blocks.
ESI Views - Module that allows views to integrate into ESI.

These are the ones I can think about off the top of my head. I wouldn't mind helping co-maintain this module as I am already working on Panels + Views for ESI, but I would like to see ESI refactored first so that I don't have to duplicate work and we can combine our work efforts.

Let me know what you think about this, and I'll provide patches asap.

Comments

bibo’s picture

I would be interested in this as well.
(subscribe)

rickvug’s picture

This is on the radar. I work with dstuart on a project using ESI. We've recently decided to move to panels so ESI for Panels will need to taken into account.

manarth’s picture

Hi Slantview - I've added a first-pass at panels support for ESI in #985198: Add panel support to ESI. I'd be interested to hear your take on it, and your thoughts on abstracting for sub-modules.

mikeytown2’s picture

Version: 6.x-1.0-beta1 » 6.x-2.x-dev

Panels are in 2.x now; open to submodule ideas. See #1229188: Rely completely on CTools content types

manarth’s picture

Version: 6.x-2.x-dev » 7.x-3.x-dev
Status: Active » Fixed

Fixed in 7.x-3.x, which is now based on the sub-module approach.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.