Skip to main content

Plone Mosaic

Project description

Plone Mosaic

Plone Mosaic is a new layout solution for Plone. It’s built for Plone 5, but should also work on Plone 4.3 with plone.app.widgets. Read this introduction and the package documentation for more details how to use this package.

https://secure.travis-ci.org/plone/plone.app.mosaic.png https://www.herokucdn.com/deploy/button.png

Concepts

Mosaic, Blocks and Tiles provide a simple, yet powerful way to manage the pages on your Plone website. At their core, they rely on semantic HTML and resources with valid, publishable URLs.

Mosaic Editor editor is a visual editor for pages rendered using Blocks. It relies on a grid system to place tiles onto a page in an intuitive, WYSIWYG, drag-and-drop manner. Using Mosaic Editor, it is easy to compose pages with complex, balanced and visually appealing layouts. - custom layout behavior for Dexterity content types

Currently, the Mosaic Editor is activated, when any content with Custom layout view active is being edited. (Custom layout is available for any content with Layout support behavior enabled.)

Blocks is a rendering algorithm based on HTML markup conventions. A page managed by Mosaic Editor is stored as a simple HTML document representing the actual content of that page as a standalone, publishable resource devoid of any site layout content (e.g. global navigation elements). This is referred to as content layout.

Tiles represent the dynamic portions of a page. At its most basic level, a tile is simply an HTML document with a publishable URL.

In practice, tiles are usually implemented as browser views deriving from the Tile base class and registered with the <plone:tile /> ZCML directive. This allows tiles to have some basic metadata and automatically generated edit forms for any configurable aspects , which Deco will expose to users. See plone.tiles for examples.

When work with tiles in Mosaic Editor, there are three types of tiles:

Text tiles

Static HTML markup (WYSIWYG-edited text) placed into the content or site layout. Strictly speaking, text tiles are not tiles in that they do not involve any tile fetching or merging - instead they are stored as part of the page or site layout. To the user, however, a text tile can be moved around and managed like any other.

Field tiles

Render the value of a metadata field such as the title or description. The values of field tiles may be edited in-place in the page, but the value is stored in the underlying field and can be indexed in the catalog, used for navigation and so on. In practice, a field tile is an instance of the special tile plone.app.standardtiles.fields with the field name passed as a parameter.

App tiles

Any other type of dynamic tile. Examples may include a folder listing, a media player, a poll or pretty much anything else you can think of.

Installation

Plone Mosaic is installed by building a Plone site with package plone.app.mosaic and activating its Plone Mosaic add-on. The package has following dependencies:

plone.tiles >= 1.5.0
plone.app.tiles >= 2.2.0
plone.app.standardtiles >= 1.0b3
plone.app.blocks >= 3.0.0
plone.app.drafts >= 1.0b3
plone.app.widgets >= 1.8.0

After the add-on activation, the new content layout and editor support can be enabled for any content type by enabling behaviors Layout support and Drafting support.

Status

Plone Mosaic is considered to be in alpha phase. There are bugs, which should be reported. Not all the features of Plone Mosaic have yet easily accessible UI (e.g. layouts can be created into portal_resources and bound to content types as named views only through Zope Management Interface, ZMI).

Backend development

Plone 5 version of Plone Mosaic is available for development using plips/plip-mosaic.cfg at Plone 5 coredev-buildout.

Plone 4 version of Plone Mosaic can be developed by cloning the product directly.

Clone and build:

$ git clone https://github.com/plone/plone.app.mosaic
$ cd plone.app.mosaic
$ python bootstrap.py  # clean python 2.7 virtualenv recommended
$ bin/buildout

Startup:

$ bin/demo

Get started:

  • open a browser at http://localhost:55001/plone/++add++Document

  • login as admin with password secret

  • save the new page

  • from the Display-menu, select the new entry Custom layout

  • click Edit to see the new Mosaic Editor

Alternatively you can also use bin/instance fg.

Frontend development

Plone Mosaic requires javascript and css bundles, which are automatically build for Plone 5.x, but which must be manually build for Plone 4.3.x as follows:

$ make install
$ make clean all mode=release

