<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    How to Develop Components

    This section describes how to create your own components and add them to the paragraph system.

    A quick way to get started is to copy an existing component and then make the changes you want. You can also use this method to edit existing components (although Day recommends that you back up the original component).

    An example of how to develop a component is described in detail in Extending the Text and Image Component - An Example.

    Developing a new component by adapting an existing component

    To develop new components for CQ WCM based on existing component, you copy the component and create a javascript file for the new component and store it in a location accessible to CQ5:

    1. Create a new component folder in /apps/<website-name>/components/<MyComponent> by copying an existing component, such as the Text component, and renaming it.

    2. In the CRX Explorer, modify the jcr:description and jcr:title to reflect its new name.

    3. Open the new component folder and make the changes you require; also, delete any extraneous information in the folder.

      You can make changes such as:

      • adding a new field in the dialog box

      • replacing the .jsp file (name it after your new component)

      • or completely reworking the entire component if you want

      For example, if you take a copy of the standard Text component, you can add an additional field to the dialog box, then update the .jsp to process the input made there.

    4. In the Content Explorer, navigate to the component and change the allowedParents property to */parsys, which makes it available to the paragraph system.

      [Note] Note

      Either cq:editConfig node, dialog, or design_dialog node should be present and properly initialized for the new component to appear.

    5. Activate the new component in your paragraph system either by adding /apps/<website-name>/components/<MyComponent> to the /etc/designs/default/<website-name>/jcr:content/contentpage/parsys/components property in CRX or by following the instructions in Adding new components to paragraph systems.

    6. In CQ WCM, open a page in your web site and insert a new paragraph of the type you just created to make sure the component is working properly.

    [Note] Note

    To see timing statistics for page loading, you can use Ctrl-Shift-U - with ?debugClientLibs=true set in the URL.

    Adding a new component to the paragraph system (design mode)

    After the component has been developed, you add it to the paragraph system, which enables authors to select and use the component when editing a page.

    1. Access a page within your authoring environment that uses the paragraph system; for example <contentPath>/Test.html.

    2. Switch to Design mode by either:

      • adding ?cmsmode=design to the end of the URL and accessing again; for example <contextPath>/ Test.html?cmsmode=design.

      • clicking Design in Sidekick

      You are now in designmode and can edit the paragraph system:

    3. Click Edit.

      A list of components belonging to the paragraph system are shown (all those defined with the property allowedParents=*/parsys). Your new component is also listed.

      The components can be activated (or deactivated) to determine which are offered to the author when editing a page.

    4. Activate your component, then return to normal edit mode to confirm that it is available for use.

    Extending the Text and Image Component - An Example

    This section provides an example on how to extend the widely used text and image standard component with a configurable image placement feature.

    The extension to the text and image component allows editors to use all the existing functionality of the component plus have an extra option to specify the placement of the image either:

    • on the left-hand side of the text (current behavior and the new default)

    • as well as on the right-hand side

    After extending this component, you can configure the image placement through the component's dialog box.

    The following techniques are described in this exercise:

    • Copying existing component node and modifying its metadata

    • Modifying the component's dialog, including inheritance of widgets from parent dialog boxes

    • Modifying the component's script to implement the new functionality

    Extending the existing textimage component

    To create the new component, we use the standard textimage component as a basis and modify it. We store the new component in the Geometrixx CQ WCM example application. To extend the textimage component, go to the CRX Explorer (server name:port number/crx) and log in as admin and then navigate to the Content Explorer.

    1. Copy the standard textimage component from /libs/foundation/components/textimage into the Geometrixx component folder, /apps/geometrixx/components, using textimage as the target node name. (Copy the component by navigating to the component, right-clicking and selecting Copy and browsing to the target directory.)

    2. To keep this example simple, navigate to the component you copied and delete all the subnodes of the new textimage node except for the following ones:

      • dialog definition: textimage/dialog

      • component script: textimage/textimage.jsp

    3. Edit the component metadata:

      • Component name

        • Set jcr:description to Text Image Component (Extended)

        • Set jcr:title to Text Image (Extended)

      • Component listing in the paragraph (parsys component) system (leave as is)

        • Leave allowedParents defined as */parsys

      • Group, where the component is listed in the sidekick (leave as is)

        • Leave componentGroup set to General

      • Parent component for the new component (the standard textimage component)

        • Set sling:resourceSuperType to foundation/components/textimage

      After these steps the component node looks like the following:

       

    4. Modify the component's dialog box to include the new option. The new component inherits the parts of the dialog box that are the same as in the original. The only addition we make is to extend the Advanced tab, adding an Image Position dropdown list, with options Left and Right:

      • Leave the textimage/dialog properties unchanged.

      • Note how textimage/dialog/items has three subnodes, tab1 to tab3, representing the three tabs of the textimage dialog box.

      • For the first two tabs (tab1 and tab2):

        • Change xtype to cqinclude (to inherit from the standard component).

        • Add a pathParameter property with values /libs/foundation/components/textimage/dialog/items/tab1.infinity.json and /libs/foundation/components/textimage/dialog/items/tab2.infinity.json, respectively.

        • Remove all other properties or subnodes.

      • For tab3:

        • Leave the properties and subnodes without changes

        • Add a new field definition to tab3/items, node position of type cq:Widget

        • Set the following properties (of type String) for the new tab3/items/position node

          • name: ./imagePosition

          • xtype: selection

          • fieldLabel: Image Position

          • type: select

        • Add subnode position/options of type cq:WidgetCollection to represent the two choices for image placement, and under it create two nodes, o1 and o2 of type nt:unstructured

        • For node position/options/o1 set the properties: text to Left and value to left

        • For node position/options/o2 set the properties: text to Right and value to right

      Image position is persisted in content as the imagePosition property of the node representing textimage paragraph.

      After these steps, the component dialog box looks like this:

    5. Extend the component script, textimage.jsp, with extra handling of the new parameter.

      • Open the /apps/geometrixx/components/textimage/textimage.jsp script for editing.

      • We are going to manipulate the style of the <div class="image"> tag, generated by the component, to float the image to the right. It is located in the following area of the code:

            Image img = new Image(resource, "image");
            if (img.hasContent() || WCMMode.fromRequest(request) == WCMMode.EDIT) {
        %><div class="image"><%
                img.loadStyleData(currentStyle);

        We are going to replace the emphasized code fragment %><div class="image"><% with new code generating a custom style for this tag.

      • Copy the following code fragment, and replace the %><div class="image"><% line with it:

                // todo: add new CSS class for the 'right image' instead of using
                //       the style attribute
                String style="";
                if (properties.get("imagePosition", "left").equals("right")) {
                    style = "style=\"float:right\"";
                }
                %><div <%= style %> class="image"><%

        Note that for simplicity we are hard-coding the style to the HTML tag. The proper way to do it would be to add a new CSS class to the application styles and just add the class to the tag in the code in the case of a right-aligned image.

      • The code fragment, after the change, should look like this (new code emphasized):

            Image img = new Image(resource, "image");
            if (img.hasContent() || WCMMode.fromRequest(request) == WCMMode.EDIT) {
                // todo: add new CSS class for the 'right image' instead of using
                //       the style attribute
                String style="";
                if (properties.get("imagePosition", "left").equals("right")) {
                    style = "style=\"float:right\"";
                }
                %><div <%= style %> class="image"><%
                img.loadStyleData(currentStyle);
        
      • Save the script to the repository.

    6. The component is ready to test.

    Checking the new component

    After the component has been developed, you can add it to the paragraph system, which enables authors to select and use the component when editing a page. These steps allow you to test the component.

    1. Open a page in Geometrixx; for example, English/Company

    2. Switch to design mode by clicking Design in Sidekick

    3. Edit the paragraph system design by clicking Edit on the paragraph system in the middle of the page. A list of components, which can be placed in the paragraph system are shown, and it should include your newly developed component, Text Image (Extended). Activate it for the paragraph system by selecting it and clicking OK.

    4. Switch back to the editing mode.

    5. Add the Text Image (Extended) paragraph to the paragraph system, initialize text and image with sample content. Save and you should see the default rendering of Text and Image component:

    6. Open the dialog of the text and image paragraph, and change the Image Position on the Advanced tab to Right, and click OK to save the changes.

    7. You see the paragraph rendered with the image on the right:

    8. The component is now ready to use.

    The component stores its content in a paragraph on the Company page. The following screenshot shows how our new configuration parameter is persisted in the repository, with the node representing the paragraph we have just created.

    The textimage/imagePosition parameter represents the position of the image for this paragraph on /content/geometrixx/en/company page.



    眼鏡蛇

    posted on 2013-06-25 16:12 眼鏡蛇 閱讀(304) 評論(0)  編輯  收藏 所屬分類: CQ5

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲 综合 国产 欧洲 丝袜| 亚洲av综合avav中文| GOGOGO高清免费看韩国| 亚洲国产精品一区二区久久| 女人与禽交视频免费看| 一个人看的hd免费视频| 亚洲国产日韩在线成人蜜芽 | 国产VA免费精品高清在线| 亚洲综合国产精品| 国产最新凸凹视频免费| 两个人看www免费视频| 亚洲欧美综合精品成人导航| 亚洲av综合av一区| 亚洲av日韩片在线观看 | 亚洲av日韩av欧v在线天堂| 亚洲电影在线免费观看| 四虎影视在线看免费观看| 亚洲成人黄色在线| 在线A亚洲老鸭窝天堂| 好大好深好猛好爽视频免费| 日本高清不卡aⅴ免费网站| 亚洲欧美aⅴ在线资源| 亚洲五月六月丁香激情| 亚洲一本大道无码av天堂| 免费精品国偷自产在线在线| 你懂的免费在线观看| 国产亚洲男人的天堂在线观看| 亚洲码在线中文在线观看| 亚洲亚洲人成综合网络| 国产成人涩涩涩视频在线观看免费 | 亚洲aⅴ天堂av天堂无码麻豆 | 国产精品亚洲一区二区三区| 亚洲黄色在线观看网站| 亚洲宅男天堂在线观看无病毒| 妞干网免费视频观看| 2020因为爱你带字幕免费观看全集| 一二三四在线观看免费中文在线观看| 国产 亚洲 中文在线 字幕 | 青草青草视频2免费观看| 一本天堂ⅴ无码亚洲道久久| 91亚洲国产成人精品下载|