OpenPublish D6 Documentation

Welcome to the OpenPublish D6 documentation site! 

Questions about OpenPublish? Not to worry! We've got a library of documentation available for use that continues to grow with community contribution. 

Know a whole lot about OpenPublish? Feel free to add in your knowledge to our wiki!

Getting Started with OpenPublish

Recent Activity


Wednesday, March 12 2014

Monday, August 19 2013

Thursday, May 16 2013

  • 8:05pm

    Below you find a variety of training screencasts for OpenPublish.

    Setting up User Roles in OpenPublish

    Creating Articles in OpenPublish

    Creating a Blog Entry in OpenPublish

    Creating a Photo Gallery in OpenPublish

    Creating a Video in OpenPublish

  • 8:01pm

    What Is this Semantic Business About and Why Should You Care?

    The World Wide Web started as a collection of hyper-linked documents. In the early days of the Internet you would go to a website that you knew had the desired information, drill down into the content by following hyperlinks and hopefully find what you were looking for. However, over time the amount of content on the Internet, number of publishers and the diversity of the information consumers snowballed, making explicit consumption of content impractical at best, if not impossible. At some point there were too many content sources and not enough time for humans to browse through them. This was the time when the rise of search engines began.

    The emergence of search engines as an important "audience" for web-sites exposed a slew of problems with the way web-sites had been built. When pages were built for humans the HTML markup for those pages was used solely to achieve the desired look-and-feel. Alas, computer software behind the search engines, does not have the same power of visual perception that humans do. Looking at a proper user-interface most humans can very quickly identify structural elements of a page like: an article's title, its author, its content. It is much harder and more error-prone for computers to do the same. On the other hand computers can analyze and digest way more information than humans can. And generally they don't need to rest, sleep or have a habit of procrastination during work. That's why we want machines to "understand" content on the Web better, and make our web experience richer (which, of course, should leave more time for our procrastination).

    In order to make it easier and less error-prone for computers to understand the content on the web, pages must expose the structure of the content. Exposing the structure, the semantics of content on the web is the main goal of the Semantic Web movement (a.k.a: The Next Big Thing, The Web 3.0).

    Following is how Wikipedia defines Semantic Web:

    "Semantic Web is a term coined by World Wide Web Consortium (W3C) director Sir Tim Berners-Lee. It describes methods and technologies to allow machines to understand the meaning - or "semantics" - of information on the World Wide Web.

    According to the original vision, the availability of machine-readable metadata would enable automated agents and other software to access the Web more intelligently. The agents would be able to perform tasks automatically and locate related information on behalf of the user".

    If you still have doubts whether you care about semantic markup or not, let us say that designing your theme so that it exposes the semantics of your content really helps your Search-Engine Optimization (SEO) efforts and that could be the least of the benefits you get from relatively little investment....

    Read more
  • 7:56pm

    The Approach

    In the previous chapter we touched upon the layout and structure of the base OpenPublish theme. To fully leverage the base theme for bootstrapping new theme development custom themes should be created as a sub-theme of the theme called openpublish_theme, included in the openpublish distribution. Sub-themes automatically inherit everything from the base theme and then specific aspects can be overriden/further customized.

    Some common examples:

    Suppressing and Overriding CSS Files

    Not all CSS files in the base theme are equally portably to the sub-themes. While, there's a good chance you may keep some, you may want to override others. To disable a CSS file present in the base theme, all you need to do is create a file with the same name in a sub-theme and add css definition to the .info file of the sub-theme. When sub-theme is the active theme, OpenPublish will first look in the sub-theme folder and only if file is not found there, will it check the folder of the base theme. When you re-create a css file in your sub-theme, you can either enter new styles in it (overriding) or leave it empty (just suppressing).

    Let's look at some examples:

    • Suppressing html- elements.css: create an empty html-elements.css in the sub-theme and add the following line to the

    • Overriding layot.css - copy the file to sub-theme and modify there. Also add following line to the

    Tip: in most cases, location of files in a theme does not matter. You can place files right under your theme folder or in any sub-folder. If the path to the file is indicated in the .info file (like for .css or .js files), you just need to indicate correct path there. If the path does not need to be indicated in the .info file (e.g. for tpl.php files") you don't even need to do that - OpenPublish will find these files anywhere under the theme folder.

    However, if you are overriding a css or javascript file, you need to place it in the exact same location as it was in the base theme (e.g. for css files: under "css" folder) otherwise overriding won't work and both files, from base and sub-theme, will be included, even if they have the same name. Also, two for the sake of consistency, if you are overriding a tpl.php already present in the base theme, we recommend...

    Read more
  • 7:54pm

    Now that we have mentioned, in passing, where some of the theme files are located, it is useful to explain the structure of the openpublish_theme folder in general. You will never be modifying any files in this base theme, directly (since you should always sub-theme it instead) but your sub-theme will most probably have similar structure and you may often find yourself looking in openpublish_theme for reference, so let's see how it is built. On the highest level, following is the structure of the folders in the theme:

    Accordingly, following is the structure of the files and folders in the theme:

    • components - contains different miscellaneous theming templates for things like: AddThis widget, breadcrumb and related terms.
    • css folder contains files for all cascading style sheets. In OpenPublish CSS is organized across several files depending on the purpose:
      • html-elements.css - defines default styles for all basic HTML elements.
      • basics.css - CSS styles for common basic use-cases. Included are: .clearfix style: an HTML stylist's best friend, .bold, .italic, .img-left, .img-right, many useful CSS definitions for common Drupal markup classes etc.
      • layout.css - CSS styles for layout definitions.
      • components.css - CSS styles for various components of a site design.
      • prints.css - CSS styles for print mode.
      • editor.css - CSS styles specific for FCKeditor WYSIWYG editor.
    • general - TPL theme files for core Drupal components like: block.tpl.php, comment tpls and user-profile.tpl.php. Please note that user-profile.tpl.php styles Drupal user pages. If you follow OpenPublish's approach to publishing there's very little chance you will need this page, since in OpenPublish content is authored by a more abstract notion of an Author (a content type in itself) rather than much more limiting notion of Drupal users, so you will most probably be styling Author pages, rather than Drupal user pages, but in case you have a need to style Drupal user pages, the corresponding tpl for it lives under this folder as well.
    • images folder contains image elements used in the theme. It's further sectioned into: 'banner', 'bkg', 'divides' and 'bullets' sub-folders.
    • node folder contains tpl theme files for all content types (their detail pages) available in OpenPublish as well as a generic...
    Read more
  • 7:52pm

    Theme Configuration

    We are going to create our first OpenPublish sub-theme called "Ardi". In case you are wondering: Ardi is the name of the first human ancestor ever uncovered by archeologists, so it sounded like an appropriate name for the first theme you will create in OpenPublish.

    Let's get started by creating a folder called "ardi" under sites/default/themes or sites/all/themes. Typically, in-house themes and modules are placed under "default" and themes and modules downloaded from under "all". But that's just a convenience rule. Let's create a file called "" inside the themes/ardi and enter following code in it:

    There are several things worth noting in this configuration:

    1. On line 3 we tell Drupal that the base (parent) theme of the new theme is openpublish_theme. This causes Drupal to "inherit' a whole bunch of settings from the theme, giving us significant amount of groundwork out of the box.
    2. On lines 9 and 12 we define extra stylesheets (one for all media and one for just print media), in addition to the ones inherited from openpublish_theme, so that we have a place where we can place additional style definitions.
    3. On lines 14-19 we define regions that we will use in the new theme. Regions, in Drupal, are placeholders for space where blocks can later be placed and arranged. The definition shown in this code is the exact same one as in openpublish_theme. For better or worse, Drupal does not inherit region definitions form a parent (base) theme, so you always need to define set of regions you will be using.We strongly recommended to always define the regions defined in openpublish_theme and, if necessary, you can add your own ones, as well. However, you in most cases, you should not have to.

    Customizing Theme Through CSS

    To activate the newly created theme, go to and both enable and set to default the Ardi theme:

    Click on "Save Configuration button, to save your changes.

    Let's try messing with the CSS. Let's create "css" folder under the ardi theme folder and ardi-main.css file in it, with the following code:


    Read more
  • 7:49pm

    OpenPublish is a Drupal Distribution

    Drupal Distributions or Installation Profiles are pre-packaged versions of Drupal that contain Drupal core, which you can download from along with a slew of contributed modules. The Drupal core and modules are usually pre-configured in a certain way to better serve some specific purpose, such as for news publishing purposes in the case of OpenPublish.

    Are all Drupal Themes OpenPublish Compatible?

    OpenPublish-compatible is any Drupal theme that can be used with OpenPublish and can supports full functional spectrum of the OpenPublish platform.

    Technically, any Drupal theme can be enabled in OpenPublish, but that does not mean that any Drupal theme is compatible with it. OpenPublish adds a wide variety of features on top of those supported by vanilla Drupal. Drupal themes not built for OpenPublish are typically not aware of these features and therefore either do not properly support them or ignore them altogether. Please look at the OpenPublish Compatibility Checklist for Themes for more information.

    OpenPublish distribution comes with a base theme: openpublish_theme. The purpose of the base theme is to ease the development of themes compatible with OpenPublish. While not technically necessary, it is highly recommended to start any OpenPublish theme as a sub-theme of the openpublish_theme.

    When releasing versions of OpenPublish, we constantly update openpublish_theme. The themes that properly sub-theme openpublish_theme will automatically get most bug-fixes and improvements, simply by updating openpublish_theme. Those themes that don't sub-theme openpublish_theme, will have to do independent maintenance and updates, which could be costly, over time.

    OpenPublish Compatibility Checklist for Themes

    Following are the specific, minimal requirements a theme must satisfy in order for it to be compatible with OpenPublish and be considered for OpenPublish Themes Gallery.

    Disclaimer: the OP base theme openpublish_theme does not fully support all listed requirements but we are working towards supporting all of them and themes that properly sub-theme openpublish_theme will automatically get full support once the effort is completed.

    • Theme must provide fully-styled implementation of base OpenPublish content-types. Each content type style must support exposure of all variables that the latest version of openpublish_base theme does. The list of base content-types at the time of this writing is as follows:
      • Article
      • Author (if the panel implementation is overriden)
      • Audio
      • Blog
      • Event
      • OP Image
      • Package
      • Resource
      • ...
    Read more
  • 7:48pm

    OpenPublish comes with its own simple theme, but it is not intended to serve as an actual design for any web site. You need to create a sub-theme, which will look like base theme initially, and start adjusting it to fit your branding.

    Once an implementer has setup, configured, and customized their OpenPublish installation it is ready for a new face. Designers and developers can create custom layouts, views, design elements, and style sheets.

  • 7:47pm

    Regions and Blocks in Drupal

    A typical Drupal page is built from static HTML, which defines layout's markup, and several regions of dynamic content. A good example of this approach is in The New Republic website:

    The screenshot above shows the structure of the article detail page. We can see that article pages have four main regions:

    1. Banner Space
    2. Headlines
    3. Content
    4. Right Sidebar

    Most regions (except the content region) do not by themselves define the content shown in the region. Rather they are containers for Blocks. Blocks in Drupal/Openpublish are small, arbitrary, dynamic portions of a page. More often than not blocks are provided by one of Drupal or OpenPublish modules, but a block can also be a piece of static HTML managed by an editor through an administration interface.

    Beyond Core Drupal Block Management

    If you have used Drupal, you are probably familiar with the core Drupal block management user-interface. It's very straightforward: you can add, manage and sort blocks in regions. Unfortunately, the interface is often too straightforward (read: limited). If you are building a complex CMS system like the one for an online publication, core block management is definitely not flexible enough.

    Main limitation of the core interface comes from the fact that it is global: you can only manage blocks site-wide. There's no notion of a "section of a site". Everything you do applies to the entire website, which does not bode well with actual needs of Publishers. Publishers typically need to control regions' content (blocks) separately for various sections of a site. And that brings us to Context: a user-interface for managing sections (contexts) of a site and block configurations in those contexts (sections).

    Working with Contexts

    To access Context UI, go to :, where is the root of your OpenPublish installation, or from the Admin menu go to: Administer > Site Building > Context. you should see a page that looks like:

    As you can see there're a whole bunch of common context definitions that come pre-installed with OpenPublish and can be used for the variety of common use-cases. To get familiar with the system, let's create a new one. We are going...

    Read more
  • 7:44pm
    • Pick a feed, any feed. Keep in mind that many RSS feeds don't provide full story bodies, so don't expect your node bodies to necessarily be more than a few sentences.
    • From the administration menu of an OpenPublish site, click on Content Management > Create content > Feed
    • Enter a "Title" for the feed. Optionally enter a "Body" but this isn't mandatory.
    • Supply the URL of the RSS feed you've chosen as the "Feed URL"
    • Open the "Processors" field set and select the appropriate "Node type of feed items". Try "Article" as a good first test.
    • Select other options on the Feed configuration as needed. Most settings are pretty self explanatory.
    • Save the Feed edit form.
    • If you chose to have feed items refreshed on creation, and you selected Article as your node type, check your site's Homepage and you should see them there.
    • If you would like to use the feed item's description as the Teaser, there is an additional step you need to follow.
    • Click on your feed's node edit form and select "Map" from the tabs at the top
    • Under the "Edit mapping" fieldset, choose "Map to field_teaser (content) to the feed field "description" and hit "Update"
    • At this point, you'll need to delete and refresh your feed items to pick up the new mapping
    • Upon returning to your Homepage you should see the feed description now appearing as the Teaser of your Articles

    Pulling-in a Twitter Feed

    This section will be updated and is not applicable to OpenPublish 2.0.
    Here are the steps for putting your twitter feed on the site:

    Now you should see your feeds on the Homepage. You'll want to give your block a title:

  • 7:43pm

    Default RSS Feeds

    A set of default outgoing RSS feeds are provided with OpenPublish, and they are typically accessible through the various sections of the site by clicking on the orange RSS icon:

    These can be found for:

    • Articles, which links to /rss/articles
    • Blogs, which links to /rss/blogs
    • Multimedia, which links to /rss/multimedia
    • Resources, which links to /rss/resources
    • Events, which links to /rss/events

    These are feed displays that are configured on each corresponding view, giving you the same level of control over them that you'd expect from Views. These displays also have the Sticky sort criteria, so the listing order will be the same as on the regular page display.

  • 7:41pm

    What are Topic Hubs?

    Harnessing the power of Calais tagging, administrators can create Topic Hubs based on one or more of a site’s most commonly used tags.

    Topic Hubs are highly configurable and contain a series of pluggable content views/blocks, like “Most Read” content for this topic, “Most Commented” stories, most active contributors, and links to other related topics. To top it off, integration with Calais Geo allows for plotting all of your content for a Topic Hub content on a map.

    Here's an example from

    Any prerequisites for creating a Topic Hub?

    Before you create a Topic Hub, you'll want to make sure that you have quite a bit of content on your site that has been tagged with a particular term (such as "Politics" from the Topic vocabulary).

    How do I create a Topic Hub?

    From the Admin Toolbar, navigate to Create content >> Topic Hub.

    Enter the name of your Topic Hub, and a brief description.

    Save your changes in order to proceed to Topic Hub Configuration.

    Configure Your Topic Hub

    In order to populate your Topic Hub with content, you'll need to create at least one condition that must be satisfied by each content node in order to appear there.

    A condition consists of one or more taxonomy terms. To get started, choose the Vocabulary from which you would like to select a term, and then select the term itself as well as the condition to which you would like to add this term.

    When you're finished, click Add term to add the term you've selected to the condition you've chosen.


    Read more
  • 7:35pm


    OpenPublish provides an audio content type that is flexible and suitable for storing media locally on your site or referencing 3rd party providers. To add an audio node, click on Create Content > Audio in the Admin menu.

    • Embedded: this field relies on the Embedded Media Field module, which provides a simple way to feature external media on your site. Currently, the following providers are supported out of the box for audio: Odeo,Podcast AlleypodOmatic and custom URLs for remote mp3 files.
    • MP3 Audio clip: upload an mp3 file and the SWFtools provided player (ie 1PixelOut) will handle it.


    The same functionalities apply to video in terms of support for both local and remote content. To add a video node, click on Create Content > Video in the Admin menu.

    • Embedded video: in a similar fashion to its counterpart on Audio, this field requires you to enter the URL or Embed code provided by a third party content provider. The services supported include YouTube, Dailymotion,, Vimeo,, and more. A full list can be found by hovering over the field.
    • Flash File: this field should be used when you wish to upload and host your own .flv files. Flowplayer will then display your video on the node.


    The same functionalities apply to images in terms of support for both local and remote content. To add an image node, click on Create Content > Image in the Admin menu.

    • Embedded image: support is provided out of the box for Picasa, Photobucket, ImageShack, Custom URLs and Flickr, although you will need to set your API for the latter at /admin/content/emfield.
    • Main Image: this is your standard file field where you can upload the image you want to associate to this node.
  • 7:33pm

    In Drupal, a single unit of content such as a particular Blog Post or Article is referred to as a node.

    Editing Existing Content

    In terms of editing content that already exists on the site, you can do this in one of two ways:

    1.) Find the node you want to edit, for example the Blog entry titled: Five ways Michael Steele Could come back. Once you are on this node, click on the Edit tab at the top right in the Admin Toolbar:

    Once you have clicked through a new page has opened and you can now edit all fields available for this node:

    When you are finished making your edits make sure to press the Save button at the bottom:

    Once you click save, the live page will render and you will see a green dialogue box below the title indicating the page has been updated:

    2.) Find Content tool.

    Login to your Admin panel and click the tool icon in the upper left-hand column to open the left-hand navigation:

    In the left-hand navigation, click on the Administer folder then the Content Management subfolder:

    In the Content Management screen select the “Find Content” tool (in the middle of the list):


    Read more
  • 7:28pm

    What is More Like This?

    More Like This (MLT) is a set of modules we've developed that allows you to display related content from your site (or from around the web) on your node pages, using a set of taxonomy terms you've chosen for that particular node.

    More Like This consists of the following modules:

    • MLT - Taxonomy (related nodes on your site)
    • MLT - Flickr
    • MLT - Google Video
    • MLT - Yahoo! BOSS

    How does MLT work?

    Internal Content Recommendations (MLT Taxonomy)

    MLT Taxonomy harnesses Calais to automatically recommend related site content based on the node page that a particular user is viewing.

    By default, MLT determines which Calais terms it will use for matching this "node at hand" to other nodes on your site. These are known as MLT terms.

    In order for a Calais term to be eligible to become an MLT term, it must exceed the "Global Term Relevancy Threshold for MLT" (see notes below on "How do I set up and configure MLT?" to learn how to adjust this).

    If there are other Calais terms that you would like to use as MLT terms for matching against other content nodes, you can add them directly by editing the node's More Like This settings.

    For more details on how content recommendations are made using MLT, and the implications that adjusting MLT and Calais relevancy scores has on this process, see this document.

    External Content Recommendations (Flickr, Google Video, Yahoo! BOSS)

    The MLT terms are essentially used as keywords for searches performed via the APIs provided by these services.

    How do I set up and configure MLT?

    Using the Admin Toolbar, navigate to Site configuration >> More Like This settings.

    General Settings


    Read more
  • 7:21pm

    What is Calais?

    Calais is a web service provided by Thomson Reuters that analyzes documents and automatically identifies and extracts semantic metadata/tags from your content, as well as related facts, events, and more.

    Many services can tell you that IBM was mentioned in your content, but no other service identifies that IBM is an Organization, then disambiguates all the various references to IBM (International Business Machines, etc.), and finally tells you with a scoring mechanism that your content is more about IBM than any other term identified.

    Your OpenPublish installation includes a suite of modules we've developed called the Calais Collection, which integrates Thomson Reuters' Calais web service into the Drupal platform.

    How do I set up Calais for my OpenPublish site?

    First, you'll need an API key if you haven't taken care of that already.

    Next, open your Admin Toolbar and navigate to Site configuration >> Calais configuration.

    Calais API Settings

    You'll land on the "Calais API Settings" tab by default, which contains a field for your API key. Enter it and save your changes.

    Before delving into the specifics of all of the various configuration options, let's take a few steps back and talk about how Calais is used on a general level.

    How do I use Calais?

    Whenever you create/update a node, the contents of your node are sent to Calais for processing and the tags it comes up with are applied to your node in the form of taxonomy terms from one of Calais' many vocabularies including:

    • City
    • Company
    • Organization
    • Person

    Each term that is returned for your node also has a node-specific relevancy score associated with it, which indicates the strength of the relationship between your node and the tag applied to it.

    Viewing Calais Tags Applied to a Node

    When viewing a node, you should see a "Calais" tab next to the traditional "View" and "Edit" tabs.


    Read more
  • 7:13pm

    By default, published content is listed by decreasing chronological order, meaning that the most recently added item is shown first. You can however override that by checking the sticky flag under Publishing Options on a content item,


    Should two items in the same category be both stickied, the post date will then be used again as the primary sort criteria.

  • 7:11pm

    Tools like CKeditor and Apture make it easy for editors to make their content created in Drupal more attractive and engaging.

    CKeditor (WYSIWYG)

    CKeditor is a WYSIWYG editor, but What You See Is (almost) What You Get. It's really a tool for helping you generate HTML, but is no substitute for learning it incrementally.

    We recommend that you leave your content nodes unpublished (details on this in the next section on publishing/promoting your content) and save them so that you can get the most exact possible preview of what your content looks like before it "goes live".

    Configuring CKeditor

    CKeditor is used in conjunction with IMCE for handling file uploads. You can find configuration options for both of these in Administer > Site configuration.

    Also, check out the project pages for CKeditor and IMCE.

    Using Apture

    Apture allows you to enhance your content with related content and multimedia from around the web, in a fairly seamless fashion.

    Just above the CKeditor toolbar, you'll see a set of Apture icons.

    Before clicking on them, though, you'll want to highlight the text that you want to use to pull in related content such as the name of a company of famous person. We'll use "Bank of America" in this example.

    You'll see an Apture popup that contains a search box, which you can use to search for related content of various types.

    Pick the most informative/relevant one first (that's your primary item) and the rest of your choices will be presented as supplemental information.

    Once you're done, click on the "Create Link" button to return to your node.


    Read more
  • 7:07pm

    In Drupal, a single unit of content such as a particular Blog Post or Article is referred to as a node.

    Create Content

    To create a new node, click on the "Create content" tab in the Admin Toolbar.

    You will see a full list of all of the different content types that you can use to create your node. Click on "Blog entry" to create a node using that content type, and you should see the content creation form.

    Many of the fields on this form are pretty straightforward, such as:

    • Title
    • Body
    • Teaser

    However, there is one fundamental OpenPublish feature that is worth explaining, which is the field for "Author(s)".

    The Author Dilemma

    A big assumption in Drupal 6 core is that an author is a user, which in many cases is an over-simplification since many times there are multiple authors associated with a given piece. In other cases, authors are external contributors who do not actually have user accounts on your site (and it can be cumbersome to even create a "dummy" user every time since a unique email address is required and you have to go to a separate interface to create the user).

    For these reasons, OpenPublish has a separate content type for Authors. You can type the name of one or more existing Author nodes into the Author(s) field and the auto-complete feature will pull up the proper Author. Click on the proper match to insert that Author into the field.

    What if my Author hasn't been created yet?

    You can use the "create and reference" button next to the Author field to create the Author you need in a popup without leaving the form.

    More Options for the Blog Content Type

    Categorizing your content through taxonomy

    If taxonomies have been created, you have the option to categorize your content in the Vocabularies Section. In this particular case, the topics have been configured to display as a dropdown menu. For a more detailed explanation of how to set up taxonomies and terms, please visit the Categorizing your Content section of the...

    Read more
OpenPublish Logo

Looking for OpenPublish on D7?

Don't worry, we've got you covered. Just click here.