Book Image

Liferay Portal Systems Development

Book Image

Liferay Portal Systems Development

Overview of this book

Liferay portal is one of the most mature portal frameworks in the market, offering many key business benefits that involve personalization, customization, content management systems, web content management, collaboration, social networking and workflow. If you are a Java developer who wants to build custom web sites and WAP sites using Liferay portal, this book is all you need. Liferay Portal Systems Development shows Java developers how to use Liferay kernel 6.1 and above as a framework to develop custom web and WAP systems which will help you to maximize your productivity gains. Get ready for a rich, friendly, intuitive, and collaborative end-user experience! The clear, practical examples in the sample application that runs throughout this book will enable professional Java developers to build custom web sites, portals, and mobile applications using Liferay portal as a framework. You will learn how to make all of your organization's data and web content easily accessible by customizing Liferay into a single point of access. The book will also show you how to improve your inter-company communication by enhancing your web and WAP sites to easily share content with colleagues.
Table of Contents (17 chapters)
Liferay Portal Systems Development
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface

An example: Knowledge base management


What's a knowledge base? According to Business Dictionary (refer to http://www.businessdictionary.com/definition/knowledge-base.html), a knowledge base is defined as:

"Organized repository of knowledge (in a computer system or an organization) consisting of concepts, data, objectives, requirements, rules, and specifications. Its form depends on whether it supports an (1) artificial intelligence or expert system-based retrieval, or (2) human-based retrieval. In the first case, it takes the form of data, design constructs, couplings, and linkages incorporated in software. In the second case, it takes the form of physical documents and textual information."

How to implement a knowledge base in the portal? A knowledge base could be implemented as a set of portlets plus hooks with the following major requirements. Of course, you can add your specific requirements in knowledge base management (KB).

  • Modeling knowledge base as articles plus article templates, article comments, private messages, contacts, and tasks

  • Versioning and authoring articles, and organizing them in a hierarchy of navigable and scope-able articles

  • Supporting multiple languages on title, content, and description of articles

  • Ability to lock and unlock articles

  • Supporting look-ahead typing in articles search

  • Supporting caching, asynchronous threads, indexing, and advanced search

  • Representing knowledge base management as a set of JSR-286 portlets, for example, Admin, Private Messaging, Contacts, Tasks, Docs Viewer, Aggregator, Display, Search, and List; and supporting inter-portlet communication (IPC events and public render parameters) among portlets Aggregator, Display and List; and leveraging different portlet bridges such as Struts 2, JSF 2, Spring 3 MVC, Wicket, and so on

  • Leveraging dynamic data list and dynamic data mapping to build dynamic document types and meta-data sets

  • Leveraging dynamic query APIs and custom SQL

  • Adding permission checker on articles

  • Ability to add attachments and images to articles

  • Ability to add asset links, asset ratings, and asset view counts

  • Ability to add asset comments to articles and votes on comments

  • Ability to add hierarchy of asset categories

  • Ability to add asset tags to articles

  • Ability to add RSS feeds and to subscribe to articles

  • Ability to add polls on articles

  • Exporting and converting articles to PDF and other formats

  • Supporting configurable workflow

  • Ability to add custom attributes (called custom fields)

  • Ability to archive (import and export) and to remotely publish articles

  • Allowing use of auditing, rule engine (Drools), and reporting engine (JasperReports)

  • Ability to import a semantic mark-up language for technical documentation called DocBook, referring to http://www.docbook.org

  • Providing web services for knowledge base articles

  • Providing JSON services for knowledge base articles

  • Providing RESTful services for knowledge base articles

  • Integrating CAPTCHA or reCAPTCHA with knowledge base articles

  • Applying JavaScript such as jQuery and mash-ups when building portlets

  • Supporting asset rendering in the Asset Publisher portlet

  • Integrating social activity and social equity

  • Ability to apply portal core and other features to knowledge base articles

This book is going to show you how to develop portal systems via a real example—knowledge base management. By the end of this book, you will be familiar with major portal features, be able to apply them to knowledge base articles, and implement the aforementioned requirements as well. Of course, you will know the portal in-depth from a systems development viewpoint, and moreover, on top of Liferay Portal, you will be able to cook your own favorite dishes quickly and concisely.