Use cases

Paragraphs/Patterns

  • collections (contentNodeIterator)
    • new bar -> won't exist anymore?
    • nested paragraphs (link list, form, ...)
  • singletons (slots?)
    • auto generated (default values)
    • optional (create stage, ...
    • list of possible paragraphs
  • extra dialog (edit button)
  • inherited paragraphs

Functions

  • set node
  • is public
  • ... many others

Edit bar

  • edit bar in the paragraph (STK)
  • edit bar in the outer paragraph (collection) -> we discourage this in general
  • show move, delete based on context (auto generated singleton paragraphs)

STK Areas

  • template configured by page template definition (not on the paragraph's meta data node)
    • --> but if we had an area definition
  • collections (similar to a main paragraph)
  • same as paragraph but without structure --> we discourage this in general

Differences between Templates and Paragraphs and Areas

  • how they get selected (page, listed in new bar)
  • different renderer
  • could they be the same

Moving paragraph

  • between areas (but only if the paragraph is allowed in the area)

Nodetypes

  • use node types? for page templates and paragraphs (news, ...)

Templating Components

  • POJOs
  • freemarker, jsp adaption

Backward Compatibility

  • map new components to old tags
  • optional compatibility package (old taglibs)
  • allow combination of both (to allow includes which use different libs)

4.x

5.0 JSP

5.0 Freemarker

Compatibility

tag1

 

 

 

How to guarantee compatibility

  • create test page
    • JSP and freemarker
  • with old tags and new ones
  • automated and manual integration tests

New set of tags and attributes

m:edit (or ui:paragraph)
m:new
m:page
m:singleton (renders new bar if node doesn't exist)

??
m:area
m:render

Freemarker

  • mgnl.edit(parameters) or mgnl:edit (directives)
  • align with JSP
  • function used in statements, directive puts out content
    • mgnl.render(content) is wrong

Output

  • annotated the tags (might be needed for inline editing
    <div class="teaser-1" ${mgnl.edit()}>
    </div>
    
    produces:
    <div class="teaser-1" mgnl:edit="XXXXX">
    </div>
    
    <p ${mgnl.inline(title)}>${content.title}</p>
    
    
  • edit divs
    <div id="editBar-1" class="edit" data-uuid="XXXXXXX">
    </div>
    
  • (tick) own namespace/tags
    <mgnl:edit data-uuid="XXXXXXX"/>
    
  • separator
    <!-- content uuid=XXXXX -->
    

Resources

  • No labels