Pikelets PHP Portal Pikelets PHP portal is a framework developed by TacitDesign for the rapid development of websites. Based loosely on JSR168, the Java Portlet Specification, Pikelets provides a both a framework of common utilities and a programming model for the development of additional bespoke functionality.

Model View Controller

Pikelets uses a variation on the Model View Controller (MVC) architectural pattern to define layering of the functionality provided by both the framework, or portal, and any bespoke features developed for a specific social network.

The Model layer provides a representation of the social network's domain typically comprising logical entities such as users, user groups and links between users. In addition to this it provides access to the underlying database.

The View layer defines the user interface and allows users and members of the social networking site to view content and interact with both the site and other members of the network.  The view is responsible for providing and validation of input data and it is used to read and write to the entities or objects that contain the data passed back and forth through the layers of the MVC architecture.

Finally we have the Controller pulling it all together.  The majority of the Controller layer functionality is provided by a series of managers.  These managers control the passage of data between the view and the model, and implement any additional logic required by a particular transaction or use case / user story.   

Portlets and Pages 

The View layer is composed of a number of portlets.  The portlets in Pikelets provide cohesive components that can be applied to one or more pages on the website.  A portlet provides a section of the user interface which the website, or portal, combines with other portlets to build the page. 

Each page of a Pikelets portal is defined by a record on a database table.  This record includes a reference to a page definition that defines the form of the page, and the portlets displayed it.  Consequently it is very easy to add new pages and indeed for users to create pages on the fly.

Defining pages in this way also makes it very easy to produce page related data such as site maps and RSS feeds of blog posting or news items.

User Access Control

Each webpage in a Pikelets portal has a CAM (Customer Access Management) level.  This regulates user access to areas of the website.  Publicly accessible areas of the website have a CAM level of zero and can be viewed by anyone.  If a user attempts to access a page with a higher CAM level then he or she will be presented with a sign in page.  If the user has been granted a CAM level equivalent or higher to that of the page then access to the page will be granted.  This allows control of how casual visitors, members and site administrators move around the site and the functionality the can access.