diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/website/doc | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/website/doc')
| -rw-r--r-- | addons/website/doc/website.snippet.rst | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/addons/website/doc/website.snippet.rst b/addons/website/doc/website.snippet.rst new file mode 100644 index 00000000..cc0252c1 --- /dev/null +++ b/addons/website/doc/website.snippet.rst @@ -0,0 +1,153 @@ +Website Snippet & Blocks +======================== + +The building blocks appear in the edit bar website. These prebuilt html block +allowing the designer to easily generate content on a page (drag and drop). +Snippets bind javascript object on custom part html code according to their +selector (jQuery) and javascript object. The snippets is also used to create +the drop zone. + + +Building Blocks ++++++++++++++++ + +Overwrite ``_getSnippetURL`` to set an other file to load the snippets (use by +website_mail for example) +Overwrite ``_computeSelectorFunctions`` to enable or disable other snippets. By default +the builder check if the node or his parent have the attribute data-oe-model + +Trigger: +- ``snippet-dropped`` is triggered on ``#oe_snippets`` whith $target as attribute when a snippet is dropped +- ``snippet-activated`` is triggered on ``#oe_snippets`` (and on snippet) when a snippet is activated + + +Blocks +++++++ + +The ``blocks`` are the HTML code that can be drop in the page. The blocks consist +of a body and a thumbnail: + - thumbnail: + (have class ``oe_snippet_thumbnail``) contains a picture and a text used to + display a preview in the edit bar that contains all the block list + - body: + (have class ``oe_snippet_body``) is the real part dropped in the page. The class + ``oe_snippet_body`` is removed before inserting the block in the page. +e.g.: + <div> + <div class="oe_snippet_thumbnail"> + <img class="oe_snippet_thumbnail_img" src="...image src..."/> + <span class="oe_snippet_thumbnail_title">...Block Name...</span> + </div> + <div class="oe_snippet_body"> + <!-- + The block with class 'oe_snippet_body' is inserted in the page. + This class is removed when the block is dropped. + The block can be made of any html tag and content. --> + </div> + </div> + + +Editor +++++++ + +The ``editor`` is the frame placed above the block being edited who contains buttons +(move, delete, clone) and customize menu. The ``editor`` load ``options`` based on +selectors defined in snippets + + +Options ++++++++ + +The ``option`` is the javascript object used to customize the HTML code. + +Object: + - this.``$target``: + block html inserted inside the page + - this.``$el``: + html li list of this options + - this.``$overlay``: + html editor overlay who content resize bar, customize menu... + +Methods: + - ``_setActive``: + highlight the customize menu item when the user click on customize, and click on + an item. + - ``start``: + called when the editor is created on the DOM + - ``onFocus``: + called when the user click inside the block inserted in page and when the + user drop on block into the page + - ``onBlur``: + called when the user click outside the block inserted in page, if the block + is focused + - ``onClone``: + called when the snippet is duplicate + - ``onRemove``: + called when the snippet is removed (dom is removing after this tigger) + - ``onBuilt: + called just after that a thumbnail is drag and dropped into a drop zone. + The content is already inserted in the page. + - ``cleanForSave``: + is called just before to save the vue. Sometime it's important to remove or add + some datas (contentEditable, added classes to a running animation...) + +Customize Methods: +All javascript option can defiend method call from the template on mouse over, on +click or to reset the default value (<li data-your_js_method="your_value"><a>...</a></li>). +The method receive the variable type (``over``, ``click`` or ``reset``), the method +value and the jQuery object of the HTML li item. (can be use for multi methods) + +By default to custom method are defined: + + - ``check_class(type, className, $li)``: + li must have data-check_class="a_classname_for_test" to call this method. This method + toggle the className on $target + - ``selectClass(type, className, $li)``: + This method remove all other selectClass value (for this option) and add this current ClassName + + + +Snippet ++++++++ + +The ``snippets`` are the HTML code to defined the drop zone and the linked javascript object. +All HTML li tag defined inside the snippets HTML are insert into the customize menu. All +data attributes is optional: + +- ``data-selector``: + Apply options on all The part of html who match with this jQuery selector. + E.g.: If the selector is div, all div will be selected and can be highlighted and assigned an editor. +- ``data-js``: + javascript to call when the ``editor`` is loaded +- ``data-drop-in``: + The html part can be insert or move beside the selected html block (jQuery selector) +- ``data-drop-near``: + The html part can be insert or move inside the selected html block (jQuery selector) +- HTML content like <li data-your_js_method="your_value"><a>...</a></li>: + List of HTML li menu items displayed in customize menu. If the li tag have datas the methods are + automatically called +- ``no-check``: + The selectors are automatically compute to have elements inside the branding. If you use this option + the check is not apply (for e.g.: to have a snippet for the grid view of website_sale) + +t-snippet and data-snippet +++++++++++++++++++++++++++ + +User can call a snippet template with qweb or inside a demo page. + +e.g.: + +<template id="website.name_of_the_snippet" name="Name of the snippet"> + <hr/> +</template> + +Inside #snippet_structure for e.g.: ``<t t-snippet="website.name_of_the_snippet" t-thumbnail="/image_path"/>`` +The container of the snippet became not editable (with branding) + +Inside a demo page call the snippet with: ``<div data-oe-call="website.name_of_the_template"/>`` +The snippets are loaded in one time by js and the page stay editable. + +More +++++ + +- Use the class ``o_not_editable`` to prevent the editing of an area. |
