{"id":5101,"date":"2012-04-16T16:24:38","date_gmt":"2012-04-16T10:54:38","guid":{"rendered":"http:\/\/www.tothenew.com\/blog\/?p=5101"},"modified":"2016-12-19T14:44:37","modified_gmt":"2016-12-19T09:14:37","slug":"integrating-grails-with-weceem","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/integrating-grails-with-weceem\/","title":{"rendered":"Integrating Grails with Weceem"},"content":{"rendered":"<p>Today, I&#8217;ll be talking on how to go about integrating the Weceem CMS into a grails-app. It is\u00a0extremely simple and with a couple of steps you would have a CMS that can render traditional as well as custom content merged into your grails application.<\/p>\n<p style=\"padding-bottom: 10px\">\n<h5><strong>Ok &#8230; First things first &#8230; What is Weceem ?<\/strong><\/h5>\n<p>Weceem (as in &#8216;We seem&#8217; to like it :D) is a Content Management System developed by Marc Palmer for JCatalog that is built on Grails. It is open source and easy to use. \u00a0<em>Apart from being customizable, the other thing that I liked  about it was the ability to create custom content, and that too using grails conventions!!.<\/em><\/p>\n<p><em> <\/em><\/p>\n<p><em>While it supports traditional content like Blogs, Wiki articles etc, one had the flexibility and support of creating a custom content that might be more in line with the hosting grails app.<\/em> Add to that the ease of a grails plugin that makes it&#8217;s integration with an existing grails app a breeze.<\/p>\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<h5><strong>Getting back to Installation &#8230;..<\/strong><\/h5>\n<p style=\"padding-bottom: 10px\">To install weceem simply type<\/p>\n<p>[shell]grails install-plugin weceem[\/shell]<\/p>\n<p style=\"padding-bottom: 10px\">While installing, it will pull a whole lotta stuff as it&#8217;s dependencies (searchable, blueprint , ckeditor etc).<\/p>\n<p>Next to see the plugin&#8217;s CMS page, one needs to configure a couple of properties.<\/p>\n<p>1) \u00a0 In your Config.groovy change the follwing line to false \u2026.<\/p>\n<p>[groovy]grails.mime.file.extensions = false \/\/set to true by default[\/groovy]<\/p>\n<p>2) \u00a0Next  if you need content to be served from the root URI (&#8216;\/&#8217;) of your application, simply remove the default grails URL mapping for &#8216;\/&#8217; URLMappings.groovy.i.e doing this will cause the app home page to change to the CMS home page.<\/p>\n<p>Thats all you need to have Weceem up and running.<\/p>\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p><em>Simply hit &#8216;grails run-app&#8217; and depending on your implementation of Step 2 above either hit &#8216;\/&#8217; or &#8216;wcmContent\/show&#8217; and <strong>VOILA!!!<\/strong>, you end up on the landing page of the CMS. Click on the &#8216;edit content repository&#8217; link to go to the Content Repository that looks something like the image below&#8230;<\/em><\/p>\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<div id=\"attachment_5232\" style=\"width: 594px\" class=\"wp-caption aligncenter\"><p id=\"caption-attachment-5232\" class=\"wp-caption-text\">Weceem CMS landing page<\/p><\/div>\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">You have a grails powered CMS integrated into your app in matter of minutes. Click on the new content link button, and you are presented with a range of content options \u2026 from HTML to Blogs to Wiki pages and so on.<\/p>\n<p style=\"padding-bottom: 10px\">\n<h5><strong>Great &#8230; Lets create some content &#8230;<\/strong><\/h5>\n<p style=\"padding-bottom: 10px\">First select existing Blog folder in the CMS dashboard \u00a0and then click on \u00a0the &#8216;New Content&#8217; -&gt; Blog Entry ..<\/p>\n<p style=\"padding-bottom: 10px\">Add some content &#8230;<\/p>\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\"><em>Thats it &#8230; All you gotta do now is hit save.<\/em><\/p>\n<p style=\"padding-bottom: 10px\">Now to view our content &#8230; Go to the blogs page of your app (URI for page is defined in &#8216;Alias uri&#8217; section of Blogs folder-edit page.. Default is &#8216;blog&#8217;) or <strong>&#8220;http:\/\/&lt;serverURL&gt;\/blog&#8221;<\/strong><\/p>\n<p><strong>Tip : <\/strong><em>To serve all content through a specific URI prefix .. just add<\/em>[groovy]weceem.content.prefix = &#8216;content&#8217; \/\/ replace &#8216;content&#8217; with anything you prefer &#8230; [\/groovy]<br \/>\n<em>to make your blogs page and all other repository content be served from <\/em>\u00a0<strong>http:\/\/&lt;serverURL&gt;\/content\/&lt;blog_or_anything_else&gt;<\/strong><\/p>\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<\/p>\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<p><strong><em>In the next blog, I&#8217;ll talk how to go about creating your own custom content .. <\/em><\/strong><\/p>\n<p>Till then &#8230; peace out .. \ud83d\ude42<\/p>\n<p style=\"padding-bottom: 10px\">\n<p style=\"padding-bottom: 10px\">\n<div>Manoj Mohan<\/div>\n<div>manoj<span style=\"text-decoration: line-through\">(at)<\/span>intelligrape<span style=\"text-decoration: line-through\">(dot)<\/span>com<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Today, I&#8217;ll be talking on how to go about integrating the Weceem CMS into a grails-app. It is\u00a0extremely simple and with a couple of steps you would have a CMS that can render traditional as well as custom content merged into your grails application. Ok &#8230; First things first &#8230; What is Weceem ? Weceem [&hellip;]<\/p>\n","protected":false},"author":32,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":4},"categories":[7],"tags":[800,258,799,4840,802,798],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/5101"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=5101"}],"version-history":[{"count":0,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/5101\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=5101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=5101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=5101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}