The bundle can also be built with source maps and watched for changes with:

$ npm install
$ make clean all watch

Documentation screenshots

To script screenshots into the Sphinx documentation, use the development buildout:

$ git clone https://github.com/plone/plone.app.mosaic
$ cd plone.app.mosaic
$ python bootstrap.py  # clean python 2.7 virtualenv recommended
$ bin/buildout -c develop.cfg

To speed up your iterations, before compiling the docs, start the robot server with:

$ bin/robot-server plone.app.mosaic.testing.PLONE_APP_MOSAIC_ROBOT -v

With robot-server running, you can re-build the docs’ screenshots relatively fast with:

$ bin/robot-sphinx docs html

Or simply run the embedded screenshots as robot tests from a single document with:

$ bin/robot docs/getting-started.rst

Just add Debug keyword anywhere to pause the robot in the middle of the screenshot script and drop you into a Robot Framework REPL.

Changelog

1.0b2 (2015-09-16)

  • Fix issue where mosaic-grid was enabled even a default grid system was set [datakurre]

  • Fix issue where Plone body class was added twice [datakurre]

  • Fix issue where contentLayout field was shown in tile menu [datakurre]

  • Pin plone.app.standardtiles >= 1.0b3 [datakurre]

1.0b1 (2015-09-16)

  • Change layout behavior default view from view to layout_view [datakurre]

  • Change to enable Mosaic layout noly for Document, Event, Folder and News Item by default [datakurre]

  • Change text formatting actions from top toolbar to inline TinyMCE toolbars [datakurre]

  • Change remove tile icon from inline close icons to top toolbar button [datakurre]

  • Change BS3 as default grid system on Plone 5 [vangheem]

  • Change site layouts be disabled unless mosaic-sitelayouts feature is set [datakurre]

  • Change displayemenu support be disabled unless mosaic-layoutmenu feature is set [datakurre]

  • Change Custom layout menu item to be called Mosaic layout [datakurre]

  • Change install to no longer to make Mosaic layout the default by default [datakurre]

  • Add layout editor control panel for Plone 5 [vangheem]

  • Add link and unlink actions [datakurre]

  • Add table tile [datakurre]

  • Remove grid system from example layouts (to use configured default grid) [vangheem]

  • Remove previously provided TTW content layout examples [datakurre]

  • Fixed to work with (and require) plone.app.blocks >= 3.0.0 [vangheem]

  • Fix GenericSetup profile registration (removed “for”) [agitator]

  • Fix issue where title field tile and content tile being use on same page would cause weird issues with saving title values [vangheem]

  • Fix situation where layout editor broke with broken or missing tiles [vangheem]

  • Fix issue where check could not add tile with requried selection field [datakurre]

1.0a3 (2015-06-10)

  • Add “Bootstrap 3 Demo” example site layouts for Plone 5 [datakurre]

  • Add support for plone.app.blocks’ generic data grid transform [datakurre]

  • Change the default site layouts in Plone 5 to use 12 column deco grids [datakurre]

  • Fix various site layout support related issues [datakurre]

  • Upgrade to plone.app.drafts >= 1.0b3 and plone.app.blocks >= 2.1.2 [datakurre]

1.0a2 (2015-06-08)

  • Add ‘Center tile content’ tile style to allow e.g. centering of image tiles [datakurre]

  • Add site and page layout fields to be available on properties overlay [datakurre]

  • Add HTML tag language transform to set correct langauge for HTML site layouts [datakurHTML re]

  • Add HTML body tag class transform to set body class for HTML site layouts [datakurre]

  • Add HTTP headers transform to ensure that the response headers normally set by plone.httpheaders viewlet manager are also set for HTML site layouts [datakurre]

  • Update example site and content layouts [datakurre]

  • Fix to only cache site layout when it’s not the default main_template [datakurre]

  • Upgrade to plone.app.drafts >= 1.0b2 and plone.app.standardtiles >= 1.0b1 [datakurre]

1.0a1 (2015-05-27)

  • First technology preview release.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plone.app.mosaic-1.0b2.tar.gz (1.4 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page