Home
InfoGlue - Developer Manual
Contents
1. s s sssssssssastessarsassancantasto 19 The request response cycle ss1 112 1 1 11141 11 1 111111111111111111911111114 19 APAGO IO details sui psio oriri iene de Fag dens A ped NEDI CRI idad 20 DEVELOPMENT PROCESS isn rs znnnouasunavnsanuvanrunkpunavuvunusuunvuzbukusususunnnuuuusvkusanauanta 22 SITE PAGE ANALYSIS o pesado ea kad EZER ORKO La Senay A A Meda eee an 22 CONTENT TYRES etic erodo sna o bovida cera aids Ma SO DOE on dines de Ta NK KARTON a dat 22 TEMPLATE COMPONENTELIST madin elektre a PEKOS DONNA KO PROPO TRIN A endaj 22 FOOLS sam n esros enuo sn SookonsasasvonseanskrvrasesdarasGugvengkuaveksvadaskkegauguvenngunssengeeantassavinusutdavo 23 BUILT IN TOOLS ivy ipea unini ii aaa ATE TETTE TTT a dao 23 PLUGINS ai ainan oot ec ae A forr An A E 23 BUILDING PAGES IN INFOGLUE s sssssssssnssssnnunsnnnunnnnnnuunnnnunnnnnnnnunnnunnnnnnnnn 24 BASICS ABOUT PAGE TYPES 22s di monoj sana Naina Sade eb esen oo konka enta 24 Basics about connecting content and other resources to pages 26 COMPONENTS rt TRETI TTT a 27 COMPOSITE pattern sss i ela ikan laek edero olun ia enpeli pron ii daj 27 Creating a component s22 sees a te bu rea E iros skatksvomstrikenikasiuteekota 27 ILT TT W HLL TETTE TTER PPE 27 Special tags sonein inaran ered sia Kad FA LERTON og ag DADA EGADO RAR AA TERO ead oI Dede ees 27 Properties
2. 1 1 1 39 Step 2 Package the portlet as a WAR file ssssssessstsntsatsos 41 Step 3 Deploy the portlet in InfoGlue s ssssssessessatsassassas 42 Step 4 Use the portlet on a page though a component 43 WORKFLOWS IN INFOGLUE s sssssssssnsssnnusnnnunnnunnnnunnnnnnnnnunnunnnuunnnnnnnnnnnnnnnan 44 INTRODUCING THE MY DESKTOP TOOL ssssssssessssuuuuestertraaaneenrretaannneennrrrnantans 44 OSWORKFLOW THE WORKFLOW ENGINE ssssssstessssssssennretuuanneenterranannennnrrtasas 45 MANAGING WORKFLOW DEFINITIONS IN INFOGLUE ssssssssesssssstsstecteasannnnrettraannnenntos 45 Author Mattias Bogeblad Page 3 2009 01 19 InfoGlue Developer Manual CREATING WORKFLOWS aiii a AA 46 VIEWS AAA AA ATA DA Bee Do AA NAAA ia NA 46 T e Property SE AAA a 46 ACEON Sii A Ra eare IA nea ad ray A E ds 47 Function providers populators and other helper classes ooccccccccocnconnnconocnnonananons 49 EXAMPLE WORKFLOW DEFINITION sssvseteutuntuntuanaatantuetuatentententanteatantartannantanrantanos 50 EXAMPLE VIEW ekspo eton gallo ia lor gaseto sparis ela NEn da as 54 COMMON PATTERNS coiiiiacriciris ie 56 BUILDING A BASIC PAGE ida AA EE DAO EV VA Sa Ei 57 HOW TO MANAGE STYLE CSS sss tanina nkla GE me SRI RA chased KANON paced Kada koi ke GAS RIDAR RA 58 HOW
3. lt taglib uri infoglue common prefix common gt lt taglib uri infoglue page prefix page gt lt taglib uri http java sun com jstl core prefix c 905 page deliveryContext id dc trimResponse true gt common rssFeed id rss title MyFeed link http www mycomp com rss description The best feed feedType atom_1 0 gt lt content childContents id news propertyName News folder sortAttribute publishDateTime sortOrder desc lt c forEach var newsltem items news varStatus count content contentAttribute id navigationTitle contentId newsItem id attributeName titleName gt content contentAttribute id leadIn contentId newsItem id attributeName descriptionName gt structure pageUrl id url contentId newsItem id propertyName News detail page lt common rssFeedEntry title navigationTitle link url description leadIn publishedDate newsItem publishDateTime gt lt common rssFeedEntryCategory taxonomyUri infoglue name Sports gt lt common rssFeedEntryCategory taxonomyUri infoglue name News common rssFeedEntry c forEach lt common rssFeed gt lt c out value rss escapeXml false gt Author Mattias Bogeblad Page 138 2009 01 19 textRender InfoGlue Developer Manual This tag creates a image from a string I can cope with a lot of parameters Parameters Name id propertyNa
4. Author Mattias Bogeblad A collection of tags aimed at performing some CRUD operations on contents in InfoGlue from the deliver engine Uses a web service API to work against the CMS A tag capable of exporting a content fully into an importable xml file Same result as the content export feature found in the content tool but available from templates We use this in InfoGlue org to automatically export the latest version of templates on requests Page 79 2009 01 19 InfoGlue Developer Manual contentAttribute Description This tag will get you the value of a named attribute in a content either bound though a property or referenced by a content id Parameters Name Req Def Type Description id true String The result is stored in this variable contentld false Object String The id of the content you wish to get the attribute value from propertyName false Object String The property name the component used to bind the content by in which you wish to get the attribute value from languageld false Object String The id of the language you wish to get the attribute in Default the language the user is browsing the pages in is used contentVersion false Object String The ContentVersion object you want to get the attribute from if you have that available directly attributeName true Object String The name of the attribute you wish to get disableEditOnSight false false Object String If set to true the component edito
5. Tag Description contentAttribute This tag will get you the value of a named attribute in a content either bound though a property or referenced by a content id assetUrl This tag will get you the asset url taken from a content either bound though a property or referenced by a content id assetUrls This tag will get you the asset urls taken from one or many contents bound by a property assetUrlFromString This tag will get you an asset url by storing the string you supply as a file in the asset directory and returning an url to it assetThumbnailUrl This tag will get you the asset url taken from a content either bound though a property or referenced by a content id Then it will scale it according to your specs so you get the thumbnail and not the full image contentTypeDefinition Gets a content type definition object by it s name This can then be used for generating forms etc contentDetailPage A tag capable of finding the url to the most probable endpage for a certain content relatedContents This tag lets you get a contents related contents contentVersion content This tag fetches a content version so you can get the properties of that object or get related objects in the object model This tag fetches a content so you can get the properties of that object or get related objects in the object model assignedCategories This tag fetches the full path of a c
6. Author Mattias Bogeblad Page 119 2009 01 19 InfoGlue Developer Manual pageAccessRights Description Fetches the access rights for a certain entity in the system Very useful for some specific situations Probably mostly usable for experts in unusual situations Parameters Name Required Default Type Description id true String The result is stored in this variable interceptionPointName false String Object The interception point you wish to check for access rights siteNodeld false String Object State which site node to check ID result variable contains A list of AccessRightVO Examples This example get s all access rights for the current page and print out the roles groups users for it lt structure pageAccessRights id accessRightsVOList gt lt hi gt Access rights lt h1 gt lt c forEach var accessRightsVO items accessRightsVOList gt lt c out value accessRightsVO gt lt c forEach var role items accessRightsVO roles gt role lt c out value role roleName gt lt br gt lt c forEach gt lt c forEach var group items accessRightsVO groups gt group lt c out value group groupName gt lt br gt lt c forEach gt lt c forEach var user items accessRightsVO users gt user lt c out value user userName gt lt br gt lt c forEach gt lt c forEach gt Author Mattias Bogeblad Page 120 2009 01 19 InfoGlue Developer Manual
7. Sets which content type to use when creating a new user property object if no existing is available Sets it the change should be published directly by force Important if the user should see the change soon after to confirm properties gt value Blade gt lt page deliveryContext id dc useFullUrl true disableNiceUri false gt lt content contentTypeDefinition id ctd contentTypeDefinitionName User management remoteUserPropertiesService id rups operationName updateUserProperties languageld dc languageld contentTypeDefinitionId ctd id management userPropertiesAttributeParameter name Alias lt IF WE HAVE A image upload we can do lt content digitalAssetParameter assetKey fileItem fieldName contentType fileltem contentType fileltem fileItem gt gt lt management remoteUserPropertiesService gt Author Mattias Bogeblad Page 161 2009 01 19 InfoGlue Developer Manual accessRights Description Fetches the access rights for a certain entity in the system Very useful for some specific situations Probably mostly usable for experts in unusual situations Parameters Name Required Default Type Description id true String The result is stored in this variable interceptionPointName true String Object The interception point you wish to check for access rights parameters true String Object Depending on the interception point you will need
8. The url of the background image to be used How much you want the image to be twirled How much you want the image distorted in x scale How much you want the image distorted in y scale How turbulent the distort should be How strong the distortion should be 2009 01 19 InfoGlue Developer Manual Example This example first generates a captcha image and the key to the text is stored in the session under the variable name catpchaText Then we can send the variable with the form as a hidden field and on the target page read the captcha text by using that variable as a key lt common gapcha id catpchalmageUrl textVariableName catpchaText numberOfCharacters 6 fontName Arial fontSize 26 fgColor 255 0 255 255 bgColor 0 0 33 55 padTop 20 padBottom 20 renderWidth 200 padLeft 35 gt lt img src lt c out value Xcatpchalmageurl escapeXml false gt gt lt form gt lt input type hidden name captchaKey value c out value catpchaText gt lt form gt Then on the other target page check the form field the user enters against lt String request getSession getAttribute String request getParameter captchaKey gt Author Mattias Bogeblad Page 149 2009 01 19 InfoGlue Developer Manual authorizedRemoteAddress This lets you control access to content based on users IP address range hostname Parameters Name Required Defau
9. Description Returns a siteNode object for further operations Parameters Name Required Default Type id true String targetSiteNodeld false Object String siteNodeld false Object String propertyName false Object String uselnheritance false true boolean useRepositoryInheri false true boolean tance useStructurelnherita false true boolean nce ID result variable contains Description The result is stored in this variable The id of a site node you wish to investigate for the property if you don t want to look for it on the current page The id of the site node we wish to load must state either this or propertyName The property binding the site node we wish to load must state either this or siteNodeld Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above Sets if the component should use the repository inheritance or not when looking up entities using inheritance Sets if the component should use inherit properties from it s parent site nodes A org infoglue cms entities structure SiteNodeVO object Examples This example gets the site node object bound on property Article structure siteNode id siteNode propertyName Article SiteNode was c out value siteNode name gt Author Mattias Bogeblad Page 117 2009 01 19 InfoGlue Developer Manual sortPages Description This
10. Developer Manual Workflows in InfoGlue This chapter tries to give an introduction to how one creates new workflows Introducing the My Desktop Tool In InfoGlue there is a tool called My Desktop which foremost is the center for workflow activity The interface looks like this MyDesktop InfoGlue CMS Mozilla Firefox 5 xi File Edit View Go Bookmarks Tools Help a o BD En O httestious modutt tripnet se 6081 jinfogluecMs ViewCMSTool action O CL Li Anpassalankar Gratis Hotmail Windows Media Windows MSU DX Disable EP css A Forms lm Images i Informationy Xi Miscellaneous 7 Outline J Resizer Validationy A View Source lt 5 Optionsy Y gt D InfoGlue Content Management Platform LANGUAGE MY SETTINGS HELP im LOG OUT i NEW WINDOW The areas are Ongoing workflows Marked with red border Shows the workflows that are currently active In 2 1 of InfoGlue one can set up if only to show workflows belonging to one self or all active workflows It is possible to from the workflows set the name shown there default is simply the workflow name Next to the name are buttons representing functions available For example stopping and aborting the workflow is done there Left to the name is an information button that let s you see how far the workflow has come Available workflows Marked with blue border Shows all available workflow definitions that can
11. Sets if the component should use repository inheritance when looking for inherited items Sets if the component should use inherit properties from it s parent site nodes The following example gets the assets from the content bound by the component property Article and shows the image as well as the asset size c forEach content assets id assets propertyName Article gt c forEach var asset items assets gt lt content assetUrl id imageUrl digitalAssetId asset id gt Asset lt img src lt c out value imageUrl gt gt lt c out value asset assetFileSize gt Author Mattias Bogeblad Page 85 2009 01 19 InfoGlue Developer Manual contentTypeDefinition Description Gets a content type definition object by it s name This can then be used for generating forms etc Parameters Name Required Default Type Description id true String The result is stored in this variable contentld false Object String The id of the content you wish to get the content type of contentTypeDefinitio false Object String The name of the content type you wish to get nName ID result variable contains An org infoglue cms entities management ContentTypeDefinitionVO object Examples The following example the content type definition with the name Article That object ContentTypeDefinitionVO contains the schema for that content type The schema can be parsed with the other tags
12. e Enable WYSIWYG only applicable if textarea is shown Enables the Toolbar only applicable if textarea is shown and Enable WYSIWYG is true Let s you select which toolbar to show Entity only applicable for binding type property State if it s a binding to a content or a page sitenode Multiple only applicable for binding type property State if it s a binding to one or many of choosen entity type AssetBinding only applicable for binding type binding and entity content State if the property is a digital asset Shows a different dialog Puff for page only applicable for binding type binding and entity content This is a little special It was developed for users who want for example to reuse an article bound on a subpage for a startpage or similar and want a link in that component to automatically find the subpage where the contents main location is and link there Having this set to true the property will handle if the bound content exists on several pages with dialog options Allowed content type s only applicable for binding type binding and entity content Let s you limit what kind of contents can be bound Auto create content only applicable for binding type binding and entity content If set to Yes the component will automatically create and bind a content to the property This is very useful if you want to simplify for your users With this they will not have to know much about the content tool or content
13. id true String contentId false Object String propertyName false Object String languageld false Object String categoryKey false Object String useAttributeLanguageFallback false Object String useLanguageFallback false true boolean useRepositoryInheritance false true Boolean useStructurelnheritance false true boolean ID result variable contains Description The result is stored in this variable The contentId on which to get the last version in the current mode If set the tag returns the content object bound on this property name If set the tag returns looks for a last version matching that laguage Defaults to the users current site language What category key should be checked Sets if the tag should fallback to the master language if it does not find any assigned categories in the given language event though a content version exists Sets if the tag should fallback to the master language if it does not find any version in the given language Sets if the component should use repository inheritance when looking for inherited items Sets if the component should use inherit properties from it s parent site nodes A org infoglue cms entities content ContentCategory object Examples The following example gets a list of ContentCategory objects assigned to the latest content version in the current language on the content bound by the property Article It also prints the list and shows off another tag which gives you
14. lt common urlBuilder id currentUrl fullBaseUrl true gt This results in the current full url lt taglib uri infoglue common prefix common gt lt taglib uri http java sun com jstl core prefix c gt lt common urlBuilder id url excludedQueryStringParameters apa bepa gt common parameter name extraparameter1 value foo gt common parameter name extraparameter2 value bar gt lt common urlBuilder gt This results in the current full url without the parameters apa and bepa but with two new parameters Author Mattias Bogeblad Page 132 2009 01 19 InfoGlue Developer Manual include Description This tag makes it possible to include a template in another template that way modularizing a page without making it dynamic Good in some cases where users don t want so much flexibility Parameters Name Required Default Type Description id true String The result is stored in this variable contentld false Object String The content id in which the related templates lies relationAttributeNa false Object String What attribute contains the related contents me contentName false Object String In the collection of related template contents what is the name of the content you wish to include useAttributeLanguag false true Object String States if language fallback should be used eFallback ID result variable contains The rendered result as a String object Exampl
15. structure boundPage id detailPage propertyName Detail page The page id is lt c out value detailPage siteNodeld br a href c out value detailPage url gt gt lt c out value detailPage navigationTitle gt lt a gt Author Mattias Bogeblad Page 108 2009 01 19 InfoGlue Developer Manual boundPages Description This tag will get you a collection of webpage object describing a bound infoglue page Parameters Name Required Default Type Description id true String The result is stored in this variable propertyName false Object String The property name the component used to bind the content by in which you wish to get the attribute value from uselnheritance false true boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useRepositoryInheri false true boolean Sets if the component should use the repository tance inheritance or not when looking up entities using inheritance useStructurelnherita false true boolean Sets if the component should use inherit properties nce from it s parent site nodes escapeHTML false false Object String Sets if the tag should escape any i18n chars to HTML entities hideUnauthorizedPa false false Object String Sets if protected pages which the user does not have ges access to should be shown ID result variable contains A list of org infoglue deliver a
16. A mm mn nn Or e On OO Desc A a a ISCURRENTSITENODE iia a A KONAN canal 111 DESTA A a a is 111 POTASA A A O EA AAA AAA EKDIRIS ieee 111 A eve cured cieeevetans eens TEA RRRA DO EKD ed arin eam KN TLU Ta KRES Reeders cones oe Defdullt a A A so e e AD bee BK IK nA aka eza TAPA add DESCHIPUON is rn il Saul uae ot dite ta alee anne KAE MTER ante kuko dos pa ee rek and Oanods E ISSITENODEPARENTTOCURRENTSITENODE ssssssssssssssssssssssssensesansesneeeeeeeeeeeenns 112 DDESEFIptlON ees ss p a aaa 112 Paramete Sorrera as ETA TAK EAE E EE SE PDLIEPILTPTA VECE TE nda NS 112 REQUIRE TETTE TO POTO Defa lta eee NTA ENA Se AJ TYPE ne E IN EEE LOL KVAN NEA a i DESC ss AN ANEN NI TDA VIN ONI EJ Author Mattias Bogeblad Page 9 2009 01 19 InfoGlue Developer Manual COMPONENTPROPERTYVALUE sssssssssssssssssssusssssss assassansansessesnensnsnnsnnnenennnnnnantuntn 113 DESCFIPUION siis skalon RT eko evans Me ebaresdaos uae hives REO RIZA vio ARKI KOKEK LOGA KRGX vedas 113 PAPAIN GLENS sisi inated Sots Bd EE Cun aide db o a enkodo seko ee bowed oes eu Laue aan 113 REGUIKE as aa i A A AIA TY P ci a A PA A A gD eae TE DescriptiO Mes coirpe o F F COMPONENTPROPERTYVALUES ssssssssssssussasassasssssassansansessnnsnsnnsensnnnnnnnnnenqnnsantannn 114 DESGH PEON p AA ANIS a E re ko DA AE ral ri iio 114 PAPAIN CECT S na o ele DEE A AA AA bead bao kn badd
17. Examples The following prints out if the given site node is the one the user is looking at now lt structure isCurrentSiteNode id isCurrentSiteNode siteNodeId mySiteNodelId gt Is the siteNode sent in the same one as the user is currently rendering lt c out value isCurrentSiteNode gt Author Mattias Bogeblad Page 111 2009 01 19 InfoGlue Developer Manual isSiteNodeParentToCurrentSiteNode Description This tag returns if the given siteNode is a parent to the one the user is currenly looking at nice for navigation Parameters Name Required Default Type Description id true String The result is stored in this variable siteNodeld false Object String The id of the siteNode to check ID result variable contains True or false Examples lt structure isSiteNodeParentToCurrentSiteNode id isSiteNodeParentToCurrentSiteNode siteNodeId mySiteNodelId gt Is the siteNode sent in the same one as the user is currently rendering lt c out value isSiteNodeParentToCurrentSiteNode gt Author Mattias Bogeblad Page 112 2009 01 19 InfoGlue Developer Manual componentPropertyValue Description This tag will get you a component property value if it is a textfield textarea or other non binding property Parameters Name Required Default Type Description id true String The result is stored in this variable siteNodeld false Object String The id of the siteNode on
18. The text to transform Should the text be HTMLEncoded all non ascii chars are replaced by html entities Should the tag replace linebreak chars What string should replace the linebreak chars State this if you wish to replace a string in the text with another string Can be a regular expression The new string Set this attribute if you wish to insert a string before the text This is an optional attribute to the prefix attribute Let s you state that the prefix only be added if the text contains matches a regular expression you state here This is an optional attribute to the prefix attribute Let s you state that the prefix only be added if the text does not contains matches a regular expression you state Set this attribute if you wish to insert a string after the text This is an optional attribute to the suffix attribute Let s you state that the suffix only be added if the text contains matches a regular expression you state here This is an optional attribute to the suffix attribute Let s you state that the suffix only be added if the text does not contains matches a regular expression you state This example will output Testing amp nbsp replacing amp nbsp all amp nbsp spaces into the document lt taglib uri infoglue common prefix common 995 lt taglib uri http java sun com jstl core prefix c 995 lt common transformText id transformedText text Testing replacing all spaces replac
19. componentProperties Description Returns all the properties all components on the page with the same property name Parameters Name Required Default Type Description id true String The result is stored in this variable siteNodeld false Object String The id of the site node we are to check for properties propertyName true Object String Sets which property to check for bindings uselnheritance false true boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useRepositoryInheritan false true boolean Sets if the component should use the repository ce inheritance or not when looking up entities using inheritance useStructurelnheritanc false true boolean Sets if the component should use inherit e properties from it s parent site nodes ID result variable contains A list of Map objects which contains information as elements in them like name path type and bindings Examples This example gets all articles on a page and then loops them and prints info on each bound content structure componentProperties id articleProperties siteNodeId param originalSiteNodelId propertyName Article uselnheritance false c forEach var articleProperty items articleProperties varStatus count gt c forEach var articleBinding items articleProperty bindings varStatus countBindings gt lt content content id
20. escapexXml false gt Author Mattias Bogeblad Page 98 2009 01 19 InfoGlue Developer Manual remoteContentService Description A collection of tags aimed at performing some CRUD operations on contents in InfoGlue from the deliver engine Uses a web service API to work against the CMS Parameters Name Required Default Type Description id true String The result is stored in this variable targetEndpointAddress false The webservice Url operationName What operation should we call look at the API principal What principal is doing the operation defaults to the current user anonymous or extranet ID result variable contains The result from the webservice mostly a string with ok nok Examples This example creates a new Article content in the CMS under the folder with content id 21 use alternative method like binding perhaps to point out where It also creates a version with two attributes Title and FullText in the language the user is currently browsing the site You can of course make this example much more dynamic but this is a small example at least page deliveryContext id dc useFullUrl true disableNiceUri false content contentTypeDefinition id ctd contentTypeDefinitionName Article lt content remoteContentService id rcs operationName createContents lt content contentParameter name InfoGlue test parentContentId 21 contentTypeDefinitionId ctd id repositoryId
21. http localhost 8080 Choose component to add Mozilla Firefox AB Ioj xi Click on the component you wish to add Change this to show other components located in another repository Demosajten Icon Component Name w Repository GroupName Ay 4K 3 col Component Demosajten Basic Pages AK Article Box Dernosajten Basic Pages _ Description E Al This component can show an article very nicely and we can use it in many different scenareous including several important ones d AK Auto Form Demosajten Basic Pages 2 4K Base Component Demosajten Basic Pages g AK Base CSS Component Demosajten Basic Pages 4a AK Box Container Component Demosajten Basic Pages d AK Crumb Trails Component Demosajten Basic Pages Le AK Moartiiment Anv Nermncaiten Basir Panes e To add a description just add a content type attribute called Description on the HTMLTemplate content type Then enter a description for those components you want to have a description for in the gui above e To add a thumbnail just attach a normal image with the asset key called thumbnail to the component content API The component example shown above is JSP based You can develop components in JSP Velocity or Freemarker in InfoGlue 2 3 The system recognizes JSP templates on its own and let s tomcat compile them You can of course write scriptlets which uses the BasicTemplateController as you do in velocity but an even more elegant solution is to us
22. to an action From the workflow tool the My Desktop will send the user to the view first When the view actually invokes the action upon user interaction through the URL given to it the prefunctions will get called first and then results parts are evaluated and any post functions get called last Let s look at a small step action in detail Taken a bit from context we can guess by the name of this action that it will present the user with a list of groups he can choose from We can also see that this action has id 11 and the step has Id 1 and that the action begins with a few pre functions We have made them all as classes The incoming data from the interface will be a group selected if the user has chosen The first pre function is an OSWorkflow standard function which sets the caller as owner of the action this is standard and should always be used The second function is an InfoGlue function which populates the transient vars with a Language object fetched from InfoGlue s language list with the language code sv To be used later on The second function is an InfoGlue function which takes the incoming request and checks for the group selection parameter in it and if found populates the transient vars and also the property set with this information as well as a status group ok status The status will be status group nok if the user forgot to select a group Author Mattias Bogeblad Page 47 2009 01 19 InfoGlue Developer
23. uselnheritance false true Object String ID result variable contains True or false Examples Description The result is stored in this variable The id of the siteNode to check The id of the language to check for a property The property name the component on which to look for a property Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above structure hasDefinedProperty id hasDefinedProperty siteNodeId mySiteNodelId propertyName Article gt Is article defined lt c out value hasDefinedProperty gt Author Mattias Bogeblad Page 115 2009 01 19 InfoGlue Developer Manual childComponents Description Returns a list of components contained in the current one Parameters Name Required Default Type Description id true String The result is stored in this variable slotId false Object String The id of slot to investigate for components ID result variable contains A list of org infoglue deliver applications actions InfoGlueComponent Examples This example gets how many components are in the center slot structure childComponents id childComponents slotid center common size id size list childComponents gt Slot center contains lt c out value size gt components Author Mattias Bogeblad Page 116 2009 01 19 InfoGlue Developer Manual siteNode
24. you must combine any sections Entitled History in the various original documents forming one section Entitled History likewise combine any sections Entitled Acknowledgements and any sections Entitled Dedications You must delete all sections Author Mattias Bogeblad Page 167 2009 01 19 InfoGlue Developer Manual Entitled Endorsements 6 COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License and replace the individual copies of this License in the various documents with a single copy that is included in the collection provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects You may extract a single document from such a collection and distribute it individually under this License provided you insert a copy of this License into the extracted document and follow this License in all other respects regarding verbatim copying of that document 7 AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works in or on a volume of a storage or distribution medium is called an aggregate if the copyright resulting from the compilation is not used to limit the legal rights of the compilation s users beyond what the individual works permit When the Document is included in an aggregate this License does not a
25. 19 InfoGlue Developer Manual cropText This tag will crop a text sent in very useful for cropping a long texts into short introductions showing only part of the text Parameters Name Required Default Type Description id false String if specified the result is stored in this variable otherwise the cropped text will be written to the page directly text true Object String The text you wish to crop startIndex false 0 Object String If stated the tag will remove all chars before this index maxLength false Object String If stated the tag will remove all chars after the specified number of chars suffix false ame Object String Will add the suffix after the cropped text to indicate that there are more text which was removed adjustForEntities false true Object String If the text contains HTML entities it will affect the string length set to false if you do not wish the tag to account for this not recommended ID result variable contains A String object Examples The following example crops the text and outputs it to the page common cropText id croppedText text This is a text which we want to crop maxLength 10 gt The result would be This is a text which without the qutoes Below is an example of a more customized example where we use an existing variable as input instead and also state our own suffix lt common cropText id croppedText text myTextVar maxLength 20 suffix
26. Including DB SS Author Mattias Bogeblad Page 17 2009 01 19 InfoGlue Developer Manual How does it work InfoGlue is a bit different than many other web content management systems We have chosen to strongly separate the information that is to be shown to visitors from the form in which it is shown in This is what in general terms are called separating content from presentation The implication is that there are two different aspects to manage the information itself on the one side and the layout and flow of the websites presenting the information on the other side We usually call information in different forms in InfoGlue for Content A content in InfoGlue can be text image word files animations or anything else of informational value There are no format limitations Everything that concerns information content is managed in what we call the content tool for obvious reasons You can view it as a place were all information is stored and managed no matter where it should be used later on You can for example use it as an image bank or a file bank if you want to and never bother about the web at all Many other web content management systems are very page centric This means that they require you to fill in the information specific to how it will look on a specific page in the site They focus on how the information should be shown and not on how to keep the information structured Often this results in having to
27. KR La DAA Ga PISA MA EEL DELO SI MEIO 88 REGQUIE 5 supreni eron A sag AR a rn a ba Da ra bato neka Da Dao va a Defa lt r cos A PA NIT RA A LT A be Dara o ESKA DADA NL A Ka Du TAPETE ia di Description NETR A ii GONTENTVERSION isn Seusgoo komao smnoo a a 89 DOS CHIPUON zs ise desa sss gek vedi atemaoiavo reuzi sus kask dees ioov i ku so A usu sa sod iie u fret aiucdiaers es 89 PAKAMEDEKS o uta soo Kupis ebe what dd whe A o ima kakao Sand KRA SR baw Sema suns Kiril ols 89 RE QUI CC so es l Kb do DEKA KAV Aaa nj ined FO IEE A DU NO EA EDE lID KORTE KONA tino Deal ii A KAT ka aa kalkolo we Morale SO kio KON DE KIER ER KIAJ TIVE a TL E a IT DL VON I AS iu DESC AA E OE E LA ANA IO SEA SJ CONTENT VERSIONS vats usa stats id O OKO E KERA AO 90 Author Mattias Bogeblad Page 6 2009 01 19 InfoGlue Developer Manual DOSCrIPUON 3 speso E EV baa E borma Cree a eae ka 90 PALAIMICLORS seas E ETE A TTTT TTT TTT TETTE ETT NO 90 Requited s su e ONA NL ET DE AL aa A e l E A catia a vera teas AO Typesakz e stt er Ae eem eN e NL ALA AP re e a eN ST ko Descriptiva o E oO OL ASSIGNEDCATEGORIES otrora A da o GI KANDE BAJ 91 DOSCHIPU OD resis reap FI EKO a KERO ETA DNA KEA ne erating texte 91 Parametros A 91 REQUIFCG ii FE ENA A Ai A A A PS conte ote e Tanase REK E Ka RK RAKA A Aaaa Ai a Ma idana Ayo A AA ches cdenede ce tan A AAA RARA ced DESCFIPUION v3 ceceztecus AAA A PAEA EEN BOUNDCONTEN TS ica r clas bah taaes sgsan
28. Manual considered first when optimizing Also consider optimizing components with a lot of hits before seldom used components if they both have slow times Individual components in milliseconds AK EventList Pod Component 4161 1 hits 6547 AK News Listning Component 4165 1 hits 2796 Mattias Nyhetslista 4141 5 hits 1431 Officestand2 breadcrumb 7 1 hits 282 PO komponent 4148 1 hits 266 tlt1 4144 1 hits 188 Officestand2 Vertical navigation 39 1 hits 172 OficeStand2 header 34 1 hits 125 AK Start Page Component 4136 2 hits 17 AK Base Component 4124 26 hits 109 ML Component 4156 2 hits 86 Officestand2 News Iterator 41 1 hits 62 OficeStand2 startpage component 33 2 hits 54 AK Simple Search Component 4130 13 hits 53 AK Left Nav Dynamic Component 4176 13 hits 37 AK Base CSS Component 4180 4 hits 31 OficeStand2 Article Component 42 1 hits 31 AK Simple Article Component 4168 11 hits 28 AK Start Puff Component 4139 4 hits 27 AK Language Select 4132 13 hits 27 AK Document Box 4137 12 hits 24 AK Image Component 4160 2 hits 23 AK Main Nav Component 4164 13 hits 21 AK Page Template 3 Component 4134 11 hits 18 AK Article Box 4138 11 hits 14 OfficeStand2 CSS 5 2 hits 8 AK Crumb Trails Component 4163 13 hits 6 OfficeStand2 3 col divider 40 1 hits o OfficeStand2 Footer component B8 1 hits 0 Mickes Comps 4155 3 hits o Officestand2 Horisontal navigation 3
29. TELE TEESE A CTT CTECTUETET A Aa ad RATA DTT 122 PAKAMEVEIS mia E AEE io daa SI RRA LKE SN SIA GN VR IMAS KOR ITI RS Ine uuS a TEP IA Peer reer as 122 REQUIRE A ene ag seman vag A EO IKA I KER GI KRNS Detalla A sabe DEKR HOSS aw SONI A OK AN IGNO DINA NNN ER EE wea TYPE so A sau dee a KL ON NU At aie ahaa Descrlptlon sss EN I NO Sea ee gee PAGEASDIGITALASSETURLTAG sssssssssssssutuutuntuntantantantununnunnennunnunnunrnnnnessssassanas 123 DESCFIpUION sisas sei ia ruinis kasedo A A RIS KOZO o AS 123 PaFAMEPEFKS siori neke A Ded ERAO I VEREDA DE AG ok GOD IR OPON ES Aia 123 ROQUIF op oeoui rep pe ee np rr rem rr mo mo nO PO Pn ia Detalla e e o OVO Ra uae io TY o ES a A A hoho ep p OO EPO P ojg sla o ai SITENODESFROMWEBPAGES sssssssssssssssssussasa s assansansansnnnnnnnnennnnnnnnnnennsnnsnntanna 124 DESCFHIUION e sda ee ead ED DRA ERO A OO kak rido 124 PAKAMETEIS paradon A Beaded nad donde na bie 124 Reqlired sssvissssvosti gar SG SG TR RA EKK RR TAGE RIEN stivepee RARA RA A AR Pr rr rr A D A ASAA a A Endat TE TES TP AAT E A E A E AAT DESCHIPUON oir ire COMPONEN iaa 125 DESC a AA 125 PRA a a i 125 TP A a a Al DESCHIPEION ciar envanedesdaas SKO E KIE LER RIE ENAN So KATEl EEEE COMMON TAGS siete Sepo ea eo reen ke tonala rek rok iru k rek ik eka nonskuvo rikol fokala sveda tiiii dssavberevsewrens 126 IDESEFIDUO isis va doe li ekg E e aa hand viens ade gra nam a eects a Ohare koakto 126 Location
30. TO MANAGE JAVASCRIPT S zs ussevitunsiaskrikcbisevkidasaluanuisanVinhun askaauabodenkkxrvadksku eska al 60 ADDING SLOTS FOR DYNAMIC PARTS sssssssssssqqnantattantaarnranreanaanenarantangnnrerrerranrrnrnns 61 BUILDING A BASIC CONTENT PRESENTATION COMPONENT ssssssssssssssnnnsausuununnnenuasnnnannntas 62 JSP STNEE EEA kudo ekkonata tata esa iu enke sdek kid ska kisa DE KA led TE KIG Leadeseboesetes steri okti lo 62 VELOCITY STYLE sss vrai rin kke anla ndi kro kilio fas kiak odi eko 8 laj kelka KAKI aad cla bee 62 BUILDING A BASIC NAVIGATIONAL COMPONENT sssvvsvuutuutaunantuntuntentantuntantnetantantunnuntants 63 JS PASTY LE stingi aan NO KN DI OKRA ON DI SS NERIO KOS ENON ST IRA ADI NOOK O DN KTA nak KEA OG 63 VELOCITY SLE pm EEK EE DEO eee ue baba TIE A EKK KK KN dea ka kelkon Hada kie 63 PERFORMANCE TIPS ssssssssnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmnnnnnnnnunnnnnmnnnnnnnnnnnnnunnnnn 64 QUALITY AND OPTIMIZATION TIPS sssssssssssussuunnuuunnunnnnunnuunnuunnuunnnnnnnunnns 65 VIEWAPPLICATIONSTATE ssssssessqnqsnuuaqqntantratranranrnrtnnrnnrannnanngengegengengenenrennentanos 65 MAINZNOFFIGATIONSi ai ice cdanauae een koia cga 4a a Gakuaka Sm US eras Va 66 INCLUDED 3 RD PARTY TAGLIBS ssnnunnnnnmnnnnnnnnnnunnnnnnnnuunnnuuunnnnunnnuunnnnunnnnnunnr 67 APPENDIX A TAGLIB REFERENCE FOR THE INFOGLUE PLATFORM su unnnnn 69 PAGE TAGS tata Tr T TI TT TTT TRETI TTT TTRTTTF TL p TRE TRA 70 A
31. add other material on the covers in addition Copying with changes limited to the covers as long as they preserve the title of the Document and satisfy these conditions can be treated as verbatim copying in other respects If the required texts for either cover are too voluminous to fit legibly you should put the first ones listed as many as fit reasonably on the actual cover and continue the rest onto adjacent pages If you publish or distribute Opaque copies of the Document numbering more than 100 you must either include a machine readable Transparent copy along with each Opaque copy or state in or with each Opaque copy a computer network location from which the general network using public has access to download using public standard network protocols a complete Transparent copy of the Document free of added material If you use the latter option you must take reasonably prudent steps when you begin distribution of Opaque copies in quantity to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy directly or through your agents or retailers of that Author Mattias Bogeblad Page 165 2009 01 19 InfoGlue Developer Manual edition to the public It is requested but not required that you contact the authors of the Document well before redistributing any large number of copies to give them a chance to provide you wit
32. amp raquo gt The result would be This is a text which without the qutoes Author Mattias Bogeblad Page 135 2009 01 19 setCookie getCookie These taglibs lets you set get a cookie Parameters Name Required id false text true startIndex false maxLength false suffix false adjustForEntities false Default true ID result variable contains A String object Examples Type String Object String Object String Object String Object String Object String InfoGlue Developer Manual Description if specified the result is stored in this variable otherwise the cropped text will be written to the page directly The text you wish to crop If stated the tag will remove all chars before this index If stated the tag will remove all chars after the specified number of chars Will add the suffix after the cropped text to indicate that there are more text which was removed If the text contains HTML entities it will affect the string length set to false if you do not wish the tag to account for this not recommended This below will result that the cookie foo will get the value bar but it expires when you close the browser maxAge 1 lt taglib uri infoglue common prefix common 995 lt taglib uri http java sun com jstl core prefix c 905 common setCookie name foo value bar domain infoglue com path This below will
33. and short description s ss s ssssscsscescancancantas 103 CURRENTPAGEURL s s sm ked eerie a A KRAK OTO KORKA KAKAO KOKAO 104 DDESEF IpUION his is reen E DM Ka NVS I KOK EIE DLA RIG DUKO beads 104 PATAMETEIS arivir BL IKA SIA KA TN EES PROKEE AAA LEER P OGAN TNBEROR TINTIS Soklo 104 NAME sepsa ds ee AA PR ERNA KECO ANK kad a ada eee Kla tao 104 Required TTT A N A A 104 PCPA lta ad face oe whe eae ut ee dae Sas A eal eae eee pee 104 IVpors eem pen a sean deca a vea guos rbon kre brakun Teba sts wees tendon e twee 104 DEeSCHDIUON et seve eo kuko e ram de dal Gad Kura onde cide aen sobra nla nabo ao rd isa 104 PAGEURLAFTERLANGUAGECHANGE ssssscsstuutustuututtutuuntuntunnunnunsungusaussussungunsunastasas 105 DOSCHPUON EEE TTT TTT TTTTTTETTTE 105 Paramete Sneen rri rr TTT TTT TTT ia dai ali a ie dida 105 Names so iaa rd Lo e TETO 105 REQUIRE 105 DOUE A A A A eee ORO 105 DD o TE aa 105 Author Mattias Bogeblad Page 8 2009 01 19 InfoGlue Developer Manual Descriptor KM I o ieee E KA l laa Ze a TTT aia 106 Description ai 106 PALAIMGLORS soe rise FTI ake SOR asad TTT TTT TE ied Se bone ne hae VERE 106 REQUIFCC i aicius tigen rep rn pm p ep ra Detalla ansia a a F T L kO E o Des ripti E rr o MH RELATEDPAGES 4 sse A A IDO LS EE 107 DESCIIBEON prs Sa OO AS D
34. as well and add items in them to the list sortAttribute false Navigati Object String Will decide what attribute to sort the collection of onTitle contents on Any attribute name is ok as well as name publishDateTime and expireDateTime sortOrder false ascendin Object String asc or desc are valid arguments Just like a sql g orderby includeFolders false false Object String If set to true the list will also contain folder contents and not just plain contents ID result variable contains A list of org infoglue cms entities content ContentVO objects Examples The following example gets all the children to the folder content bound by the component property ArticleFolder and prints out the attribute Title on each one of them lt content childContents id articles propertyName ArticleFolder gt lt c forEach var article items articles varStatus count content contentAttribute id Title contentId article contentId attributeName Title lt c out value Title gt lt br gt lt c forEach gt Author Mattias Bogeblad Page 93 2009 01 19 InfoGlue Developer Manual matchingContents Description This tag fetches contents based on categorisation etc That is it is more of a query api than a firm binding to contents Parameters Name Required Default Type Description id true String The result is stored in this variable contentTypeDefinitio false Object String If state
35. back and forth In some cases it will not work at all if the state handling is advanced in the embedded webapp Here is a small example template that basically fetches the startpage from http w3c org and embeds it into the page JSP has a taglib which does this as well lt html gt lt head gt lt title gt Embedded lt title gt lt head gt lt body gt set remoteContent StemplateLogic getUrlContent http www w3c org Here is the W3C content remoteContent lt body gt lt html gt Author Mattias Bogeblad Page 36 2009 01 19 InfoGlue Developer Manual Advanced integration via custom classes in velocity If you wish to do embedding of external resources in a more advanced way you will probably want to integrate by using pre made or custom backend logic A very common situation is when you have some internal or external web service or database you wish to fetch information from but you just want to fetch the data and still let InfoGlue handle the presentation The solution is to write custom classes In InfoGlue this is very simple As long as you have an empty constructor in your Java class and put it in the InfoGlue class path it will be usable from any template in your site Let s say you create a class like this import e java sucii Nis E public class MyClass public MyClass it if public String getHelloWorld return Hello World public List getOrders String
36. be started Left to the workflow name is an information button describing the steps in the workflow Workflow the area marked with green Shows workflow name followed by the step and finally the action waiting to be carried out Can be filtered in 2 1 so you only see steps you own Author Mattias Bogeblad Page 44 2009 01 19 InfoGlue Developer Manual OSWorkflow The Workflow Engine InfoGlue uses the OSWorkflow framework for all workflow handling You should read the documentation on http www opensymphony com osworkflow before beginning to build workflows Managing workflow definitions in InfoGlue InfoGlue 2 0 introduces a new menu option in the Management tool It is called Workflows and is where you enter all workflows that should be available in the My Desktop view It looks like this D lt Disable LEZ css Forms ESL Images i Information i Miscellaneous Outline 5 Resizer 5 validation AL View Source Options InfoGlue Content Management Platform LANGUAGE MY SETTINGS 7 HELP e EG content Toot MANAGEMENT TOOL m LOGOUT NEW WINDOW nagement A Workflow definitions Repositories LD SystemUsers EO Lo Roles i Groups MT Skapa nyhet 1 Languages I Skapa Extern nyhet i InterceptionPoints I Lanka in nyhet 1 Interceptors a i a a a a a a To create a new workflow you press the New Workflow button and end up in the editing view J lt Dis
37. br gt a href c out value page url gt gt lt c out value page navigationTitle gt lt a gt c forEach The following example is a more advanced one structure childPages id childPages siteNodelId menuBasePageSiteNodeld gt structure sortPages id childPages input childPages sortProperty SortOrder sortOrder asc namesInOrderString Products News Feedback gt lt c forEach var page items childPages gt The page id is c out value page siteNodelId gt lt br gt a href c out value page url gt gt lt c out value page navigationTitle gt lt a gt c forEach Author Mattias Bogeblad Page 118 2009 01 19 InfoGlue Developer Manual hasPageAccess Description This tag gets if the user logged in or default anonymous has access to the site node sent in Parameters Name Required Default Type Description id true String The result is stored in this variable siteNodeld false Object String The id of the site node we to check interceptionPointName false Object String Sets which interception point name to check for Default SiteNodeVersion Read ID result variable contains True or false Examples This example gets if the user has access to read the child page lt structure hasPageAccess id hasPageAccess siteNodeld X lt childPage siteNodeld gt gt Had page access lt c out value hasPageAccess gt
38. editor and presents his her name content contentVersion id articleContentVersion content articleContent gt management principal id articleModifyer contentVersion articleContentVersion gt The article was last changed by c out value articleModifyer firstName gt lt c out value articleModifyer lastName gt Author Mattias Bogeblad Page 153 2009 01 19 InfoGlue Developer Manual principalProperty Description This taglib returns a principal property Parameters Name Required Default Type id true String userName false Object String principal false Object String attibuteName false Object String languageld false Object String ID result variable contains A String object Examples Description The result is stored in this variable The userName of the principal on which we wish to extract a property The principal on which we wish to extract a property The property to fetch The language to fetch in default current This will result in that the alias of the current user is printed if it s set in the users properties management principalProperty id alias attributeName Alias gt The user alias is lt c out value alias gt Author Mattias Bogeblad Page 154 2009 01 19 InfoGlue Developer Manual principalAssets Description This taglib returns a list of principal assets Parameters Name Required Default Type Descri
39. have A typical content type is Product which perhaps has the attributes Name Description and Price It may also have an attachment labelled Product Image InfoGlue contains some default types for demo purposes but it s up to the project to set up ones suitable for the customer This is done in the management tool without writing a single line of code and is described in the user manual Template Component list The next thing the analysis should result in is a list of templates components needed to visualize the site Most often a page can be fragmented into smaller reusable templates components but it all depends on the design This list is a good starting point when estimating the development effort as well as a good document to continue working on as part of the site documentation We usually describe a component both visually functionally as well as how the users are to interact supply it with information etc Author Mattias Bogeblad Page 22 2009 01 19 InfoGlue Developer Manual Tools Built in tools You can work with InfoGlue without any external tools at all All templates components and everything is there as pure text editable though the normal browser text editor When it comes to developers they however often have some other tools they prefer simply because it helps them in their job Editing a JSP based InfoGlue component for example is of course easier if you use Eclipse with a good JSP edi
40. idad hana iko ako 74 DESCFHDUON se eer rad Sd a fek eda kk Tes Kin keke ure fa uirad eda vakibegrstrertriktakeraamigiroisdetisagistej 74 PAKAMELEKS arras inia io rN RIA A E ES KR DII OIN DA SEDE IEA EL A AAA SEES AAA 74 Author Mattias Bogeblad Page 4 2009 01 19 InfoGlue Developer Manual Nai a ie KORTA dasa buna ave KIA KUKES KARLA KO KO 74 ROQUE e E 74 Detalla SA Ma Dubois ke nd 74 TY TRTTTTT ndesvate ettebecsareetersehetenase siete leeeed auatecneterescthesdeereses 74 Descriptio ss geo stink seko Ee nce Ko a ee ra celeste en sade Kala Goemameruneavnie VAB up kuna dala Laal dao 74 PAGEATTRIBUTE Ss eseo o ken diez doden dani genon ku umbo Saa skan kea Dona ido AE Us 75 DOSCHIPUUON sessen ros seis KE OKE En EEK VA NK RAS ANSA Tews 75 PILDORA AA TTT TTT TTT TT JN 75 Name RR de 75 Required si A Ab da A E NAE 75 Default sse AEA EAE tha Daddies eae arena Sala I ciate 75 TY DOs watts IEL Pe niall ache ON NJ e aa IN TU AKIN SSS 75 Descriptio ETT TTT AA A TTTTTTTTTTTTTETTTA 75 HIMEHEADITEM es zastzdol rebates farto iuetebu doshegestikkab as de IAE tenia vek rtas tudaetelekhiueet34 telbivttxj 76 DESECHpEUON EE earn ans p ebra gris p28o tute noko cand la kob rida k sela perado i Ohi ee sakso Dedo 76 ParaMeters adi di ab vo klen kr dada AVAN TO FORIRI ATA KKE OE KEL ID Labia DIRUS POJ FARTO KARTI OS 76 Names sis lene boko IO T klen Sameuate gna Dop ma Kelalo ka kak ARIES ORS DER RRA GS RA ENEO aea a da 76 REQUIRE uro dia 76 Poe m
41. if such a post is done this tag is needed if you wish to extract both normal parameters and files the normal http request object will not do that for you Parameters Name Required Default Type Description id false String The result is stored in this variable maxSize true Object String Sets how large file are allowed allowedContentTypes false 0 Object String Sets which content types are allowed Comma seperated string ignoreEmpty false Object String Sets if the file can be left out ID result variable contains A java util Map object containing all post information Examples This example parses a form post including files but only allows files are no bigger than 100 000 bytes and of content type gif jpg or png It then gets a form parameter we know are sent in and lists all files posted common parseMultipart id formParameters maxSize 100000 allowedContentTypes image gif image jpg image png ignoreEmpty true The form contained the field company name and the value filled in was c out value formParameters companyName gt lt c forEach var fileltem items formParameters files gt Uploaded file lt c out value fileItem name gt had content type lt c out value lt fileltem contentType gt gt lt c forEach gt Author Mattias Bogeblad Page 140 2009 01 19 InfoGlue Developer Manual This tag can compare two texts and produce a compare result diff Parameters Name R
42. in each slot slotCount true Object String How many slots should be visible ID result variable contains A org infoglue deliver util Slots object Examples This will result in a number of variables being set with information and sublists lt taglib uri infoglue common prefix common gt lt taglib uri infoglue content prefix content gt lt taglib uri infoglue structure prefix structure gt lt taglib uri infoglue page prefix page gt lt taglib uri http java sun com jstl core prefix c gt lt page pageContext id pc gt content matchingContents id unsortedNewsItems contentTypeDefinitionNames Article gt lt c set var currentSlot value param currentSlot gt lt c if test currentSlot null gt lt c set var currentSlot value 1 gt lt c if gt lt common slots visibleElementsId newsItems visibleSlotsId indices lastSlotId lastSlot elements unsortedNewsItems currentSlot currentSlot slotSize 10 slotCount 10 gt Author Mattias Bogeblad Page 129 2009 01 19 InfoGlue Developer Manual URLEncode Description This taglib lets encode a string according to the URLEncoding scheme Useful for sending parameters in url s which contain special characters etc Parameters Name Required Default Type Description id true String The result is stored in this variable value true Object String The string we want to encode en
43. keke kool this 114 ReqUired sssvis fesis sa DLE E LEE A DEVOJ FEREI KAR TTAR KARAJ tater DENSA A TRA TE APTECIRTIAAJ BE r E EEE P P PLELqLq M TYPE kr AI AE AR ARA AAA LARA LASA AAA AAA ida a DIA CARA Descrip od DIE EE E a HASDEFINEDRROPERTN ira calidad da 115 IDESCFIDUON it A POTEET OPEL Hona dab T a azekabankntaksrekrigiitisiondusaioo 115 P ramete kastano nia NR TERA Ad RIA TIE DPI CONTI in FU KONIS KIA aii iE DEGE oE ia INIS 115 ReqUuifed sss ems seso ml KA aO ncsiaad unc dag sansa STERNIS ARIOJ SEKE ID E E E den SK eta ka Default o a a aa bean Be ade Sk ta Type EN A A REN NEAN IN ADAS DeSCFIptlON ate sve E E A NN SA eee ee CHIEDCOMPONENTS ssp seba nos tudes vats ii 116 Description sad sse ismos A aah de nab ik no mrek ove abe IAS 116 PAOKAMEVEKS iaiu skoro kiko kd ei and i POK da eke LOR EO Ra alelo tedu uo usa i CA 1u Vis auta da kavao 116 Reguired za soi A cees Se EL de ak at a pena res Deb Dok To KEO NO EER URIS Detalla a e E TTT acaba WY o A A O DESCHIDEIOMN Ire A TTFFTE TEL STTENODE spes NEA IL A l daj 117 Descriptio M asi Ala DK ahd EDISA IAS DIO DEE PEN Es ko 117 PAKAMETEFS srias neas RERO devel AO EVE DPE OEKE EREE gee nia A A 117 Reqllifed s evisisessgospr ror tia 5794 IRA AA KOJ EA KEIR Rates tetas AR AR Default zss wes ence aa ada ion aan hae A stes proe e Teen fO ranle vtr uia Ele sgu i kes finigi gboribos rin luo iu inii a datigent lus ko uroiuada
44. lt c out value Title gt lt br gt lt c forEach gt Author Mattias Bogeblad Page 95 2009 01 19 InfoGlue Developer Manual contentSort Description This tag will allow you to sort a collection of contents in any number of ways Parameters Name Required Default Type Description id true String The result is stored in this variable input true String Object The collection to sort comparatorClass false String Object Can be used to state a custom comparator class ID result variable contains A sorted list of org infoglue cms entities content ContentVO objects Examples The following example gets all the child content to a folder bound by the component property ArticleFolder and sorts them first on the Title attribute found in each version and then secondly on the publishDateTime so the come in date order if they have the same Title lt content childContents id articles propertyName ArticleFolder gt content contentSort id sortedArticles input articles gt lt content sortContentVersionAttribute name Title className java lang String ascending false gt lt content sortContentProperty name publishDateTime ascending false gt lt content contentSort gt Author Mattias Bogeblad Page 96 2009 01 19 InfoGlue Developer Manual editOnSight Description A tag which lets you make a visible representation of the right click editing found in the structure tool Eas
45. name dummyVar value Testing The variable is page pageAttribute name dummyVar gt Author Mattias Bogeblad Page 75 2009 01 19 InfoGlue Developer Manual htmlHeadItem Description This tag is great for adding HTML head sections to the resulting page The problem with components are that they normally had no way of putting html tags belonging in the head part but this one does A very common example is a component which has it s own css or javascript references but if you just print it in the component itself the HTML will not validate in the W3C validator as some tags are only allowed in the head block Parameters Name Required Default Type Description value true Object String The string to insert in the page HTML head section Examples The following example shows a situation where we have a RSS page we want to reference by a link tag The code is perhaps part of a component which list news but also wants to channel it as RSS So to be able to keep the RSS link generation in the right component we use the new tag for this The page validates and the component is kept in charge of what happens lt taglib uri infoglue page prefix page gt lt taglib uri infoglue structure prefix structure gt lt taglib uri http java sun com jstl core prefix c gt structure pageUrl id rssPageUrl propertyName RSSPage gt lt c set var rssLinkTag link rel alternate type applicati
46. now it only support simple mails and it gives direct feedback on any server connection problems which the Jakarta mailer tag does not sendRedirect This replaces jsp redirect which does not work normally in infoglue forward This replaces jsp forward which does not work normally in infoglue captcha Implements a simple captcha image authorizedRemoteAddress Lets you control access to part of component based on users IP address range hostname formatter Lets you format dates numbers and file sizes easily Author Mattias Bogeblad Page 126 2009 01 19 InfoGlue Developer Manual subList Description This taglib lets you get a subset of the given list Useful for showing parts of a list The list could contain almost anything as long as it s a collection Parameters Name Required Default Type Description id true String The result is stored in this variable list true Object String The list we want to limit startIndex false 0 Object String If you wish to exclude the initial x elements state this number count false true Object String How many elements should be included from the startIndex ID result variable contains A list containg a sublist of the original list Examples This will result in that the variable sublist will contain a list which contains the first 5 elements of the original list lt taglib uri infoglue common prefix common 995 lt tagli
47. on other components with the same propertyname either on the same page or on pages above Sets if the component should use repository inheritance when looking for inherited items Sets if the component should use inherit properties from it s parent site nodes The following example gets all assets bound to the multiple asset binding property Images The loop just prints the urls and does nothing with them This is of course just an example you have to decide what to do with them lt c forEach gt lt content assetUrls id imageUrls propertyName Images uselnheritance false c forEach var imageUrl items imageUrls varStatus status gt lt c out value imageUrl Author Mattias Bogeblad Page 82 2009 01 19 InfoGlue Developer Manual assetUrlFromString Description This tag will get you an asset url by storing the string you supply as a file in the asset directory and returning an url to it Parameters Name Required Default Type Description id true String The result is stored in this variable data true Object String The string you want to get written to file fileNamePrefix true Object String The start of the filename fileNameSuffix true Object String The file suffix ID result variable contains An string containing the url to the asset file Examples The following example writes the string to an asset with the prefix MyTest and suffix txt lt c
48. regards disclaiming warranties any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License 2 VERBATIM COPYING You may copy and distribute the Document in any medium either commercially or noncommercially provided that this License the copyright notices and the license notice saying this License applies to the Document are reproduced in all copies and that you add no other conditions whatsoever to those of this License You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute However you may accept compensation in exchange for copies If you distribute a large enough number of copies you must also follow the conditions in section 3 You may also lend copies under the same conditions stated above and you may publicly display copies 3 COPYING IN QUANTITY If you publish printed copies or copies in media that commonly have printed covers of the Document numbering more than 100 and the Document s license notice requires Cover Texts you must enclose the copies in covers that carry clearly and legibly all these Cover Texts Front Cover Texts on the front cover and Back Cover Texts on the back cover Both covers must also clearly and legibly identify you as the publisher of these copies The front cover must present the full title with all words of the title equally prominent and visible You may
49. same component as above hanced Properties IG Content module co in slot puffArea Properties for language English available tributed d organij Headline Latest documentation PufFArticle Documentation puff ReadMorePage Documentation Anguage mation r es Advanced properties w SAVE CLOSE Note Under advanced properties some standard properties can always be found They are not defined here Author Mattias Bogeblad Page 28 2009 01 19 InfoGlue Developer Manual Description of fields in component editor Name Represents the internal name you want to use in the template to get the property Also what the user in edit on sight sees if Display name is left empty Display name This is the name the user see Description This is a text which is shown if you mouse over the pi icon Default value only applicable for non bindings Let s you set a default value if not set by user Property type Most important defines what kind of field should appear The available are e Binding used to bind 1 n content s or page s e Textfield simple textfield e Textarea simple textarea with or without WYSIWYG e Select select drop box field e Checkbox 1 n number of checkboxes e Datefield let s you allow users to select a date e Customfield this allows you to insert you own HTML markup which means you can add anything including javascript logic
50. shown as well lt content contentTypeDefinition id ctd contentTypeDefinitionName Article gt lt management contentTypeDefinitionAttributes id contentTypeDefinitionAttributes schemaValue ctd schemaValue gt lt management contentTypeDefinitionAssets id contentTypeDefinitionAssets schemaValue ctd schemaValue gt Author Mattias Bogeblad Page 86 2009 01 19 InfoGlue Developer Manual relatedContents Description If you have used the content relation editor on a content attribute and added related contents to for example an article this tag lets you get those related contents Parameters Name Required Default Type Description id true String The result is stored in this variable contentld true Object String The id of the content you wish to get the related contents from attributeName true Object String The name of the attribute containing the related contents onlyFirst false Object String Sets if the tag should only return the first related content Otherwise a list will allways be returned ID result variable contains An list of org infoglue cms entities content ContentVO objects Examples The following example gets a list of contents related to the articleContent on attribute with name RelatedArticles lt content relatedContents id relatedArticles contentId articleContent contentId attributeName RelatedArticles gt Author Mattias Bogeblad Page 87 2009 0
51. siteNode is the same as the user are currenly looking at nice for navigation This tag returns if the given siteNode is a parent to the one the user is currenly looking at nice for navigation componentPropertyValue This tag returns a non binding property value defined in the component Mostly used for textfields textareas etc componentPropertyValues This tag will get you String array consisting of component property values if it is a textfield textarea or other non binding property Useful if you for example use the new checkbox property with several options hasDefinedProperty Returns if a component property value was set or not childComponents Returns a list of components contained in the current one siteNode Returns a siteNode object for further operations sortPages This tag is very useful as it can sort a collection of pages in many ways hasPageAccess This tag gets if the user logged in or default annymous has access to a certain siteNode componentProperties Returns all the properties all components on the page with the same property name siteNodeLanguages This tag returns all languages available for the current repository minus any disables languages for this page pageAsDigitalAssetUrlTag This method calls an page and stores it as an digitalAsset that way one can avoid having to serve javascript files and css files through InfoGlue Not suitable for use if
52. tag will sort a collection of pages Parameters Name Required Default Type Description id true String The result is stored in this variable input true Object String The list of pages that are to be sorted sortProperty false Naviigati Object String The attribute name on the page properties to sort onTitle the pages on Can be any of the defined ones you have on your meta info content type as well as name and publishDateTime sortOrder false asc Object String Set to asc to sort in ascending order and desc to sort in descending order numberOrder false false Object String Set to true if you know the values are numbers and want them sorted like numbers Normally they are sorted like strings type false asc Object String Not used for now namesInOrderString false asc Object String If you supply a hardcoded commaseparated string with the names of the pages that should be in what order that overrides the other sorting strategy for those items ID result variable contains A sorted list of org infoglue deliver applications databeans WebPage objects Examples The following example sorts a collection of pages on the NavigationTitle attribute on the pages meta information lt structure childPages id childPages siteNodelId menuBasePageSiteNodeld gt lt structure sortPages id childPages input childPages gt c forEach var page items childPages gt The page id is c out value 4page siteNodeld lt
53. top gt AA lt ig slot id right gt lt ig slot gt lt td gt EE lt tr gt lt td colspan 3 gt Footer lt td gt a TeS lt table gt lt body gt lt html gt Now the right side column should have the text Right click to add component so you can add components there Feel free to make some example component and insert it there We will add things there later on Author Mattias Bogeblad Page 61 2009 01 19 InfoGlue Developer Manual Building a basic content presentation component When it comes to presenting content on the site you typically have the content taglibs to your aid if you use JSP Check them out in the appendix JSP style Velocity style Page 62 2009 01 19 Author Mattias Bogeblad InfoGlue Developer Manual Building a basic navigational component When it comes to navigational components the JSP coder has a couple of nice tags to his her disposal in the structure taglib Look at the appendix last in this paper JSP style 8 taglib uri infoglue content prefix content gt lt taglib uri http java sun com jstl core prefix c gt lt structure childPages id childPages propertyName StartPage gt lt table border 0 cellpadding 0 cellspacing 0 class verticalNavigationTable gt lt c forEach var childPage items childPages varStatus count gt Ero td class verticalNavigationTD gt lt p gt a class verticalNavigationLink href Sp
54. type definition details Name Delete SiteNodeTypeDefinition name Normal HTML Page Description Normal page Invoker Class name org infoglue cms invokers HTMLPageInvoker Right now this siteNodeTypeDefinition has the following AvailableServiceBindings AvailableServiceBinding Name M Template meta information Global contents M Top navigation M main article main area template W css page M Javascript page W Footer navigation fe I i oft navinatinn The name and description field is just for presentation but the Invoker class name is important as this is the name of the invoker class used by InfoGlue for dynamic instantiation In this view you can also state what Available Service Bindings this page type should show as available The available service bindings you mark here will be shown on the Site Node view As you see this page ha aitabt Bindings and that is pretty normal for the old way of building pages The concept is strong but somewhat limited when it comes to complex pages with a lot of information from different sources This way of defining global bindings can be successfully combined with the possibility of creating component binding in a mixed mode solution A content such as general labels or something else is probably better off defined on the root page level than in each component using it for example OBS We recommend you only build sites with the component based system and not use the old way any
55. type in the same information many times if it s to appear on several pages on the site or on different sites That will never happen in InfoGlue as reuse is already prepared for The people responsible for the information focus on the texts and not on the layout or website The presentation site structure part of the InfoGlue system is what handles building specific websites and it is called the Structure tool With this tool you manage the site structure and chose which information to put on which pages and with which layout etc You can also define links between pages among many other things This division is very important to understand before working in InfoGlue The concept is very strong once learned and much more flexible than page centric approaches but the learning curve is a bit steeper so don t give up if you find it hard in the beginning it will pay off later Author Mattias Bogeblad Page 18 2009 01 19 InfoGlue Developer Manual InfoGlue pages behind the curtain This chapter was meant to give users an overview of how a page is technically structured and rendered It is very important to understand for developers and advanced users but ordinary users may skip this chapter The request response cycle A very important thing to understand in InfoGlue later on is how a page gets delivered to the user upon request This information is mainly important for developers as they need to make some decisions affecting this proc
56. up entities using inheritance useStructurelnherita false true boolean Sets if the component should use inherit properties nce from it s parent site nodes escapeHTML false false Object String If set to yes up any attributes fetched will be HTML enoded so no non ascii chars are left hideUnauthorizedPa false false Object String If set to true the pages the user have no access to ges will not be shown ID result variable contains A list of org infoglue deliver applications databeans WebPage objects Examples The following example gets all the children to the page bound by the component property BasePage and prints out the NavigationTitle on each one of them structure childPages id childPages propertyName BasePage gt lt c forEach var childPage items childPages varStatus count The page id is lt c out value page siteNodeId br a href c out value page url gt gt lt c out value page navigationTitle gt lt a gt lt c forEach gt Author Mattias Bogeblad Page 110 2009 01 19 InfoGlue Developer Manual isCurrentSiteNode Description This tag returns if the given siteNode is the same as the user are currenly looking at nice for navigation Parameters Name Required Default Type Description id true String The result is stored in this variable siteNodeld false Object String The id of the siteNode to check ID result variable contains True or false
57. wanted If a component has a PreTemplate it and all other components PreTemplates will run first in the preprocessing phase where they will be free to put data into the page context for the normal presentation templates to read Before the preprocessing all components on the page with a PreTemplate is ordered in any sortorder defined in advanced properties on each component The PreTemplate can do anything the normal Template can except print to the browser so you should consider it the dataprocessing part and not a presentation part After the PreTemplate phase the normal rendering is run just like earlier but now you can use the shared data now Author Mattias Bogeblad Page 32 2009 01 19 InfoGlue Developer Manual How it looks Here is an example of how it looks at the different states when you create a simple component Create a new content with the content type HTMLTemplate Content www officestand2 com InfoGlue CMS Mozilla Firefox MY SETTINGS HELP LOGOUT NEW WINDOW Container name 2 100 characters Image component Publish date 2006 05 03 18 51 p Expire date 2016 05 03 18 51 me Components InfoGlue CMS EN Yersion build 2 3 Final D4 17 YOU ARE LOGGED IN AS administrator The form for this content type looks like this Author Mattias Bogeblad Page 33 2009 01 19 InfoGlue Developer Manual http localhost 8080 Content www officestand2 com InfoGlue CMS Mozilla Firefox In
58. www opensymphony com oscache prefix cache gt Yahoo User Interface YUI Since InfoGlue 2 8 0 we have included this wonderful UI framework The javascript framework is located under script yui and can be used under both deliver and cms application Hopefully people will share examples on how this is used Check out this great framework at http developer yahoo com yui JQuery Since InfoGlue 2 8 0 we have included the amazing JQuery javascript framework as well as some of the plugins it offers The javascript framework is located under script jquery and can be used under both deliver and cms application Hopefully people will share examples on how this is used Check it out at http www jquery com Versions included 1 2 1 1 2 2 1 2 3 1 2 6 Plugins script jqueryplugins jquery impromptu 1 2 js script jqueryplugins jquery validate script jqueryplugins jquery cycle all pack js script jqueryplugins jquery dimensions pack js script jqueryplugins jquery media script jqueryplugins jquery metadata script jqueryplugins jquery_lightbox script jqueryplugins menu script jqueryplugins swfobject script jqueryplugins thickbox script jqueryplugins ui Author Mattias Bogeblad Page 67 2009 01 19 InfoGlue Developer Manual Author Mattias Bogeblad Page 68 2009 01 19 InfoGlue Developer Manual Appendix A Taglib reference For the InfoGlue platform Author Mattias Bogeblad Page 69 2009 01 19 InfoGlue Developer M
59. 1 gt lt content contentVersionParameter languageld dc languageld gt content contentVersionAttributeParameter name Title value InfoGlue test gt lt content contentVersionAttributeParameter name FullText value InfoGlue has now created a content from deliver gt lt content categoryParameter categoryKey Service categories fullCategoryName Service areas Hosting gt lt content contentVersionParameter gt lt content contentParameter gt lt content remoteContentService gt Author Mattias Bogeblad Page 99 2009 01 19 InfoGlue Developer Manual remoteContentVersion Description A tag capable to fetch the latest active content version directly from the CMS no matter what state It s very practical when it comes to editing contents from the live sites in a replicated environment or when showing info from a non published version Uses a web service API to work against the CMS Parameters Name Required Default Type Description id true String The result is stored in this variable contentld true String The content id to fetch from languageld true String The language to fetch with targetEndpointAddress false The webservice Url operationName false What operation should we call look at the API ID result variable contains An org infoglue cms entities content ContentVersionVO object Examples Gets the latest version from a content with the id 54 in the language with id 1 content r
60. 1 19 content Description InfoGlue Developer Manual This tag fetches a content object so you can get the properties of that object or get related objects in the object model Parameters Name id siteNodeld contentld propertyName uselnheritance Required Default true false false false false useRepositoryInheritan false ce useStructurelnheritanc false e true true ID result variable contains A org infoglue cms entities content ContentVO object Examples Type String Object String Object String Object String boolean Boolean boolean Description The result is stored in this variable The page to search for the property name on Very useful to get contents on other pages If set the tag returns the content object with this contentld If set the tag returns the content object bound on this property name Sets if the tag should look at inherited properties if the given propertyName was not assigned on the current component Sets if the component should use repository inheritance when looking for inherited items Sets if the component should use inherit properties from it s parent site nodes The following example gets the content object bound to the property Article It then gets the original creator and presents his her name lt content content id articleContent propertyName Article uselnheritance true management principal id articleC
61. 5 DESCHpUON EE EATE E T O T 85 POEMAS TE A A DENEK A UAE A EA AS 85 ReqUuired s sese kos alkao OIR Gaj Ku maa dra a Phas T A Default msm A ST E UT a ak ak nL A SKO TVposss siS E I A I A Ka aka a Descrlptlon sm TN E EA A NNN NK CONTENTFTYPEDEFINIFIONS stigo sperton ne ronkas da maan Dada ka ka ENEN MAA a a EKON kd ue kada ke AO 86 DESECFPUON sesia dedi ksa kea kon ee Devens ve dikan ve Genes e ovat age thea nee nates 86 Parameters svr z vos elo drei bey bite vb teed eee cd ti neka Rl eed Vela kaa EA b 21 kado ole 86 REQUIKEV e see snap dn e ken e kako meka kes kera kae kaa enan Gta tg res me DefaUult ms seno A A TRUS TATA A SUNE AVO DO KES DEE KON TEAR ARU oj TY o A A TTT TTT TTRTTFTETTTTT TE TTT DESCHIP CIO N som a e ooermp pm pr p p p nnn RELATEDGONTENTS iis seneso A A AA EN ENa sedere kae ara 87 DEOSCHPTION aeaee o EKE E TAA E Aa aE 87 PalaMmeterS sier iani kelner la ERI MAA N EA DE TAR ed vated caves casveleeaniadavedyoadsaecdvacves 87 Reqlifed s sss sisto esper ies eniga ska A vlektoj KT GD Kr dan S Ek Lo eedaskDriktigoeeogeti eska eatao A sk a bo Conde ated seh tees Pramo kak aD e pride a daad rent sa ekto debrdo svr ekoo to IVO aperin roo sh tse oa Descriptio Meo anrr reao pana enas nen etaton Sia mer EENE AAEE kaban noes ni TEREGA caine CONTENT aza k dini soroas oma nlo moa G kela KIS SONA SAKE SEGOJ a SENI 88 DESCIIDEUON 15 sei nees a Heed lesa oude bena 88 Parameters iis isis esis ai ank Rd EAE KE GA PLEO ERAR
62. 5 1 hits o Marco 4149 1 hits o Unknown name or not a component 2 hits o Reset component stats Mail notifications In InfoGlue 2 4 6 we have added a feature that senses if the system is getting in trouble or if some pages takes to long This is a very very important debugging feature and quite often the best way to start debugging any production instabilities The concept is quite simple You set up the warning email receiver address in application settings and InfoGlue will then send emails with full thread information when pages takes to long or memory issues arises Simplifies debugging and error tracking hugely USE IT Author Mattias Bogeblad Page 66 2009 01 19 InfoGlue Developer Manual Included 3 rd party taglibs InfoGlue comes with a huge set of JSP tags itself and they are described in full in the appendix last in this document InfoGlue also comes with some 3 rd party taglibs and those are Webwork 1 http www opensymphony com webwork_old build result web docs api webwork view t aglib They are imported like this lt taglib uri webwork prefix ww 995 Jakarta mailer 1 1 http jakarta apache org taglibs doc mailer doc intro html They are imported like this lt taglib uri http jakarta apache org taglibs mailer 1 1 prefix mailer gt OpenSymphony OSCache http www opensymphony com oscache wiki JSP 20Tags html They are imported like this lt taglib uri http
63. AIN Object String 18 Object String Black Object String White Object String 200 Object String left Object String 4 Object String 4 Object String 4 Object String 4 Object String Object String 20 Object String 0 Object String 0 Object String Object String Object String Object String Object String Object String Object String Page 148 Description The result variable name States what variable name in the session to use to store the text for later retrieval How many chars to generate What kind of image do we want look at BufferedImage TYPE XXX for the available types The name of the font to use Which style to use The size of the font What color should the text have colon separated RGBA color What color should the background have colon separated RGBA color How wide is the render canvas in pixels How should the text align left right or center If stated the text will have x pixels of padding above it If stated the text will have x pixels of padding below it If stated the text will have x pixels of padding left of it If stated the text will have x pixels of padding right of it If stated the text will have x pixels of padding around it State the maximum numbers of rows the tag can extend the rendering to Should the edges be trimmed or not 0 notrim 1 left 2 right 3 left and right State if the background image should be tiled O no 1 horizontal 2 vertical 3 both
64. Article lt content contentAttribute id title propertyName Article attributeName Title gt lt hi gt lt c out value title gt lt h1i gt The next example does the same but turns off the javascript decoration on it lt content contentAttribute id title propertyName Article attributeName Title disableEditOnSight true gt a href http www infoglue org title lt c out value title gt gt lt c out value title gt lt a gt Author Mattias Bogeblad Page 80 2009 01 19 InfoGlue Developer Manual asseturl Description This tag will get you the asset url taken from a content either bound though a property or referenced by a content id Parameters Name Required Default Type id true String digitalAssetId false Object String contentId false Object String propertyName false Object String assetKey true Object String uselnheritance false true boolean useRepositoryInheri false true boolean tance useStructureInherita false true boolean nce useDownloadAction false false boolean ID result variable contains An string containing the url to the asset Examples Description The result is stored in this variable The id of the digitalAsset you wish to get the url to The id of the content you wish to get the asset url from The property name the component used to bind the content by in which you wish to get the asset url from The key of the asset you
65. Descriptio M ein r a feka gis cani SORT ARES a TTT TTT TTT Mines EEFE eames 118 DOSCHIPUON Err rr rr a reese ayo 118 PATAS COUT EPO OCEETCCTE ECE OPPTTRTREE COCR Aa O EE 118 ROQUIKEV sra sence eines DRA DO PLA LO bow kr ba rla nk a ik reed io ke Defa lt pc ave eevee A IER IK ia neebla kateta dese TY E A ET ia O TET TTTTTETINAO DESCrIPLION PTT TTT ITTF A a EENAA EXA PIO ai TTT TITO TOTO TTT POT POTO 118 HASPAGEAGGESS seas usu t sasa svisa senbrsGas sou tos Geuae keta endas se a o azio pike ga ku tus i vaste sarees deatee 119 DOSCFIDUON i etiounvs sos sera da pa aK runa berg koe iauema lavo S eo ti iuUinrlnieai kreito 119 PALANCA RA a ETT TTT TTT TTT TTT TETTE 119 REQUIRE nn En PON PODIO Defa lt sss SAE FS EA al EO NA LA ONA A EJ A E LO ANA NINE DESCHIptlON ss A E EAE TIL SAINA AO E Author Mattias Bogeblad Page 10 2009 01 19 InfoGlue Developer Manual Requifed ss E tren egeed ek MA ene EET A Ko ao aaa idas DefaUlbss sk smo gra dans ns o Ke le kd a RA MA ta AN ven abo TY POs SNO A a mata nta tals neor ems Descrip tiO Ee rr Tr rr TTT TE TTT TTT COMPONENTPROPERTIES ssssssssssssssansussnssnasasaassassansensensnnsennnnensnnnnnnnnqnnnannunnannn 121 DESIDIA RA 121 PAPAIN CECI S Ad aia 121 REqUIKEld arip A E A LONGO ETON E ENDE EJ Detallado ana TA da E A A A daa TYPE irren rdan aean i AAEE A a AAA RA ARANA AAA nad DESCHIPUION vicasectesec TTT TETTE A AS SITENODELANGUAGES AE ATAT 122 IDESCHUON aid OPE
66. E 96 REQUIPEC ise ces se A Peds a ko lka a nadie DO Daa a TADAA A eget Default i sas mn I DAO KA bO Da rara KES A DADA ia VO sepopo oye a doj wee ve eas ILE A Kr VL A ekla beatles Description ss sss cesgvi iel tects iaa a erelo ko LIG FORS kE KIJ DEGA dm SLE K ITON VAa nkvairankuaktatio taj EDITONSIGHT sr Gaza krad ka A td la KASAS 97 DOSCFIDUON misas vasa oo lran e kekso a ea kas and VIa abo ng ruro a enna usu ekas o iou lenta keg kreko das 97 POKAMEIEFS Teo sulo sons p nde A 97 REQUIRE SON Geely sawed Taine RA E EENES PI ter onn A A p p ey A EENES DP khkhkhjjjnn A A AO coi DESCHIPEION sas ER E AIL AJ EA AA ASSIGNPROPERTYBINDING sales ka ced dd AAA IAA a el aaa kasavo 98 DESEC pEON E a Pa ak Gl a hives Meats sade event a p rOl 98 Author Mattias Bogeblad Page 7 2009 01 19 InfoGlue Developer Manual Parametros aaa ERAR ER ia idad 98 Inl Ne TTT TTT TTT TTT TTITITTEPTIT TOTE TITT ET ba Noe 98 RO QUID AE 98 Deal A A a 98 TP ds ots 98 DESCRIPTION cia terete cede E E A felted 98 REMOTE CONTENT SERVICE aio nenlon rara ld a dana 99 DESTINA A TTT TTT 99 Paramete Sear nanas p ada aia PTT TTT TTT TTT TET 99 Naim e e A ee la A nae TTT TE TTTTTITITETAS TETOJ 99 REQUIRE FO IKA 99 PEU ee isis ein Bak de Ly TTT TETTRTTTT TTT TTTTTTT 99 TYPE EAE NA ETEA ian ASe TTT TE TTTTEETEGA 99 DESCFIplION E sin EE EA A ETE 99 REMOTECONTENT VERSION sss pieroto ka rn Vadi aka das ti doe kk AA dei 100 IDESECF
67. E ao 159 DESGH PEON lala 159 PAKAMETEIS orree nzas dna VE A E KADI AA AAA A PRR kara a io 159 Reqllifed s evisisssgospr sor tr c2 5791 IRA TAG IDI ON KOJ A KEON Rates tetas PRIN EEKIUNIRAN AA Default conan Nik MH pom wa 1 PE ON PP IVDEXK e prin rod keo konde K Ten sn Description a duka mis ks nnsteta ta CONTENTTYPEDEFINITIONASSETS ssssssssssssssssssusuusuauuauuussussunnnnenssnnnnnnnsensenennnanna 160 REQUIRGC ise mp NO ELE RAD ON FLU ede SONAN LA IRSA DefaUult sei SS wads Tina eben bata RK Maa ae aD data oa DR KI TY DEn ae A eO PO OTO Description s sssis sse A SK ROEL IDE MIK id REMOTEUSERPROPERTIESSERVICE ssssssssttstustuututtuntanuunnunnunnungungusguseuseesgunsenaatasas 161 ders Vi gore repr mm p p p p nrmeo On OO OPONIS DOR AU ERF m a o ada aaa delia TP ad P 1 loja elu o I r o oo o ACGESSRIGHTS sr a RERO SDA LODO FEO A a OA A DO OGI 162 Author Mattias Bogeblad Page 15 2009 01 19 InfoGlue Developer Manual REGUS Gs oa cs sire ta bates ose vale tates T T ooq oeE ETT PPP TTT TRTTTTRTTTTTTTTTTTTTTET TTT Type sss hades so on eves choca dosiesku algtikantris isiskafeukidalsisniaksatasikaksias atekaostias DESCrIPUON rior a seula chedas iu kkatonaebrka igaok euhateiktanta kvaj riakssakekteuvistaj APPENDIX A GNU FREE DOCUMENTATION LICENSE sssvssnnnnnnnnnnnnnnnna
68. EUDINOINOS comica ii donio ber dk sin deat ede sukitaara niba ski karknkekvagii 27 Description of fields in component editor ss escescoscestassatonss 29 COMIDONENE CACHING siz eave sis serte a sis esmi ska rs era ukakre FERM RERS Zukraagukraneitavbnikonri ETARE TARAS 30 GOMDONENVTASKS sumoo ss roo Sinda kra AA DEA 31 Intercomponent communication data sharing ssssssssssssassosoo 32 OWEN OOKS sss a A OLE KIRKI RESA ee oh 33 Component description and thumbnail ssssscsscssrssssnssntsntantants 35 API stoma soir RO DOVERO A e ENA KANKRO DE E EL EDEN EIO ERE NANOJ 35 INTEGRATION s sis esta ver nni i anSu ku snounkersnsikukano venuva agandusQoRlavu KI VakIpkeedav uasseetokgenkagurin 36 SIMPLE INTEGRATION VIA IFRAMES ssssssecssssssesterettauuneetetttaaanennreetraannsennrrtsantans 36 SIMPLE INTEGRATION VIA EMBEDDING sssssssssssrecettuunnentreeraanennreetrannnnennrrrraannaos 36 ADVANCED INTEGRATION VIA CUSTOM CLASSES IN VELOCITY sssssssssectsseectasettunnertunertooo 37 TASKS S I iezrnesroentauaperusakusgoarkoueoaateasmakkenzensukunca uskuesa ezN udas kuksu kes kuauunsruukgensaauazates 38 INTO UCA Visca DARAN AAA A diante 38 ElOW Ofa S Kaina licita dio AAA AAA ADA 38 PORTLET DEVELOPMENT ss sssssssssssunnuunnnnununnnunnuunnuunnnununnnunnnnnnunnnnunnnnnnrns 39 Step 1 Create a Hello World Portlet
69. HUEION se sori sreneoa ieieg ited hives nies Us uro E kibi diki geikaouindui itis iebiroa 3o 100 PAFAMEVEIS ET KES IR 3 LOA ad KA DDL KE SK INGA VA DANDO hoe PRADA Co KO Tadd Uo oSS E II ba SAO ker adiis TAS 100 INIT Osis cette esses ds sts 8 a KO LES TA MARS IKIG kel 100 Cis Vi k o E ia DI TAT a OTTO 100 D Chal err rr A ob RFPPETES 100 DNP A A on OO TO NO EO 100 Descrip a a ri o o ak oo a o eb anoj I ele oh 100 CONTENTEXPORTWRU ss sistis ii SSS TORIS NEA banka kolba AA Ku bene kalao 101 DESGFHUON usi so LO MANDA EE ee Pere ated ahd vac ee eS 101 Parat etrs ssiri sle ai AAA da kE kab a eT be de Desai eae bee Hatha seen o 101 NGA Corsa teed A rr e e o rn rm ON OO E AA 101 REQUIFOC is sie Hiere pp peen prom rr 1 o nn nn PO S DA 101 Blog Err TT A e enn aes eu E ETETA 101 IVDE ss caae ted sagan O os e 101 Descripti Ere r oh er TT TTT TTT TTRTTTTTTTTTTTTTT EE 101 CONTENT DETAIL PAGE Sia da O ina 102 DESCHIPUON ais UEUN EEE wears LP VEEE AE EEE EEEIEE 102 PAFKAMETEIS pravos Sa iene EE E R VA KEE DEKO DRS Ua eae IEK a ii 102 Names A ANE a real ba kelk KRO ea ee ote EKD DO EDO GO iu 102 Requires 102 Bopp per nv ra IATA ea ERA ATAR VARAS Ada ca 102 TP isos caste A A A AAA RA AA 102 Describa 102 STRUCTURE TAGS marina ds ti ai caia 103 DESC EETA ATURE AE EEE delta ee E INU RK Eida Di 103 LOCQEION A ETAN NA EDRI KIR EEK Z PENCO DIESA NGA DUO EIES VOS tun SIII 103 Available tags
70. InfoGlue Developer Manual A paper in the InfoGlue Series InfoGlue Developer Manual Author Mattias Bogeblad Version 2 9 6 2006 Formedia and Mattias Bogeblad All rights reserved Permission is granted to copy distribute and or modify this document under the terms of the GNU Free Documentation License Version 1 1 or any later version published by the Free Software Foundation with no Invariant Sections A copy of the license is included in the section entitled GNU Free Documentation License Author Mattias Bogeblad Page 1 2009 01 19 InfoGlue Developer Manual Sponsors We wish to thank Nominet UK especially Jay Daley for sponsoring the creation and release of this document to the community You can read more about Nominet UK on www nominet org uk Note All information in this document is the property of Formedia and Mattias Bogeblad Use and distribution of the document or of the information in it is defined by the terms in the license GNU Free Documentation License Author Mattias Bogeblad Page 2 2009 01 19 InfoGlue Developer Manual INTRODUCTION isisi scceisccctevacereieissccscacrcuctessnccstevesscuascteswsasedcuarcussueusaessseteseceuseue 16 aAA E A E AT 16 What IS INO GIOC sats eE Ae 17 What parts are there in InfoGlue ssssssssssssessastastantansancantans 17 HOW d0ES UWOFKs sasa sese sss ai sira AAA AAA A FA beko 18 InfoGlue pages behind the curtain
71. Management InfoGlue CMS Mozilla Firefox InfoGlue Content Management Platform LANGUAGE MY SETTINGS HELP ER STRUCTURE TOOL Q MANAGEMENT TOOL E PUBLISHING TOOL Mm LOGOUT NEW WINDOW NEW PORTLET Ea System management IO Repositories O SystemUsers O Roles Upload portlet Groups Context name application name i z o oj HelloPortet O Interceptors War file containing the portlets O ServiceDefinitions CAdownloads java HelloPortletwi Bl s O AvailableServiceBindings O SiteNodeTypeDefinitions I Categories Ey ContentTypeDefinitions Up2Date Ey Validation IO Workflows O Portlets O Redirects I Application settings Message center Portlets InfoGlue CMS EN Yersion build 2 3 Final 2006 04 17 YOU ARE LOGGED IN AS administrator localhost 8081 Management InfoGlue CMS Mozilla Firefox InfoGlue Content Management Platform LANGUAGE MY SETTINGS HELP gy STRUCTURE TOOL fig MANAGEMENT TOOL G PUBLISHING TOOL LOGOUT it NEW WINDOW NEW Bl Ponrier Portlets S System management D Repositories O SystemUsers Context Portlets O Roles r pluto testsuite 1 0 1 TestPortlet1 Groups pluto testsuite 1 0 1 pluto testsuite 1 0 1 TestPortlet2 y Languages I HelloPortlet HelloPortlet Ey InterceptionPoints O Interceptors Simple Ey ServiceDefinitions 5 AvailableServiceBindings E SiteNodeTypeDefinitions Ey Categories ContentTypeDef
72. Manual The status is then used in the condition which says that if a group was selected we continue to a step with Id 2 otherwise we return to the same step id 1 and ask the user to pick a group this time Author Mattias Bogeblad Page 48 2009 01 19 InfoGlue Developer Manual Function providers populators and other helper classes Even though it is possible as pointed out by OSWorkflow to have scripting inside your very XML definition it soon bloats down your xml making it hard to read A popular way to structure your workflow then is instead to have small utility functions which does small tasks and puts needed data in the property set or transient vars InfoGlue 2 1 contains a whole bunch of such functions which are pretty reusable but you can also write your own function which does exactly what you want It s pretty easy to write a function and to make sure you benefit from the InfoGlue architecture you extend the InfoglueFunction which if defined by the workflow will give you automatic transaction handling functions and other nice to have features Let s look at a small function which in this case puts a content object in transient vars for the view to use later This is for example used when a workflow in a previous step creates a working content which will be filled during the workflow but as content objects cannot be stored over time in the workflow itself we only store the id in the property set and this function re fetches i
73. O DESCEDUON sx s ren a skelet hace Deo e nestro kernaj krata ta Sko tees PARSEMULTIPAR Ea ras a 140 REQUIRE e De A eter aa atin kai LOJ TAPA o uaa A EA oe RO QUIN tia thd cain se use ok seuss vase AAA KEKO Els dente kena Reka Plop E as odie Castes sien dk bale anes EAN Seay sae dash Aad p Away TT TTT TET sr ds Description A I a i Palma rak ADD gett dey DOCUMENTGONVERTER a i ekk i koj ken ka Eta o Ema d TRIA saa VETO SOCIE A KURON ada ias 142 REQUIFGG sesan E ITA DION MKL IK E RAL IA la AE ke Io do Detalhado A dea TP A ia DESCHIUON ie acest ddr compete KSETRANSFORMI sut kest dns da 143 REQUIRE ERE EGO KROITA keke iako eb ken bi kata akra mokojn tuko Pe mmr mbhres HA oases ad A LV I OE EMA DEeSCEIPUON ssp EN EET EANA A AN OE XSLTRANSFORMPARAMETER sssssssssssssssssssussssasasassansassansesseseennnsnnnnnnenennennnnntunna 144 Author Mattias Bogeblad Page 13 2009 01 19 InfoGlue Developer Manual A EENS ELTA TAGA DII ia Defa lta KEN ELO LAA I ik da TP pe e nmn er rere rN TOPIS Requifed zi SKA E FS po l TO VT Ei TONE E OJ Delicia A A LNA AO ad TAPA TN E ON va p e a ol iaj D scripti EET TTT TETTE TTT ISA PAKOMELEFS 12 prin oo nine kd bra ges KRO Dto abst Rakes ahnd MR la hI PERNIO PRRI SE ako RII ar TA RAJ Skeet 146 Required n eae a areata rnr PONTA BI Te rn om mm daa IVDE Eu prr bero o e ke lunu bag adpe ko ram re Do ka bee o
74. Page 21 2009 01 19 InfoGlue Developer Manual Development process InfoGlue is not some magic tool that let you skip the thinking process On the contrary by doing a good analysis before starting to build you can achieve a much better solution for your clients Many things concern how you want the users to interact with the system or which way they feel comfortable in managing their site and the information in it In this document we assume you have a functional spec as well as a design proposal which are to be implemented Site Page analysis The first thing to do is to go through all the pages and analyse them in detail Questions to ask are e What types of information are there and how we can generalize this into information types e What parts of the pages are there how can we create a layout system which is both simple and easy to maintain and still dynamic and extendable for users who want that What components do we have to build to make it happen e What complex functionalities are there how we solve it e Are there some external systems that should be integrated somehow and if so how is this best done e Do we need to create new page types other than the default unlikely Content types One of the most important artefacts that should come out of this is a list of suitable content types A content type is what a developer would use a Class for in Java It defines what attributes a certain information type should
75. T mes EE EAE EE EEEE EE PRINCIPAL PROPERTY s save rada a AA AA paa E a aa 154 Author Mattias Bogeblad Page 14 2009 01 19 InfoGlue Developer Manual RUI E A IVA I EED fe dates ede aes oe Detalla di A TTT E TTT TT MAP li Descriptio miii A a PRINGIPALASSETS unir a di dd otc 155 REQUIERA Defallltiana aia a ok cede ee o ad a ala iaa A E A A A A A A DEeSCHIDUON A E sea ea EANA ala NEIS PRINGIPALASSETURL AA sna sete la Deala oa AAA A ae Ma ena 156 Reqlifed sgs sntsgxosbr i ou Es U SR Ro TER KIRR RR AR AAA EA TDAN TO Ti ARA Default s gsi sinroro na piki A kE kork aa caadsebeat eas chads dad GG li ko danse Ku DIuadaraiaigeiaifelbia oil Vpe sio cuanl awed A aieag kun kdos siekvalgriukasgte Kabe a rG eso ates DESCHIpUON i 5 e susuro aa sleet ici LANGUAGE seno iajn Keto a Sejno Kenio kronika kajto kie chan is id baba dean Fama go a eno deno 157 REQUIFEG secs A o Da ko Senerara E kloko Default siu pe e A A A EE ens SEE la Aere e re prn ror A rh hoe eS DESCHIPUION PTT T TTTT TTT TTT TTT TETTE CONTENTTYPEDEFINITIONATTRIBUTES sssssssssssssssssssssnsansensensenaeseeeseesqeqnQV sq 158 REQUIRE ds p dora nO POP pOT DG fa Ul J TY P hess A Geena cine a E sawinje evaam E EERE ee ee alee EE am ncaa en EE Desc o o AE GATEGORYPATH A LIDO ADEO
76. TR NA KD DA ERORIS a TE TPR TEEPE T Perr ere dO 81 NAE A o pevans TOOTE STIIS 81 REqQUIKEJ s s A a n A aN kk SA Da kak kova da 81 Detalla A A A A valent Dia 81 TP a ct 81 DESGCRIPUONM AAA eter ao keo E dee se gka KuZAS sda kuli o mite aha E SPA tako radgusta gece ce 81 ASSETURES especie tc punkta A sa baaiabee Sean daad da donas 82 DOSCFIPUON ses id 33a oo dc Sob krekso sos reezisu iii 82 Paramete p iria rr TTT TTTITTTTR TTT TTT 82 INERT ssa A TTT AR oa 82 REQUIRE OGAN DUNI EO So KON Rar neces 82 Default SRA o PO A ENOJN OA 82 TYPE na T TE Tr OTT TTT TTT TTT TITT etl alec be Tala ural E 82 DESCHptlON sss AR EA TIL NT DON UNE AJ 82 Author Mattias Bogeblad Page 5 2009 01 19 InfoGlue Developer Manual ASSETUREFROMSTRING iii vende vena ERAR ENKETA cba dees KORA TAN DIOS TIKI K KAVA DIN KNA DERI aaas 83 Descriptio orarie TTT EEE ERER a E Eaa TII AA 83 PALAIMICLORS A e oe wnt ad A a Sa e lark ve ae a 83 REGUIKEV 20425 conse tete a serene see Santee ty Default esc senm A NS A ke A NLE TA A sz ka AEL o HAVAA A PA A A DESCRIPTION ici E A A A ASSET THUMBNAIL UR a a KREE TALA KONDI ERNI KED Mae 84 DESCFHIEON porne a A DN a a pa ere I resa 84 Para Mates sro Sens de ndo es la ova KA Kelo eT slave slave Slee ides ank ded keea A 84 REqUIECd sisina vino conus FELIKS AR KAR KE Ka AKRA AS KADRE LAN O KUK RTAZ KAROO EKRA RRA KOS RODET KRIA T SR RIRAS KaJ A A a a a aaa idana TYPE eirata N RA RA AAA ERA A RARA de sti EAA E dde 8
77. XCF and JPG Opaque formats include proprietary formats that can be read and edited only by proprietary word processors SGML or XML for which the DTD and or processing tools are not generally available and the machine generated HTML PostScript or PDF produced by some word processors for output purposes only The Title Page means for a printed book the title page itself plus such following pages as are needed to hold legibly the material this License requires to appear in the title page For works in formats which do not have any title page as such Title Page means the text near the most prominent appearance of the work s title preceding the beginning of the body of the text A section Entitled XYZ means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language Here XYZ stands for a specific section name mentioned below such as Acknowledgements Dedications Endorsements or History To Preserve the Title of such a section when you modify the Document means that it remains a Author Mattias Bogeblad Page 164 2009 01 19 InfoGlue Developer Manual section Entitled XYZ according to this definition The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document These Warranty Disclaimers are considered to be included by reference in this License but only as
78. a content type Useful for creating forms etc contentTypeDefinitionAssets Gets the defined asset keys of a content type Useful for creating forms etc categoryPath remoteUserPropertiesService userPropertiesAttributeParameter This tag fetches the full path of a category Important tag in followup searches based on assigned categories for example Lets you manage user properties from deliver engine categoryPath This tag fetches the full path of a category Important tag in followup searches based on assigned categories for example accessRights This tag fetches a list of access rights for a certain entity principalAssets Returns a users assets principalAssetUrl Returns a url to a specific asset Author Mattias Bogeblad Page 152 2009 01 19 InfoGlue Developer Manual principal Description This taglib gets you a principal either by userName or through the contentVersion Parameters Name Required Default Type Description id true String The result is stored in this variable userName false Object String The userName of the principal we want to load contentVersion false Object String You can load the principal that modified this version last ID result variable contains A org infoglue cms security InfoGluePrincipal object Examples The following example gets the latest content version object based on the content object previously fetched It then gets the latest
79. a to be dynamic as well as adding a navigation column and an article surface We use the slot technique and complete the html a bit lt taglib uri infoglue common prefix common gt lt t taglib uri 1nfoglue structure prefix strueture lt gt lt taglib uri infoglue content prefix content gt lt S taglib uri infoglue page prefix page gt 8 taglib uri http java sun com jstl core prefix c gt lt page contentType text html charset UTF 8 3 page pageContext id pc structure boundPage id cssPage propertyName CSS page structure boundPage id javascriptPage propertyName Javascript page lt DOCTYPE html PUBLIC W3C DID XHTML 1 0 Transitional EN http www w3 org TR xhtmll DTD xhtmll transitional dta html xmlns http www w3 org 1999 xhtml gt head title Example title meta http equiv Content Type content text html charset utf 8 lt script type text javascript src c out value S javascriptPage url escapexml false script lt style type text css media screen print gt import url c out value cssPage url escapeXml false gt lt style gt lt head gt lt body gt lt table width 100 border 1 cellspacing 2 gt lt tr gt lt td colspan 3 gt Header lt td gt JEr i lt td valign top Meny column lt td gt lt td valign top gt Article column lt td gt lt td valign
80. aa tells Wak SISO NO DO KRAI lao 107 PAKAMETEIS passo A A neos b lan red AI 107 Reqlifed sgsvitssxos tress ZE LERTE e A RET LERTO KR RTTIR KARON tater tangeatdseeruantees ATA Def licitante er AAA DA RA A AAA A TIP a ata gsedin eze laton to seas DEeSCEIDUON sss oero rek ko en rlekenleneukaskte igeberstas komleg BOUNDPAGE 31453 leku i seks kae ka dieto oh ki id 108 DESCIIDEUON 13 sss sn saan ciro seven a e en l EK kona ENN ka ORS INECO KU asa ine 108 Paramnele S sisi iru A A E TREDI NT KREAS ERIO LILAKO KS 108 REQUIFEG sect ce mene A A KR DE Hes Dekial Default sss ss SAO E E A A mo TV EN I ON NO NN NE NAN Lo P ejg s oE TTTTT TT TTTTTTTTTTTTTTE TTT ANNAA A E NANE BOUNDPAGES sect deed lroj Va en events AEA alee lk ee Idon lu la ne MAA KOMAND KIED 109 DESCIHIpUION lacs sia ven sei iaa konigo ie a Amu Nk Sro kiiu T enla keolis ivo 109 PAKAMEIEFS ravo sos kad vivol aka El keea ra VN A deki la Doku aa Fie ime beela Sate 109 Requiredi sss sse ma no SE Ge EG A KONSEKRO DA KEREN E SERIE RS Iman aaa PR E e o e Hooo TETTE TITT TOE TENIPO TY PC ices A E Uu e E DESCRIP ELON sss A EA IL Ne Pla ECNE CHILDPAGES consir lS E E E KAR l LP LE DEA la ata 110 DESGIPEION assin edo l faites ekvenis DK ISK a DO pada costal tut 110 Parameters a irisan ranieri tes goad PEREI Do RENDE DA DOE KIT ALI PARE YEE dete see AA a 110 REGUIKE sps oio via surd sk kopia deste KR ies KD AO KOT A A EL RULI A Biel O TY LE
81. able LE css gt b Forms sl Images Informationy XY Miscellaneousy 7 Outline Resizer E Validation A View Source Optionsy wi InfoGlue Content Management Platform LANGUAGE English i MY SETTINGS HELP S CONTENT TOOL ES structure root ES MANAGEMENT root ES rusushinc roo ES mr bEskror METOS I OI S System management Repositories SystemUsers Roles Workflow name Groups kong Workflow Definition InterceptionPoints Interceptors ServiceDefinitions AvailableServiceBindings SiteNodeTypeDefinitions Categories ContentTypeDefinitions Up2Date Validation Workflows Portlets Create workflow definition o o o o o o o o o o o o o X Here you enter a workflow definition name it will be the one visible under the available workflows list Below the name in the Workflow definition you enter the xml definition which is the OSWorkflow instructions really Just copy paste it from your favourite XML tool where you edit it and validated it before Author Mattias Bogeblad Page 45 2009 01 19 InfoGlue Developer Manual Creating workflows Views Views are where you put the interfaces for the workflow On each action that should have interaction you put the view attribute which can be a full URL or a relative URL An example is action id 20 name Editera view workflows gu link external news main jsp Now here is a big design decisio
82. age url gt lt c out value page navigationTitle a lt p gt lt td gt lt tr gt lt c forEach gt lt table gt And the properties would for this simple article be lt xml version 1 0 encoding UTF 8 gt lt properties gt lt property name StartPage type binding entity SiteNode multiple false properties Velocity style lt table border 0 cellpadding 0 cellspacing 0 gt foreach webpage in StemplateLogic componentLogic getChildPages StartPage gt lt td class verticalNavigationTD gt foreach childpage in templateLogic getChildPages webpage siteNodeld publishDateTime desc lt p gt lt a class verticalNavigationLink href Schildpage url gt Schildpage navigationTitle lt a gt lt br gt templateLogic getContentAttribute childpage metaInfoContentId Description lt p gt fend lt td gt kE fend table And the properties would for this simple navigation be lt xml version 1 0 encoding UTF 8 lt properties gt lt property name StartPage type binding entity SiteNode multiple false gt properties Author Mattias Bogeblad Page 63 2009 01 19 InfoGlue Developer Manual Performance tips This is a hard area to give advice on but in general there are a couple of ground rules Design you website so that dynamic pages are kept to a minimum They are of course needed and we don t advice against them but
83. ains An integer Examples This will result in that the variable count will contain the size of the childPages lt taglib uri infoglue common prefix common gt lt taglib uri infoglue content prefix content gt lt taglib uri infoglue structure prefix structure gt lt taglib uri infoglue page prefix page 992 lt taglib uri http java sun com jstl core prefix c 905 page pageContext id pc structure childPages id childPages siteNodeId pc siteNodeld gt common size id size list childPages gt Size lt c out value size gt lt br gt Author Mattias Bogeblad Page 128 2009 01 19 InfoGlue Developer Manual slots Description This taglib lets you divide the list into slots Useful for having a archive or a search list divided in smaller pages Parameters Name Required Default Type Description visibleElementsId true String This variable will contain a list of elements that are to be shown visibleSlotsId true Object String This variable will contain a list of slots to show lastSlotId true Object String The variable will contain which slot is the last one in the result elements true Object String The list we want to divide in slots maxSlots false Object String At what number of slots should we stop currentSlot false Object String The variable the current slot will be stored in slotSize true Object String How many items should be
84. ame Required Default Type Description id true String The result is stored in this variable ID result variable contains An org infoglue deliver controllers kernel impl simple BasicTemplateController object Examples The following example gets the BasicTemplateController object same as templateLogic and puts it in the variable pc Then we can call any method it has Look at the javadoc for that class for more information on what methods are available lt taglib uri infoglue page prefix page gt lt taglib uri http java sun com jstl core prefix c 905 page pageContext id pc lt c set var availableLanguages value pc availableLanguages gt The variable availableLanguages now contains a list of allowed languages for the current page lt content contentAttribute id responsibleName contentId pc metaInformationContentId attributeName responsibleName gt This shows another call which gets the meta info content id for the page so we can extract non standard attributes from it if we added our own Author Mattias Bogeblad Page 71 2009 01 19 InfoGlue Developer Manual deliveryContext Description This tag lets you get information about the current rendering process but also let s you set some parameters affecting the rendering process Parameters Name Required Default Type Description id true String The result is stored in this variable useFullUrl false false Obj
85. anual Page Tags Description These tags are made to give you access to context information for the page currently rendered Location Located in infoglue page Available tags and short description Tag Description pageContext This tag will get you the TemplateController object templateLogic in velocity in a nice way That object has a lot of usefull API s not offered by the tags deliveryContext This tag lets you get information about the current rendering process but also let s you set some parameters affecting the rendering process clearCache This tag lets you clear deliver caches experimental for now use on own risk htmlHeadItem This tag is great for adding HTML head sections to the resulting page pageAttribute Great way to share values between components httpHeader This tag is great for letting developers add response headers in a cache neutral way editOnSightMenu A tag which allows you to expose many great features as a popup menu based on a button or link etc Author Mattias Bogeblad Page 70 2009 01 19 InfoGlue Developer Manual pageContext Description This tag will get you the TemplateController object templateLogic in velocity That object has a lot of usefull API s not offered by the tags Check out the org infoglue deliver controllers kernel impl simple BasicTemplateController class for more information Parameters N
86. articleContent contentId articleBinding gt lt content contentAttribute id title contentId articleContent id attributeName Titel gt lt p gt lt c out value title escapeXml false gt lt p gt lt c forEach gt lt c if gt lt c forEach gt Author Mattias Bogeblad Page 121 2009 01 19 InfoGlue Developer Manual siteNodeLanguages Description This tag returns all languages available for the current repository minus any disabled languages for this page Parameters Name Required Default Type Description id true String The result is stored in this variable siteNodeld false Object String The id of the siteNode you wish to get the available languages on ID result variable contains A list of org org infoglue cms entities management LanguageVO objects Examples The following example gets all the available languages for the current page and prints them Perhaps using flags would be better later structure siteNodeLanguages id languages gt Allowed languages lt c forEach var language items languages varStatus count gt lt c out value language name gt lt br gt lt c forEach gt Author Mattias Bogeblad Page 122 2009 01 19 InfoGlue Developer Manual pageAsDigitalAssetUrlTag Description This method calls an page and stores it as an digitalAsset that way one can avoid having to serve javascript files and css files through InfoGlue Not s
87. at raba mito kun ku en sta desawauatacst ie alg a Ga stavo da Descriptio Nei sss sena aupara nae gos Eu lnem iano alkalo knalo KDE sik Drees dan Sew cele esas PAKOMETEFKS es so esen don NN aa kane kle KA 147 Required en e ke deed A EA kle o Default sisi spa EE A A A Mo T E ss E A A EAS Description s ss esris sek E dae ed ete LE REA a ia cid PALAM iko A TETTE TTT A aa 148 dels VI poop ehm pepe en pr p rm rr mo mo TOO e PO pn Dead kunas ko a A o MoOR OT T Eq Fo DESC o o o ee PALAIN CLES ETT a e VEEE AREE a ara 150 ReqUuifed ds pa Dl A ANIO La IJ AEA AAA AS A ARA ER AA AR D seripti nA A AA A ds Parametef5 A NO 151 REQUIERA danas SEKSA ka Defallt as mt ia daa sr o oO A ann ae nace PTT DESCFIPEON vise ss sereo o KU a a KLAR ey MANAGEMENT TAGS 3 zena j fona ice A PRA nae e PEK re nb asad acces 152 DESEFUON siren np ET KE MENDAS DADON SPERI ENIS DAR VORIS 152 LOCA ON errr ka A TEP CCER ECCT ECRER PRET EINAR RA FITAS knelo 152 Available tags and short description s ss ssssscsscanansansantas 152 PRINCIPAL LT LOL KE ciety Vo he DRK ea 153 REQUIFCC cic ppr rep mn me p ema peen PEPO POPO Detalla ostia a e e ooeer TY P ist a E a EE TAE a aaa e aD Kee aE ES P oja slu o Ere TR nege Ae ea nie EEE EEE T
88. ategory Important tag in followup searches based on assigned categories for example boundContents This tag will get you a list of bound contents bound though a property on a component childContents This tag will get you a list of child contents beneath a content either bound though a property or referenced by a content id Author Mattias Bogeblad Page 78 2009 01 19 InfoGlue Developer Manual Tag Description matchingContents This tag fetches contents based on categorisation etc That is it is more of a query api than a firm binding to contents contentSort sortContentProperty sortContentVersionProperty sortContentVersionAttribute These tags will allow you to sort a collection of contents in a number of ways editOnSight assignPropertyBinding A tag which lets you make a visible representation of the right click editing found in the structure tool Easier for the users and can be used on live sites as well A tag which lets you make a visible representation of the assign property editing found in the structure tool on component property bindings Easier for the users and can be used on live sites as well remoteContentService contentParameter contentVersionParameter contentVersionAttributeParameter digitalAssetParameter categoryParameter deleteContent updateContent deleteContentVersion updateContentVersion deleteDigitalAsset contentExporturl
89. b uri infoglue content prefix content 90 lt taglib uri infoglue structure prefix structure gt lt taglib uri infoglue page prefix page gt lt taglib uri http java sun com jstl core prefix c 995 page pageContext id pc structure childPages id childPages siteNodeId pc siteNodelId gt common sublist id sublist list childPages count 5 gt You can also add a starting index like this below lt taglib uri infoglue common prefix common gt lt taglib uri infoglue content prefix content gt lt taglib uri infoglue structure prefix structure gt lt taglib uri infoglue page prefix page gt lt taglib uri http java sun com jstl core prefix c 905 page pageContext id pc structure childPages id childPages siteNodeId pc siteNodelId gt common sublist id sublist list childPages startIndex 1 count 3 gt This will result in that the variable sublist will contain a list which contains the elements 2 4 Author Mattias Bogeblad Page 127 2009 01 19 InfoGlue Developer Manual size Description This taglib lets you get size of the given list JSP is rather limited in that respect strangely enough Parameters Name Required Default Type Description id true String The result is stored in this variable list true Object String The list we want to limit ID result variable cont
90. blad Page 19 2009 01 19 InfoGlue Developer Manual A page in detail To describe we have the very simple page as an example The basic look of a page would be something like the page below 3 Manufacturers Microsoft Internet Explorer 5 jol x Officestand com Search Home Manufacturers Customer support About us Pencils News Here you find all kinds of pens and pencils Man ufactu rers Paper we only use the best manufacturers in the different areas we 2003 08 18 A 7 i New collection of pencils No matter what you want to print we have the are active This will hopefully make you feel safe in buying from MENE p s paper for it The companies we buy from include E 2003 08 18 Computers f New computer area We have a wide range of solutions ranging opened fram computers suitable for low end to hight e Canon end users e Boise e HP E Read More Telephony BM s We can now offer a complete set of phone e Dell p services for small companies e Sony Coffe items Anything to do with coffee must be good Contact Legal Sitemap This page is very simple but the technique is the same no matter what layout we would use or what information we want to show The page layout is controlled by components The page you are looking at could be structured in many different ways depending on the developer s choices but in this example it is composed out of many small medium sized components A component can have any size and
91. ble encryptedString will contain an MD5 encrypted string Below is an example of how to decrypt it The server keeps the encryption key to itself lt taglib uri infoglue common prefix common gt lt taglib uri http java sun com jstl core prefix c gt lt common decrypt id decryptedString value encryptedString gt Decrypted string lt c out value decryptedString gt lt br gt This will result in that the variable decryptedString will contain the cleartext string again Author Mattias Bogeblad Page 131 2009 01 19 InfoGlue Developer Manual urlBuilder Description This tag creates urls to pages in InfoGlue or outside Parameters Name Required Default Type Description id true String The result is stored in this variable baseURL false Object String If stated you can add your own base to the url Http mysite not commonly used query false Object String Used if you wish to add your own query string excludedQueryStrin false Object String Used to exclude query string parameters comma gParameters separated string fullBaseUrl false Object String State this if you wish the url to be absolute disableNiceURI false Object String State this if you wish to disable NiceUrl for this url ID result variable contains A String object Examples lt taglib uri infoglue common prefix common gt lt taglib uri http java sun com jstl core prefix c gt
92. book or other functional and useful document free in the sense of freedom to assure everyone the effective freedom to copy and redistribute it with or without modifying it either commercially or noncommercially Secondarily this License preserves for the author and publisher a way to get credit for their work while not being considered responsible for modifications made by others This License is a kind of copyleft which means that derivative works of the document must themselves be free in the same sense It complements the GNU General Public License which is a copyleft license designed for free software We have designed this License in order to use it for manuals for free software because free software needs free documentation a free program should come with manuals providing the same freedoms that the software does But this License is not limited to software manuals it can be used for any textual work regardless of subject matter or whether it is published as a printed book We recommend this License principally for works whose purpose is instruction or reference 1 APPLICABILITY AND DEFINITIONS This License applies to any manual or other work in any medium that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License Such a notice grants a world wide royalty free license unlimited in duration to use that work under the conditions stated herein The Document b
93. classes in the components This approach is simple but has it s drawbacks as much more data is sent to the client each time and that reuse of CSS information between templates is harder to achieve We will not describe how you do this as it not involves any special InfoGlue operations Link to the CSS resource Very nice solution as it helps the browser perform better and also separates the CSS nicely from the templates enabling reuse of it from different places The rest of this section will outline how you achieve the second solution It assumes you have a base component containing the html elements needed to link a css in a standard HTML fashion 1 2 Create a new content of type HTMLTemplate which will be the CSS template Create a new site node called CSS page or something and bind the new CSS component as its base component template Preview the site node to see that the page delivers valid css code Change the new site node s content type to text css important for Mozilla browsers Change to Page Cover for this in structure Now create a property called CSS page on the CSS component which binds to a site node look at the properties section Assign this binding to the new CSS page in the structure tool Write the html for the link in the html Reference the CSS link property Author Mattias Bogeblad Page 58 2009 01 19 InfoGlue Developer Manual Here is a simple example of the basic html component wit
94. coding false UTF 8 Object String The encoding you wish to encode it by ID result variable contains A string object Examples lt taglib uri infoglue common prefix common gt lt taglib uri http java sun com jstl core prefix c gt lt common URLEncode id encodedString value This is a string we want to encode encoding UTF 8 gt Encoded string lt c out value encodedString gt lt br gt This will result in that the variable encodedString will contain an URLEncoded string This is a string we want to encode Author Mattias Bogeblad Page 130 2009 01 19 InfoGlue Developer Manual encrypt decrypt Description These tags lets you encrypt decrypt a string Very useful for hiding information from the user and still being able to transfer it between pages etc We use it heavily in contact forms so email addresses are hidden Parameters Name Required Default Type Description id true String The result is stored in this variable value true Object String The string we want to encode ID result variable contains A String object Examples lt taglib uri infoglue common prefix common gt lt taglib uri http java sun com jstl core prefix c gt lt common encrypt id encryptedString value This is a string we wish to encrypt gt Encrypted string lt c out value encryptedString gt lt br gt This will result in that the varia
95. customerNumber it Here we could connect to the order database with jdbc and query it instead return null Then after compiling it and putting the class file in the deliver class path you can reference it like this in the templates lt html gt lt head gt lt title gt Embedded lt title gt lt head gt lt body gt set SmyClass templateLogic getObjectWithName MyClass The class says myClass getHelloWorld to us lt body gt lt html gt If you are using JSP you are probably used to importing custom classes so I will not describe that here Portlets A fairly new standard InfoGlue is supporting is the Portlet standard also known as JSR 168 Since InfoGlue 2 0 InfoGlue has incorporated Apache Pluto which is the reference implementation of the portlet API Portlets are covered on the Internet extensively why we will not leave a lot of room here We will state however that for an organisation that has competence in such development this option is probably one of the best integration options as it will allow you to build a completely decoupled web application but seamlessly integrate it in an InfoGlue page and having interaction etc taken care of In a later section we will show you how to build a simple portlet and deploy it in InfoGlue Then you will have to read more on the subject yourself Author Mattias Bogeblad Page 37 2009 01 19 InfoGlue Developer Manual Tasks Introduct
96. d that there are probably other solutions to the same problem We will not explain the basics of InfoGlue for each example so it s sometimes important you have read the two public tutorials first or somehow know the background anyway The chapter only shows how to deal with new Component based sites Author Mattias Bogeblad Page 56 2009 01 19 InfoGlue Developer Manual Building a basic page To start building a site the first thing you need is a basic page component which sets the basic html for the site This base template is most often general enough so it can be reused all over the site even if some pages needs to have a different layout than others Here below is a small example of a JSP based one with just three areas a header footer and a middle area Create a new HTMLTemplate with this and assign it as the base template on a page to see the wonder in action Author Mattias Bogeblad Page 57 2009 01 19 InfoGlue Developer Manual How to manage style CSS Managing style is a very important issue when building a site Most sites currently moves away from using tables and invisible pixels images which dominated previously built sites and goes toward using Cascading Style Sheets as the new mean of positioning elements on a webpage Which way you want to go is your decision but no matter what you will probably want to use CSS one way or another and if you do you can choose between at least two options Inline the CSS
97. d the tag will only return contents of that nNames content type Comma separated string with names categoryCondition false Object String Here you can state very complex category expressions including boolean expressions etc Look at the examples freeText false Object String Here you can if you want a free text search as well freeTextAttributeNa false Object String If you state free tezt search you should also state mes what attributes to search in fromDate false Object Date This lets you limit the search to only contents with a publishDateTime after this java util Date toDate false Object Date This lets you limit the search to only contents with a publishDateTime before this java util Date expireFromDate false Object Date This lets you limit the search to only contents with a expireDateTime after this java util Date expireToDate false Object Date This lets you limit the search to only contents with a expireDateTime before this java util Date repositoryIds false Object String This lets you limit the search to only contents in certain repositoryId s commaseperated id list languageld false Object String This lets you limit the search to only contents in a certain language version versionModifier false Object String This lets you limit the search to only contents modified by a certain user cacheResult false True Object Date This lets you state if you want the matching result to be cached or not 29 december 2008 cachelnterval fa
98. ding to the DES cipher mode Decrypt Decrypts a string according to the DES cipher mode urlBuilder A valuable tag for creating urls to almost anything with or without parameter parameters remoteWorkflowService Let s a user invoke a workflow remote Include A tag which lets you include a template inside this component without it being added dynamically Very good for more strict layouts Import A tag which lets you import an url just like c import but allows you to specify timeouts cropText Crops a string and can add a suffix etc setCookie Sets a cookie getCookie Gets a cookie transformText This tag transforms a text in a number of ways rssFeed Creates a rss feed in almost any format there is rssFeedEntry textRender This tag creates and return the url of a image rendered with a string Pretty advanced and good for menues etc parseMultipart This tag parses a file upload Diff This tag compares two texts XSLTransform Transforms xml with xslt just like x transform but with saxon XSLTransformParameter Parameter tag to the XSLTransform tag documentConverter Experimental document conversion tag which operates together with JODConverter Open Office serverside It can take a worddocument and convert it on the fly to pdf odf and html The tag also manages to create table of contents separately so you can have navigation separate mail This is a simple mail tag For
99. don t get used to always turning page cache off as it severely reduces scalability If you can get by with creating a separate page with your dynamic logic instead of putting everything in one super dynamic component which sends around a lot of parameters that is often justifiable for a high load site InfoGlue 2 8 0 introduces a possibility to set a page cache timeout in seconds which is a great middle way for some pages You can still have pretty high scalability but can have the page updated in regular intervals Use JSP instead of velocity or freemarker Faster and consumes less memory Never use recursive macros in Velocity Under load macros in velocity does not seem to be thread safe Could be better since 2 4 6 which includes Velocity 1 5 Make sure what component takes the most time and analyse what in it is expensive Perhaps it s a badly written component or perhaps we could optimize InfoGlue Let us know Make sure to use the new component cache available from InfoGlue 2 0 and forward It let s you cache parts of a page and leave other parts dynamic Check the database so the indexes in InfoGlue are ok If one index are broken it can affect performance big Set up a load balanced set of live servers or cms servers Also make sure you separate the live database and the cms database Use the ViewApplicationState action view to analyze which components are slow Focus on those when optimizing More info in the development
100. e component html at the position you choose There are a couple of optional attributes to the slot tag inherit disableAccessControl disallowedComponentNames and allowedComponentNames Inherit is used to state if the slot should be inherited to pages below if not overridden or not The allowedComponentNames and disallowedComponentNames attribute allows you to specify a list of component names that are allowed not allowed in this slot Here is a full example ig slot id rightColumn inherit false allowedComponentNames PuffImage Related Info Searchform ig slot Special tags There is a tag for printing out the last modified date of a page The date is the last modified date of all content on the page Here is the syntax lt ig lastModifiedDateTime format yyyy MM dd HH ss ig lastModifiedDateTime Properties amp bindings One of the main benefits of components compared to other systems where you are limited to jsp files on disk or similar is that they can have properties which controls their behaviour This means that an instance of the component on one page can have different settings than the same component located on another page or on the same page for that matter This enables developers to write very dynamic and reusable components if needed The users can configure their sites rather than having developers helping them all the time You define properties in the attribute field ComponentPropert
101. e the many taglibs supplied with InfoGlue Last in this document is a full reference documentation to the tags including examples of how to use them This is from 2 1 the preferred way to build templates components in InfoGlue although the other techniques will be supported and developed as well When it comes to Velocity and its close relative Freemarker there are two API s to be aware of when it comes to components You will want to use the templateLogic object a lot probably as it contains many good utility methods Also you want to look into the new templateLogic componentLogic object as that contains most of the methods you need for the component specific stuff The Javadoc API s is found on http www infoglue org infoglueDeliverLive projects infoglue cms Javadoc API Author Mattias Bogeblad Page 35 2009 01 19 InfoGlue Developer Manual Integration This is a hard section to write as integration is such a huge area Here we have tried to line up some common techniques we know people are using and describe pro cons for each Simple integration via Iframes Sometimes organisations have a need to embed existing applications as they are In such cases using IFrames or ordinary frames could be a valid option It really has nothing to do with InfoGlue as the technology is supplied by the browsers directly We however thought it should be mentioned as it is commonly used as a way of achieving integration fast The positive eff
102. e property is located if not on the current page propertyName false Object String The property name the component used to bind the content by in which you wish to get the child pages below uselnheritance false true boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useRepositoryInheri false true boolean Sets if the component should use the repository tance inheritance or not when looking up entities using inheritance useStructurelnherita false true boolean Sets if the component should use inherit properties nce from it s parent site nodes ID result variable contains A string containing the value Examples The following example gets the component property values of the property named markets and prints it out Use with your own imagination structure componentPropertyValues id markets propertyName Headline gt lt hi gt Markets used by this components could be lt h1 gt c forEach var market items markets gt p c out value market gt lt p gt lt c forEach gt Author Mattias Bogeblad Page 114 2009 01 19 InfoGlue Developer Manual hasDefinedProperty Description Returns if a component property value was set or not Parameters Name Required Default Type id true String siteNodeld false Object String languageld false Object String propertyName false Object String
103. e want to render What kind of image do we want look at BufferedImage TYPE_XXX for the available types The name of the font to use Which style to use The size of the font What color should the text have colon separated RGBA color What color should the background have colon separated RGBA color How wide is the render canvas in pixels How should the text align left right or center If stated the text will have x pixels of padding above it If stated the text will have x pixels of padding below it If stated the text will have x pixels of padding left of it If stated the text will have x pixels of padding right of it If stated the text will have x pixels of padding around it State the maximum numbers of rows the tag can extend the rendering to Should the edges be trimmed or not 0 notrim 1 left 2 right 3 left and right State if the background image should be tiled 0 no 1 horizontal 2 vertical 3 both The url of the background image to be used This very simple example just renders a simple text with all the default settings except that we trim both sides and we then show it in a image tag lt common textRender id titlelmageUrl text InfoGlue is cool trimEdges 3 gt lt img src lt c out value titleImageUrl gt gt Author Mattias Bogeblad Page 139 2009 01 19 InfoGlue Developer Manual parseMultipart This tag can handle file upload posts That is
104. eString s replaceWithString amp nbsp gt lt c out value transformedText gt This example will output the string html encoded and all line breaks would be replaced with lt br gt tags into the document lt taglib uri infoglue common prefix common gt lt taglib uri http java sun com jstl core prefix c gt lt common transformText id transformedText text Testing replacing amp i18N like 330 RAO replaceString s replaceWithString amp nbsp htmlEncode true replaceLineBreaks true lineBreakReplacer lt br gt gt lt c out value transformedText gt Author Mattias Bogeblad Page 137 2009 01 19 InfoGlue Developer Manual rssFeed This is a nice taglib which lets you give users RSS feeds from your site We use Rome backend to output the format you wish to use Parameters Name Required Default Type Description id false String The id of the variable to store the feed in feedType true Object String What kind of feed rss_0 9 rss_0 91 rss_0 92 rss_0 93 rss_0 94 rss_1 0 rss_2 0 atom_0 3 title false 0 Object String The title of the feed link false Object String The url to the feed description false or Object String A description of the feed ID result variable contains A String object containing the RSS XML Examples This example will return an rss xml OBS The categories below are just fakes to show how you can add atom categories
105. ect String Sets if the rendering engine should generate full urls or not If true it will contain http myserver etc and not relative urls disablePageCache false false Object String The property allows you to disable page cache all together so the result are not cached disableNiceUri true false Object String Allows you to disable Nice URI s in the generation process trimResponse false false boolean Makes it possible to dictate for the delivery engine from a component that a page should be trimmed before sent to the client This means components returning xml as a result don t have to be written on one line to avoid invalid xml any more evaluateFullPage false true boolean Makes it possible to dictate for the delivery engine from a component that a page should not be evaluated a final time by velocity after all components has been evaluated Improves performance but can lead to different behaviour in your sites compared to now contentType false String Makes it possible to dictate for the delivery engine from a component what content type the page response header should report to the browser pageCacheTimeout false String Makes it possible state a page cache timeout from the template this overrides the page cache timout set on the page cover Set in seconds ID result variable contains The org infoglue deliver applications databeans DeliveryContext object Examples The following example gets the deliveryContext and in the proc
106. ects are that it works instantly in most cases and no modifications has to be done to the application The negative side is that frames can be ugly the size of the frame is fixed which can result in scrolling a part of the page and that the surrounding page often has a different style Simple integration via embedding If the IFrame solution is inadequate for the particular needs another option is something we call backend embedding The technique is rather basic and means that InfoGlue does a HTTP request to the URL you specify like a browser would and then returns the resulting HTML for you to present or process The benefits of this approach are e The user is unaware of that there are different parts of the page coming from different locations as the result is inserted in the html code and the page is delivered as one unit e You can process the resulting HTML and change styles etc if you want to have a common style on the page e Security you don t have to allow the user direct access to the embedded application it is enough if the InfoGlue machine is authorized e You can have the embedded webapp call InfoGlue methods like if it were a template if it wants to use images labels etc when embedded The drawbacks are The performance of the entire page is very dependent of the performance of the embedded webapp If the webapp is interactive you will have to do pretty much pre post processing of the request and HTML to make it work
107. el Description This tag gets a label stored in the components attribute ComponentLabels which you may have to add yourself This removes the need for a global labels content and makes the component much more modular and self contained It works much like the content contentAttribute but easier Parameters Name Req Def Type Description Id false String The result is stored in this variable If not set the result is printed directly to the page languageld false Object String The id of the language you wish to get the label in Default the language the user is browsing the pages in is used useAttributeLanguageFallback false true Object String If set to true InfoGlue will fallback to the master language version if no label was found in the current language mapKeyName true Object String The ComponentLabels attribute is supposed to be ID result variable contains The string fetched if id is given Examples a name value parameter map and that the attribute we want is found by the key you give here The following example gets the label SearchButtonLabel from the current component and uses it as the button label This example assumes that you have a attribute called ComponentLabels with these labels for example lt div 1d toparea gt lt div id logo gt naart Leiska Mane FormHeaderLabel Search form I Search lt a href http www uu se gt lt img src http www uu se Logo 125_logo_white gif al
108. elow refers to any such manual or work Any member of the public is a licensee and is addressed as you You accept the license if you copy modify or distribute the work in a way requiring permission under copyright law A Modified Version of the Document means any work containing the Document or a portion of it either copied verbatim or with modifications and or translated into another language A Secondary Section is a named appendix or a front matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document s overall subject or to related matters and contains nothing that could fall directly Author Mattias Bogeblad Page 163 2009 01 19 InfoGlue Developer Manual within that overall subject Thus if the Document is in part a textbook of mathematics a Secondary Section may not explain any mathematics The relationship could be a matter of historical connection with the subject or with related matters or of legal commercial philosophical ethical or political position regarding them The Invariant Sections are certain Secondary Sections whose titles are designated as being those of Invariant Sections in the notice that says that the Document is released under this License Ifa section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant The Document may contain zero Invariant Sections If the D
109. emoteContentVersion id contentVersion contentld 54 languageld 1 Title lt content contentAttribute contentVersion contentVersion attributeName Title gt Author Mattias Bogeblad Page 100 2009 01 19 InfoGlue Developer Manual contentExportUrl Description A tag capable of exporting a content fully into an importable xml file Same result as the content export feature found in the content tool but available from templates We use this in InfoGlue org to automatically export the latest version of templates on requests Parameters Name Required Default Type id true String contentIdList false String contentld false String fileNamePrefix true String includeContentTypeDefinitions false includeCategories false ID result variable contains An url to the exported file Examples boolean boolean Description The result is stored in this variable State this list if you wish to export multiple contents A list of Integers State this if you only wish to export one content The prefix of the file State if you want the export to include the content type State if you want the export to include the categories in the system Gets an export of the template content itself exporting the component actually lt content contentExportUrl id exportUrl contentId pc componentLogic infoGlueComponent contentId fileNamePrefix MyTestExport includeCategories false includeConte
110. equired Default id false originalText true modifiedText true ID result variable contains A diff string Examples Type String Object String Object String Description The result is stored in this variable The original text The modified text This example compares two texts and prints the result on the webpage Result was lt br gt lt c set var org value The original text gt c set var new value The new text gt common diff id diffString originalText org modifiedText new gt lt c out value diffString escapeXml false lt br gt Author Mattias Bogeblad Page 141 2009 01 19 InfoGlue Developer Manual documentConverter Experimental document conversion tag which operates together with JODConverter Open Office serverside It can take a worddocument and convert it on the fly to pdf odf and html The tag also manages to create table of contents separately so you can have navigation separate Remember that this tag currently requires open office remote service installed Read more on http www artofsolving com opensource jodconverter Parameters Name Required Default id false docUrl false docFilePath false title true menuTextLength true cssList true rewrite false ID result variable contains Type String Object String Object String Object String Object String Object String Object String Description The result is stored
111. er Manual forward This is a simple forward tag which replaces the jsp forward tag Parameters Name Required Default Type Description url true Object String The url to redirect the user to Examples This example forwards the user to and internal page which you have constructed earlier and also appends two parameters to the request lt common forward url forwardUrl gt common parameter name foo value bar common parameter name myParamX value true lt common forward gt Author Mattias Bogeblad Page 147 2009 01 19 gapcha InfoGlue Developer Manual This is a simple gapcha implementation which gives you a basic possibility to protect your forms from spam robots Parameters Name id textVariableName numberOfCharacters imageType fontName fontStyle fontSize fgColor bgColor renderWidth align padTop padBottom padLeft padRight pad maxRows trimEdges tileBackgroundImage backgroundImageUrl twirlAngle marbleXScale marbleYScale marbleTurbulence marbleAmount Required false false false false false false false false false false false false false false false false false false false false false false false false false Se next page for example Author Mattias Bogeblad Default Type Object String Object String Object String BufferedImage Object String TYPE 4BYTE ABGR Dialog Object String Font PL
112. ers in a controlled and cache safe way Parameters Name Required Default Type Description name true Object String The name of the header to set value true Object String The value of the header to set Examples The following example sets a response header Cache control lt taglib uri infoglue page prefix page gt lt taglib uri http java sun com jstl core prefix c gt lt page httpHeader name Cache control value no cache gt Author Mattias Bogeblad Page 74 2009 01 19 InfoGlue Developer Manual pageAttribute Description This tag let s you share and use shared data between components globally on a page Data can be anything but keep it simple This is an essential part of the new preprocessing mechanism If no value is given the tag assumes you wish to read the value of that attribute and returns it Otherwise it save the value Parameters Name Required Default Type Description name true Object String The name of the variable attribute value false Object String The value to save in the attribute Examples The following example shows how we first store a value and then reads it again If you read the description of the new preprocessing mechanism you can share it between templates Otherwise it s very dependent on rendering order lt taglib uri infoglue page prefix page gt lt taglib uri http java sun com jstl core prefix c 905 page pageAttribute
113. es Property name Type Entity if binding Allow multiple items Allowed content types Description Image binding Content false Image LinkedPage binding SiteNode false URL textfield false ComponentTasks ComponentTasks ComponentTasks The lowest field ComponentProperties is important and the editor for properties can be launched by clicking the Edit properties link If you wish to see the XML press the Plain link If you open the editor you will see this http localhost Component Properties Editor Mozilla Firefox wail Image binding Content false true The image in question Iko va Link binding SiteNode false false Ef a wail Width textfield false false 29 wa Height textfield false false Et a wail AlText textfield false false Et a wa Style textfield false false Ef 9 Add new property SAVE ll SAVE EXIT CANCEL zl Klar ez Hopefully the editor is rather self explanatory although it has some usability flaws Author Mattias Bogeblad Page 34 2009 01 19 InfoGlue Developer Manual Component description and thumbnail Since InfoGlue 2 6 0 we have added a possibility to add a description and a thumbnail for components It s all optional of course but could be nice for end users The info is shown like this when adding components to a page compare the AK Article Box component which is supplied with another thumbnail and a description with the other components
114. es This results in that the template content called Article related to the current component on relation attribute RelatedComponents is included on the page as a template lt taglib uri infoglue common prefix common 995 lt taglib uri http java sun com jstl core prefix c 905 common include relationAttributeName RelatedComponents contentName Article gt Author Mattias Bogeblad Page 133 2009 01 19 InfoGlue Developer Manual import Description This tag is almost identical to c import but allows you to specify a timeout Parameters Name Required Default Type Description id true String The result is stored in this variable url false Object String The url to import charEncoding false Object String Char encoding of the input data timeout false Object String Sets after how long milliseconds the tag should return with error ID result variable contains The rendered result as a String object Examples Read the description on c import mostly no need for more examples The only addition we have made is that it is possible to set request the request timeout lt taglib uri infoglue common prefix common gt lt taglib uri http java sun com jstl core prefix c gt lt common import id result url http www google com search gt lt common parameter name q value infoglue gt lt common import gt Author Mattias Bogeblad Page 134 2009 01
115. ess We have tried to sum up the process very simple in this image Request ViewPage action ViewPage action is the entry point for all requests The request is validated so all nessecairy parameters Validate request are supplied Some extra info is also added for later use Based on the request InfoGlue gets the sitenode page requested This is the basis for all rendering Get requested sitenode The sitenode is allways associated upon creation with a Get page invoker page type ie SiteNodeTypeDefintion which in turn has an invoker as an attribute InfoGlue now dynamically finds the invoker defined by using Render page Reflection and asks it to render the page The invoker can have any kind of algorithm for this The result is returned Response The important part to recognise here is the Get page invoker step Depending on which page type you have chosen for your page different invokers algorithms can be used to render it The types are defined in the management tool under SiteNodeTypeDefinitions There are two default types defined in InfoGlue one which renders pages in the old template based way Normal HTML page and one that renders the page based on components on it In addition you can even add your own invoker if needed An example could be a WAP page type which behaves differently than HTML pages does altogether or perhaps a redirect invoker which forwards the request sever side Author Mattias Boge
116. ess disables Nice URI s Then we can query the object for information and you can look at the DeliveryContext object in the API for more information lt taglib uri infoglue page prefix page 992 lt taglib uri http java sun com jstl core prefix c 905 page deliveryContext id deliveryContext disableNiceUri true gt This page has the siteNodeld lt c out value deliveryContext siteNodeld gt and the contentType c out value deliveryContext contentType gt and the pagePath c out value deliveryContext pagePath gt Author Mattias Bogeblad Page 72 2009 01 19 InfoGlue Developer Manual clearCache Description This tag lets you get information about the current rendering process but also let s you set some parameters affecting the rendering process Parameters Name Required Default Type Description entity true Object String The entity name to clear entityId true Object String The entityId to clear Examples The following example clears all caches affected by editing of the content entity with id 54 lt taglib uri infoglue page prefix page gt lt taglib uri http java sun com jstl core prefix c gt lt page clearCache entity org infoglue cms entities content impl simple ContentImpl entityId 54 Author Mattias Bogeblad Page 73 2009 01 19 InfoGlue Developer Manual httpHeader Description This tag lets you add response head
117. foGlue Content Management Platform LANGUAGE T 9 mnvorune rom G nonacenen root 9 vue roa G my oemcror LOGOUT NEW WINDOW Choose repository MM J Language versions Enalish El Working This version was last modified by administrator seve EIES cover omen Name Name This is the name of the template Image component Template HTML Template This is the html for the template i i infoglue structure prefix structure gt infoglue content prefix content gt 2958 taglib uri http java sun com jstl core prefix c gt lt page contentType text html charset UTF 8 gt structure componentPropertyValue id externalLink propertyName URL useInheritance false gt lt structure boundPage id internalPage propertyName LinkedPage useInheritance false gt lt cichoose gt lt ciwhen test internalPage null gt lt c set var url value internalPage url gt ciwhen lt c when test externalLink null gt lt c set var url value externalLink lt e when gt lt cichoose gt ciif test url null gt lt a href lt c out value url gt gt lt ciif gt lt img src lt content assetUrl propertyName Image uselnheritance false alt class img scaled border 0 lt ciif test url null gt lt a gt lt ciif gt ComponentProperties ComponentProperties ComponentProperties Component Properties Edit properti
118. glish YOU ARE LOGGED IN AS administrator I CONTENT TOOL S STRUCTURE TOOL Gg MANAGEMENT TOOL fi PUBLISHING TOOL LOGOUT i NEW WINDOW HELP REPOSITORY Choose repository z m DELETE N All Repositories TYPE Der TYPE DEF Repositories O SystemUsers 5 Roles Name Description Invoker class name ExtranetUsers I Normal HTML Page Normal page org infoglue cms invokers HTMLPageInvoker I ExtranetRoles 5 Languages TT ComponentPage E more org infoglue cms invokers ComponentBasedHTMLPageInvoker Functions ServiceDefinitions AvailableServiceBindings O SiteNodeTypeDefinitions ContentTypeDefinitions O Workflows IO TransactionHistory Up2Date Site node type definitions Author Mattias Bogeblad Page 24 2009 01 19 InfoGlue Developer Manual On each Site Node Type Definition you have the following fields nfoGlue Content management platform content Toot REPOSITORY Choose repository z ES All Repositories Repositories SystemUsers Roles ExtranetUsers I ExtranetRoles Languages Functions ServiceDefinitions 2 AvailableServiceBindings 2 SiteNodeTypeDefinitions ContentTypeDefinitions Workflows TransactionHistory UpZDate E structure Too Svenska English YOU ARE LOGGED IN AS administrator LOGOUT i i NEW WINDOW HELP 63 MANAGEMENT TOOL 6 PUBLISMING TOOL DELETE Wyre ber Site node
119. h a css link Author Mattias Bogeblad Page 59 2009 01 19 InfoGlue Developer Manual How to manage JavaScript s JavaScript are a must in today s more and more dynamic sites If you want to use JavaScript s one way or another you can choose between at least two options e Inline the JavaScript code in the ordinary templates This approach is simple but has it s drawbacks as much more data is sent to the client each time and that reuse of JavaScript functions between templates is impossible We will not describe how you do this as it not involves any special InfoGlue operations e Link to the JavaScript resource Very nice solution as it helps the browser perform and also separates the JavaScript functions nicely from the templates enabling reuse of it from different places The rest of this section will outline how you achieve the second solution 1 Create the JavaScript code as an HTMLTemplate 2 Create a new site node called JavaScript page or something and bind the new JavaScript template as its base component template Preview the site node to see that the page delivers valid JavaScript code 3 Change the new site node s content type to text JavaScript important for Mozilla browsers 4 Now create a property or an available service binding called Javascript page which binds to a site node Assign this binding to the new Javascript page 5 Write the html for the link in the html Reference the JavaScript lin
120. h an updated version of the Document 4 MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above provided that you release the Modified Version under precisely this License with the Modified Version filling the role of the Document thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it In addition you must do these things in the Modified Version A Use in the Title Page and on the covers if any a title distinct from that of the Document and from those of previous versions which should if there were any be listed in the History section of the Document You may use the same title as a previous version if the original publisher of that version gives permission B List on the Title Page as authors one or more persons or entities responsible for authorship of the modifications in the Modified Version together with at least five of the principal authors of the Document all of its principal authors if it has fewer than five unless they release you from this requirement C State on the Title page the name of the publisher of the Modified Version as the publisher D Preserve all the copyright notices of the Document E Add an appropriate copyright notice for your modifications adjacent to the other copyright notices F Include immediately after the copyright notices a license notice giving the public permi
121. h to keep partly dynamic Then you add a few properties to the components you wish to cache If you have a menu component which you want to cache you enter the advanced properties on that component The cache related properties are PropertyName CacheResult Type Dropbox Possible values true false Description If you set this to true the component will be cached until either it expires or a new publication is made Subcomponents will also be cached with it Author Mattias Bogeblad Page 30 2009 01 19 InfoGlue Developer Manual PropertyName Updatelnterval Type Dropbox Possible values 1 and up Description If you have the CacheResult property set to true and you set this to a positive number the components result will be cached for as many milliseconds PropertyName CacheKey Type Textfield Possible values Works like the page cache key and defaults to the same key Use this with caution It s optional Component tasks In InfoGlue s structure tool we have shown that there is a context sensitive environment which we call Edit On Sight The right click menu is not limited to the items in it actually but can be extended with component specific tasks To use this you define an attribute field called ComponentTasks in the HTMLTemplate content type and for each component you wish to add context menu items for you set an xml in that field lt xml version 1 0 encoding UTF 8 lt
122. here are basically three steps in an ordinary task Initially it s the user input step Here the central task executor will run the script located in the UserInputHTML field of the task definition Usually this step is used to present the user with an introduction and let him her contribute with information needed in the coming steps You can have several calls to this step if you wish to split the step into smaller screens but this is handled in the same script in that case Second the task executes the script located in the attribute ScriptCode This step normally contains the manipulating operations This can mean creating content pages languages as well as any other operation available in the platform as well as in custom logic Thirdly when the execution of step 2 is done the script in field UserOutputHTML is executed Most often this is used to present the user with the result of the process including any files assets info the user needs A very central thing is of course to understand how to pass data between the different steps When it comes to passing data the normal servlet API is usually what you need You can always reach the request object from your scripts Also notable is that each step in a task is handled in a separate transaction automatically Author Mattias Bogeblad Page 38 2009 01 19 InfoGlue Developer Manual Portlet development This section will guide you through creating a simple Hello World portlet and dep
123. iasuteveadeaieaiedatenshen ios a iduseaenacs agessaaiebiaantans 92 Byte gd 0 a o seer rer PEER PETE ELE TEESET RECO EE CCEPCE TTT CTETSCET kike getas erkriktaksrermigriviriolitamioios 92 PAFAIMICUCLS su cess foci Pa eek ie sro bed eine llU dad ka GE kraj Seek ru eds Sk pl sae bse ah ind ee ced eae Aga 92 REQUIRE A DO Ke KLE eaten e stele Dead iii A KOR DOE E maa dra ENS AN ELKLINI deena A TY erre pre repre rr Pepere ETT TT LIU DESCFIDUION a ENEN E I hank I NM ed EL ANE GHILDGONTENTS a A A KRIS OA Ka kk OKK ON Ra ETERN NGA RA ea Kk Do 93 DESCFIPEON niss rusan eniro ixee saved eve gen TER oda sia ESAE vet klein kO Ara To kis hrebokau rite aE a EAE 93 Parameters EET ETT TTT TETTE TE adel Foe 93 dels VI Kolore cients a2 eee opere repas OA O POP De PAU Grease tie ep o np ako id dea donde u TY P SE o oo A A eed awed wer oe maemo DESCHIP EO Ier ences carcasses O EA ia e MATCHING GONTENT Sis eon o Ento E naa Eke aca KODO o IGO NTERTJOS SOROS EONO KERR 94 Descriptio M Mesirna a KE DS KA 94 Pa aMete S is rer divers inia iilo URN AAA RADO DIRAS AK KI KR neak Eld k valer kak ra 94 A A PT Deal iii AA AAA da eo rta dra IVpO p me A A O O O Edena eG brti se stis DESCHIDUON nest Soe si senes A CONTENTS ORT 21 Eia EG Sn SENTSO DEBO KAE tant uae NA BE KOR SKEJ KA EA IONA DA SENE IRO KRA NI 96 Description i sa nav a AE E EANG NES 96 PAFAIMGlO EE E menses e a EE E N
124. ic websites and extranets What parts are there in InfoGlue InfoGlue is a pure Java platform It is completely database driven which means both the management tool and the public sites are using information from a database The platform consists of two main types of applications and they are the administrative tool and the delivery engine the later in several instances The administrative tools are where you manage all aspects of your site The delivery engines are specialized in presenting sites to users based on the data managed by the tools By default InfoGlue installs 3 delivery engines The first is the working version which presents the working version of the site There is also a version called staging or preview which shows the site in a preview mode so the publisher can check that the site will look good after publication The last delivery engine is the one that shows the live site to visitors Here are two sketches that shows first how a simple setup could look and then a more complex example with better redundancy a 4 gt Content editors and External visitors Content editors and External visitors webmasters webmasters ad balas Ee Eq F ER oe p r a LE CMS and preview Live environment Live environment EP E SEES 7 environment CMS and preview Live environment environment InfoGlue CMS InfoGlue live InfoGlue live server server 2 server uu xr o InfoGlue server
125. ically require changing the actual title 9 TERMINATION Author Mattias Bogeblad Page 168 2009 01 19 InfoGlue Developer Manual You may not copy modify sublicense or distribute the Document except as expressly provided for under this License Any other attempt to copy modify sublicense or distribute the Document is void and will automatically terminate your rights under this License However parties who have received copies or rights from you under this License will not have their licenses terminated so long as such parties remain in full compliance 10 FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new revised versions of the GNU Free Documentation License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns See http www gnu org copyleft Each version of the License is given a distinguishing version number If the Document specifies that a particular numbered version of this License or any later version applies to it you have the option of following the terms and conditions either of that specified version or of any later version that has been published not as a draft by the Free Software Foundation If the Document does not specify a version number of this License you may choose any version ever published not as a draft by the Free Software Foundation ADDENDUM How to use thi
126. ier for the users and can be used on live sites as well Parameters Name Required Default Type id true String contentld true String languageld true String attributeName true String html true String showInPublishedMode false false String ID result variable contains The html string needed to perform edit on sight Examples Description The result is stored in this variable The content the edit on sight should support edit The language the edit on sight should edit The attribute the edit on sight should mark The html you want the user to click on to get the editing form This property lets you show the edit link even on the published site The following example creates a link which leads to the editing screen for the content attributeName FullText html Edit text gt lt content editOnSight id editOnSightHTML contentId content id lt c out value editOnSightHTML escapeXml false gt Author Mattias Bogeblad Page 97 2009 01 19 InfoGlue Developer Manual assignPropertyBinding Description A tag which lets you make a visible representation of the assign property editing found in the structure tool on component property bindings Easier for the users and can be used on live sites as well Parameters Name Required id true propertyName true createNew true html true showDecorated false showInPublishedMode false hideComponentProperti false esOnLoad extraParameter
127. ies in the HTMLTemplate content you create for each component and the format is XML Don t worry there is a property editor built in so you don t have to hack away but it has to be turned on Author Mattias Bogeblad Page 27 2009 01 19 InfoGlue Developer Manual Below is an example of the dialog of one property when you use the property editor Let us go through the fields Component Properties Editor 2 0 Mozilla Firefox oj x E http localhost 3080finfoglueCMS ViewComponentPropertiesEditor action contentVersionId 10183 amp attributeName ComponentProperties 7 Component Properties wai OrderedPages Edit component property wail TargetPage SUEUR EO vail Image Property wa Orderedimage Display name NewProperty wail Width Description No description yet p Default value va Height Property type binding Enable WYSIWYG No wa NewProperty Toolbar wail AltText la la 898999998 6 66 6 6 6 6 Basic Add new property Entity Content 4 y Multiple SAVE SAVE 2 EXIT P No A AssetBinding No Puff for page No Allowed content type s ERS Sain Image Meta info Article HTMLTemplate Auto create content No lula kj kuj kuj luj laj lai Auto create content method Mimic site structure hal Auto create content base undefined path SAVE cancer FoxyProxy Av 9 Us Here is an example of a component property dialog in edit on sight for reference not the
128. in this variable Url to the word document to convert Path to the word document to convert Title of the index Lengths of the index items The list of css s to use during conversion Allows you to force a rewrite of the document A ConvertedDocumentBean which contains url s to the pdf html odf versions etc Author Mattias Bogeblad Page 142 2009 01 19 InfoGlue Developer Manual XSLTransform This tag replaces the x transform tag and use SAXON XSLT 2 0 processor instead which is more efficient less memory intense and faster Not to mention 2 0 compliant The tag incorporates caching of stylesheets etc Parameters Name Required Default Type Description id true String The result is stored in this variable xmlFile false Object String The full xml file path xmlString false Object String The xml as a string source false Object String The xml as a source styleFile false Object String The full style file path styleString false Object String The style as a string cacheStyle false true boolean State if the xslt should be cached Consumes memory so keep down the number of cached templates outputFormat false string Object String The output format document tinyDocument string ID result variable contains A string or other if specified with the result of the transformation Examples This example transforms a xml with the xsl and prints the result on the webpage common XSLTransform id resultSt
129. information memory information and rough statistics on how the site is performing and how the load is at the moment This is all live information so reloading this view is often quite useful Pay close attention to the memory state when doing load tests for example or when you are developing new heavy components The average processing time is also of great interest during load testing or during production A low value here but slow site performance for users would for example indicate that there is an issue with your infrastructure or bandwidth 1 InfoGlue Status Page m1d b705 Version Release date 2 5 0 Final 2007 06 15 Item Value Application started 2007 06 16 10 48 Maximum memory MB 762 Used memory MB 65 Free memory MB 696 Total memory MB 762 Number of sessions 1 remains for 1166 minutes after last request Number of request being handled now o Number of active request being handled now o Total number of requests handled an Average processing time per request ms Slowest request ms 10250 J The next section exemplified below shows a full list of the components rendered since the application was started It also shows the average processing time for each component and this is really great if you want to optimize your site In this view it s quite clear that most components are quite fast except a couple in the top which should be Author Mattias Bogeblad Page 65 2009 01 19 InfoGlue Developer
130. initions O Up2Date O Validation Ey Workflows O Portlets Redirects Application settings 2 Message center InfoGlue CMS EN Yersion build 2 3 Final 2006 04 17 YOU ARE LOGGED IN AS administrator The result should be that the new portlet is listed Author Mattias Bogeblad Page 42 2009 01 19 InfoGlue Developer Manual Step 4 Use the portlet on a page though a component Before you can use the new portlet often you have to restart tomcat after this stage Also remove the deployed war file from the catalina webapps directory as the webapp should now unpacked and the war is just interfering Do this before you continue Create a component template with the following code set SportletName HelloPortlet HelloPortlet set ScalendarPortlet SportalLogic getPortletWindow portletName p templateLogic componentLogic infoGlueComponent idq calendarPortlet setAttribute componentId templateLogic componentLogic infoGlueComponent id calendarPortlet setAttribute languageCode templateLogic locale language ScalendarPortlet setAttribute siteNodeId StemplateLogic siteNodeId ScalendarPortlet render Now just add this component to a page and you should see Hello World in large letters This was the crash course to creating your very first portlet Now you probably have to read a portlet book to know what to do next Author Mattias Bogeblad Page 43 2009 01 19 InfoGlue
131. ion When implementing a content management system there are many aspects to handle One of the most important ones is usability As some aspects of site management may involve quite a few steps in the normal tools there are often a need to be able to help the users One way is to create workflows which will be described later on Another simpler way is by creating what we in InfoGlue call tasks A task is something you write to extend the normal user interfaces without having to change anything in InfoGlue itself A good example of where writing a task is suitable might be if you want to give the Vice President a possibility to write a monthly letter which should be published both on the web and sent to all customers on email without having to teach him all the steps involved using the standard tools You can write a task which he runs which guides him through all the steps in a very user friendly way The interface can be totally customized to make him her feel at home and if the user has proposals those can be taken into consideration as well We have examples of people using tasks for the following purposes e Creating whole sub sites with predefined structure e Link validation on all contents e Export Import of contents e Sending weekly newsletter to all customers e Publishing start page news puffs easy The decision whether or not a task is required in a process is up to the developers and the users to agree upon Flow of a task T
132. k property Here is a simple example of a basic html component with a JavaScript link 8 taglib uri infoglue structure prefix structure gt 8 taglib uri http java sun com jstl core prefix c gt 8 page contentType text html charset UTF 8 gt structure boundPage id javascriptPage propertyName javascriptPage gt lt DOCTYPE html PUBLIC W3C DTD XHTML 1 0 Transitional EN http www w3 org TR xhtml1 DTD xhtml1 transitional dtd html xmlns http www w3 org 1999 xhtml head title Example title meta http equiv Content Type content text html charset utf 8 script type text javascript src lt c out value javascriptPage url escapeXml false gt gt lt script gt lt head gt lt body gt lt table width 100 border 0 cellspacing 2 gt Sire lt td colspan 2 gt Header lt td gt lt tr gt E td valign top Middle td Siew See lt td height 24 colspan 2 gt Footer lt td gt lt tr gt lt table gt lt body gt And the property would be lt xml version 1 0 encoding UTF 8 gt lt properties gt lt property name JavascriptPage type binding entity SiteNode multiple false gt lt properties gt Author Mattias Bogeblad Page 60 2009 01 19 InfoGlue Developer Manual Adding slots for dynamic parts Now we might want to add some more dynamic parts on the page Perhaps we want a middle right are
133. leSize and supply a number a special formatting will kick in The value to format The pattern to use when formatting For dates it s SimpleDateFormat patterns you use and for Numbers you use DecimalFormat pattens The locale to use when formatting attributeName Title c forEach content matchingContents id articles contentTypeDefinitionNames Article News categoryCondition Area Areas Medicine gt lt c out value Title gt lt common formatter value article publishDateTime pattern yyyy MM dd gt lt br gt lt c forEach var article items articles varStatus count content contentAttribute id Title contentId article contentId Look at patterns for dates here http java sun com j2se 1 4 2 docs api java text SimpleDateFormat html Look at patterns for numbers here http java sun com j2se 1 4 2 docs api java text DecimalFormat html Author Mattias Bogeblad Page 151 2009 01 19 InfoGlue Developer Manual Management Tags Description These tags are made to retrieve system information from InfoGlue Location Located in infoglue management Available tags and short description Tag Description principal This tag returns a principal user more or less principalProperty Returns a user property language Returns the language object contentTypeDefinitionAttributes Gets the attributes of
134. lean Should the menu show the user notification item showPageNotifications false boolean Should the menu show the page notifications item showContentNotificatio false boolean Should the menu show the content notifications ns item showTranslateArticle false boolean Should the menu show the translate article item showCreateNewsFromC false boolean Should the menu show the create new from ontent content item showMySettings false boolean Should the menu show the my settings item Examples The following example shows a simple situation where we want to show a button below the article printout which shows a button for the menu lt taglib uri infoglue page prefix page gt lt taglib uri infoglue structure prefix structure gt lt taglib uri http java sun com jstl core prefix c gt hi c out value title escapeXml false h1 lt c out value fullText escapeXml false gt lt c if test pc isInPageComponentMode gt page editonSightMenu contentId articleContent id gt lt c if gt Author Mattias Bogeblad Page 77 2009 01 19 InfoGlue Developer Manual Content Tags Description These tags are made to make life easier for the template developer who wants to extract content one way or another We think we have covered most cases as we have built numerous sites with these Location Located in infoglue content Available tags and short description
135. loying it in InfoGlue 2 3 It will not show you how to build portlets with more sophisticated frameworks like Struts or Webwork as that is not a question for InfoGlue Step 1 Create a Hello World Portlet Create a new Java project called HelloPortlet in your favourite development environment Create a file called org infoglue portlets HelloPortlet java and fill it with this The file needs portlet api 1 0 jar in its class path to compile Get it from tomcat shared lib if InfoGlue is installed from the Pluto distributions or from any other official site Author Mattias Bogeblad Page 39 2009 01 19 InfoGlue Developer Manual Next we create a portlet xml Next we create a web xml for this portlet Author Mattias Bogeblad Page 40 2009 01 19 InfoGlue Developer Manual Step 2 Package the portlet as a WAR file I just create a war file with the following contents HelloPortlet war web xml portlet xml WEB INF classes Org infoglue portlets HelloPortlet class That is it really You can download the example war from http www infoglue or Author Mattias Bogeblad Page 41 downloads 2009 01 19 InfoGlue Developer Manual Step 3 Deploy the portlet in InfoGlue Now we deploy the portlet in InfoGlue Open up the management tool and press the New Portlet button Then state HelloPortlet and browse to the war file Finish by pressing Save http localhost 8081
136. lse 1800 Object Date This lets you set the cache period in seconds cacheName false Object Date This lets you override the cache name cacheKey false Object Date This lets you override the cache key ID result variable contains A list of org infoglue cms entities content ContentVO objects Examples The following example gets all articles and news which has the category attribute Area categorized as Medicine content matchingContents id articles contentTypeDefinitionNames Article News categoryCondition Area Areas Medicine gt c forEach var article items articles varStatus count gt lt content contentAttribute id Title contentId article contentId attributeName Title gt lt c out value Title gt lt br gt lt c forEach gt Author Mattias Bogeblad Page 94 2009 01 19 InfoGlue Developer Manual The following example gets all articles which has the category attribute Area categorized as Medicine and the category attribute Department categorized as Finance If you need OR use around the categoryCondition instead of as here content matchingContents id articles contentTypeDefinitionNames Article News categoryCondition Area Areas Medicine Department Departments Finance gt lt c forEach var article items articles varStatus count gt lt content contentAttribute id Title contentId article contentId attributeName Title gt
137. lt Type Id true Object String trustedIPs true Object String allowDnsLookupForIPs false Object String trustedDomains false Object String Examples Description The result variable name A regexp of trusted IP s Use dns lookup to ensure non fake ip s A commaseparated list of trusted domains This example checks if the user comes from IP range A great tip is to use the service at http www google com support analytics bin answer py hl en amp answer 55572 to generate a regexp lt c choose gt c when test isValidIP You can watch this very valuable information c when c otherwise No no access for you lt c otherwise gt lt c choose gt common authorizedRemoteAddress id isValidIP trutedIPs 463 212 171 1 9 1 9 0 9 1 0 9 0 9 2 0 4 0 9 5 0 4 gt Author Mattias Bogeblad Page 150 2009 01 19 InfoGlue Developer Manual formatter This lets you format dates including calendar objects numbers Integers Long Double Float into different formats based on a pattern and locale Parameters Name Required id false type false value true pattern false locale false Examples Default Different depending on data type The page locale Type Object String Object String Object String Object String Object String This example formats a news date to ISO format Description The result variable name If you set fi
138. manual on that topic Author Mattias Bogeblad Page 64 2009 01 19 InfoGlue Developer Manual Quality and Optimization tips When you are in the last stages of your project you should always assert the quality of the site and the components you have developed There is a valuable tool which aid you in this work Part of the information below exists in more a more elaborate version in the administrator manual ViewApplicationState The ViewApplicationState action can be reached through the management tool and each application has one view LANGUAGE MYSETTINGS HELP LOGOUT NEW WINDOW InfoGlue Content Management Platform content TOOL Ej structure Too G MANAGEMENT TOOL EZ PUBLISHING TOOL ES System management 2 Repositories 2 SystemUsers Diagnostic central Roles a gt ee I Groups Application states 2 Languages CMS InterceptionPoints i Cy Interceptors infoglueCMS 2 ServiceDefinitions 5 AvailableServiceBindinas Working Preview O SiteNodeTypeDefinitions 2 Categories ContentTypeDefinitions Live 2 Up2Date Workflows http localhost 8080 infoglueDeliverLive 2 Portlets Redirects Application settings Message cente http localhost 8080 infoglueDeliverwWorkina Each application then has a status view and the sections are described below opened in new window here The first section shown below describes some release
139. me contentId text imageType fontName fontStyle fontSize fgColor bgColor renderWidth align padTop padBottom padLeft padRight pad maxRows trimEdges Required Default true false false true false false false false false false false false false false false false false false false tileBackgroundImage false backgroundImageurl false BufferedImage TYPE_4BYTE_A BGR Dialog Font PLAIN 18 Black White 200 left 4 4 20 ID result variable contains A String object representing the image url Examples Type String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Description The variable the url to the generated image will be stored in If stated the tag looks at this binding for a configuration content which defines all the parameters below in attributes Nice if you wish to reuse a few rendering profile but you don t want to hard code it in the templates If stated the tag looks at this content as a configuration content which defines all the parameters below in attributes Nice if you wish to reuse a few rendering profile but you don t want to hard code it in the templates The text w
140. more as that way will not be developed any further Author Mattias Bogeblad Page 25 2009 01 19 InfoGlue Developer Manual Basics about connecting content and other resources to pages We have previously established how separated content and presentation is from each other We have explained that the structural part of the system by default have no idea of what is stored in the content part unless we somehow tell it We have also just shown how page types and available service bindings make up possible resource connectors This gets us to the area of bindings When a page is rendered in InfoGlue it is done so by rendering the templates that page uses When the system renders a template component the template component most often are meant to retrieve texts and images from the content part to show and structural information from the structure part so it can link to other pages in navigational elements To give the template something to use as a reference InfoGlue has something called bindings A binding is essentially a reference associating a site node page with a resource of some kind Most often it is one or many contents or one or many pages A site node page can have any number of such references and they are created by the developers of the site to fit the project need The old way had global page bindings which all templates on a page shared which are shown in the image above The component based technique allows you to have bindi
141. n either you can build your views as regular JSP pages and put it as part of the CMS application This is the most straight forward way and you get login session and all InfoGlue API s for free including a lot of ready made taglibs Another solution is to build the views as pages in the delivery engine This approach has its advantages if you have a big need to use texts and images entered in the tools That is you get your views content managed On the other hand that way is not so tested by other projects The Property Set This is by far one of the most important aspects of Workflow authoring As workflow by definition does not hold state in memory over any longer period of time and those workflows often have a long duration one has limited options on data storing if OSWorkflow is going to keep track of it OSWorkflow uses something called a Property Set which is basically a Map where you can persist objects with a string as the key identifying the object The objects must be serializable and large objects are not encouraged to store that way The limitations this puts on us makes things like error handling long transactions and similar issues more difficult and demands for a small framework helping us with all that InfoGlue has some infrastructure for this Author Mattias Bogeblad Page 46 2009 01 19 InfoGlue Developer Manual Actions As you will read in the OSWorkflow documentation there are prefunctions and results etc
142. nade ca azt da o eoegites 134 GROBNEK a fros o enn kes cas 135 A A refera POP A TCP eT TTT ome T Terre rere 135 Names ani oo pr pepe re pm ete igen Aaa di 135 REQUIRE nine ERE EGO KROITA Kakao eb ken ba kada kava kando ko 135 Detalla a sia 135 A aah LV a ate eat TA OE NIMA 135 DESCRIPTION icity e ohne A LN ETAN a Dl edd 135 Examples sss ss bi seren Pa I Pee badua sban earo Ride Paden eases a piko 135 Author Mattias Bogeblad Page 12 2009 01 19 InfoGlue Developer Manual SETCOOKIE GET COOKIES i setcivetics ves La Vena RE da KIEL NNN KETO RA ASEN Becca 136 Parameters eerie TO ETT TETTE TTT TTT TTT aside A TEO 136 Requifed s ss aa Default sis E A IEA A a a VDERS SN a A meus usus os ssuvsosss ea acta nta tals ska e site DESCRIPTION cti TTT TTT TR TTT TTT O eee ee Examples ii A kE AA INA KK Elo ER PDR PRAE FRAK EKO SE ERO REKTO 136 TRANSFORM TEX T sese morsi A li 137 DESCFIplION 4 xe svin iced a krea stakoj kukon klej a See kton SOREN IK TTOR ICA RA JT KAY EZ Ee PEZE rakza ol EX Mple Sisian dhan ane AAA ARA bd aa era ara aaa eaa 137 Ss A AE O A rci vato meersitazdib s 138 REQUIRE a DENTI ER DE aa Default ee a A WY PQ a E a E Sansa A TT DeScHlptlon sss his didas EXPO coated aI i moa a EEL Lass KJ KA aad aed ce od PRO RA KAI NO 138 TEXTRENDER zne NO IAN ADIA a eens 139 Required ss ss sn SEA A FN TA I KARA KIAK n KARA Ku Detalla To eee ee E Dai a A temer peonon riro rmo nmen po
143. nce when looking for inherited items Sets if the component should use inherit properties from it s parent site nodes An string containing the url to the thumbnail asset Examples The following example gets the url to the asset with asset key Image from the content bound by the component property Article lt content assetThumbnailUrl id imageThumbnailUrl propertyName Article assetKey Image width 100 height 100 lt img src c out value imageThumbnailUrl gt gt Author Mattias Bogeblad Page 84 2009 01 19 InfoGlue Developer Manual assets Description This tag will get you the assets available on a content in the current language version either bound though a property or referenced by a content id Parameters Name Required Default Type id true String contentId false Object String propertyName false Object String uselnheritance false true boolean useRepositoryInheri false true boolean tance useStructurelnherita false true boolean nce ID result variable contains An list of DigitalAssetVO objects Examples Description The result is stored in this variable The id of the content you wish to get the assets from The property name the component used to bind the content by in which you wish to get the assets from Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above
144. ng The languageCode of the language you wish to get a url to ID result variable contains A string representing the url Examples The following example gets an url to the current page but in the language with language code sv for Swedish and prints out the url in the href tag The success of this depends of course on that Swedish is enabled on that site page lt structure pageUrlAfterLanguageChange id languageUrl languageCode sv lt a href lt c out value languageUrl gt gt Read page in swedish lt a gt Author Mattias Bogeblad Page 105 2009 01 19 InfoGlue Developer Manual pageurl Description This tag will get you a url to a infoglue page Parameters Name Required Default Type Description id true String The result is stored in this variable propertyName false Object String The property name the component used to bind the content by in which you wish to get the attribute value from uselnheritance false true Boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useRepositoryInheri false true boolean Sets if the component should use the repository tance inheritance or not when looking up entities using inheritance useStructurelnherita false true boolean Sets if the component should use inherit properties nce from it s parent site nodes siteNodeld false Object String If stated the
145. ngs on component level so it gets more object oriented The benefits of this will be explained later on In a later chapter we will describe some common uses of bindings in their contexts so don t worry if you think it s hard to understand at the moment Author Mattias Bogeblad Page 26 2009 01 19 InfoGlue Developer Manual Components Composite pattern InfoGlue implements the composite pattern which means that a page can be built up of small fragments The composite pattern is implemented so that a component can have so called Slots in it It can have any number of slots and in each slot you can then put 0 n other components You can have any number of compositions which means there is no limits to what you may do Creating a component You create a new component just by creating a new content in the content tool with the content type HTMLTemplate The old templates from the old way of building are actually just as good components as new ones except that they don t operate on component bindings but only on page bindings if you don t modify their logic When you have created a component and added the HTML to the language version you want you should also create any slots needed categorize it and set up its properties if needed Slots A slot is as previously stated a place holder for other components You don t need to do much to create a slot Just add the tag lt ig slot id slotname ig slot to th
146. nnunnanon 163 Introduction This document was written to give developers a useful guide to different topics when it comes to develop sites and functionality in InfoGlue Hopefully the information herein will make developers more productive and comfortable with the various aspects of the system Many developers will find it useful to read the entire document to get an overview of how InfoGlue works and some will only use it as a reference guide Whatever the use hope the information is valuable and easy to understand The document will not include information about pure user aspects or maintenance aspects as there are other documents that will specialize in these matters The aim is to give developers detailed information about complex aspects of the system Feedback This document is always a work in progress so mail any suggestions to bogebladQyahoo com and I will try to improve it as the platform evolves Author Mattias Bogeblad Page 16 2009 01 19 InfoGlue Developer Manual General concepts What is InfoGlue InfoGlue is a Content Management System Content Management is very much another word for how to manage a company s or organization s information internally and externally As content management is such a broad term we often say InfoGlue is a Web Content Management System That is InfoGlue helps organizations manage their information mainly targeted for the Web both internally in intranets etc and externally in publ
147. ntTypeDefinitions false a href lt c out value exportUrl gt gt Download content lt a gt Author Mattias Bogeblad Page 101 2009 01 19 InfoGlue Developer Manual contentDetailPage Description A tag capable of finding the url to the most probable endpage for a certain content The logic is that the system finds all pages on which the content is bound directly to a component on that page If it s more than one the user using a special property can choose which is the master If not defined the first is picked Parameters Name Required Default Type Description id true String The result is stored in this variable siteNodeld false String State the detail siteNodeld hard contentId false String State which content to find the detail page for propertyName false String The property name of the binding to the content to find the detail page to uselnheritance false true boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useRepositoryInheritance false true Boolean Sets if the component should use repository inheritance when looking for inherited items useStructurelnheritance false true boolean Sets if the component should use inherit properties from it s parent site nodes escapeHTML false boolean hideUnauthorizedPages false boolean disableValidateBindingOnPage false boolean disableFallback false b
148. o several slots They are header left middle right and footer If I would like another layout I just use another layout component Manufacturers We ony use the best manutactu active This will hopetully me 9 rangi rom inthe Gitleterd areas we are to hight end users i You feel safe in buying tom ys The companies we buy from include e Canon Boise ae In the third layer I have put the presentation components They are components that actually display some text images or other information to the visitor The presentation components themselves most often never themselves contain text or other information Instead this is collected by the component logic template through it s bindings Contact Legal SAemap A binding is what connects a source of information with a component so that the component can use it for presentation or other purposes The header component has for example a property called Logotype which lets the page administrator bind the appropriate logotype content to that component Hopefully this section has helped you to understand the basics of how a web page is built in InfoGlue We will now take you through the different tools to show you where the work is done In all chapters we will assume that you have logged into the InfoGlue administrative tool If you don t know how to find it or have questions please consult you administrator Author Mattias Bogeblad
149. objects Examples The following example gets a list of contents related to the articleContent on attribute with name RelatedArticles structure relatedPages id relatedPages contentId articleContent contentId attributeName RelatedPages Author Mattias Bogeblad Page 107 2009 01 19 InfoGlue Developer Manual boundPage Description This tag will get you a webpage object describing a bound infoglue page Parameters Name Required Default Type Description id true String The result is stored in this variable propertyName false Object String The property name the component used to bind the content by in which you wish to get the attribute value from uselnheritance false true boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useRepositoryInheri false true boolean Sets if the component should use the repository tance inheritance or not when looking up entities using inheritance useStructurelnherita false true boolean Sets if the component should use inherit properties nce from it s parent site nodes ID result variable contains A org infoglue deliver applications databeans WebPage object Examples The following example gets the webpage object representing a page bound by the component property Detail page and prints out the url in the href tag and some other properties that object can offer
150. ocument does not identify any Invariant Sections then there are none The Cover Texts are certain short passages of text that are listed as Front Cover Texts or Back Cover Texts in the notice that says that the Document is released under this License A Front Cover Text may be at most 5 words and a Back Cover Text may be at most 25 words A Transparent copy of the Document means a machine readable copy represented in a format whose specification is available to the general public that is suitable for revising the document straightforwardly with generic text editors or for images composed of pixels generic paint programs or for drawings some widely available drawing editor and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters A copy made in an otherwise Transparent file format whose markup or absence of markup has been arranged to thwart or discourage subsequent modification by readers is not Transparent An image format is not Transparent if used for any substantial amount of text A copy that is not Transparent is called Opaque Examples of suitable formats for Transparent copies include plain ASCII without markup Texinfo input format LaTeX input format SGML or XML using a publicly available DTD and standard conforming simple HTML PostScript or PDF designed for human modification Examples of transparent image formats include PNG
151. on rss xml title My RSS escapeXml false gt href lt c out value rssPageUrl gt gt lt c set gt lt page htmlHeadItem value rssLinkTag gt Author Mattias Bogeblad Page 76 2009 01 19 InfoGlue Developer Manual editOnSightMenu Description A very flexible way of adding a customized edit on sight menu to a component Very userfriendly and the interfaces for these items are new with the new upcoming design Parameters Name Required Default Type Description id false String The id of the attribute to save the menu under if you don t want to write the markup right away to the page html false String Object The HTML you want should represent the clickable item which then reveals the menu showInPublishedMode false boolean Should the menu be shown in published mode as well default false contentld false String Object States the id of the content the menu should concern when it comes to inline editing etc showEditMetaData false boolean Should the menu show edit page meta data item showCreateSubpage false boolean Should the menu show the create subpage item showEditInline false boolean Should the menu show the edit inline item showEditContent false boolean Should the menu show the edit content item showCategorizeContent false boolean Should the menu show the categorize content item showPublishPage false boolean Should the menu show the publish page item showNotifyUserOfPage false boo
152. oncert gt property name Exhibition value exhibition gt property name Lecture value lecture property name Conference value conference gt properties Allow multiple selections only visible for select box Let s you state if the user should be able to select more than one option in the selectbox Custom markup only visible if you choose type customfield As said before you can set any markup you want including javascript The only worry you have is to set the correct name for save and fetch of the values you set To make it persistent your value has to be able to serialize as a string in an field of some type The field should be defined with the name propertyName which will be automatically translated by infoglue to correct id To get the previous saved value you just use propertyValue which will be replaced by the saved value by infoglue Look at a simple example below of custom markup div style border lpx solid red width 200px height 100px gt Example lt br gt lt a href javascript alert Test Test a lt input type text class propertytextfield name propertyName value propertyValue onkeydown setDirty lt div gt Component caching When it comes to component caching it s not all that hard The reason for the mechanism is of course to be able to boast performance on partly dynamic pages First you have to turn off the page caching on the page or the pages you wis
153. ontent assetUrlFromString id myAssetUrl data I just want to test this feature filePrefix MyTest fileSuffix txt gt lt img src lt c out value myAssetUrl gt gt Author Mattias Bogeblad Page 83 2009 01 19 InfoGlue Developer Manual assetThumbnailUrl Description This tag will get you a url to a thumbnail of a asset if it s an image taken from a content either bound though a property or referenced by a content id Parameters Name Required Default Type id true String digitalAssetId false Object String propertyName false Object String contentld false Object String assetKey true Object String width false Object String height false Object String uselnheritance false true boolean useRepositoryInheri false true boolean tance useStructurelInherita false true boolean nce ID result variable contains Description The result is stored in this variable The id of the digitalAsset you wish to get the url to The property name the component used to bind the content by in which you wish to get the asset thumbnail from The id of the content by in which you wish to get the asset thumbnail from The key of the asset you wish to get the url to The width of the thumbnail The height of the thumbnail Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above Sets if the component should use repository inherita
154. ontent type Parameters Name Required Default Type Description id true String The result is stored in this variable schemaValue true Object String The schema value of the content type you want to analyze ID result variable contains A list of org infoglue cms applications databeans AssetKeyDefinition objects Examples lt content contentTypeDefinition id ctd contentTypeDefinitionName Article gt management contentTypeDefinitionAssets id contentTypeDefinitionAssets schemaValue ctd schemaValue gt Author Mattias Bogeblad Page 160 2009 01 19 InfoGlue Developer Manual remoteUserPropertiesService Description Allows you to for example update the user properties Parameters Name Required Default Type id true String targetEndpointAddress false String Object operationName true String Object principal false String Object languageld false String Object contentTypeDefinitionId false String Object forcePublication false String Object ID result variable contains The status of the webservice call as a string Examples This example updates the users Alias attribute Description The result is stored in this variable The cms endpoint adress to call with the SOAP request The operation you wish to perform on the user properties State this if you wish to override which user to update In which language do you want to edit the property Defaults to the current site language
155. oolean ID result variable contains An url to the exported file Examples Gets an export of the template content itself exporting the component actually content contentDetailPage id detail propertyName ContentPageBindingX gt detailUrl a href c out value detail url gt gt lt c out value detail navigationTitle gt lt a gt Author Mattias Bogeblad Page 102 2009 01 19 InfoGlue Developer Manual Structure Tags Description These tags are made to make life easier for the template developer who wants to with pages or references to pages one way or another As with content tags most functionality are there Location Located in infoglue structure Available tags and short description Tag Description currentPageUrl This tag returns the current url pageUrl Returns a url to an internal infoglue page pageUrlAfterLanguageChange Returns a url to the current infoglue page but with another language parameter relatedPages Returns a collection of related pages created in a content attribute through the content relation editor boundPage The tag returns a bound page as a WebPage object see API boundPages Returns a collection of bound pages WebPage objects childPages Returns a collection of pages WebPage objects which are located directly below the given node isCurrentSiteNode isSiteNodeParentToCurrentSiteNode This tag returns if the given
156. ound by the component property CSS page makes an internal call with the same headers as the user and stores the result as a digital asset which is then returned as a url to the template and we then reference it as usual structure pageAsDigitalAssetUrl id cssUrl propertyName Css page fileSuffix css lt DOCTYPE HTML PUBLIC W3C DTD HTML 4 0 Transitional EN gt HTML HEAD lt TITLE gt Cascading Style Sheets level 1 lt TITLE gt LINK rel stylesheet type text css media screen href lt c out value cssUrl gt gt lt HEAD gt lt BODY gt lt BODY gt lt HTML gt Author Mattias Bogeblad Page 123 2009 01 19 InfoGlue Developer Manual siteNodesFromWebPages Description Allows easy conversion between a list of WebPage beans and SiteNodeVO s which are more suitable for advanced sorting etc Parameters Name Required Default Type Description id true String The result is stored in this variable webPages true Object String A collection of WebPage objects ID result variable contains A Collection of SiteNodeVO objects usable in other tags etc Examples The following example gets the bound pages lt structure childPages id childPages propertyName BasePage gt structure siteNodesFromWebPages id childSiteNodes webPages childPages gt Author Mattias Bogeblad Page 124 2009 01 19 InfoGlue Developer Manual componentLab
157. palAssetUrl id myImage assetKey Personallmage gt My image lt img src c out value myImage Author Mattias Bogeblad Page 156 2009 01 19 InfoGlue Developer Manual language Description This taglib gets a language object Parameters Name Required Default Type Description id true String The result is stored in this variable languageld false Object String The id of the language we wish to fetch languageCode false Object String The code of the language we wish to fetch ID result variable contains A org infoglue cms entities management LanguageVO object Examples This will result in that the variable language will contain the language object lt management language id currentLanguage languageld pc languageld gt Current language as a localized representation is lt c out value currentLanguage localizedDisplayLanguage gt Author Mattias Bogeblad Page 157 2009 01 19 InfoGlue Developer Manual contentTypeDefinitionAttributes Description This tag lets you get a list of all attribute definitions on a content type Parameters Name Required Default Type Description id true String The result is stored in this variable schemaValue true Object String The schema value of the content type you want to analyze ID result variable contains A list of org infoglue cms entities management ContentTypeAttribute objects Examples lt content contentT
158. pplications databeans WebPage objects Examples The following example gets the list of webpage objects representing pages bound by the component property Pages and prints out the url in the href tag and some other properties that object can offer structure boundPages id pages propertyName Pages lt c forEach var page items pages varStatus count gt The page id is lt c out value page siteNodeld gt lt br gt lt a href lt c out value page url gt gt lt c out value page navigationTitle gt lt a gt lt c forEach gt Author Mattias Bogeblad Page 109 2009 01 19 InfoGlue Developer Manual childPages Description This tag will get you a list of child pages beneath a page either bound though a property or referenced by a sitenode id Parameters Name Required Default Type Description id true String The result is stored in this variable siteNodeld false Object String The id of the siteNode you wish to get the child pages below propertyName false Object String The property name the component used to bind the content by in which you wish to get the child pages below uselnheritance false true boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useRepositoryInheri false true boolean Sets if the component should use the repository tance inheritance or not when looking
159. pply to the other works in the aggregate which are not themselves derivative works of the Document If the Cover Text requirement of section 3 is applicable to these copies of the Document then if the Document is less than one half of the entire aggregate the Document s Cover Texts may be placed on covers that bracket the Document within the aggregate or the electronic equivalent of covers if the Document is in electronic form Otherwise they must appear on printed covers that bracket the whole aggregate 8 TRANSLATION Translation is considered a kind of modification so you may distribute translations of the Document under the terms of section 4 Replacing Invariant Sections with translations requires special permission from their copyright holders but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections You may include a translation of this License and all the license notices in the Document and any Warranty Disclaimers provided that you also include the original English version of this License and the original versions of those notices and disclaimers In case of a disagreement between the translation and the original version of this License or a notice or disclaimer the original version will prevail If a section in the Document is Entitled Acknowledgements Dedications or History the requirement section 4 to Preserve its Title section 1 will typ
160. ption id true String The result is stored in this variable userName false Object String The userName of the principal on which we wish to extract a property principal false Object String The principal on which we wish to extract a property languageld false Object String The language to fetch from ID result variable contains A List object of DigitalAssetVO Examples This will result in a list printout of the asset id s management principalAssets id assets lt c forEach var assetVO items assets gt The user has an image lt c out value assetVO id gt which can be used with the content digitalAsset tag to get an url lt br gt lt c forEach gt Author Mattias Bogeblad Page 155 2009 01 19 InfoGlue Developer Manual principalAssetUrl Description This taglib returns a principal asset url Parameters Name Required Default Type id true String userName false Object String principal false Object String languageld false Object String assetKey false Object String ID result variable contains A String object Examples Description The result is stored in this variable The userName of the principal on which we wish to extract a property The principal on which we wish to extract a property The language to look in The asset key to look for This will result in that the personal image of the current user is shown if available management princi
161. r sr 76 TY or o UN 76 Descriptio Mi ceni es kanao pikono Ae ON cau y diu geko ke koj lO kan DS kana feria gia keo ka a ladana skao 76 EDITONSIGHT MENU 3 350035 cad eee ia pin ETIS akr ie rabla ida a buo 77 DESENpEUON ess AE E VV O Va kn SAPO She race DAS 77 PATAMETEIS sisi insti E E EN KINA a GRIA nada ee ag 77 N ro en E rr ta Di co wees TTT TTT TTT edna TTTTET II dilata 77 Required iii a ELE TTTTTTTT TTT E e de Ei edi 77 Default AS T O Seven maria E EN ENAN AD ae 77 TP seem A ea 77 DESCEIPUO Mrs gat ren A A oat Peas este vets bat ew eas Ronde ati ak asa r us oXav ey a 77 CONTENT VAGS 22 a O ca TTT TT 78 DESCIEIDEION sss sunaa TEK ORE A PIO AE T 78 ENCANTA EKRE RO VN tna READ BRILO OTO SP PTA Keon Galanta ja 78 Available tags and short description s ssssssscssesssassassansansans 78 CONTENTATTRIBUTE a a EKI a 80 DESCHIBUON ee A De ke Viele Ea 80 Parameter Sorron enee E aE RIN DETONDI baa ad oem PIS UBE ORAS EEL AI 80 Naiara eas 80 Ref sepe prao kreta sid stein dees kete ah ide oeaee ara 80 BI pre rm mma ru porn mi er repr mr smn nn mO Oer Pro 80 WY PO 355 smato lassen a Mag ne ni cece kio sta 80 Desckiptloni ss serea Era anoj iaa 80 ASSETURL Avanti a A sta oh ppr o at 81 DOSCHIPTION pura E EO MA E VA ERIK VENE NP NDE 81 POLACO Si SKRABLO E
162. r will not decorate the attribute for rightclick actions A must if the attribute is to be inserted in a html attribute useAttributeLangu false false Object String If set to true InfoGlue will fallback to the master language ageFallback version if no attribute was found in the current language uselnheritance fase true boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useStructureInheritance overrides the structural inheritance but not the local useRepositoryInher false true boolean Sets if the component should use repository inheritance itance when looking for inherited items useStructurelnheri false true boolean Sets if the component should use inherit properties from it s tance parent site nodes parse false false Object String If set to true the article will be parsed and any code in the text will also be executed fullBaseUrl false false Object String If set to true any references to either assets or pages will be given as full URL s and not as relative ones mapKeyName false Object String If set the tag assumes that the attribute pointed out by the attribute name is a name value parameter map and that the attribute we want is found in there ID result variable contains The string found in the sought attribute Examples The following example gets the content attribute Title from the content bound by the component property
163. reator userName articleContent creatorName gt The article was created by lt c out value articleCreator firstName gt lt c out value articleCreator lastName gt Author Mattias Bogeblad Page 88 2009 01 19 InfoGlue Developer Manual This tag fetches the latest content version object so you can get the properties of that contentVersion Description object Parameters Name Required Default Type id true String contentVersionId false Object String content false Object String languageld false Object String useLanguageFallback false Object String ID result variable contains Description The result is stored in this variable The id of the contentVersion we wish to get Not common to use The content on which to get the last version in the current mode If set the tag returns looks for a last version matching that laguage Defaults to the users current site language Sets if the tag should fallback to the master language if it does not find any version in the given language A org infoglue cms entities content ContentVersionVO object Examples The following example gets the latest content version object based on the content object previously fetched It then gets the latest editor and presents his her name lt content contentVersion id articleContentVersion content articleContent gt lt management principal id articleModifyer contentVersion articleContentVe
164. result that the cookie foo will get the value bar which expires on the date you give it lt taglib uri infoglue common prefix common 995 lt taglib uri http java sun com jstl core prefix c gt lt common setCookie name foo value bar domain infoglue com path maxAge expireDateInMilliseconds gt This will result in a new context value being set with the value of the cookie foo lt taglib uri infoglue common prefix common gt lt taglib uri http java sun com jstl core prefix c gt lt common getCookie id fooCookieValue name foo gt Author Mattias Bogeblad Page 136 2009 01 19 transformText InfoGlue Developer Manual These taglibs lets you set get a cookie Parameters Name Id text htmlEncode replaceLineBreaks lineBreakReplacer replaceString replaceWithString prefix addPrefixIfTextMatches addPrefixIfTextNotMatches suffix addSuffixIfTextMatches addSuffixIfTextNotMatches Req true true false false false false false false false false false false false ID result variable contains A String object Examples Type String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Object String Description The id of the variable to store the result in
165. ring xml xmlString styleString xslString gt Result was lt br gt lt c out value resultString escapeXml false gt lt br gt Author Mattias Bogeblad Page 143 2009 01 19 InfoGlue Developer Manual XSLTransformParameter This tag lets you set parameters to the transformation process if you use the XSLTransform tag Just add the parameters as subtags to the XSLTransform tag Parameters Name Required Default Type Description name true Object String The parameter name value true Object String The parameter value ID result variable contains A string or other if specified with the result of the transformation Examples This example transforms a xml with the xsl using two parameters in the process and prints the result on the webpage common XSLTransform id resultString xml xmlString styleString xslString gt common XSLTransformParameter name param1 value foo common XSLTransformParameter name param2 value bar lt common XSLTransform gt Result was lt br gt lt c out value resultString escapeXml false gt lt br gt Author Mattias Bogeblad Page 144 2009 01 19 InfoGlue Developer Manual mail This is a simple mail tag For now it only support simple mails and it gives direct feedback on any server connection problems which the Jakarta mailer tag does not Parameters Name Required Default id true from t
166. rs A DO Nk E COLT evoe a SK l Sa KIN VR dO ebe loa dada kvad ARA ir Ee 126 Available tags and short description s ss ssssscsscancansancantas 126 SUB STi o o A A da iia 127 RUI A NK acer EA aa Defa lta NA E EO hte ey iwi EE NU EJ Author Mattias Bogeblad Page 11 2009 01 19 InfoGlue Developer Manual DESCrIPUON suisse nia eee E a eee ran aaa LL EII ay l E 127 Description sex rs esma nI SOE FSTAS KL A A visa lt LOT ROZA a A AA Sites AAA 128 VI A a 128 Requifed s ss EA a vo I a EET PL KO o Ika 128 Default us EN FA A IRA AL a a as veko 128 ERA EE o OO 128 DESCHIPUION EA r o o o hkohoUecc 128 O a eu repr e rep A pm mn Om 129 DESCIIDUON sips seni sepe EEE RETE P IRE DPE TANTO KA TEAT AL EEE 129 Noes TT TTET TI ITI KT TTT TTT TTT TTT TIT TITT TTT TTT 129 REqUIIEV i ra UN OA NA EA ENG TO ENK RR 129 Defaults ive ras e A a a A A LA PDA VL ONDA MOJ 129 KVE A A APA A A ARA RA 129 DESCFIplION 4 i rus ad A A A RARA e 129 WRIEENGODE x rri sa 5 sder vine too resono ER A A AAA RR A A 130 DESCFIpUION sse sss reine Mina ied ods Rasen A ka sen kindas ce dbs odthasbahat vanchestisde ba Aani 130 Name sss od Alias 130 REQUIFEGi eos eis id 130 Default cra A a aaa 130 DP a since dip e oo a ao aie pa 130 Descriptloni isa ses kani ind isle senon ka tenner tl 130 ENCRYPT DEGRYPT spuris seek kom kaa sr
167. rsion gt The article was last changed by lt c out value articleModifyer firstName gt lt c out value articleModifyer lastName gt Author Mattias Bogeblad Page 89 2009 01 19 InfoGlue Developer Manual contentVersions Description This tag fetches the content versions on a content Not common to use Parameters Name Required Default Type Description id true String The result is stored in this variable content false Object String The content on which to get the versions contentId false Object String The id of the content on which to get the versions we wish to get languageld false Object String If set the tag returns looks for a last versions matching that laguage includeAllLanguages false false Object String Sets if the tag should get all language version or only the versions in the current language ID result variable contains A list of org infoglue cms entities content ContentVersionVO object Examples The following example gets the latest content versions based on the content object previously fetched It then gets the latest editor and presents his her name lt content contentVersions id articleContentVersions content articleContent gt Author Mattias Bogeblad Page 90 2009 01 19 InfoGlue Developer Manual assignedCategories Description This tag fetches the assigned categories for a certain content version Parameters Name Required Default Type
168. rue to true recipients true subject true type false charset false message true ID result variable contains Type Object String Object String Object String Object String Object String Object String Object String Object String Description The result variable name The from address The to address The recipients you want to send the mail to as bcc The subject of the mail If you want to send it as html or plain The charset you want to send the mail in The message to send A boolean containing if the mail was sent successfully or not If the mail failed to send the extra attribute commonMailTagException is set containing the exception Examples This example sends a mail to a dummy person Result was lt br gt lt c out value success gt lt br gt lt common mail id success from no replyOinfoglue org to no replyQinfoglue org recipients dummy mycomp com dummy2 mycomp com gt Author Mattias Bogeblad Page 145 2009 01 19 InfoGlue Developer Manual sendRedirect This is a simple redirect tag which replaces the jsp sendRedirect tag Parameters Name Required Default Type Description url true Object String The url to redirect the user to Examples This example redirects the user to www infoglue org common sendRedirect url http www infoglue org gt Author Mattias Bogeblad Page 146 2009 01 19 InfoGlue Develop
169. s propertyName Article uselnheritance true c forEach var article items articleContents varStatus count gt content contentAttribute id Title contentid article contentId attributeName Title lt c out value Title gt lt br gt lt c forEach gt Author Mattias Bogeblad Page 92 2009 01 19 InfoGlue Developer Manual childContents Description This tag will get you a list of child contents beneath a content either bound though a property or referenced by a content id Parameters Name Required Default Type Description id true String The result is stored in this variable contentId false Object String The id of the content you wish to get the attribute value from propertyName false Object String The property name the component used to bind the content by in which you wish to get the attribute value from uselnheritance false true boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useRepositoryInheri false true Boolean Sets if the component should use repository tance inheritance when looking for inherited items useStructurelnherita false true boolean Sets if the component should use inherit properties nce from it s parent site nodes searchRecursive false false Object String If set to yes up to three levels of recursion will take place so InfoGlue will go though folders
170. s License for your documents To use this License in a document you have written include a copy of the License in the document and put the following copyright and license notices just after the title page Copyright c YEAR YOUR NAME Permission is granted to copy distribute and or modify this document under the terms of the GNU Free Documentation License Version 1 2 or any later version published by the Free Software Foundation with no Invariant Sections no Front Cover Texts and no Back Cover Texts A copy of the license is included in the section entitled GNU Free Documentation License If you have Invariant Sections Front Cover Texts and Back Cover Texts replace the with Texts line with this with the Invariant Sections being LIST THEIR TITLES with the Front Cover Texts being LIST and with the Back Cover Texts being LIST If you have Invariant Sections without Cover Texts or some other combination of the three merge those two alternatives to suit the situation If your document contains nontrivial examples of program code we recommend releasing these examples in parallel under your choice of free software license such as the GNU General Public License to permit their use in free software Author Mattias Bogeblad Page 169 2009 01 19
171. s false ID result variable contains Default Type true false true false String String String String String String String String The html string needed to perform the action Examples Description The result is stored in this variable The property name we want to assign by the link Sets if the link should invoke the create wizard first and then assigns the binding The html you want the user to click on to get the editing form This property lets you decide how to return to the page after the wizard decorated or not This property lets you show the edit link even on the published site This property lets you state that you do do not wish the component properties div to be shown after the wizard finishes This property lets you send extra parameters to the wizard not normally used The following example creates two links One that opens the binding dialog for the property Article The second opens the content creation wizard so the user can create a new content which is then assigned to the property Article content assignPropertyBinding id assignPropertyBindingHTML propertyName Article html Choose article gt lt content assignPropertyBinding id assignPropertyBindingNewHTML propertyName Article createNew true html Create new article gt lt c out value assignPropertyBindingHTML escapeXml false gt lt c out value assignPropertyBindingNewHTML
172. seid ENON KE PORN KASTORO SSR TA KORP a KI KOVIS ENON EKL SENTA KEA 131 DDESEFIpUON 155 sn E E KIN SUA EE DLA VA TN Re ee as 131 Nome sisi E E Ka a TO LO TENTO DO AK MATEO 131 A egeeds cece lth ade aiaei aa wives TPP OTTO 131 Detalla sim urse IM IN AAA MIND aii 131 A Sap Tio suo gasta ste de Sire Deen Saro hee oe ngas Deoiu uo kamo pe rolas keta enmar ao us rg us tentaj 131 DeSCHDUON repa sba use et eid bane ce Pea l amio Nuna i 131 WREBUIEDER Sepp rere peneme reme edad ede po rne rom a 132 DESCIIpEO sss sens eros E EEEE O EAE TORON ears ly bap KERA beens PRT 132 Nai a ME e TOP TTT TTT TTEETE 132 REQUIRE KEEL sie URA E NE DIKON DE Wale ORO ERE 132 Defaults cea sss OO EKLO A VJ 132 AY POs aie cess REE a a vn ko l SLINGO o 132 DESCRIPTION sss sss Fn E E aa lao ael alte 132 INCLUDE rr TA RARA a A LA A A SANS 133 13 NAO 133 A sued ce A KAS TK DOK KISI KS tenes KASIO aa KA MONDI TIEI RENE I SEE aada 133 REGUIFEJ pe ss vi stos sanon Feran akto resins a A EL DARE ARTE LEITE IREA cesses 133 Default E to A kronon na nian Iu T den eapo ken unk soak 133 TY Le rr uo TTT TTT E PTT 133 Des CAP a da ERETO 133 IMPOR A A a 134 DESE pUON sss nro KD EKE A LA Dar nage 134 Vu T He ue e E mumio pm pn nmns 134 REQUIPEV san E ITU EO MO LOK NL I la AI ieee eis ko 134 Detalhes A Ai A EEL 134 TP in 134 DESCRIP COM ie aea ano eur mo OOK dite tre Glebe ERO soak Ceca ansa Suso egos ss perezan daa
173. siteNodeld will be used when creating the url instead of the page bound on the propertyName contentId false Object String If given the url will include the argument languageld false Object String If given the url will include the language as an argument thereby overriding the current user language ID result variable contains A string representing the url Examples The following example gets an url to the page bound by the component property Detail page and prints out the url in the href tag structure pageUrl id detailUrl propertyName Detail page a href c out value detailUrl gt gt Read more lt a gt Author Mattias Bogeblad Page 106 2009 01 19 InfoGlue Developer Manual relatedPages Description If you have used the structure relation editor on a content attribute and added related pages to for example an article this tag lets you get those related pages as an collection Parameters Name Required Default Type Description id true String The result is stored in this variable contentld false Object String The id of the content you wish to get the related contents from propertyName false Object String The name of the property that binds to the content you wish to get the related contents from attributeName true Object String The name of the attribute containing the related contents ID result variable contains A list of org infoglue deliver applications databeans WebPage
174. ssion to use the Modified Version under the terms of this License in the form shown in the Addendum below G Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document s license notice H Include an unaltered copy of this License I Preserve the section Entitled History Preserve its Title and add to it an item stating at least the title year new authors and publisher of the Modified Version as given on the Title Page If there is no section Entitled History in the Document create one stating the title year authors and publisher of the Document as given on its Title Page then add an item describing the Modified Version as stated in the previous sentence J Preserve the network location if any given in the Document for public access to a Transparent copy of the Document and likewise the network locations given in the Document for previous versions it was based on These may be placed in the History section You may omit a network location for a work that was published at least four years before the Document itself or if the original publisher of the version it refers to gives permission K For any section Entitled Acknowledgements or Dedications Preserve the Title of the section and preserve in the section all the substance and tone of each of the contributor acknowledgements and or dedications given therein L Preserve all the Invariant Sections of the Documen
175. structure Auto create content method only applicable if Auto create content true State where automatical content should be placed We recommend Mimic site structure Author Mattias Bogeblad Page 29 2009 01 19 InfoGlue Developer Manual Auto create content base path only applicable if Auto create content true Let s you state a base path before the site structure mimic kicks in Example Autoarticles Data provider class and Data provider parameters only visible for select box and checkbox These fields let you provide a custom class and parameters if needed for fetching the option for the dropdown or checkbox This is great for example if you have made a nice integration component and want the user to be able to configure the component with options fetched from the external system One standard class has been included in InfoGlue so far and it works with simple xml over http so it s very easy to expose your configuration options that way e org infoglue deliver integration dataproviders RemoteXMLPropertyOptionsDataProvider and it takes these parameters in the Data provider parameters field e serviceUrl http myhost com myexternalApp MySettingsARESTServlet charset iso8859 1 The return of your service should be a simple xml structure like this properties property name Open Lecture value openLecture property name Performance value performance property name Concert value c
176. t unaltered in their text and in their titles Section numbers Author Mattias Bogeblad Page 166 2009 01 19 InfoGlue Developer Manual or the equivalent are not considered part of the section titles M Delete any section Entitled Endorsements Such a section may not be included in the Modified Version N Do not retitle any existing section to be Entitled Endorsements or to conflict in title with any Invariant Section O Preserve any Warranty Disclaimers If the Modified Version includes new front matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document you may at your option designate some or all of these sections as invariant To do this add their titles to the list of Invariant Sections in the Modified Version s license notice These titles must be distinct from any other section titles You may add a section Entitled Endorsements provided it contains nothing but endorsements of your Modified Version by various parties for example statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard You may add a passage of up to five words as a Front Cover Text and a passage of up to 25 words as a Back Cover Text to the end of the list of Cover Texts in the Modified Version Only one passage of Front Cover Text and one of Back Cover Text may be added by or through arrangements made by any one en
177. t Uppsala universitel aasa midaln fe tao ComponentLabels ComponentLabels Component labels name value map abel Advanced search structure componentLabel id searchButtonLabel mapKeyName SearchButtonLabel gt structure componentLabel id formHeaderLabel mapKeyName FormHeaderLabel gt form name searchForm action gt lt h2 gt lt c out value formHeaderLabel gt lt h2 gt form fields lt input type submit value c out value searchButtonLabel gt gt lt form gt It is also possible to avoid having several language versions of a component just because of the labels You can in the main language version state ComponentLabels like this FormHeaderLabel_en Search form FormHeaderLabel_sv S kformul r SearchButtonLabel_en Search SearchButtonLabel_sv S6k Author Mattias Bogeblad Page 125 2009 01 19 InfoGlue Developer Manual common Tags Description These tags are made to make life easier for the template developer in many common tasks not really bound to InfoGlue Location Located in infoglue common Available tags and short description Tag Description Sublist This tag returns a sublist of a collection Size Returns the size of a collection Slots Returns a slotted collection useful for google lists with x items on each page URLEncode UrlEncodes a string sent in Encrypt Encrypts a string accor
178. t when we need it As you see the key to get the wanted contentId from the property set is pretty complex and that is because this function is working together with the function contentPopulator which has previously stored the content and it does not want any other function to overwrite the information by mistake by using the same key In your functions you will do well in using a similar logic Author Mattias Bogeblad Page 49 2009 01 19 InfoGlue Developer Manual Example workflow definition Author Mattias Bogeblad Page 50 2009 01 19 InfoGlue Developer Manual Author Mattias Bogeblad Page 51 2009 01 19 InfoGlue Developer Manual Author Mattias Bogeblad Page 52 2009 01 19 InfoGlue Developer Manual Author Mattias Bogeblad Page 53 2009 01 19 InfoGlue Developer Manual Example View Author Mattias Bogeblad Page 54 2009 01 19 InfoGlue Developer Manual As you can see there are quite a lot of taglibs which can be used in the view They offer if used correctly validation html generation form handling and property set access among others The same thing is probably true in the deliver applications as well but that is less tested Author Mattias Bogeblad Page 55 2009 01 19 InfoGlue Developer Manual Common patterns This chapter is meant to show off some of the common things developers want to do and how they can be implemented in InfoGlue Remember that this is just examples an
179. tasks gt task name Create subpage openInPopup false view componentEditorUrl CreateSiteNodeWizardFinish action repositoryId repositoryIdsamp par entSiteNodeId siteNodeIdsamp languageId languageIdsamp component Id ScomponentId amp property Name dummy amp refreshAddress originalFullURL lt tasks gt The example above is taken from a menu component and the task let s the user rightclick on the menu and select an menu item called Create subpage which with this configuration will start a wizard which creates a new subpage to the page the user is currently watching and then returns to the page again Very nice if you want to empower the users without letting them into the main tools Author Mattias Bogeblad Page 31 2009 01 19 InfoGlue Developer Manual Intercomponent communication data sharing There is a need on most advanced sites to be able to share data between different components As a simple example one might for example want a related info component pick up information that the main area component has knowledge of or affect the page title with some subcomponent data There are some possibilities already in InfoGlue but they are either that you can read other components properties or if subcomponents wants to read a parent components shared data Before 2 9 anything else was impossible Since 2 9 there is a new solution The solution is based on that every component can have a preprocess phase if
180. the full path categoryKey Area c forEach content assignedCategories id categories propertyName Article lt c forEach var category items categories varStatus count lt c out value category id gt lt management categoryPath id path categoryId category id gt path lt c out value path gt lt br gt Author Mattias Bogeblad Page 91 2009 01 19 InfoGlue Developer Manual boundContents Description This tag fetches a list of content objects bound to a certain property Parameters Name Required Default Type Description id true String The result is stored in this variable propertyName false Object String If set the tag returns the content object bound on this property name uselnheritance false true boolean Sets if the tag should look at inherited properties if the given propertyName was not assigned on the current component useRepositoryInheritan false true boolean Sets if the component should use repository ce inheritance when looking for inherited items useStructurelnheritanc false true boolean Sets if the component should use inherit e properties from it s parent site nodes ID result variable contains A org infoglue cms entities content ContentVO object Examples The following example gets the content object bound to the property Article It then gets the original creator and presents his her name content boundContents id articleContent
181. tity If the Document already includes a cover text for the same cover previously added by you or by arrangement made by the same entity you are acting on behalf of you may not add another but you may replace the old one on explicit permission from the previous publisher that added the old one The author s and publisher s of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version 5 COMBINING DOCUMENTS You may combine the Document with other documents released under this License under the terms defined in section 4 above for modified versions provided that you include in the combination all of the Invariant Sections of all of the original documents unmodified and list them all as Invariant Sections of your combined work in its license notice and that you preserve all their Warranty Disclaimers The combined work need only contain one copy of this License and multiple identical Invariant Sections may be replaced with a single copy If there are multiple Invariant Sections with the same name but different contents make the title of each such section unique by adding at the end of it in parentheses the name of the original author or publisher of that section if known or else a unique number Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work In the combination
182. to send in contentld siteNodeld or similar ID result variable contains A list of AccessRightVO Examples This example get s all access rights and print out the roles groups users for it In this case the access rights are fetched for the content with id 543 management accessRights id accessRightsVOList interceptionPointName Content Read parameters 543 gt lt hi gt Access rights lt hi gt lt c forEach var accessRightsVO items accessRightsVOList gt c out value accessRightsVO gt lt c forEach var role items accessRightsVO roles gt role lt c out value role roleName gt lt br gt lt c forEach gt lt c forEach var group items accessRightsVO groups gt group lt c out value group groupName gt lt br gt lt c forEach gt lt c forEach var user items accessRightsVO users gt user c out value user userName gt lt br gt c forEach lt c forEach gt Author Mattias Bogeblad Page 162 2009 01 19 InfoGlue Developer Manual Appendix A GNU Free Documentation License GNU Free Documentation License Version 1 2 November 2002 Copyright C 2000 2001 2002 Free Software Foundation Inc 51 Franklin Street Fifth Floor Boston MA 02110 1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed 0 PREAMBLE The purpose of this License is to make a manual text
183. tor plug in Plugins When creating templates components there is a lot of HTML CSS Javascript JSP coding that has to be done InfoGlue therefore comes with a eclipse plugin which allows you to edit your code directly in eclipse and get automatic sync with the server of choice Not to use this tool is plain stupid as it saves all developers a lot of time The plugin is free to download and use from www infoglue org Author Mattias Bogeblad Page 23 2009 01 19 InfoGlue Developer Manual Building pages in InfoGlue Basics about Page types When you create a new site node page in InfoGlue you will have to state what site node type you want it to be based on We already explained the implications in the part about the request response cycle so you hopefully understand why it is important You define it in the following field nfoGlue Content management platform m Loc our a NEW WINDOW D HELP REPOSITORY Choose repository ES Se EE SiteNode details SiteNode name 2 100 characters Surrent state Patternsite working Publish date Protect page Limits which users can access it 2004 05 05 10 24 C No ves Inherit Expire date Disable Page Cache Use for dynamic applications C No Yes Inherit Disable Editonsight C No ves Inherit treeStyle applet htm The types are defined in the management tool under SiteNodeTypeDefinitions nfoGlue Content management platform Svenska En
184. uitable for use if you have very dynamic css es or scripts which includes logic depending on user info etc mostly usable if you have a static css or controls it on the pageCache parameters Parameters Name Required Default Type Description id true String The result is stored in this variable propertyName false Object String The property name the component used to bind the content by in which you wish to get the attribute value from uselnheritance false true boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useRepositoryInheri false true boolean Sets if the component should use the repository tance inheritance or not when looking up entities using inheritance useStructurelnherita false true boolean Sets if the component should use inherit properties nce from it s parent site nodes siteNodeld false Object String If stated the siteNodeld will be used when creating the url instead of the page bound on the propertyName contentld false Object String If given the url will include the argument languageld false Object String If given the url will include the language as an argument thereby overriding the current user language fileSuffix False Object String If given the created asset will get this file suffix ID result variable contains A string representing the url Examples The following example gets an url to the page b
185. vailable tags and short description ssssssscsssessassansarsansass 70 PAGECONTEXE lt ekkon TIR chara EINA aa idean dG ghi elbavesbes adi 71 DDESCHEON ss sata see vrdonsnai kid ii ten no nA vos Kp iaso Dra e ear haves Sanda tS A feranbins a kio ii 43 o Iamaj 71 Para Me Sais aora rak TR A SAV USA TAS KOR AER VIDA Te kE TIS Piko Ada aa Terre 71 NaMesidda o TO E OOO TEO KO DO E EN Requiredissdsss sude A a dE wate miajn aa nals KR KEA KRIKO AA ko KEE Ka ma EJO kena Slo pIo pe erre a E UY DOr ia e oe A I EI E I Descriptlon ss sss o a ates E A E Wed ber reko DELIVERYCONTEXT xi u raa aa EO DAN TAS KE AA A One dn sak RR Le 72 Descriptio PESTE E TENTU PTT TITT TPTTISTTETTTTTBETITTI IAE 72 PAFAMELEFS suis i Kauno Sots E A ndl kelo bl via SEL SE SRN DO Jek akeo eI ked one oa kane aton 72 Name india da A O Sabato Der a du e co aba S ka et Vpens su OT DeSckflptlon sss sugar rab kojn Si soloj Male ERON DRON DIK No oo KON KI KON DE KEN EREN DE me aaa KVAKO Sao CREARCACHE aaa ai 73 DESGH PEON A gs naii a seaside ees 73 PAPAIN CECI Sane e Eda oad ba va ad KISU ED a Od ds adidas 73 NaC rn a dd ADA TTTTTTTTTTTTI TT TTT I TETOS TITOJ REqUifed ssgsviz torta sneak O Defalllbsccccerzdad estates cane dove edetes dba e o TY P esvicesacsedatwabesog krea A koks liu dark too ka DEI O OAA KORON RA A TEST ao tes DESCRIP CONN oi exes A ene rke A ii HIFFPFIEADEB vin rind E ku 0524 o s AG A E lO kes FIS
186. we could for example have one big component controlling the entire page if we want to but that would mean we could not manage the layout in detail for different pages Instead we have used smaller components responsible for only a part of the page For example there is a header component which is responsible for showing the logotype flags and the navigation The concept of an InfoGlue component is very similar to the includes concept found in many web environments like ASP JSP The difference is that the components can have dynamic properties and can be managed graphically in InfoGlue by non coders Author Mattias Bogeblad Page 20 2009 01 19 InfoGlue Developer Manual The structure of a page is better shown in this drawing Note especially that it is by assigning contents and pages to appropriate components that you actually give the components enough data to present information to the user The component themselves most often only contain layout logic and knows how to fetch the information you assign to it A simple page component structure A page has allways at least one component This component is called the base component It can be any component they are all the same In this case the base component I ve choosen is just an open space with one slot where other components can be inserted to make up a layout The second component I ve used in this example is also just for layout It divides the page int
187. which the property is located if not on the current page propertyName false Object String The property name the component used to bind the content by in which you wish to get the child pages below uselnheritance false true boolean Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above useRepositoryInheri false true boolean Sets if the component should use the repository tance inheritance or not when looking up entities using inheritance useStructurelnherita false true boolean Sets if the component should use inherit properties nce from it s parent site nodes ID result variable contains A string containing the value Examples The following example gets the component property Headline and prints it out structure componentPropertyValue id headline propertyName Headline gt hi c out value headline gt lt h1 gt Author Mattias Bogeblad Page 113 2009 01 19 InfoGlue Developer Manual componentPropertyValues Description This tag will get you String array consisting of component property values if it is a textfield textarea or other non binding property Useful if you for example use the new checkbox property with several options Parameters Name Required Default Type Description id true String The result is stored in this variable siteNodeld false Object String The id of the siteNode on which th
188. wish to get the url to Sets if the component should look for other articles on other components with the same propertyname either on the same page or on pages above Sets if the component should use repository inheritance when looking for inherited items Sets if the component should use inherit properties from it s parent site nodes Sets if the component should use the new download action which can control that the user has access to the asset The following example gets the url to the asset with asset key Image from the content bound by the component property Article content assetUrl id imageUrl propertyName Article assetKey Image gt lt img src c out value imageUrl gt gt Author Mattias Bogeblad Page 81 2009 01 19 InfoGlue Developer Manual This tag will get you the asset urls taken from one or many contents bound by a assetUrls Description property Parameters Name Required Default Type Id true String propertyName true Object String uselnheritance false true boolean useRepositoryInheri false true boolean tance useStructurelnherita false true boolean nce ID result variable contains An Collection containing the urls to the assets Examples Description The result is stored in this variable The property name the component used to bind the content by in which you wish to get the asset urls from Sets if the component should look for other articles
189. you have very dynamic css es or scripts which includes logic depending on user info etc mostly usable if you have a static css or controls it on the pageCache parameters siteNodesFromWebPages Allows easy conversion between a list of WebPage beans and SiteNodeVO s which are more suitable for advanced sorting etc componentLabel This tag works similar as content contentAttribute but is meant only to get mapped labels from the component itself This removes the need to have a global labels content for labels which are component specific and does not need to be shared Author Mattias Bogeblad Page 103 2009 01 19 InfoGlue Developer Manual currentPageUrl Description This tag will get you the current page url Parameters Name Required Default Type Description id true String The result is stored in this variable ID result variable contains A string representing the url Examples The following example gets the current page url lt structure currentPageUrl id currentUrl gt The current url is lt c out value currentPageUrl gt Author Mattias Bogeblad Page 104 2009 01 19 InfoGlue Developer Manual pageUrlAfterLanguageChange Description This tag will get you a url to the current infoglue page but with a new language parameter Parameters Name Required Default Type Description Id true String The result is stored in this variable languageCode true Object Stri
190. ypeDefinition id ctd contentTypeDefinitionName Article gt lt management contentTypeDefinitionAttributes id contentTypeDefinitionAttributes schemaValue ctd schemaValue gt Author Mattias Bogeblad Page 158 2009 01 19 InfoGlue Developer Manual categoryPath Description This tag fetches the full path of a category Important tag in followup searches based on assigned categories for example Parameters Name Required Default Type Description id true String The result is stored in this variable categoryld true Object String The categoryId you wish to get the full path to ID result variable contains A String object Examples The following example gets a list of ContentCategory objects assigned to the latest content version in the current language on the content bound by the property Article It also prints the list and shows off another tag which gives you the full path content assignedCategories id categories propertyName Article categoryKey Area c forEach var category items categories varStatus count gt lt c out value category id gt lt management categoryPath id path categoryId category id gt path lt c out value path gt lt br gt lt c forEach gt Author Mattias Bogeblad Page 159 2009 01 19 InfoGlue Developer Manual contentTypeDefinitionAssets Description This tag lets you get a list of all asset key definitions on a c
Download Pdf Manuals
Related Search
Related Contents
6720 Classic RM-424 Service Manual_L1&2 BenQ SH960 DLP User Guide Manual Evaluation of Plastisol Inks - Stanleys Sign & Screen Supply Ltd Legal notice Information légales Colofon - Park House Healthcare Portable Electric Desalinator Operation Manual Halogen Exam Light III DescriPtion ダウンロード(189KB) Optimização em redes Copyright © All rights reserved.
Failed to retrieve file