Quản lý cấu hình web - part 13 pot

10 262 0
Quản lý cấu hình web - part 13 pot

Đang tải... (xem toàn văn)

Thông tin tài liệu

Getting Started with Alfresco WCM [ 102 ] Virtual server JSP support Create a simple "hello world" JSP, load it up, and test. The JSP will evaluate without creating the WEB-INF and web.xml les. But more complex WARs will need WEB-INF and web.xml les for Tomcat to evaluate. Previewing WARs and getRealPath() For JSP and Java code that use the getRealPath() method or the lesystem path for a le, Alfresco requires additional conguration for the virtual server preview to function. This is the case for Spring-based web applications, where conguration and properties les are required to be read on startup. To enable preview in this case, Alfresco needs to be modied to: • Enable Alfresco to use CIFS (refer Chapter 2 for details) • Mount the CIFS directory • Have the virtual server mount the AVM CIFS projection Virtual server conguration The virtual server needs to be congured to mount the new drive. Follow these steps: 1. Open up the alfresco-virtserver.properties le in the directory: c:\Alfresco\virtualtomcat\conf. 2. Locate the following section: # # On Windows, the ".unix" properties are ignored. # On Linux, the ".win" properties are ignored. # alfresco.virtserver.cifs.avm.versiontree.win=v alfresco.virtserver.cifs.avm.versiontree.unix=/media/alfresco/ cifs/v 3. Modify alfresco.virtserver.cifs.avm.versiontree.win=v to use the drive letter "Z" used above when mapping to the CIFS server, as follows: alfresco.virtserver.cifs.avm.versiontree.win=z:. Download from Wow! eBook <www.wowebook.com> Chapter 3 [ 103 ] Search Searching against a WCM store is the same as searching against a full repository. However, the scope of the search will be limited to that web project only. A search against an AVM store can be performed via Java, JavaScript, FreeMarker template, or the node browser. It is not yet exposed via open search. As the API is the same, searches via web services or something similar are the same apart from the store context. Search is only available for the latest snapshot of the head revision for staging. It is not available for User Sandboxes, workow sandboxes, and so on. In a lot of cases, the design principle followed is to use Lucene queries minimally in your project. Other methods such as navigating via AVM Paths and others to get hold of the content you are trying to search can sufce in such a scenario. Summary Alfresco tracks all content modications made within a user's sandbox and maintains those changes in isolation from other user's working within their own sandbox environment. In this way, large teams of users can work independently on changes to the website without stepping over one another's work. Sandboxed development, along with virtualization and in-context preview, means that a large, diverse web team can easily collaborate on changes to the website with reduced risk and higher overall quality. The next chapter will explain in detail the concepts we have covered in this chapter. Creation of web forms from scratch, web projects, and content creation using the same is explained in great detail. It will take you through concepts of templating, associating templates with web projects, dashlets, dynamic content, and so on. Download from Wow! eBook <www.wowebook.com> Download from Wow! eBook <www.wowebook.com> Web Content Production with Web Forms In the previous chapter, we learned about creation of a web project. To set up a website you must have both web forms and a web project. Web forms provide the facility to manage content through a user-friendly and technology-neutral (as much as possible) interface. It allows you to separate content from code and presentation logic. It allows non-technical content owners to manage, approve, and deploy their own web content. Static content is required for a few websites. However, for many sites, dynamic and ashy content is required. Dynamic content can be managed easily with web forms, as content can be created once and rendered in many formats. In this chapter, you will learn about basic and advanced web form concepts and the ways to extend it as per your business requirements. By the end of this chapter, you will have learned how to: • Create web forms • Create rendition templates • Create FreeMarker templates • Create Extensible Stylesheet Language transformations • Associate web forms and renditions for specic or multiple projects • Update web forms and rendition templates • Create dynamic content • Create web publishing dashlets Download from Wow! eBook <www.wowebook.com> Web Content Production with Web Forms [ 106 ] Why web forms Consider a website, say, www.cignex.com, which has some primary sections, such as news, blogs, events, trainings, and solutions. The news, blog, and training elements have to be updated every month. Let's assume that in the structure of news element there should be a title, news headline, sub headline, page content, image, image title, and news date. For each content of the news, you must have these elements. To update these sections, each time you have to create new HTML/JSP les from scratch. This becomes quite clumsy. We need a way to manage it easily. Assume the concept where the structure is in place and you have to just put in the content. The concept can be called web forms. Another important thing to focus on is the fact that web forms are always stored in XML (Extensible Markup Language) format. Using web scripts, you can extract the web content (which is in XML format) and serve external applications. Thus you can consider the user interface to be in various technologies that will enable content to be used for various purposes wherever required. Content can be transactionally deployed to static content servers or Alfresco runtime repositories, providing complete architectural exibility for web forms. These enhanced capabilities make it easier for authorized users to preview and edit various le types, including those with multi-language content, before publishing. The new capabilities would allow contributors to preview pages rendered with different le formats, including HTML, PDF, RTF, XML, and mobile, as well as any UTF-8 compatible foreign language formats. Following are the benets of web forms: • Easily extensible solutions: This will allow users to separate content from code and presentation logic. Thus, content contributors can easily manage the website without developer intervention. • You can display the content in various formats. • Easy integration of external systems: Web forms are stored in XML format, which gives the advantage of platform and language-independent technology, thus making the content available to any web technology (PHP, Python, J2EE, AJAX, Flash, Cold Fusion, and so on). • Asset reusability: Static and dynamic include of the content makes the structure simpler. • It provides a rapid learning curve. Developing and maintaining Alfresco web forms require basic skills in XML, XSD, XSLT, and FreeMarker. Download from Wow! eBook <www.wowebook.com> Chapter 4 [ 107 ] The following diagram shows how to access content from the Alfresco repository to an external application: Introduction to web forms Web forms are also known as WCM forms. Web forms are used to capture content from the user and store it as Extensible Markup Language (XML) in Alfresco. The XML content is created based on an XML Schema Denition (XSD). Web forms can be rendered as user-friendly web-based forms. Web forms can be associated with multiple rendition templates to render web content in various formats, such as plain text, HTML, JSP, and PDF. Out of the box, it supports three types of rendition engines: Extensible Stylesheet Language Transformations (XSLT), FreeMarker, and Extensible Stylesheet Language Formatting Objects (XSL-FO). Web forms are stored in the Web Client Extension space within Company Home | Data Dictionary | Web Forms. Web forms can be congured to any number of projects. As web forms are located in the Alfresco space, they can be accessed by the default CIFS, FTP, and WebDAV interfaces. Creating web forms Let's take the same example as mentioned previously, of the Cignex website. We will create web forms for the blogs and news sections. Also, we will associate these web forms with the rendition templates. Finally, we will create content using web forms and preview it. Download from Wow! eBook <www.wowebook.com> Web Content Production with Web Forms [ 108 ] The process to dene and create web forms in Alfresco is as follows: 1. Identify structure to be used for each web form. 2. Dene your XSD le. 3. Create a web form using XSD. Identifying the structure to be used for each web form To create a web form you are required to create an XML Schema Denition (XSD) le with an extension as .xsd. XSD species how to formally describe the elements in an XML document. Before creating an XSD le you will need to decide what all user interface components you want to display in a web form. To create a schema for a web form, you analyze its structure dening each structural element as you encounter it. As mentioned previously, we will create web forms for the news and blogs sections. Consider that some of the elements that are required in creating an XSD le for news are: Brief Title, News Page Headline, News Page Sub Headline, News Page Content, News Article Graphic, Image Caption, Image Title, and News Date. Now that you have decided the elements, you will learn how to create an XSD le for simple user interface controls. You will know more about advanced controls in the short while. Dening a schema To create an XSD le we have to start with the standard XML declaration followed by the xs:schema element that denes a schema: <?xml version="1.0" encoding="ISO-8859-1" ?> <xs:schema xmlns:xs= http://www.w3.org/2001/XMLSchema xmlns:trn="http://www.alfrescobook.com/webforms" xmlns:alf= http://www.alfresco.org targetNamespace="http://www.alfrescobook.com/webforms" elementFormDefault="qualified" > </xs:schema> In the previous schema, we use the standard namespace (xs), and the URI associated with this namespace is the schema language denition, which has the standard value of http://www.w3.org/2001/XMLSchema. It is important to specify a namespace (xlmns:trn) for your web forms to eliminate collisions. You can have the same namespace for a specic development project. We will use this element while generating renditions. The alf namespace is added to enable label, alert, and appearance elements while writing an XSD. Download from Wow! eBook <www.wowebook.com> Chapter 4 [ 109 ] Dening a complex element Now we can dene elements inside a complex element. First we have to dene a root element. Let's dene news as a root element. This element has an attribute and it contains other elements, therefore we consider it as a complex type. The child elements of the news element are surrounded by an xs:sequence element that denes an ordered sequence of sub-elements. The syntax for dening a complex element is: <xs:element name="news"> <xs:complexType> <xs:sequence> </xs:sequence> </xs:complexType> </xs:element> Dening a simple element We can also dene a few simple elements inside the complex element. Simple elements are those elements that do not contain any attribute. Each element is dened with a name and type. Let's dene a few simple elements such as shortTitle, contentHeader, contentSubHeader, contentText, and so on. The syntax for dening a simple element is: <xs:element name="shortTitle" type="xs:normalizedString"/> Here shortTitle is the name of the element and normalizedString is the data type of the element. Following is an example of simple elements dening inside complex elements. <xs:element name="news"> <xs:complexType> <xs:sequence> <xs:element name="shortTitle" type="xs:normalizedString "/> <xs:element name="contentHeader" type="xs:normalizedString "/> <xs:element name="contentSubHeader" type="xs:string"/> <xs:element name="contentText" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> An XML schema has a lot of built-in data types. Each of these data types has a default widget rendering within the generated XForm in Alfresco. Download from Wow! eBook <www.wowebook.com> Web Content Production with Web Forms [ 110 ] The following table shows the associated widgets with the most commonly used XSD data types: XSD Data Type User Interface Widgets xs:normalizedString Textbox xs:string, xs:anyType WYSIWYG editor, Text area xs:date Calendar control xs:time Time picker xs:anyURI Asset picker xs:boolean Checkbox xs:integer, xs:float, xs:double, xs:decimal Slider control xs:enumeration Radio button, Drop down Now we will learn a few attributes that can be applied to an element in order to make it mandatory, optional, default value, or xed value. Default and xed values for elements An attribute may have a default or xed value. A default value is automatically assigned to the element and you can specify any other value. A xed value is also automatically assigned to the element, but you cannot specify another value. This can be considered as a read-only value. Following is the code snippet for dening default value. <xs:element name="contentHeader" type="xs:normalizedString" default="News Full Headline"> Optional and required values for elements We can dene the number of possible occurrences for an element with the maxOccurs and minOccurs attributes. maxOccurs species the maximum number of occurrences for an element and minOccurs species the minimum number. The default value for both maxOccurs and minOccurs is 1, which means the eld is mandatory. To set the element as optional, you have to set the value of minOccurs to 0 as follows: <xs:element name="contentSubHeader" type="xs:string" minOccurs="0" maxOccurs="1"> Download from Wow! eBook <www.wowebook.com> Chapter 4 [ 111 ] The element can appear multiple times by setting the maxOccurs attribute of the element to "unbounded", which means that there can be as many occurrences of the element as the content contributor wishes. We can also x the occurrences of the element by specifying any number. Advanced schema attributes There are some advanced schemas attributes provided that will enhance the capabilities provided within a form. For instance, you may want to display images in the web form. You may also think of validation in the web forms that will validate your content. For this, you are required to customize some of the widgets in web forms. File pickers Alfresco uses the xs:anyURI data type to overcome limitations such as inter-document relationships. Although XML standards do exist for dening relationships (XPointer and XLink), both are stagnant (no updates since 2001) and neither has achieved widespread adoption: <xs:element name="contentGraphic" type="xs:anyURI" /> This results in an "asset picker" widget, which will allow the content contributor to browse and select content from the web project. The following code snippet provides the ability to specify an image picker to get the images from any folder in the web project: <xs:element name="contentGraphic" type="xs:anyURI" minOccurs="0" maxOccurs="1" <xs:annotation> <xs:appinfo> <alf:label>News Article Graphic</alf:label> <alf:appearance>image_file_picker</alf:appearance> </xs:appinfo> </xs:annotation> </xs:element> Download from Wow! eBook <www.wowebook.com> . creation of a web project. To set up a website you must have both web forms and a web project. Web forms provide the facility to manage content through a user-friendly and technology-neutral (as. it up, and test. The JSP will evaluate without creating the WEB- INF and web. xml les. But more complex WARs will need WEB- INF and web. xml les for Tomcat to evaluate. Previewing WARs and getRealPath() For. XML Schema Denition (XSD). Web forms can be rendered as user-friendly web- based forms. Web forms can be associated with multiple rendition templates to render web content in various formats,

Ngày đăng: 05/07/2014, 20:21

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan