1. Introduction

GR8 CRM is a set of Grails Web Application Framework plugins that makes it easy to develop web applications with CRM functionality.

You can find more information about GR8 CRM on the main documentation site http://gr8crm.github.io.

1.1. Customer Relationship Management

Customer relationship management (CRM) is a system for managing a company’s interactions with current and future customers. It involves using technology to organize, automate and synchronize sales, marketing, customer service, and technical support. Wikipedia

The GR8 CRM "Ecosystem" currently contains over 40 Grails plugins. For a complete list of plugins see http://gr8crm.github.io.

Each GR8 CRM plugin defines a Bounded Context that focus on one specific domain, for example contact, project or document.

2. Blog Authoring Plugin

This plugin provide a Twitter Bootstrap based user interface for managing blogs in GR8 CRM applications. This plugin depends on the crm-blog plugin for persistence and services.

2.1. Search for existing blog posts

The crmBlogPostController.index action rnders a query for where you can search for blog posts.

blog find

Search results are presented in a list.

blog list

3. Edit blog posts

You can view a blog post in the authors view.

blog list

Click the Edit button to edit content and settings for a blog post.

blog edit

4. Render blog posts

To render blog posts in a GSP page you can use the crm:blogPosts tag. It iterates over all published blog posts and render it’s content on the page. The following example show that:

blog/index.gsp
<crm:blogPosts var="post" query="${[status: 'published']}" params="${[max: 20, sort: 'date', order: 'desc']}">
    <div class="crm-blog-post" id="${post.name}">
        <g:link action="show" id="${post.name}"><h2>${post.title.encodeAsHTML()}</h2></g:link>

        <p class="lead">${post.description?.encodeAsHTML()}</p>

        <div>
            <span class="muted" style="font-size: 12px;">
                Published <g:formatDate format="d MMM yyyy" date="${post.date}"/>
            </span>
        </div>

        <div class="crm-blog-body">
            <crm:render template="${post.template}" parser="${post.parser}" model="${post}"/>
        </div>

        <p class="crm-blog-tags">
            <span class="muted">Tags:</span>
            <g:each in="${post.tags()}" var="tag">
                <span class="label label-info">${tag.encodeAsHTML()}</span>
            </g:each>
        </p>

        <hr/>
    </div>
</crm:blogPosts>

The example above render something like this:

blog view

5. Changes

2.4.1

Grails 2.4+ compatibility

2.4.0

First public release

6. License

This plugin is licensed with Apache License version 2.0

7. Source Code

The source code for this plugin is available at https://github.com/technipelago/grails-crm-blog-ui