What is Newscoop?

Updated for Newscoop 4.2

Newscoop is a multi-lingual enterprise content management system for on-line newspapers and magazines, enabling scheduled publishing of multimedia. Built-in revenue generation features include support for paid or trial reader subscriptions, and geolocation-based services.

The administration interface is built with the journalist, editor and publisher in mind, based on feedback from the news organizations around the world that have deployed Sourcefabric's newsroom software since the launch of the first version in 1999.

Newscoop follows a print publishing model, so it structures websites as Publications, Issues, Sections and Articles by default. Newscoop was designed for medium-to-large online publications, but it is capable of handling nimbler sites too.

With Newscoop, you can edit articles using an advanced WYSIWYG interface, and manage articles translated into different languages. A traditional editorial process ensures quality of content: the journalist writes the article, the editor reviews the content, and then the article can be published. The Newscoop administration interface works in most modern web browsers, including Mozilla Firefox and Microsoft Internet Explorer. No browser plug-ins are necessary.

You can also create your own definition of what a particular type of article should include. For example, one article type might consist of "Intro", "Body", and "References", while another type might include only "Body" and "Author Bio". You can incorporate images, audio and video into your articles, for delivery directly in the browser window or as attachments for download. Articles can be categorized with topics, and scheduled for release at a future date, or published immediately.

Newscoop offers full control over the look and feel of your web site via a flexible HTML5 and CSS3 ready template engine. The PHP object-oriented API enables your website developers to build third-party plug-ins too. Built-in support for translation allows the administration interface to be adapted to support new languages quickly and easily.

Managers will appreciate the fine-grained access control for different types of staff users, including journalists, editors, and subscription managers. The integrated subscription features include IP-based access control for corporate and institutional accounts.

Newscoop is Open Source software released by Sourcefabric under the GNU General Public License version 3. It incorporates the TinyMCE WYSIWYG text editor and Plupload file handler from Moxiecode Systems AB, Christophe Dolivet's EditArea as a template editor, and PhotoViewer by Joseph Nicora for thumbnail zooming. Geographical data is provided by GeoNames.

Feature list

This list of features is provided as a guide to help you decide if Newscoop is the right content management system for your publication.

Multi-lingual content

All of the content that you create in Newscoop can be translated:

Articles

Sections

Issues

Publications

Topics (content categorization)

File attachment descriptions

The Newscoop administration interface has been translated into the following languages (in alphabetical order):

Arabic

Belarusian

Czech

English

Georgian

German

Greek

Italian

Polish

Portuguese (Brazilian)

Russian

Serbian (Cyrillic)

Serbian (Latin)

Spanish

Ukranian

Further translations can be added using a tool built into Newscoop called the Localizer.

Revenue generation

Control accessto your content via:

User's IP Address (for corporate accounts)

Login/password (for individual users)

Control the contentyour subscribers have access to:

The entire issue

Specific sections in each issue

Specific sections in a particular language

Support for a trial subscription period, for instant access while payment is made

Set your own pay periods (the time between each payment made by a subscriber)

Geolocation and mapping features, enabling location-based services. Points of interest from multiple articles can be displayed on a single map. Locations can be linked to external URLs, images or video clips

Editorial features

Online WYSIWYG editorfor article editing:

Typical style formatting: bold, italic, etc.

Special support for linking to existing (internal) articles

Ability to split articles into multiple pages

Insert images into your articles

Copy & Paste clean text from Microsoft Word or OpenOffice.org (while preserving bold and italics)

Insert subtitles, which can be used for breaking up the article (pagination)

Built with multiple simultaneous usersin mind

While a journalist is editing an article, it is "locked". A warning will be displayed if anyone else tries to edit the article at the same time. This prevents one journalist from deleting the work of another

Group articles into sections

Group sections into an issue

Release an issue all at once

Allow subscribers to access only certain issues

Scheduled Publishing: automatically publish articles or issues at some time in the future. For articles, you can schedule the following actions:

publish

unpublish

show the article on the front page

show the article on the section page

Topics: Categorize your content

Define however many topics you like

Associate any number of topics to an article

Topic can have subtopics, subtopics can have sub-subtopics

Topics can be translated

Dynamic, Flexible Article Types

"Article Types" allow you to define your own article format - you aren't limited to just "Introduction" and "Body" fields, for instance. An Article Type consists of a series of data fields

You can define any number and combination of the following field types:

date field

single-line text field with a maximum number of characters

multiple-line text field with WYSIWYG editor

drop-down selection containing a list of topics

Reorder how the fields are displayed in the administration interface

Hide fields that are no longer in use

Translate the field names

Change the data type for a field

Media Archive

View/search all of the images in the system

Edit image metadata

Scale images any way you want on the fly with Renditions. Scaled versions are cached

File Attachments

Attach files to articles

Files can have descriptions

You can specify whether the file should be displayed in the browser or pop up a download window

Comments

Readers can make comments to articles

Comments can be linked to a forum

Flexible implementation: allow anyone to comment, just subscribers, or just readers logged in

Comments can be moderated

reCAPTCHA plugin for spam prevention

News Desk ingest of agency feeds, such as a Thomson Reuters feed

Feedback message system, with file attachments

Blog, Interview, Debate and Polls plugins

SoundCloud plugin for audio content

Site Design

Newscoop has its own template language specifically made for online newspapers and magazines. It allows you to customize your site however you want.

You have access to the following data objects:

publications

issues

sections

articles

topics

current user

current language (e.g. automatically show the user an article in their language)

Control statements such as IF and LIST

Include other templates

Built on the SMARTY templating engine which allows easy customization and inclusion of third party modules

Administration

Dashboard with custom widgets for frequently used information

Import an entire site from WordPress, or any articles in the NewsML format

Fine-grained access control, you can create different user types such as:

journalists

editors

photographers

photo editors

subscriber managers

site administrators

Multiple author support with contact information, biographies and article tracking

Accurate article-read statistics gathered through Javascript. This prevents inaccurate read counts caused by caching of web pages.

All administration actions are logged

Security

Login page secured against automated scripting attacks with reCAPTCHA

Login password is encrypted when sent to the server

Works with SSL on both the front-end and back-end

Backup

Backup and restore directly in the administration interface

Command-line "backup" and "restore" scripts make it easy to backup your entire site and restore it with one command

You can also easily transfer your site from one server to another using these scripts

Automated Feedback and Bug Reporting

If something goes wrong in the administration interface, a special page will appear which allows you to submit the problem back to the Newscoop team

You can also submit feedback directly in the administration interface, such as suggestions or feature requests

Developers

Completely open-source LAMP development stack (Linux, Apache, MySQL, and PHP)

Newscoop and all the libraries it uses are fully compatible with GPLv3

Easy to use object-oriented API to develop plugins or alternative interfaces

Easy-to-read code

Open development process - all planning, specs, and reviews are done in the open. Developing Newscoop is a community process

Newscoop Pro

Newscoop Pro (http://www.sourcefabric.com/en/newscooppro/) services help to make your Newscoop site even better. From web design to hosting, technical support to feature development, Sourcefabric's global team of experts takes care of things so you can concentrate on making great content.

Full commercial support

Paid per-incident support is available from Sourcefabric (http://www.sourcefabric.org). Guaranteed support contracts ensure a 24-hour response time

If you need additional features in Newscoop, they can be ordered from Sourcefabric at a very reasonable cost and delivered in a timely manner

Sourcefabric has a team of full-time developers working to make Newscoop easier to use, with the features you want

Community support is available via mailing lists and forums (http://forum.sourcefabric.org)

Getting started

Newscoop enables you to host multiple, multi-lingual publications on the same web server. The process of setting up a new on-line publication with Newscoop can be divided into three steps:

Configuring the publication, and specifying the theme to be used

Establishing the structure of your publication, with issues and sections

Adding content, managing content, and publishing it

This part of the Newscoop manual is aimed at editors and journalists working their way through these three steps. It assumes that the web server you will use is already up and running with Newscoop, and that a theme has been designed for your publication.

If you are a system administrator setting up a Newscoop server for production use, you should also read the installation and administration chapters, later in this manual, before you begin work on the server. If you chose to install a sample theme when following the Installation Steps chapter, you can use this theme to learn about Newscoop in advance of having your own theme designed. Theme design is covered in the companion manual The Newscoop 4 Cookbook, available from Sourcefabric.

If you do not yet have your own Newscoop server running, you can follow the steps in this manual using the Newscoop demonstration server and sample themes provided by Sourcefabric.

Logging in

The first step begins with logging in to the administration interface of your Newscoop server. This is a special interface which is only available to the staff of your publication. Readers who subscribe to your online publication will log in using the home page of your website instead.

By default, the URL you should enter into your web browser for the administration interface is the name of your website, followed by admin. For example:

http://www.example.com/admin/

If you installed Newscoop yourself, you would have set a password for the admin user during the installation. See the chapter Installation steps for details. If not, your system administrator should have already provided you with a user name and password. Below the User name: and Password: fields, click the drop-down menu to select an interface Language other than the default of English, if your language is available. Then click the Login button.

If you have previously logged in using a different Language, your browser will have saved a cookie to remember your preference. If your browser does not allow you to switch languages, you may need to delete this cookie. Please refer to the documentation for your web browser for details of how to do this. In Mozilla Firefox, for example, you can delete cookies by clicking Clear Recent History on the Tools menu.

For journalists and news organisations which do not have their own Newscoop server yet, the administration interface of the Newscoop demonstration server can be found at:

http://newscoop-demo.sourcefabric.org/admin/

Please remember that the demonstration server is a public site, so you should not enter any private information there. A variety of guest login accounts are set up on this system, and the passwords for these accounts are shown on the login page.

Feedback data

When you log into Newscoop for the first time, you may see a pop-up window asking for your permission to send feedback data to Sourcefabric. This data about your server installation helps Sourcefabric to improve Newscoop. Click the Yes, Help Newscoop button to send the data, or click the Remind me in 1 week button to skip this step for now.

This data is collected according to the Sourcefabric privacy policy which you can read online by clicking the link in the pop-up window. If you wish to review the data before sending it to Sourcefabric, you can do this by clicking the link Show feedback data to be sent. This action expands the pop-up window to show the data for your installation.

You may need to scroll down inside the window to see all of the feedback data. If you wish to close the pop-up window without clicking either button, you can click the x icon in the top right corner.

The Dashboard

After logging into the administration interface for the first time, you'll see a page which Newscoop calls the Dashboard. This an area containing widgets for the administration functions that you use most often, including:

Your Articles (copy written while you were logged in to Newscoop)

Recently Modified Articles

Submitted Articles (the journalists have marked this copy as ready for the editor)

Recently Published Articles

Most Popular Articles (by the number of readers)

Pending Articles (copy which has not yet been assigned to a specific publication)

Sourcefabric.org News reader

Sourcefabric.org newsletter subscription

Maps search

Wikipedia Search

Sourcefabric.org Blog reader

You can move widgets around on the page, delete widgets you don't need, and add new ones, so as to customize the administration interface to suit your needs. Click the Add more widgets link to open a page where you can select from other potential widgets.

On the Widgets page, click the Add to dashboard link for each widget that you would like to start with. You can refine your choice of widgets later, as you get to know the Newscoop administration interface and its functions.

After all the widgets that you require have been added to the Dashboard, they change from black to green text to show that they are active. Click the Go to dashboard link to return to the Dashboard page.

Each widget has at least three small blue icons in the upper right corner. From left to right, these icons maximize the widget, provide general information about the widget, or close it. When a widget is maximized, it takes up the full width of your browser window, and all of the other widgets are hidden. Clicking the close icon returns the widget to normal size and reloads your other widgets.

Some widgets also have a spanner (wrench) icon in the upper-right corner, which enables you to adjust a setting for that particular widget. For example, clicking the spanner icon on the Maps search widget lets you set the default map location.

How permissions change the interface

The appearance of the Newscoop administration interface changes, depending on the permissions that a particular staff member has. Each user sees only the options that he or she has the authority to use. A typical staff user (a section editor or journalist) will only see some of the options available to a fully authorized administrator (such as the publisher, or senior manager).

When you log into the Newscoop administration interface, across the top of the page you will see the main navigation menu, containing the options available to you. Here is how two typical users would see the main menu differently. Firstly, here's how the Actions sub-menu looks when an administrator is logged in:

And this is how the same Actions sub-menu looks when a journalist is logged in:

Main menu

The main Newscoop menu contains a link to the Dashboard page and up to five sub-menus, depending on the permissions of the user who is logged in. These sub-menus are Content, Actions, Configure, Users, and Plugins. The menus shown below are for an administrator user, who has access to all sub-menu options.

Content

Here you can find the Publications on the server, reader Comments, Feedback messages, the Media Archive, and the Search page for all of the articles in the Newscoop database. You can also find links to display Pending articles and Featured Article Lists.

For each available publication, there are quick links to the latest three issues on a sub-menu, and a full list of sections within each issue on further sub-menus.

Actions

This menu provides quick access to the most commonly used functions, including Add new article and Edit your password. It is also the place to find the Import XML and Backup/Restore features.

Configure

Here you can configure the System Preferences for your publication, and a number of other functions. Themes are the template packages which determine how Newscoop displays content to readers and subscribers. Article Types describe the format of your articles, while Topics allow you to categorize your articles. The Languages option specifies the languages that journalists have to choose from when creating articles.

Countries enables you to specify the name of a country in the local language for each territory. The Localizer allows you to translate the administration interface. Clicking Logs will show you the recent activity of all staff users, for auditing purposes. Support allows you to set whether details of your server can be sent back to Sourcefabric, in order to assist support engineers. Image Rendering enables you to set cropping sizes for different types of images in your publication.

Users

Here you can Manage Users of your website, and Manage Authors. You can also Manage User Types, or Create a new account. The Manage Authors page enables you to maintain contact and biographical information for each of your publication's contributors, as well as track the articles that they have worked on. The Manage Authors page is separate from the Manage Users page so that contributors can be managed even if they do not have a Newscoop login account.

Plugins

This sub-menu provides access to additional functionality for Newscoop, which might include any of the Blogs, Debate, Interviews, Polls, reCAPTCHA or SoundCloud plugins.

Help and Logout

Up in the top right corner of the administration interface are two additional links, to the right of the full name associated with your login account. Help links you to the on-line version of this manual, via the Sourcefabric website, and other support resources. Logout ends your session and returns you to the administration login page.

Creating a publication

Newscoop content is organized in a hierarchical structure, which conforms to the tradition of newspapers and magazines: Publications, Issues, Sections and Articles. Each publication is made up of issues; each issue is in turn made up of sections, which are comprised of articles.

A 'breadcrumb trail' of links is present on every page of the administration interface, just beneath the main navigation menu, which enables quick navigation between different levels of the publishing hierarchy. This hierarchy is also shown at the lower end of the Content menu, if any publications have been created.

For example, by clicking on a publication named the "The Prague Times", you can see the list of issues for that newspaper. By clicking the name or number of a particular issue, you enter its list of sections. By clicking the name of a section you enter the article list. By clicking the article title in that list, you can edit the article.

Your system administrator may have already created a publication for you. To create a new publication, click Content on the main navigation menu, and then click Publications from the sub-menu. On the Publication List page that appears, click Add new publication.

If your login account does not have administrator rights, you will not be able to see the Add new publication option. You may need to ask your system administrator to enhance your access rights. Bear in mind, however, that a good administrator would be reluctant to hand over those rights to more than a handful of people. If you are not among those select few, your Publications List will only contain the publications already hosted on your Newscoop server.

The Add new publication window has three sections; General attributes and Comments on the left, and Subscription defaults on the right. There's a Save button beneath these sections.

The fields in the General attributes section are:

Name of the publication (e.g. "The Prague Times")

Default Site Alias is the name of the web server on which your publication will be hosted (e.g. www.example.com). This alias should match the ServerName configured for the web server by your system administrator, unless the Newscoop installation is in a subdirectory such as www.example.com/subdirectory/ or similar. Newscoop enables multiple publications to be hosted on the same physical web server, providing that a unique alias has been set up for each publication by your system administrator. If you try to access the alias URL before this setting is made, you will see an error message indicating that the alias was not yet assigned to a publication

Default Language sets the default language of the publication for readers

URL type selects between the display of full path URLs, or short URLs which are better for pasting into newsletters and social media posts

Search engine optimization checkboxes help your articles to be found on the Internet

The fields in the Comments section are:

Comments enabled? Check this box if you would like your readers to be able to comment on articles

Article comments default to enabled? If you check this box, then article comments for any new article will default to "enabled"

Subscriber comments moderated? If you check this box, comments by subscribers will be hidden from readers until they have been reviewed by a staff member

Public allowed to comment? Check this box if non-subscribers will be allowed to make comments on articles

Public comments moderated? If you check this box, non-subscriber comments will be hidden from readers until they have been reviewed by a staff member

Use CAPTCHA to prevent spam? The reader must type in random letters or numbers shown before they can post a comment

Moderator address If comments are moderated, each time a comment is posted an email is sent to this address, such as 'editor@example.com'

From address is the sender email address shown on the email sent to the moderator, which should be a valid address in case of bounces. An address such as 'robot@example.com' is suitable

Subscription Defaults

The fields on the right side of this page are related to subscriptions, which you can adjust later if you wish. First, you have to select a time unit for your subscriptions; which could be days, months, weeks or years.

You can set two types of subscriptions: paid and trial. Paid subscriptions have the following properties:

Currency: the subscription currency. Even if a subscription request is sent and the currency setting is changed before payment, the information about the subscriber's payment due is correctly recorded

Time unit cost per one section:

for one language: the price for access to a particular section in a single language

for all languages: the price for access to a section in all available languages

Default time period: the usual duration of the paid subscription. This value is used when a reader subscribes through the website. The period for a particular subscription can be modified from the administration interface

After clicking the Save button, Newscoop will confirm that the new publication has been created.

Set subscription by country

You can return to this page at any time by clicking the Configure icon in the Publication List. On the right hand side under the Subscription defaults fields, there will now be a link Set subscription settings by country which will enable you to specify different default time periods for individual countries.

This link opens the Subscription Settings by Country page, which has a link Set subscription settings for a country.

If you follow this link, it opens a page with a drop-down menu for selecting the country in question, plus fields for the default trial and paid subscription lengths. Clicking the Save button returns you to the Subscription Settings by Country page, which should now show the setting you have just made.

Debates

At the bottom of the Configure publication page is an area titled Debates. Click Edit to open a pop up window in which you can click Add new debate to add a debate to the publication.

Enter the dates of the debate, the details of the debate question and the possible answers. Then click the Save button.

The new debate will now be listed in the pop-up window.

Choosing a theme

Having created a publication, the next step is to choose a theme, which will determine the publication's appearance and functionality for your readers. On the Configure sub-menu, click Themes.

This will open the Theme Management page, displaying a table with the available themes installed by your system administrator, such as The New Custodian or Rockstar. You may also see a theme called Empty which is a skeleton for creating your own theme. See the Newscoop 4 Cookbook technical manual for the details of theme creation.

Each of the current publications has a corresponding tab at the top of the table, for example "The Prague Times".

The main templates within each theme can be previewed in the window on the left side of the table, by hovering your mouse over the links for Issue page, Section page and Article page. Click any of the links to open a larger preview in a pop-up window. You can close this pop-up window by clicking the x icon in the upper right corner.

To assign a theme to your new publication, click Actions on the right side of the table row for the theme of your choice. On the menu which pops up, click Add to publication, then the name of the publication that you have created. This action creates an independent copy of the theme for your publication. Any changes made to the theme for other publications on the same Newscoop server will not affect your publication.

Newscoop should report Assigned successfully, just above the Actions menu. The tab for your publication should now display the theme that you chose. The theme can be unassigned from the publication using the Actions pop-up menu in this tab, if it is not being used by any issue in that publication.

You should now reload the image renditions to suit the new theme - see the chapter Image rendering for details.

Importing and exporting themes

A new theme can be added to Newscoop by clicking the Import theme button on the Theme management page.

This action opens a dialog box which enables you to select a theme file from your computer. Click the Browse button to locate the theme's zip file, then click the Import button.

Newscoop should report that the import was successful. The new theme should now be displayed in the table on the Theme management page.

To export a theme, click Actions on the right side of the table row for the theme you have chosen to export, then click Export Zip from the pop-up menu. Your web browser will then download the zip file to your computer.

Creating an issue

Once you have successfully created your publication, click on Content, then Publications in the main navigation menu. Click on the name of your new publication in the Publication List (e.g. "The Prague Times"). This will lead you to the Issue List, which will be empty to begin with.

Click on the Add new issue link. If you are creating the very first issue, you will see a page with fields for basic information which you will need to enter.

The Name is the name of the issue in the particular Language you specify in the drop-down box underneath. The Number is a unique identifier for this issue. If this is the first issue you've ever published, then number "1" would be appropriate. The issue number cannot be changed once it is specified.

If you are planning to add older issues of your publication at a later stage to the same Newscoop server, you should continue the numbering series. For example, if you just published issue 154 of the "The Prague Times" before moving to Newscoop, you should assign number 155 to the first issue you are creating with Newscoop. This is because Newscoop uses the highest available published issue number to determine which issue provides the front page articles for the publication. Therefore it is important to start with issue numbers that are high enough to enable back-issues to be added later.

The URL Name field is only useful if you specified the "URL type: short names" option when you created your publication. You can use letters, digits and the underscore character. No other punctuation or spaces are allowed. This URL name will show up in the URL bar of the reader's browser. For example, if you enter "2012_1" here, the URL for the issue might look like this:

http://www.example.com/2012_1

Clicking the Save button takes you to the Change issue details page, where various options for the issue are set. On the left hand side, there are settings for the default templates for the front page, sections and articles. If you do not have your own Newscoop theme yet, you can select templates from one of the themes that are provided with Newscoop (see the chapter Choosing a theme).

Issue publishing schedule

On the right hand side of the Change issue details page are boxes which enable you to set the publishing schedule for the issue. An issue can be set to be published at a specific date and time, and unpublished at another date and time.

Existing actions are shown in the Issue Publishing Schedule table. Individual actions can be deleted from the table by clicking the red x icon on the right side.

Copying a previous issue

If this is not the first issue you've created, you will see a different page after clicking the Add new issue link in the Issue List, with links for two different actions: Use the structure of the previous issue, or Create a new structure.

Use the structure of the previous issue will be the usual option to choose once you are ready to publish additional issues, because it automatically creates a new issue with the same sections as the preceding one. For this reason, you should create all the sections you require before copying the structure into additional issues. Clicking this option opens a page which enables you to specify the new issue number.

The sections of the new issue will be empty, so that you can begin to add articles. Before that, the first step you should take is to set the Name of the new issue, because this field is not automatically updated; it will start out with the same name as the last issue. You will also need to set a unique URL Name for the issue. After changing the Name and URL Name fields, click the Save button to update the new issue.

Creating a section

Click on Content in the main menu, then the name of your publication, to view the Issue List. By clicking on the name of an issue in the Issue List, you will enter the Section List. At first, a new issue will have no sections.

If you click on the Add new section link, you will see the corresponding page appear. Here you must specify the Name, Number and URL Name for the new section. While you can change the Name of the section later, the section number is set permanently at the time when the new section is added.

The URL name will be part of the URL for the new section, if you chose the "short names" option when you created the publication. For example, the URL including the section name might be:

www.example.com/2012_1/1/

if the issue URL name was 2012_1 and the section URL name was 1.

The section Description is optional. This field is useful for displaying content that doesn't change very often. The information in this field will only be displayed on your site if the theme you are using supports it.

If you would like to make the new section available to all existing subscribers, you should check the box Add section to all subscriptions. Then click the Save button.

Your next step is to adjust the templates for the new section on the Configure section page, if required.

Here, you may wish to select custom templates for this new section and its articles from the drop-down menus. If you don't have custom templates for specific sections, you can use the default section and article templates instead. Then click the Save button, further down the page, to confirm your choice.

Creating an article

The Article List for a particular section can be found by clicking on Content in the main Newscoop navigation menu, and following the hierarchy of Publications, Issues and Sections. Alternatively, use the 'breadcrumb trail' of links just below the main navigation menu. You can create a new article by clicking the Add new article link at the top of the Article List.

The Add new article page contains three fields for entering basic information about the article you will create.

Name: The title of the article. You will be able to rename the article at any time in the future.

Type: Select one of the available article types from the drop-down menu. If you have not set up any custom article types yet, only the defaults of news, page or link will be available. Refer to the later chapter on Article Types for details on how to create custom article types. The choice of Article Type that you make for this particular article cannot be altered later.

Language: Select the language the article will be written in. A drop-down list will contain the additional languages you have defined for this publication, if any. The language choice you make at this stage is final, although you can create a translation of the article into another language.

When you click the Save button, you will be taken to the Edit Article page.

Editing an article

The appearance of the Edit article page depends on the Article Type you are working on. Below, the default "news" type is shown.

Control buttons

At the top right of the Edit article page is the Toolbar, with the Edit, View and Preview buttons, as well as the Save All, Close, and Save and Close buttons. Beneath this are the menus in the Sidebar. See the chapter The sidebar for more details.

Edit, View and Preview buttons

There may be times when you want to view articles rather than edit them. In this case, clicking the View button in the Toolbar speeds up the page display process. Click the Edit button to return to editing mode. The View button also enables you to see an article when it is locked by another user on the Newscoop server.

The Preview button opens a pop-up window with the article displayed as it will appear to readers, using the current template. Once the article is published, there will be a Go to live article button here instead.

Save All, Close, and Save and Close buttons

Save All saves the fields in the editing area without closing the page, whereas Save and Close both saves the page and closes it, unlocking the page for other authorized users to edit further. The Close button closes the page without saving any changes, which your web browser will usually warn you about.

This warning message does not appear in the Opera web browser, so if you are using that particular browser, you should make sure that you have saved any changes before leaving the page.

The editing area

To the left of the Sidebar is the editing area for the article.

The "news" Article Type has the following fields in the editing area:

Name: The title of the article. The number of characters allowed was set when this field was created.

Authors: These drop-down menus enable you to credit multiple contributors, including Author, Writer, Photographer, Editor, or Columnist. Type the contributor name in the box to the right. Click the + Add another author button to include additional contributors, or click the x icon to the right of an author row to remove them.

Date: Since the content of this field can order the way your articles are displayed to readers, you can change the date and time if you choose, by clicking the small calendar icon.

deck: a sub-heading or article teaser.

full_text: the main body of the article.

Details of the editing features are covered in the chapter Using the TinyMCE editor.

Comments

Beneath the editing area, there's a box in which you can enable reader comments on the article, if you wish. Your publication's theme must be designed to enable this feature.

The radio buttons can have one of three values: Enabled, Disabled, or Locked. The "Locked" option means that readers cannot post comments, but any existing comments are still shown. Click the blue Comments link to minimize the box, saving space in your browser window.

Individual comments can be Approved for publication, Hidden or removed with Delete, using the radio buttons immediately below the comment. A comment can be edited and then saved with the Save comment button, made more prominent on the article page with the Recommend button, or responded to with the Reply to comment button.

Beneath the displayed comments is a form which staff members of your publication can use to add a new comment of their own.

Using the TinyMCE editor

The text editor in Newscoop (a program called TinyMCE) enables contributors to perform extensive article formatting from within a web browser. You may be familiar with most of the functions of TinyMCE from using word processors such as Microsoft Word or OpenOffice.org: functions such as bold, italic, underline, and text alignment.

Move your mouse over the small icons to see a tooltip explaining what they do. Standard formatting keyboard shortcuts also work, including Ctrl+b for bold and Ctrl+i for italic).

The editor that you see in your own Newscoop installation may look different to the one shown above, depending on the extent of your user permissions. The editor should contain all the functionality you need for your publication, but if you feel something vital is missing, you could discuss the matter with your Newscoop system administrator.

There are several Newscoop-specific features in the editor. The first is Insert/edit internal link, which enables you to select a word or phrase from your article and link it to an article within the same Newscoop publication, or within another publication on the same Newscoop server.

Clicking this icon opens a pop-up window with drop-down menus enabling you to select a specific Language version of a Publication, Issue, Section and Article to link to. There is also a drop-down menu for the link Target, such as opening the linked article in a new browser window.

After you click the Insert button, the internally linked text will be shown in blue and underlined, like a web link.

Selecting some text in the article then clicking the File Attachment paperclip icon in the TinyMCE toolbar opens a pop-up window. This window enables you to create a download link from the specific word or phrase selected to one of the files attached to the article. See the chapter The Sidebar for details of how to attach files to articles.

Another Newscoop-specific feature is Newscoop Subhead, which enables you to specify where your text will be broken into different pages. (Your Newscoop theme must support this feature in order for the page breaks to work).

Enter the text for the subhead into the editing window, select it with the mouse, then click the Newscoop Subhead icon. The subhead text will now be shown with a dashed outline.

To the right of the Newscoop Subhead icon, click the Insert image picture icon to select from the images attached from the article, or click the Insert/Edit Embedded Media film-strip icon to insert a link to a video file. Attaching images to articles is covered in the chapter The Sidebar.

The sidebar

On the right side of the editing area is a vertical Sidebar containing further options for the new article, in a series of boxes. (If your computer's display is very small, the Sidebar may appear at the lower end of the page). Like the Comments box beneath the editing area, many of the boxes in the Sidebar can be minimized by clicking on the blue link in the box name.

Article types other than "news" may contain different boxes from those shown below. Whenever you edit any of the fields in the boxes, you will need to click either the Save All button at the top of the edit area, or any of the Save buttons in individual boxes.

The Actions menu

The Actions menu contains short-cuts to commonly used functions:

Unlock: When you begin editing an article, you automatically "lock" it to prevent conflicting edits from other users on the server. Using the Unlock action means that other authorized users can edit the article again. This action puts the article into View mode. If no other staff user has locked the article, you can click the Edit button to resume editing.

Delete: Removes the article permanently from the Newscoop server.

Duplicate: Copies the article to any publication, issue, or section on the same Newscoop server.

Translate: Creates a new copy of the article for translation into another language.

Move: Moves the article to another publication, issue or section on the same Newscoop server.

The Status menu

The Status drop-down menu indicates the copy flow state of the article. There are four states that the article can be in:

New: The article is still being written. Once the contributors are ready for the article to be seen by the editorial team, they should change the status to "Submitted".

Submitted: The article is under review by the editor or editors. Once the editors decide that the article is ready for the public to see, the status should be changed to "Publish with issue", "Published", or scheduled for publication at a later date and time.

Publish with issue: The article will be published when the issue it belongs to is published. This action is only visible if the issue in question has not yet been published.

Published: The article belongs to a published issue, and is now viewable by the public.

The Language menu

The Language menu is to the right of the Actions and Status menus. If multiple languages have been configured for the publication, a drop-down menu will enable switching between translated versions of the article. If not, the language of the article will be displayed here.

Publish Schedule

This box enables you to schedule the article to be published, unpublished, promoted or demoted at a certain date and time. It is only visible if the article has the status Publish with Issue or Published. Click the Add Event button to open a window with a calendar and publishing options, such as showing the article on its section page, or the publication's front page, at the specified time.

Note that the date fields have a fixed syntax of YYYY-MM-DD (four year digits, two month digits and two day digits, in that order). If you enter dates manually in any other format, you may get incorrect results.

Geolocation

Clicking the Add button in the Geolocation box opens a pop-up window which enables you to set points of interest (map references) for the article. Points of interest from multiple articles can be displayed on a single map by your Newscoop templates.

First, enter a title for the map, and then search for a place name to centre the map on. Click the place name in the search results to centre the map on that location. Then use the vertical control on the left side of the map, with plus and minus buttons, to zoom in to an appropriate scale.

On the right side of the pop-up window, set the horizontal and vertical size of the map using the plus and minus buttons, and choose a base layer from the available mapping providers.

You can now add points of interest to the map by clicking on places, and entering names and descriptions for them.

Click on the Edit link to enter more details about the point of interest in a pop-up window, including external URL, image and video links. You can also change the colour of the point marker in the pop-up window.

Keywords & Topics

Click in the Keywords field to enter words that describe your article to search engines, then click the Save button. In the Topics box, click the Edit button to select from a list of topics and subtopics in a pop-up window. Topics allow you to set attributes for the article, which may be used to display the article in a certain way.

If the topics already created by your Newscoop administrator are insufficient to describe the article, you can click the Add new topic button. New topics that you create should be categorised with a parent topic, if appropriate, and the language of the topic phrase.

After clicking the Save and Close button, the Topics you have selected are displayed in the Keywords & Topics box in the sidebar. Click the blue x icon on the right side of each row to remove a topic from the table.

See the chapter Topics to find out how topics are categorized.

Switches

Switches enable the contributor or editor to activate certain Newscoop features.

The switches for the default Article Type of 'news' are:

Show article on front page: Check this box if you want the article to be displayed on your publication's front page for that issue. This setting is independent of the corresponding setting in the Publish Schedule box. If you wish the article to appear on the front page at a specific time other than the issue publication time, leave this box unchecked and add an event to the Publish Schedule.

Show article on section page: Check this box if you would like the article to be displayed on the relevant section page. Also independent of the corresponding setting in the Publish Schedule box.

Enable Rating: Check this box if you wish logged-in readers to be able to rate this article. The New Custodian theme includes an example five-star rating widget.

Visible to non-subscribers: Check this box if you want to make the article visible to readers who have not yet subscribed.

highlight: A custom switch which enables a news article to be highlighted for readers.

Info

The Info box displays general information about the article.

Reads: A number indicating the popularity of this particular article. An article which has not yet been published will display N/A here.

Type: Refers to the Article Type, the format of the article. You cannot change this field once it has been assigned.

Number: The article's unique identification number on the Newscoop server.

Created by: the name of the Newscoop user who created this article. You cannot change this field.

Webcode: A unique code intended to help readers find the article online. Webcodes can be displayed as part of a corresponding article in a print publication.

Images

The Media box has three tabs: Images, Slideshows and Files. On the Images tab, click the Attach button to select an image to go with the article.

This action opens a pop-up window with a tab Add New Image, which you can use to upload images from your computer. This tab supports drag and drop if your browser is recent enough, such as Mozilla Firefox version 3.6 or later.

The image you are uploading must have the minimum number of pixels for the smallest rendition used in your publication, in order to maintain quality. The image rendering feature of Newscoop means that the same image can be used at various crop sizes, in different parts of your publication's theme templates, without having to be resized manually. See the chapter Image Rendering for more details.

Alternatively, you can specify the URL of an image on another web server. This feature is useful for linking to a frequently updated image, such as the output from a webcam, which is published at a consistent URL. Of course, you should make sure that any external image used in your Newscoop publication does not breach the copyright of the photographer.

Then click the button Next: Upload and edit metadata in the upper right corner to enter details of the image.

This action opens the Edit Image Data box with fields for Description, Location and Photographer. You must enter some text in at least one of these fields to continue. This metadata will help you and your publication staff to find these images later. Then click the Next: Place Images button.

Another tab in the pop-up window enables you to attach an existing image from the Media Archive. There is a Search box for searching the text metadata of these existing images, such as location or photographer names.

Whether you have uploaded a new image or selected one from the archive, clicking the Place Images button opens a window in which you can preview the image renditions set for this publication, such as a 600 by 450 pixel crop.

Click on the radio button underneath the original image on the lower row, then click Set selected as default image to change the default image for the article. When multiple images are attached to the article, you can drag and drop alternative images to the upper row. This changes the image used for a particular rendition. To return to the default image for the rendition, click Use default in the upper right corner of each rendition.

You can adjust the cropping of an image rendition by double-clicking on it. A crop box will appear over the full-size image. Use your mouse to move and resize the crop box to your satisfaction, and then click the Save button. When you have finished adjusting the cropping of all the image renditions, click the Done editing button.

Finally, click the Finish button in the upper right corner to return to the Article Edit page.

Captions can be edited later by clicking the Edit Metadata button, which opens the Edit Image Data box.

Slideshows

If you have a selection of images to illustrate your article, you can use the Slideshow tab to create an article gallery. This will be displayed as a series of thumbnails on which the reader can click to view your images full-size. To create a new slideshow, click on the Slideshow tab, then the Create button.

In the pop-up window which opens, enter a Headline for the slideshow, and select a rendition size from the drop-down window. Then click the Create button.

Next, drag and drop your choice of images for the slideshow from either the Attached Images tab or Media Archive tab. You can also add an online video URL to the slideshow by clicking the Add video button.

Click any image in the slideshow row to edit its caption, in the field below the image.

The cropping for any image in the slideshow can also be adjusted in this pop-up window. Once you've finalised the caption and cropping, click the Save button to the right of the image.

The updated captions and crops should now be shown in the Slideshow window.

You can now return to the Edit Article page by clicking the Save and Close button in the upper right corner.

To edit the slideshow later, click on its name in the Slideshows tab of the Media box. Existing slideshows can be attached or detached from the article being edited by clicking the Attach/Detach button. This action opens the Attach slideshows box.

Files

You can attach any kind of file you wish to an article. The article template must be set up to display these files, if readers are to have access to them. To begin, click the Attach button in the Files tab of the Media box. The pop-up window which opens has two tabs, Attach new file and Attach existing file. To attach a new file, click the Browse button in the first tab to select a file from your computer.

Enter a Description for the file, and optionally click the radio buttons to set translation and download options. Then click the Save button.

The attached filename will now be displayed in the Files tab of the Media box, with its description, format, size and a download link. To remove the file from the article, click the blue x icon in its row.

Files that have been uploaded to the Newscoop server remain available in the Attach existing file tab, even if they are not presently attached to an article.

Related Articles

Clicking the Edit button in the Related Articles box enables you to create a list of other relevant articles using a drag and drop interface. On the left side, click the Filter link to select a publication, issue and section to search from the drop-down menus. The final drop-down menu enables you to filter by other criteria, including Author or Language.

Check the Display Newswires box to show matches from agency feeds. There is also a field for text searches on article content, which has a magnifying glass icon. Search results are shown in the table beneath.

Click the View article link to preview the content of a search result on the right side of the pop-up window, then click the Close button to return to the Related Articles list.

When you have decided on a related article in the search results, drag and drop it into the Related Articles list on the right side of the pop-up window. Items in the list can be dragged to sort them into a new order. Then click the Save button. When the list is complete, click the Close button to return to the Edit Article page.

Featured Article Lists

A Featured Article List is a custom article list created for a specific purpose. For example, it could be used in a particular page template to display a mixture of articles from different sections. To add the current article to a specific list, click the Edit button in the Featured Article Lists box. This action will open a pop-up window with a drop-down list of available featured article lists.

Click the Add to list button to add the current article to this specific featured article list. Drag and drop the articles in the list to change the ordering, if you wish, then click the Save button.

Finally, click the Close button to return to the article page. The names of the lists which the article is part of, if any, will be shown in the Featured Article List box. To create a new Featured Article List, see the chapter Managing content.

Multi date events

If a Complex Date field is part of the Article Type for the article you are editing, you will see a Multi date events box in the Sidebar. See the chapter Article Types for details of how to add this type of field.

Clicking the Edit button in this box opens a Multi date events pop-up window. This window enables you to set dates and times for events by clicking on the rectangular fields in the top-left corner, marked with calendar and clock icons.

For an event on a specific date, click one of the radio buttons for Start time, Start & end time, or All day, and select the relevant Complex Date from the drop-down menu beneath. In this example, the Complex Date refers to an open house viewing event which is expected to happen on several different days, and is part of a custom Article Type used in the Property section of the publication. These dates and times can then be displayed as part of an article about the property for sale, in a special treatment devised by your theme designer.

If you click Start & end time an extra field will appear for the end time, while All day events do not have a start time. For a regular event, you can click the Recurring button, and select daily, weekly or monthly repeats. Enter a text comment if you wish, then click the blue Save button.

The event will now be shown in the calendar to the right side of the pop-up window. It will also be shown to readers of the published article, if your publication's theme supports the feature. Clicking on an event in the calendar enables you to edit it.

Click the Close button in the upper right corner of the pop-up window to return to the Edit Article page.

Plugins

At the lower end of the sidebar, you may see additional boxes related to Newscoop plugins that your system administrator has installed. See the chapter Using plugins for more details.

Using plugins

Plugins enable your system administrator to add functionality to your Newscoop installation without having to write a large amount of code. They can also help you to make better use of the content already in your Newscoop publication.

Plugins are managed via their own sub-menu on the main Newscoop navigation menu. See the chapter Installing plugins for more details. Some plugins have a corresponding box in the sidebar of the Edit Article page, when the plugin is active. Currently, there are four plugins installed by default with Newscoop:

Debate: When this plugin is active, a box in the sidebar of the Edit Article page enables you to attach a specific reader voting debate to a specific article. Clicking the Attach button opens a pop-up window in which you can select the debate that you require. You can also create a new debate there.

Polls: Your readers can vote on a question; the question can be set dynamically and can be multilingual. The new Debate plugin offers more features, but Newscoop 3 publications may have stored existing reader votes using the Polls plugin. So the Polls plugin is provided in Newscoop 4 to make upgrading publications from Newscoop 3 simpler.

reCAPTCHA: This plugin enables a CAPTCHA on your Newscoop publication's comment and registration forms, helping to deter spammers. To use this feature, you will need to obtain a reCAPTCHA key from http://www.google.com/recaptcha and enter it into the plugin's configuration page.

SoundCloud: This plugin enables audio files, such as podcasts and radio programmes, to be hosted on the third-party SoundCloud service. You will need to register for a SoundCloud account on http://soundcloud.com/ in order to make use of this feature. When this plugin is active, a box in the sidebar of the Edit Article page enables you to attach a specific audio file to a specific article.

Other plugins available include:

Interviews: Enables on-line interviews for your Newscoop publication; readers can see the latest questions and answers.

Blogs: This plugin has been replaced by integrated blogging features in Newscoop 4 onwards.

Translating an article

Articles in the Newscoop database can be translated into another language by clicking the Translate link in the Article List...

...or by selecting the Translate option from the Actions drop-down menu at the top of the Sidebar.

Either action opens a page which enables you to set a new Article name for the translated article. You must also set the Language of the translation from the drop-down menu of available languages. If the language you wish to translate into is not shown in the menu, see the chapter Languages for details of how to add a language to Newscoop.

If the language which you are translating into does not have a suitable issue and section available, you will be prompted to create them. Enter both the name and URL name for each, if required, then click the Save button.

After this action, you will be directed to the Edit Article page for the new translation.

Translating maps

When translating an article which contains a map, points of interest on the map are not displayed by default, as they may now be in the wrong language. In the translated article, click Edit below the map picture in the Geolocation box of the Sidebar.

Enter the translated name for the map at the top left of the pop-up window. Then click the triangle for each point of interest to expand its box. Click Edit in this box to translate the name of the point of interest, if necessary, then click Show to display it to readers of your publication.

The names of any points of interest which remain hidden will be struck out in the Geolocation box of the Sidebar.

Managing content

The Article List page is displayed when you enter a particular section via the Content menu, by following the hierarchy of publications, issues and sections. Alternatively, use the breadcrumb trail beneath the navigation menu to jump to the section that you're interested in, and then click the Go to Articles link.

To edit a specific article, simply click on its Title, and you will be taken to the Edit Article page. A locked article is one that is being edited at that moment, as shown in the list by a padlock icon to the left of its name. Articles being edited by other users on the Newscoop system also have a pink background in the list.

To find out who is editing an article and when it was locked, click on the article Title in the list. A page will open with the name of the editor, and buttons offering the options of unlocking or viewing that particular article. Using the View option means that you will not be able to overwrite another contributor's work while it is still in progress.

Multiple actions

The Article List enables you to perform other actions besides editing the article, and you can perform these actions on multiple articles at once. To perform an action on one or more articles, click the checkbox to the left of each article Title. The articles you have selected will be highlighted with a light blue background.

Now that you have selected the articles, go to the Select action drop-down menu at the top of the list, and select the action you would like to perform.

For example, if you select Toggle: 'On Front Page', Newscoop will display the selected articles on the front page of your publication, if the articles have been published and the issue they belong to is the latest one. A small green pop-up window will confirm that the action has been processed. Some actions will take you to another page, because they require further input. These actions requiring additional input include Publish schedule, Duplicate to another section, and Move.

The article list also allows you to rearrange articles as they appear on your section page, if your section template supports this feature. To move an article's position in the list, simply click anywhere in its row, hold the mouse button down, and drag the row to the position that you require. The new arrangement of the articles is not finalized until you click the Save order button underneath the Article List.

On the right hand side of the Article List are additional columns which relate to other functions, such as the number of Comments posted on the article, or the number of Reads it has had from the public. In the upper right corner of the list is a Show / hide columns button which enables you to select the columns that you wish to view.

To re-order the articles by Title, the number of Comments or Reads, or the Publish Date, click on the appropriate column heading. Column headings that enable sorting have a double chevron icon. After you click the Save Order button, the order of the articles on the relevant section page will be updated. For example, you could identify the article which had the most reads in a particular section, and move it to the top of its section page.

Comments

The Comments entry on the Content menu opens a page which enables you to approve, edit or delete reader comments on articles. See the chapter Moderating Comments for more details.

Feedback

The Feedback page on the Content menu is similar in function to the Comments page, except that Feedback messages can only be sent by logged-in Newscoop users, such as staff or subscribers. Feedback messages do not have to be attached to or displayed as part of any particular article, and can also have image or document attachments. For instance, they can be used by subscribers to send images from a breaking news event to the publication.

In order for feedback messages to work, there has to be a link to the feedback form in the templates of your publication.

Media Archive

Also found on the Content menu, the Media Archive page provides an overview of all non-text content in your publication's database. It has three tabs; one for Images, one for Slideshows, and one for other Files, such as PDF, audio or video files. New content can be uploaded directly to the Media Archive using the Add new image, Add new slideshow or Add new file link next to the blue plus sign icon on the respective tab.

The main difference between the tabs is that images and slideshows are opened in the reader's web browser by default, whereas files can be set to be downloaded by the reader instead. For this reason, it's also possible to upload images into the Files tab, if you wish readers to download them.

Search

Apart from the Article list, Newscoop includes another tool which provides an overview of content across all publications on the server. The Search feature is accessed via an entry on the Content menu, and has an interface somewhat like an Internet search engine. You can filter the search options according to a specific publication, issue or section. You can also filter by a number of other criteria, such as the author or publication date of the article.

Pending articles

The Pending articles page on the Content menu displays an article list of new copy submitted by journalists, or articles imported via XML. It is similar in function to the Pending Articles widget on the Dashboard. Click on the Title of an article to edit it.

Featured Article Lists

A Featured Article List is a custom article list created for use in a specific template, such as the front page of your publication. To create a new list, click on Featured Article List in the Content menu, then click the blue Add list button.

In the Featured Article Lists page which opens, enter a name for the new list into the List Name field. Then click the blue Save button.

After this, you can drag and drop articles from the Available Articles box into the Featured Articles box, as shown in the chapter The sidebar.

Import XML

On the Actions menu there is an entry Import XML which enables you to import formatted content from other publishing systems, such as Adobe InDesign or WordPress.

The XML tags that you use in the export must match those used by Newscoop. For example, to match the default Article Type news you could use the following fields:

<?xml version='1.0' encoding='utf-8'?>

<articles>

  <article>

    <name>Gigantoraptor Discovered in Mongolia</name>

    <keywords>Gigantoraptor, Dinosaur, Mongolia</keywords>

    <author>Sarah Staffwriter</author>

    <deck>Newly discovered dinosaur roamed the desert 80 million years ago</deck>

    <full_text>Imagine an ostrich that tipped the scales at 3800 kilograms, standing twice as tall as a human, with a solid tail and massive body, plus long, feathered arms with sharp claws, and a turtle-like beak.

The huge size of Gigantoraptor is a surprise because it is a member of the oviraptorids, a group of flightless feathered dinosaurs closely related to birds, which mostly weighed less than 80 kilograms. Known since the 1920s, oviraptorids were toothless and probably omnivorous. "Gigantoraptor would be a strange animal in any environment," says Tom Holtz of the University of Maryland in College Park.

The partial fossil skeleton was found in Inner Mongolia and is from a young adult about 8 metres long. Many of Gigantoraptor's features are unique, suggesting dinosaurs were more diverse than has been recognised, says lead author Xu Xing of the Institute of Vertebrate Paleontology and Paleoanthropology in Bejing (Nature, vol 447, p 844). Its combination of slender limbs and long lower legs may have made it the fastest runner among large two-legged dinosaurs, he says.</full_text>

  </article>

</articles>

Multiple <article> tags can be enclosed by the top-level <articles> tag, so that you can import a large number of articles from a single XML file.

Once you have an appropriately formatted XML file exported from the other system, use the Import XML page to upload it. You will need to set the Article Type, Language and Publication that you wish to import into, and also if you wish to Overwrite existing articles with the same names. Setting an Issue and Section to import into is optional.

The newly imported articles will be listed in the Pending widget on the Dashboard, as well as the Pending articles page on the Content menu. In either of these lists, you can click on the article Title to edit the article.

If there is a mismatch between the tags in the XML file you have tried to import, and the fields in the Article Type that you have attempted to import into, Newscoop will list the empty fields and the problematic tags. You can then re-export the XML file from the other application with the correct tags.

Should the XML file be incorrectly formatted altogether, Newscoop will refuse to import it.

Publishing articles

As mentioned previously, an article in Newscoop can have one of four different states: New, Submitted, Published, or Publish with issue. When you create an article, the Status: drop-down menu at the top of the editing area is set to New by default. Once your article copy has been drafted and is ready for the editors to see, click on this drop-down menu and change the Status: to Submitted.

After changing the status to Submitted, the page will be reloaded, and a pop-up message will indicate that the change in status of the article has been saved. The editors will be able to see the fresh submission when they log in to Newscoop. Articles which are ready for editing are listed in the Submitted Articles view on the Dashboard.

In addition, if their user accounts have been configured for notifications, an email will be sent to the editors to inform them about the new submission.

Once the editors have made any required changes and are happy with the way the article reads and appears, they can publish the article by changing the drop-down Status: menu to Publish with issue. Again, the page will be reloaded, and a message will indicate that the article's status has changed.

When an article status is set to Publish with issue it becomes visible on your public web site, as soon as the issue it belongs to is published. This feature enables co-ordinated publishing of complementary articles when a complete issue is ready for the public. You can check the publication status of a particular issue in the Issue List. If the issue in question has already been published, then new articles can be seen by the public immediately after their status is changed to Publish.

The process is fully reversible, so you can unpublish articles on your site (or even change their status to New) as easily as you can publish them. Note that only authorized users are allowed to publish articles, so you will not be able to access this option if your system administrator has not granted you this permission.

Scheduled Articles

You also have the option to publish (or unpublish) an article at a specific date and time in the future. You can do this from the Edit article page, using the Add Event button in the Publish Schedule box.

After clicking on Add Event, a pop-up window will appear with a calendar and a series of three possible actions for the date and time that you choose: Publish/Unpublish, Show on front page/Remove from front page, and Show on section page/Remove from section page.

Choose the date by clicking on the calendar, or enter a date code manually. Then enter the time for the event, and choose one or more actions to perform at the time you have chosen. After you click the Save button, the pop-up window will close, and the event will appear in the Publish Schedule box.

Once the event is created, the actions will be performed automatically for you on the date and at the time you specified. After the event time, the Status drop-down menu will change to Published, and the event will no longer be shown in the Publish Schedule box.

Publishing an issue

You can draft and edit articles for a particular issue on your Newscoop server without any of the material being available to the public. You can then publish an entire issue all at once, and there are two ways to do it: immediately, or by scheduling the issue to be published at a specific date and time in the future. Note that within an issue, you can publish or unpublish each article individually; for instance, to hide an article even if the issue it belongs to has already been published.

Publishing immediately

To publish an issue straight away, click the Publish link for the relevant issue and language edition in the Publish Date column of the Issue List.

A pop-up dialog will ask you to confirm that you want to publish the issue in question, because this action implies that any articles which are set to Publish with issue (in the Status menu) will become available to the public instantly. See the chapter The sidebar for details.

After clicking the OK button, the issue will be published, and the Issue List will be updated with the publication date and time of that particular issue. To reverse the process, click the Unpublish link. Again, a pop-up dialog will ask if you are sure you want to change the issue's status.

Scheduled publishing

To schedule an issue to be published automatically at a specific date and time in the future, click on the Schedule link for the issue and language edition you require in the Publish Date column of the Issue List. This will open the Change issue details page, where you can set the date and time for this particular issue to be published. Over on the right hand side of the page are the Issue Publishing Schedule and Schedule a new action boxes.

Click the small calendar icon to the right of the Date: field to select a specific day for publication. Set the time you require, and select either Publish or Unpublish from the drop-down Action menu. Set the Publish all articles: drop-down menu to Yes or No, depending on your requirements. Choosing Yes here means that articles which are part of the issue will be published, regardless of their copy status at the time. Then click the Save button. The Issue Publishing Schedule box will update to display the newly scheduled action.

Note that you can also set the issue to be unpublished at a specific date and time in the future as well. This event will be displayed in the Issue Publishing Schedule box.

To cancel a scheduled action, click the corresponding red x icon in the Delete column. You will be asked to confirm the deletion.

If you click on the Date/Time link for a future event, the Issue Publishing Schedule page will open, and you will be able to edit the event. Click the Save button to confirm the schedule change.

Article comments

Reader comments can be switched on and off for a whole publication, for a particular Article Type, or for each individual article. You can also take advantage of Newscoop's management features to moderate comments from subscribers, or members of the general public.

Comment settings in the Publication List

To set the default comment setting at the publication level, go to Content on the main navigation menu, and then click Publications. In the Comments enabled column of the Publication List page which appears, publications in which readers can post comments are shown with a green light icon. Click on the Configure icon for the publication you wish to enable or disable comments for.

This action opens the Configure publication page. In the Comments section, there is a checkbox labeled Comments enabled? and a variety of options which enable you to fine-tune comment settings.

Comment settings for Article Types

Perhaps you want to enable comments for all articles of a particular type, for example news, but not enable them for another type, such as page. Click Configure in the main navigation menu, and then click Article Types from the submenu. On the Article Types page which appears, clicking the red or green light icon in the Comments enabled? column toggles the setting for each article type.

After you click on a green light icon, you will be asked if you are sure you want to deactivate comments for that article type.

Comment settings for individual articles

Comments can be enabled or disabled for a number of individual articles at once, using the Article List page. Click Content on the main navigation menu, then use the sub-menus to navigate to the publication, issue and section that you require. In the Article List page that appears, use the checkboxes in the left side column to select the articles you want to enable or disable comments for. Then use the drop-down Actions menu and click on Toggle: 'Comments'.

If the publication or Article Type that the articles belong to have comments disabled, then enabling comments for those individual articles will have no effect.

Moderating comments

To prevent spam or defamatory posts from appearing in your online publication, it's often necessary to moderate comments from readers before they are published. A CAPTCHA can prevent some automated spam, but it cannot prevent spam being entered into your publication's comment form manually.

If you have configured your publication so that subscriber or public comments are moderated, the reader will see a message indicating that their comment has been sent for approval before it will be published - or not published, as the case may be.

The list of reader comments can be found by clicking Content, then Comments, on the main navigation menu. By default, all comments are shown. On the left hand side of the Comments page are checkboxes for showing just New, Approved or Hidden comments, and checkboxes for the display of only Recommended or Unrecommended comments.

The default list length is 25 comments per page. There is a Search field to help you find a specific set of comments, perhaps on a topical subject. Search results can be sorted by Author, Date, or Article name, using the double chevron icons next to each column heading. The sort direction can be changed by clicking on the triangle icon which will appear in place of the chevrons.

Click the checkbox to the left of a comment to select it, or click the checkbox in the table header to select all comments. Once selected, a drop-down Actions menu above the comment list enables you to update a New comment's status to Approved, or Deleted if it is spam. Alternatively, the comment can be Hidden, which does not delete the comment permanently.

Click the Ban/Unban user button to open a page in which a user can be banned from commenting on the publication in future. Bans can be made on a specific user name, email address, IP address or a combination of these details. There is also the option to Delete all comments posted by a particular user when that user is banned.

On the right-hand side of the comments list under Article is a link to a preview of the article each comment relates to, and details of the article's publication and section. There is also a shortcut link Go to edit article in case a clarification or revision is required, in light of the comments made. Mouse over a comment for a row of moderation buttons to appear, including Quick edit, Reply, Delete and Recommend.

System preferences

The System Preferences page is accessed via Configure in the main Newscoop navigation menu. This page allows you to control some advanced aspects of your Newscoop server, so it is recommended that access is reserved for administrators only.

General Settings

The first section of the System Preferences page is for General Settings.

Here is what each of the options means:

Site On-Line: These Yes and No radio buttons enable you to put the whole Newscoop server on-line or off-line, for example in case of scheduled server maintenance.

Site Title: The default name for your publication's website. Your theme designer can configure your publication's templates to display this information.

Site Meta Keywords: The default keyword meta tags in your header template, for search engine optimization.

Site Meta Description: The default description meta tag in your header template, also for search engines.

Time Zone: This field enables you to override the server's own time zone setting, which is typically set to Greenwich Mean Time (GMT) or UTC. You may wish for your Newscoop interface to display local time instead, for instance when scheduling publication time for a particular issue.

Database Cache Engine: enables or disables the APC cache, which can improve Newscoop performance. APC is an alternative to xcache.

Template Cache Handler: Select DB to enable the cache for templates.

Imagecache lifetime: The time that images will be cached for, from 30 seconds to infinite.

Allow password recovery: Whether users can get a password reminder by email. Note that if this feature is enabled and your email account is compromised, your Newscoop publication can easily be compromised in turn.

From email address: The email address used for password reminders from the system.

Secret Key: The security key that Newscoop can use for integration of web services and other advanced features.

Session Lifetime: Enables you to specify the maximum duration of Newscoop administration sessions without re-authentication, which is a security feature.

Keyword separator: Specify the separator for Keywords in the Edit Article page (comma or hyphen).

Number of failed login attempts before showing CAPTCHA: A security measure designed to foil password-guessing robots.

Maximum upload file size: The maximum size of attachments that users of your server can upload.

Automatic collection of statistics: This option enables the collection of statistics on reader access to publications on the server. You may wish to click No if you use a third-party statistical service, as disabling the collection of statistics may reduce the load on your Newscoop server.

Email Settings

This section of the page configures Newscoop to use your prefered mail server.

SMTP Host: The server that Newscoop will use for sending out email notifications.

SMTP Port: The port number that Newscoop will use on the specified email server.

Email contact: The main contact email address for your Newscoop server.

Email from: The email address used when sending notifications from Newscoop.

Editor Settings

The next section of the page is for Editor Settings, which refer to image handling.

The fields in this section enable you to specify the default Image Resizing Ratio, or default width and height, for images inserted inline with article text. The resizing ratio takes precedence over any Resizing Width or Resizing Height value which is set here. If Ratio is not set but both Width and Height are set, then Newscoop will use the value which results in a smaller image size. The default settings here can be overridden by the ratio, width or height settings for a specific inline image set on the Article Edit page.

Image sizes which are part of the publication templates, such as the main story image in an article template, are configured separately, via the Image Rendering page on the Configure menu.

If the Zoom enabled for images in article content? radio button is set to Yes, readers can enlarge article images in your publication's pages by clicking on them. This zooming feature works for any images inserted inline with the article text.

External subscription management

This section of the page is related to external subscription management software.

If you select the Yes radio button for the Reader subscriptions managed externally? option, the subscription management features in the Newscoop administration interface are hidden. The subscription data is still held in the Newscoop database, which your system administrator will have connected to your third-party subscription management software.

Database replication server

This section enables you to set up Newscoop to operate on two servers at once, which is a safety feature in case of hardware or network problems.

Selecting the Yes radio button for the option Setting up a Newscoop Replication Server? displays four fields:

Database Replication Host: The name or IP address of the remote database server.

Database Replication User: The user name to connect with on the remote server.

Database Replication Password: The password to submit on the remote server.

Database Replication Port: The port number to connect to on the remote server (the default port number is 3306).

Template filter mask

Enter keywords for templates that you wish to hide from the template editor accessible via the Theme Management page. For example, templates that are no longer in use, but you do not wish to delete from the server.

Scheduled tasks

Run scheduled tasks externally? means to use the server's own cron scheduler for automated tasks, rather than the scheduler included in Newscoop.

Geolocation settings

This section enables you to specify how maps linked to articles will be displayed, and which Internet mapping service will provide the data.

Video settings

The default width and height of both externally and locally hosted video files can be set in this section, to make sure that the videos are displayed correctly in your publication's page templates.

MailChimp settings

These settings are for integration of Newscoop with the MailChimp.com mailing list service.

Facebook settings

These settings are for integration of Newscoop with the Facebook API.

Finally, the Save button updates your preferences.

Themes

Themes control the look and feel of your Newscoop publication. Each publication has its own theme, containing a set of templates created by your web developers. The Newscoop administration interface includes a theme management and template editing tool, which you can find by clicking Configure on the main navigation menu, then Themes.

This will open the Theme Management page, displaying a table with the available themes. Each of the current publications has a corresponding tab at the top of the table, for example "The Prague Times".

On the right side of the table row for the theme you wish to modify, click the Actions menu, then Edit.

Some of the template files are organized into folders, shown at the top of the table on the Theme templates tab.

Clicking on the name of a folder displays the files within that folder.

In turn, clicking on a file name opens that file in the template editor. This feature enables your web developers to make quick changes to templates on a running Newscoop system.

You should only make changes to the templates if you know what you are doing, because any modifications will have an immediate impact on the appearance of your publication. This feature is also useful for editing templates on a development server before they are copied to the publication's production server.

Theme settings

The Theme Settings tab enables you to change the name of a theme, version numbers, or the specific template files used for the four master templates. Like the template editor, this feature should only be used by competent web developers, as it can have an immediate effect on the appearance of your publication.

Optionally, themes can define Article Types which you can match to existing Article Types on your Newscoop installation. If the theme defines any Article Types, they will be shown at the end of the Theme Settings tab. See the Article Types chapter in this manual for more details.

Article types

Article Types specify the information that Newscoop will require from the journalists adding a particular kind of article to your publication. For example, a feature story is likely to require more elements than a brief news item. By default, Newscoop has the Article Types link, news and page set up, but you can create as many as you need.

To create or manage your Article Types, select Configure, then Article Types from the main navigation menu. This action opens the Article Types page. Article Types consist of a sequence of fields, with each field holding a certain kind of data. Currently, there are seven kinds of fields available:

Single-line text: this type of field is set to contain a maximum number of characters, and does not support HTML tags. Its appearance and character set is determined by the template in use.

Multi-line text with WYSIWYG: this type of field can be up to 16MB in size. The journalist can insert images, audio, video, links (external, internal or to attached files), and formatting tags, using the TinyMCE editor. Subheads can be used for article pagination.

Date: this is a standard date field with a fixed syntax of YYYY-MM-DD (four year digits, two month digits, two day digits, separated by hyphens).

Topic: this type of field can be used to categorize articles. Each topic field has a root element, for example Entertainment. When the journalist types the article into Newscoop, this field will display a drop-down menu containing available subtopics, such as Movie Review or Theatre Review.

Switch: enables checkboxes which activate particular features to appear in the Switches box on the Sidebar of the Edit Article page. For example, you might see the switch highlight, which would be used by your template to display the article in a special place on your publication. (Newscoop comes with two switches by default, Show article on front page and Show article on section page).

Numeric: allows you to add numeric elements to your articles, such as longitude/latitude, temperature, or exchange rate.

Complex Date: used for adding multi-date events to an article. Enabling this field adds a Multi date event box to the Sidebar of the Edit Article page.

Newscoop makes a distinction between the Template Type Name or Template Field Name and the Display Name for each Article Type and field. The Template Name is limited to letters, numbers, and underscores (no spaces) and is used internally by your Newscoop template. The Display Name is the part that the journalist will see, and can be translated into other languages.

Adding a new Article Type

Click the Add new article type link at the top left of the Article Types page.

The Add new article type page will appear. The first step is to enter the Template Type Name of the Article Type you wish to create. In this example, we'll create an Article Type with the template type name review_article - note that it has an underscore, instead of a space, between the words review and article.

After you click the Save button, you will be prompted to enter the Template Field Name of the first field in the new Article Type. Select one of the seven field Types available from the drop-down menu, for example Topic. For this particular field type, we'll also have to select a root element, such as Entertainment, and then the subtopic which is the parent of our new field, such as Entertainment / Review.

The Single-line Text field has an optional Characters limit setting which can be used to prevent over-long headlines and other elements breaking carefully designed layouts.

If you add a Multi-line Text with WYSIWYG field, you have the option to mark the field Is Content, using a checkbox. This means that each time this particular field is served by Newscoop, it counts as a page read for statistical purposes. This box should be unchecked for fields that are to be displayed as 'teasers' on publication front pages and section pages, to avoid counting article reads which did not really happen.

There is also the option to set the height of the WYSIWYG editor in pixels; either Small (250 pixels), Medium (500 pixels), Large (750 pixels) or Custom. Setting appropriate sizes for these fields helps your staff by reducing the amount of scrolling required on the Edit Article page.

After clicking the Save button, the Article type fields page is shown. The Article Type that you are currently working on is shown in the breadcrumb trail beneath the main navigation menu.

Click on the Edit and translate human-readable field names link to add a Display Name for this new field. Select the language you require from the Add translation drop-down menu, and enter the display name for the new field in this language. Then click the blue Translate button. You can add as many translations as you need for your staff users.

The Article type fields page will now show the Display Name for the field, together with a language code (in brackets) to indicate its translation. Note that the Display Name can contain spaces, or be capitalized differently from the Template Field Name.

Continue to add new fields to this Article Type, until you have all that you need. Then click the link Back to Article Types List, next to the blue arrowhead icon. This action will return you to the Article Types page.

Editing Article Types

You can add further translations of Display Names for your new Article Type after clicking on the Edit and translate human-readable field names link in the Article Types List.

Article Types are not set in stone; they can evolve as your publication evolves. For example, you can hide old Article Types that are no longer in use. Toggle whether a type is shown by clicking on the colored light icon in the Show/Hide column - green for shown, red for hidden. A pop-up dialog will ask you if you are sure about this action.

Hiding a type is less dangerous than deleting it; the delete action will remove the associated content from the server. The delete button is a red cross icon, over on the right side of the page. Use this button with caution!

As usual when carrying out an action that will have an impact on your publication, Newscoop will ask you if you are sure.

In the Article Types List there is also a Comments enabled? column, which toggles reader comments on and off for a specific Article Type. For example, you might wish to disable reader comments for all entertainment reviews, but leave them enabled for news articles.

Article types can be renamed, simply by clicking on the Template Type Name in the Article Types page. Remember that if you change a Template Type Name, you cannot put spaces or other characters into it.

Before changing a Template Type Name for an Article Type that is already in use, check with your theme designer in case this action has an impact on the display of your articles.

Editing Article Type Fields

On the Article Type Fields page, fields can be renamed, given Display Names, hidden or deleted, just like Article Types. When you have more than one Article Type Field, you can re-arrange the order in which the fields show up on the Edit article page by clicking the blue up and down arrows.

To change a field type, for example, from Single-line Text to Multi-line Text with WYSIWYG, click on the corresponding link for that row in the Type column. The Reassign a field type page will open, on which you can select the new type from a drop-down menu. Then click the Save button to return to the Article type fields page.

After changing Article Type fields, you should create a new article to test that the updated fields are displayed as expected in the Edit Article page. Just as for the Template Type Name, when changing a Template Field Name which is already in use, you should also check with your theme designer for any effect on the display of your articles.

Merging Article Types

Newscoop enables you to merge two different Article Types so that content in fields from one type (the Source Article Type) is migrated to another (the Destination Article Type). This is a useful process to go through after adding or editing an Article Type, so that all previously written copy matches the new Article Type fields.

On the Article Types page, click the Merge types link. This opens the Merge article type page. Select the source and destination Article Types you wish to merge from the drop-down menus.

Next, choose the fields of the source which you'd like to merge into fields of the destination. Note that you cannot merge a larger source field, such as 'Multi-line Text with WYSIWYG', into a smaller destination field, such as 'Single-line Text'. If this merge was allowed, then content from the larger field could be lost.

The next screen displays the result of the potential merge. Any source fields which have not been mapped to destination fields are shown in a red font. You may need to create additional fields in the destination Article Type before attempting the merge again.

You can cycle through all the articles which will be merged, and preview the changes. Optionally, check the box to Delete the source article type. When you're ready, click the Merge button.

If there are no articles left belonging to the Source Article Type, Newscoop will display a warning message at the first step of the proposed merge.

Topics

In Newscoop, topics are the subject matters assigned by editors and journalists to articles, so that related articles can be identified and displayed together. A root topic can have many subtopics; for example: the sports root topic could have the subtopics football, basketball, and water polo. An individual article may have several root topics or subtopics assigned to it.

To review or create topics, click Configure on the main navigation menu, then click Topics from the sub-menu. In the Show Languages box on the Topics page, click the checkboxes for the languages used in your publication to display relevant translations.

To add a new root topic, select a language from the drop-down menu and enter a word in the Add root topic field. Then click the Add button.

To rename a topic, click the Edit link to the right of the topic or subtopic name. The name row will expand to show the Change topic name field. Update the name, and then click the Save button.

You can translate topic names so that they appear in the correct language when an author is editing an article. To translate a topic, click the Edit link to display the Add Translation field for that topic name. Select the language you are translating into from the drop-down menu, enter the translation of the topic name, and then click the Translate button.

If you translate a subtopic and its parent has not yet been translated, the parent topic will appear in its original language until you translate it.

To add a subtopic, click the Edit link next to the existing topic or subtopic you want to put the new subtopic under. Enter a word or two into the Add Subtopic field, then click the Add button.

The new subtopic will appear underneath its parent topic. Topics can be re-ordered by dragging and dropping, after which you will be prompted to click the Save order button in a pop-up window. You can also click the Reset order button in the pop-up window, if you wish. Any changes to topic ordering that you save may be reflected in lists of topics displayed to the publication's readers.

You can delete a specific topic or subtopic using the blue cross icon, on the right hand side of its row. If you attempt to delete a topic currently in use by an article, Newscoop will warn you about this.

Languages

While Newscoop's default language is English, you are by no means limited to publishing in that language only. Click Configure on the main navigation menu, then Languages from the submenu, to see the languages currently available.

The Language page enables you to configure support for languages that you wish to publish in. The Code column refers to the two-letter ISO 639-1 code name for each language. English, for example, is en, German is de, Spanish is es, Russian is ru, and so on.

Click on a name in the Language column to open a page for that language, which enables you to adjust month and day name translations. This feature ensures that automatically generated publication dates for an article in a particular language are displayed correctly to your international readers. Then click the blue Save button.

To add another language, click on the Add new Language button on the Languages page. You should enter the language name (both in your own language, and the Native name in the language itself), its Code Page (such as UTF-8 for the international character set) and its two-letter ISO Code (e.g. cy for Welsh).

After entering translations in all the fields, click the Save button at the end of the page. The new language will now be shown on the Languages page.

You may wish to limit the number of languages configured on your Newscoop server, in order to spare your editors and journalists from having to navigate long drop-down language menus. To remove a language, click Delete at the end of each row in the list. If there are any articles in that language in the Newscoop database, Newscoop will warn you in a pop-up window that the Language is in use and cannot be removed.

Countries

This page determines how country lists will appear in forms that readers fill in, for example when signing up for an email newsletter. It also enables you to create country lists in different languages. To see the list of country names in the default language, click Configure on the main navigation menu, then Countries on the sub-menu.

The Countries page shows an alphabetical list of countries, with the language they are displayed in, and a two-letter ISO 3166-1 country code for each name. Click the Language drop-down menu, then the Search button, to display country names in the specified language only.

Click on the name of a country to edit it, then click the Save button to return to the country list.

To translate a specific country name into a particular language, click the Translate link in that country's row of the list. In the Translate country name page which opens, select the target Language from the drop-down menu, and enter the translation into the Name field. Then click the Save button.

To find your translated country names later, use the drop-down Language menu at the top of the Countries page to select the language you are interested in, and then click the Search button. The search results, if any, will be listed below.

Newscoop's list includes almost all known countries by default, but if you have deleted a country and need to put it back, you can do this by clicking on the Add new country link next to the blue plus icon. You will be prompted to enter the country's two-letter ISO code, name and language. The drop-down menu will contain as many languages as you have defined in Newscoop's Languages page, found on the Configure menu.

Note that the language you are asked to specify is the language in which you are entering a country's name, not the language spoken in the country.

The Localizer

The default language for the Newscoop administration interface is English, but you can either use one of the many translations supplied with Newscoop, or create your own translation using the built-in Localizer tool. You can also use the Localizer to improve an existing translation, or adapt it for a regional dialect.

The first step is to check that the language you wish to translate into is listed on the Languages page, found on the Configure menu. If your target language does not exist there, you will have to add it to Newscoop first. See the chapter Languages for details. After that, you can open the Localizer by clicking Configure, then Localizer on the main navigation menu.

The Localizer works by enabling you to translate individual strings of text that appear in the Newscoop administration interface. There are 2463 strings in the whole of Newscoop, divided into 40 areas representing the various different pages of the interface. You can complete a localization with a team of translators working together, by tackling one area each at a time.

Select your source (Translate from) and target (Translate to) languages from the drop-down menus, and then select an Area to localize, such as Geo-location or Article Types. Areas that have not yet been fully translated are shown in a red font. You can save your work at any time by clicking the disk icon next to one of the input fields. When you have completed your translation, there is a Save button at the end of the page.

You will encounter strings with a dollar sign in them, e.g. "$1". This means that one or more words will be substituted by Newscoop in place of these characters. For example, the string "Signed in: $1", when displayed in the Newscoop interface, might be: "Signed in: Administrator". In this example, the user name "Administrator" was substituted for "$1".

TinyMCE, the WYSIWYG article editor incorporated into Newscoop, can also be localized. The strings in TinyMCE have to be edited manually by your system administrator, which is a task performed separately from the Localizer.

Automated translation

In order to make use of automated translation tools which feature a shared translation memory, such as Google Translate Toolkit (http://translate.google.com/toolkit/), Newscoop provides command-line scripts for the export and import of localization files in the standard .po format used by GNU gettext. The scripts can be downloaded from: https://github.com/sourcefabric/Newscoop/tree/v4.1/scripts/localization

Sending a localization back to the Newscoop team

We actively encourage Newscoop users to send us their language localizations. This makes Newscoop more useful for people around the world. Even if a similar language localization exists, it may not address your particular needs or regional differences. For example, there may be differences in Spanish between the language used in Spain and that used in Guatemala. In that case, you can localize Newscoop to your needs and share the localization with other users that speak your language or dialect.

For more information on how to contribute a localization to Newscoop, please email contact@sourcefabric.org

Logs

The Newscoop administration interface includes a feature which enables you to keep track of who has done what, and when, on your publication's server. You can examine Newscoop's audit log files by clicking Configure on the main navigation menu, then Logs.

The default log view displays all recent events on the Newscoop server, with ten listings per page, and the most recent events first. Click the Next link or page number just below the Resource Type drop-down menu to see previous pages. Like most features in Newscoop, the Logs page is multilingual, so you may see log entries in languages other than your own.

To examine the logs selectively, use the Resource Type drop-down menu to select a resource such as article, and then an Action Type, such as create. The Logs page will be refreshed to list only events corresponding to the specified resource and action types.

In the Resource and Diff columns, click the show link to view details of the logged event.

Support feedback

When you logged into Newscoop for the first time, you may have seen a pop-up window asking for your permission to send feedback data to Sourcefabric. This data about your server installation helps Sourcefabric to improve Newscoop. Later, you can click Support on the Configure menu to review or change the support feedback settings.

If you do not wish to send feedback data, click the Remind me in 1 week button. This action sets the Current status: message to You are NOT sending daily statistics. If you clicked the Yes, help Newscoop button, support data will be collected from your server according to the Sourcefabric privacy policy, which you can read online by clicking the link.

If you wish to review the data before sending it to Sourcefabric, you can do this by clicking the link Show feedback data to be sent. This action expands the pop-up window to show the data for your installation. You can scroll down inside the window to see all of the data.

Image rendering

Renditions are crop sizes for still images. The same image can be used at various crop sizes, in different parts of your publication's theme templates, without having to be resized manually. See the chapter The sidebar for more details of using image renditions.

The Newscoop system's name for a particular rendition, and its crop size, depends on the publication's theme. However, the name that your publication staff use for that size of image may be different. On the Configure menu, click Image Rendering to open a page with the names of the currently configured image renditions. In this page you can change the display name of one or more renditions. Then click the Save button.

The new display name for the rendition will be shown the next time your publication staff edit an article.

You should click the Reload renditions button after switching to a new theme with different rendition names or sizes.

User management

Newscoop's user management features enable you to control access for both staff users and readers. You can define User Types, such as Journalist or Editor, and manage author profiles independently. User management tasks have their own sub-menu, Users, on the main Newscoop navigation menu.

Initially, Newscoop has only one user account: admin. Do not delete this account, as it is needed to inform users of events on the Newscoop system. The email address associated with the admin account is used as the "Reply-To" address in these notification emails.

Creating user types

Instead of configuring each access right for individual users, which would be very time-consuming for a large publication, Newscoop enables you to create generic user types which can be assigned to multiple users. A User Type is defined by a checklist of tasks that the user is allowed to perform in the Newscoop system. This list of tasks ranges from creating, managing and editing publications, sections, or articles, to theme and plugin management.

Newscoop has five default user types, listed here in order from most to least powerful:

Administrator - full authorization

Chief Editor - has the right to create and delete issues

Editor - limited to basic article management and editing

Journalist - can create articles, but not delete them

Subscription manager - can't change editorial content

To create a new user type, click Manage User Types on the Users menu. On the right side of this page, enter a Name for the new user type in the Add new user type box. Then click the Save button.

When you return to the User types list, your new user type should be shown there. Click on its name to edit the permissions for that type.

Check the boxes for the rights that you want enabled for this user type. For example, under System / Notification, check get for these users to receive notification emails from the Newscoop system, or moderate-comment for these users to receive comment moderation notifications. A sub editor User Type would also need to have the edit box checked under Authoring / Articles. Then click the Save button at the top of the list.

Creating users

To add a new user to the system from the administration interface, click Manage Users on the Users menu, and then click the Create new account button.

You should specify the details of the new user including a username and password, whether the account is active, if the user should have access to the Newscoop backend (the administration interface), and if the user should have a public profile. Then choose a User Type (either one of the default types, or a custom user type that you have created). If the user account is to be linked to one of your publication's contributors, choose the Author name from the drop-down menu. (See the chapter Managing authors for details). Then click the Save button.

Changing user accounts

User accounts can be modified by clicking on the name of the user on the Manage Users page. If you would like to fine-tune the rights assigned to a user, click the Edit permissions button on the Edit user page. To add or edit a password-based or IP address-based subscription, click the Edit subscriptions button, which will open a pop-up window.

If the box Allow user's profile to be publicly displayed is checked, and the Save button clicked, the Edit profile button will become visible. Click this button to open a pop-up window in which you can add a picture of the user and biographical details.

Managing authors

Newscoop includes a feature for managing publication contributors, which you can find by clicking Manage Authors on the Users menu. Authors do not necessarily have corresponding login accounts on the Newscoop system, but they can still be credited as contributors to articles.

Further information can be saved for each author, using the three tabs on the right-hand side of the page: General, Biography and Content. On the General tab, multiple author types can be assigned for credits on a particular article, including Author, Writer, Photographer, Editor or Columnist. The Biography tab includes a field for uploading an author photo, while the third tab, Content, tracks any articles associated with the author.

Installing plugins

Once new plugins are downloaded to your computer, they can be uploaded to your Newscoop server. Plugins must be uploaded to the Newscoop server in .tar archive format. In the Newscoop administration interface, click Plugins on the main navigation menu, then Manage Plugins. This page lists the currently installed plugins. See the chapter Using plugins for details of each plugin available.

Click the Browse button to select the new plugin from your computer, then click the Upload button. Once a plugin is correctly installed, you will be able to administer it using separate entries on the Plugins sub-menu.

On the right side of the Manage Plugins page are check boxes which can be used to enable or disable each plugin. The red x icon enables you to delete a plugin from your system.

Plugins require support in your publication's templates in order to work. Each plugin includes sample templates for your theme designer to either copy and paste, or to use as a guide for their own template code.

System requirements

If you are upgrading a previous installation of Newscoop, please read the chapter Backup and upgrade before you begin.

Newscoop can be installed on any standard GNU/Linux distribution which can provide the Apache web server and PHP 5.3 or later. These distributions include Debian 6.0 (Squeeze), Ubuntu 10.04 LTS (Lucid), and Red Hat Enterprise 6.2 (Santiago). Installation instructions for these supported distributions are in the following chapters. Generic installation instructions are in the Manual installation chapter.

A MySQL server must be available for Newscoop to use, although this need not be installed on the same server as Newscoop itself. See the chapter MySQL installation for details.

Installation of a mail server, such as Postfix, is optional, because Newscoop can be configured to send notification emails via a remote SMTP server. This setting is mentioned in the chapter System preferences.

After Newscoop is installed for the first time, a browser wizard enables you to set database connection parameters and the default administrator password. This wizard is covered in the chapter Installation steps.

Backup and upgrade

Before upgrading a running server to the latest version of Newscoop, it is strongly recommended that you back up your publication database, theme templates, images, file attachments and configuration files. First, log in to the administration interface (see the Getting started chapter in this manual for details). Click on Actions in the main navigation menu. At the lower end of this menu, click Backup/Restore.

Making a backup

On the Backup/Restore page which opens, click the Make new backup link next to the blue plus icon.

A dialog box will ask you if you are sure you want to make the backup.

Click the OK button, and a pop-up window will display the progress of the backup.

Once the window reports Backup saved to file: you can click the Close link to return to the Newscoop administration interface. On the Backup/Restore page, the backup you just made should be listed, together with any previous backups.

Click on the disk icon in the Download column to save the gzipped backup tarball (with the .tar.gz file extension) from your Newscoop server to your desktop computer.

Restoring from backup

To restore from a previous backup file into another Newscoop system, click the Upload backup file link, and then select the backup from your desktop computer's file system.

Then, click the life preserver icon to restore from one of the listed backups. You will be warned that current publication and theme data will be overwritten by versions in the backup file, so you should make sure you have a backup of current data before continuing.

After the restore is complete, you should restart the Apache web server, for example on Debian or Ubuntu using the command:

sudo invoke-rc.d apache2 restart

When moving Newscoop data between servers, you may have to change the default publication alias to match a new domain name.

Command line backup

Newscoop includes two scripts that can be used for backup and restore on the command line of your server. They are found in the bin/ subdirectory of your Newscoop installation, such as /var/lib/newscoop/bin/ or a similar location. Because these scripts require access to your Newscoop configuration files, they must be run as the root user (with sudo on Ubuntu).

You can create a backup archive using the following command:

sudo /path/to/newscoop/bin/newscoop-backup [--silent] [--default-dir] [--help]

The optional arguments to the newscoop-backup command are:

--silent - don't display any message, whether successful or not

--default-dir - save the backup archive in the backup directory /path/to/newscoop/backup ; without this argument, the script will create the Newscoop backup archive in the current directory

--help - display usage information

The output of the command should resemble the following example:

sudo /var/lib/newscoop/bin/newscoop-backup --default-dir

Newscoop Backup Utility
-----------------------
Backup script version: 4.0
Backing up newscoop

Available disk space is 4.34 GiB.
The actual necessary space depends mostly on size of your database and multimedia files.
If the backup does not succeed, try to create more free space, please.

 * Backing up the database...done.
 * Backing up the themes...done.
 * Backing up images...done.
 * Backing up file attachments...done.
 * Backing up configuration files...done.
 * Creating tarball...done.
 * Cleaning up...done.

Backup saved to file:
  /var/lib/newscoop/backup/backup-newscoop-2012-04-03-14-29-41.tar.gz

The archive file name is backup-newscoop-[date_time].tar.gz and this tarball contains the whole Newscoop instance: the database, theme templates, images, attached files and configuration files. You can find the size of the backup archive with the ls -lh command, for example:

ls -lh /var/lib/newscoop/backup
total 26M
-rw-r--r-- 1 root root 26M 2011-06-22 16:21 backup-newscoop-2011-06-22-16-21-12.tar.gz

To restore from a specific backup archive, use the command:

sudo newscoop-restore -b backup_file [-t destination_database_name] [-e] [-c charset] [-s] [-l] [-f] [-h]

The -b backup_file argument is used to provide the full or relative path to the tarball previously created by the newscoop-backup script. For example:

sudo /var/lib/newscoop/bin/newscoop-restore -b /var/lib/newscoop/backup/backup-newscoop-2011-06-22-16-21-12.tar.gz

Newscoop Restore Utility
------------------------
 * Initializing...
   * Temp directory: backup-newscoop-2011-06-22-16-21-12
   * Initialization done.
 * Extracting files into temp directory...done.
 * Backup database name is 'newscoop'.
 * Destination database name (to be replaced) is 'newscoop'.

 All files in the following directories will be deleted.
 (The backup files will be copied to these locations)
    /var/lib/newscoop/templates
    /var/lib/newscoop/images
    /var/lib/newscoop/files
    /var/lib/newscoop/templates_cache
 Are you sure you want to continue? (y/N) y
 * Removing files in /var/lib/newscoop/templates...done.
 * Removing files in /var/lib/newscoop/images...done.
 * Removing files in /var/lib/newscoop/files...done.
 * Removing files in /var/lib/newscoop/templates_cache...done.
 * Restoring templates...done.
 * Restoring images...done.
 * Restoring file attachments...done.
done.
 * Upgrading templates...done.
 * Restoring the database newscoop...done.
 * Upgrading (if necessary)...
    * Upgrading the database from version 3.5.x...done.
 * Updating plugins (if necessary)...   done.
 * Cleaning up...done.

IMPORTANT!
You must restart the apache server for the changes to take effect!

The optional arguments to the newscoop-restore script are:

[-t destination_database_name] If provided, the script will use the database name specified instead of the one specified in the backup file. This is useful for transfer of a Newscoop publication to another server, where database names may be different.

[-e] Use the existing configuration files instead of the ones in the backup file. The existing configuration files in the current installation will not be replaced. This argument takes precedence over the -t argument; if both arguments are used together, the database name will be read from the existing database configuration file, not from the -t argument.

[-c charset] Convert the data from charset to UTF-8.

[-s] Convert the data from the database server character set to UTF-8.

[-l] List all available character sets and exit.

[-f] Don't prompt, assume 'yes' to questions.

[-h] Display usage information.

The newscoop-restore script will replace all existing data with the contents of the backup archive. You must run the script from a directory that you have write access to, because this script needs to create a temporary directory. Note that your backup database and files will automatically be upgraded if they are older than the currently installed version of Newscoop.

Finally, restart Apache as suggested by the message from the newscoop-restore script.

sudo /etc/init.d/apache2 restart
 * Restarting web server apache2
 ... waiting                                                  [ OK ]

With multiple installations of Newscoop on a single server, you must run the newscoop-restore script from the installation where you want to restore the matching data. For example, you may have installed Newscoop in two locations, /var/www/newscoop1 and /var/www/newscoop2. To restore the data for the newscoop1 installation, you must run /var/www/newscoop1/bin/newscoop-restore rather than the /var/www/newscoop2/bin/newscoop-restore script.

Running the upgrade script

After you have completed the backup successfully, update your Newscoop installation using either the automated or manual methods described in the following chapters. If using the manual installation method for an upgrade, the existing files in the Apache DocumentRoot folder (such as /var/lib/newscoop/) should not be removed first, unless you wish to perform a clean install.

Any changes that you have made to the sample themes supplied with Newscoop will be overwritten on upgrade. For this reason, you should rename the theme in the theme.xml file before upgrade, if you wish to keep those changes. See the Newscoop Cookbook technical manual for more details on how to create themes.

When the new files are copied over the existing Newscoop installation, your publications will automatically be taken offline, and a maintenance message will be displayed to your readers.

Next, check the .htaccess file in the DocumentRoot folder, particularly if you have made custom modifications to this file in a previous installation. When upgrading from Newscoop 3.5.x to 4.0.0 or later, you will need to replace the line:

RewriteCond %{REQUEST_URI} !/+templates

with the line:

RewriteCond %{REQUEST_URI} !/+themes

due to the renaming of the templates directory to themes. You should also check that the line:

RewriteCond %{REQUEST_URI} !(/+plugins/[^/]*)?/+javascript

has been replaced by:

RewriteCond %{REQUEST_URI} !(/+plugins/[^/]*)?/+js

due to a directory name change from javascript to js in version 3.5.3.

Then you should run the upgrade.php script in your web browser, for example:

http://www.example.com/upgrade.php

Once the upgrade is complete, your publications will automatically be put back online.

MySQL installation

Two components of the MySQL database management system are needed by Newscoop:

the server

the client programs

Depending on your requirements, you may prefer to run the MySQL database server on a separate machine from the MySQL client. The MySQL client must be installed on the same machine as Newscoop. On Debian/Ubuntu, installing the mysql-server metapackage will install the latest versions of both the mysql-server and mysql-client packages.

sudo apt-get install mysql-server

On Red Hat Enterprise Linux 6, you can install both the mysql client and mysql-server packages, enable MySQL to start when the server boots, and get it up and running, with the following commands (as root):

yum update
yum install mysql-server
chkconfig --levels 235 mysqld on
service mysqld start

Setting a MySQL root password

During the installation of MySQL, you should set a root password for the MySQL server, which is an important security feature. Note that the MySQL root user is different from the system root user, and should have a different password. Make a note of this password and keep it in a secure place, as you will need it shortly.

On Debian or Ubuntu, the password prompt is automatic, and looks like this in the server console:

On Red Hat Enterprise Linux, you have to run the mysql_secure_installation script after package installation in order to set the MySQL root password:

mysql_secure_installation

First, enter the current MySQL root password, or just press the Enter key if you have not set this password before. In the next step, press the Y key when prompted Set root password?, then enter the new password:

You will also be prompted to remove anonymous user access, disallow remote root logins to MySQL, and remove the 'test' database. Finally, you will be prompted to reload the privilege tables.

Setting up the Newscoop database user and password

An existing Newscoop installation should have a named database already set up on a MySQL server, with access protected by a username and password.

For a new installation of Newscoop, you will need to tell the installer to create a database to store your content in. This means you will need a MySQL user account, with database creation privileges. Using the root account as the username for everyday Newscoop access is not recommended. If you don't already have a suitable non-root account, you can set up a database username and password for Newscoop on the command line with the following steps.

1. Connect to the database management system using the root account and the password that you set during the MySQL installation.

mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.1.41-3ubuntu12.8 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

The shell prompt will change to a mysql> prompt, which requires a semicolon at the end of each command.

2. Create a user account for Newscoop to connect to the database, limiting it to connecting from the localhost if Newscoop and MySQL are to be installed on the same server. Otherwise, specify the server that Newscoop will be connecting to MySQL from. Make a note of the username (newscoop_user in the example below) and password (newscoop_user_password in the example) that you set, in a secure place. You will need these details during the Newscoop installation.

mysql> CREATE USER 'newscoop_user'@'localhost'
    -> IDENTIFIED BY 'newscoop_user_password';
Query OK, 0 rows affected (0.04 sec)

3. Grant access privileges to the user you just created. In this example, newscoop.* means all tables of a database called newscoop, which has not yet been created. You will need to provide this database name to the Newscoop installer, so that it can create the database later.

mysql> GRANT ALL ON newscoop.*
    -> TO 'newscoop_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)

4. Exit from the database management system and return to the shell prompt.

mysql> quit;
Bye

Installation on Debian/Ubuntu

Ready made packages of Newscoop are available for Debian and Ubuntu GNU/Linux via secure apt. This is the recommended installation method for Newscoop, because it offers automatic updates and resolution of package dependencies. This guide assumes that you have sudo or root powers on the target server - if not, you need to ask your system administrator to install Newscoop for you.

Setting up the secure apt repository

To add the repository that contains the Newscoop software, open the sources.list file in the nano editor with:

sudo nano /etc/apt/sources.list

Type your password, and the sources.list file will open. For Ubuntu Lucid LTS, scroll to the end of this document and add the following line:

deb http://apt.sourcefabric.org/ lucid main

For Ubuntu Maverick, substitute maverick in place of lucid. For Debian Squeeze, substitute squeeze in place of lucid. Ubuntu natty and oneiric are also supported.

Press Ctrl+O to write out the sources.list file, and Ctrl-X to quit the nano editor.

You now need to update your sources. Type:

sudo apt-get update

You will probably see an error message about a missing public key. To fix this, you need to install the sourcefabric-keyring package, which contains the package signing key:

sudo apt-get install sourcefabric-keyring

Update your sources again, to confirm that you are now using a trusted software repository:

sudo apt-get update

You should no longer see the error message about the public key.

Installing the Newscoop package

After confirming that the secure apt repository is set up, you can install the Newscoop package:

sudo apt-get install newscoop

This command will install all of the Newscoop components, plus any other packages that Newscoop requires in order to run. It will also upgrade a previous apt or .deb package Newscoop installation.

The package installer will ask you a few questions about the kind of server you want to set up, such as the Apache configuration that you require.

Optionally, install XCache for optimum Newscoop performance:

sudo apt-get install php5-xcache

Configuration options for XCache are covered in the Manual installation chapter.

Finally, check that Newscoop is running. Open a web browser with the URL of the web server that you have installed, such as http://www.example.com. For a test installation accessed from the same machine, this URL might be:

http://localhost/

If you see the Newscoop installer page, and you do not wish to adjust the default XCache settings, you can now skip the chapter Manual installation and proceed to the chapter Installation steps.

Troubleshooting

Default site still enabled

If you see a page which says "It works! This is the default web page for this server. The web server software is running but no content has been added, yet" then you need to disable Apache's default site and reload the configuration, with the commands:

sudo a2dissite default
sudo invoke-rc.d apache2 reload

Then refresh your browser.

No fully qualified domain name

If Apache complains about the domain name of the server, like this:

apache2: Could not reliably determine the server's fully qualified
domain name, using 127.0.1.1 for ServerName

it probably means that you have no domain name configured for the server. For a test server on a local network, you may need to add an entry to the /etc/hosts file of the server, like this:

127.0.1.1    www.example.com

and a corresponding entry into the /etc/hosts file of your desktop machine on the network, like this:

192.168.1.2   www.example.com

where 192.168.1.2 is the IP address of your Newscoop server, and www.example.com is the name of your publication's website. For a server on a larger network or the public Internet, ask your network administrator for the correct domain names and IP addresses to use.

Administration interface not found

If you chose the 'System-wide (all vhosts)' option when installing Newscoop, and installation completed, but attempting to access the administration interface results in the error:

Not Found

The requested URL /var/lib/newscoop/admin.php was not found on this server.

this means that you need to edit the file /var/lib/newscoop/.htaccess like so:

sudo nano /var/lib/newscoop/.htaccess

Add the line RewriteBase /newscoop under the line RewriteEngine On like this:

 <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /newscoop

Then save the file Ctrl+O, close nano with Ctrl+X, reload the Apache configuration:

sudo invoke-rc.d apache2 reload

and refresh your web browser.

Installation on Red Hat Enterprise

Ready made packages of Newscoop are available for Red Hat Enterprise Linux 6 via yum. This is the recommended installation method for Newscoop, because it offers automatic updates and resolution of package dependencies. This guide assumes that you have root powers on the target server - if not, you need to ask your system administrator to install Newscoop for you.

Subscribing to updates

A Red Hat Enterprise Linux server must be registered and subscribed to updates before it can download packages required for Newscoop to run. To list existing subscriptions, you can use the command (as the root user):

subscription-manager list

To register and subscribe a new server, you can use the commands:

subscription-manager register
subscription-manager subscribe --auto

You will need a Red Hat Network username and password in order to register the server. After subscription it is recommended that you update the server to the latest packages available, with the command:

yum update

For more details, please read the Red Hat Enterprise Linux 6 Deployment Guide at: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/

Setting up the Sourcefabric yum repository

For a Red Hat Enterprise Linux 6 server, open the file /etc/yum.repos.d/sourcefabric-rhel6.repo in an editor:

vi /etc/yum.repos.d/sourcefabric-rhel6.repo

and add the following lines:

[sourcefabric]
name=Sourcefabric's YUM repo
baseurl=http://yum.sourcefabric.org/RHEL6/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://yum.sourcefabric.org/RPM-GPG-KEY

[sourcefabric-source]
name=Sourcefabric's YUM repo - Source
baseurl=http://yum.sourcefabric.org/RHEL6/source/
enabled=1
gpgcheck=1
gpgkey=http://yum.sourcefabric.org/RPM-GPG-KEY

In the vi editor, press the Insert key to start editing, and the Escape key to enter a command. The command to write the file and quit is :wq followed by the Enter key. Then update the package list, with the command:

yum update

This command will also upgrade Newscoop, if it has been installed on the server using the yum method or .rpm package previously.

Installing the Newscoop package

1. Open a terminal, use the su command to switch user to root if required, and enter the commands to install the dependency packages:

yum install php php-gd php-mysql php-process php-xml ImageMagick
yum install system-config-firewall

Depending on the configuration of your server, you may have some of these packages installed already. The httpd package for the Apache web server should be installed as a dependency of the php package. See the chapter MySQL installation for details of database setup.

2. Download and install the Newscoop package with:

yum install newscoop

If this is the first time you have installed a package from the Sourcefabric yum repository on this server, you will be prompted to import a GPG package signing key, by pressing the y key.

3. Edit the VirtualHost directive in /etc/httpd/conf.d/newscoop.conf to uncomment the ServerName line, and add a fully qualified domain name such as example.com. You may also wish to set a ServerAlias such as www.example.com and an email address for the ServerAdmin. The directive should point to a DocumentRoot of /var/lib/newscoop/

<VirtualHost *:80>

    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin admin@example.com

    DocumentRoot /var/lib/newscoop

    <Directory /var/lib/newscoop>
       Options -Indexes FollowSymLinks MultiViews
       AllowOverride All
       Order allow,deny
       Allow from all
    </Directory>

</VirtualHost>

4. Configure Apache to start when the server boots, then make sure it has started, with the commands:

chkconfig --levels 235 httpd on
service httpd start

5. Check the crontab (scheduled tasks) installed for the apacheuser, with the command:

crontab -u apache -e

The output of this command should be similar to:

* * * * * /var/lib/newscoop/bin/newscoop-autopublish
0 */4 * * * /var/lib/newscoop/bin/newscoop-indexer --silent
0 */8 * * * /var/lib/newscoop/bin/subscription-notifier
*/2 * * * * /var/lib/newscoop/bin/events-notifier
0 */4 * * * /var/lib/newscoop/bin/newscoop-statistics

If the file is empty, you will need to enter these commands and save the file. The default editor for the crontab supports vi editor commands.

Firewall configuration

By default, the Red Hat firewall does not allow other machines to connect to running services. You can configure the firewall to allow the Apache web server to be accessed from the local network or public Internet, with the command:

system-config-firewall

This command runs a wizard which will guide you through the adjustment of firewall rules.

Using the Tab key to navigate, and leaving Firewall set to Enabled, select the Customize button by pressing the Enter key.

On the Trusted Services page, use the down arrow key to find WWW (HTTP) for the Apache web server, then select it by pressing the Space bar. Then Tab to select the Forward button and press the Enter key to continue.

Select the Forward button again to skip the Other Ports page. Then on the Trusted Interfaces page, press the Space bar to select eth+ for the Ethernet cards of your server:

You can skip the Masquerading, Port Forwarding and ICMP Filter pages by selecting the Forward button again, unless you have special requirements. On the Custom Rules page, select the Close button and press the Enter key.

You will now be asked if you wish to override the existing firewall configuration. Select the Yes button to continue.

This action will return you to the Firewall Configuration page, where you can select OK to return to the console prompt.

Finally, check that Newscoop is running and accessible. Open a web browser with the URL of the web server that you have installed, such as http://www.example.com. For a test installation accessed from the same machine, this URL might be:

http://localhost/

If you see the Newscoop installer page, you can now skip the chapter Manual installation and proceed to the chapter Installation steps.

Manual installation

The following manual installation method is intended for more experienced system administrators, and assumes that you have sudo or root powers on the target server. If ready-made packages of Newscoop are not available for your GNU/Linux distribution of choice, you can install the software manually using the tarball available for download from Sourcefabric:

http://newscoop.sourcefabric.org/

Dependencies

Before performing a manual installation, you will have to verify that all of the dependency packages that Newscoop requires are already installed and working. These dependencies are:

1. Apache web server (http://www.apache.org) version 2.0.x or newer.

On Debian or Ubuntu GNU/Linux, you can install the apache2 metapackage, which will install all of the web server packages you need.

sudo apt-get install apache2

On Red Hat Enterprise, you can install Apache using the httpd package and configure it to start on boot with these commands (as root):

yum install httpd
chkconfig --levels 235 httpd on
service httpd start

2. MySQL database management system (http://www.mysql.com) version 5.0 or newer. See the chapter MySQL installation for details.

3. PHP scripting language (http://www.php.net) version 5.3 or newer.

The following PHP modules must be installed:

php5-cli - Command Line Interface module

php5-mysql - functions for accessing the MySQL database server

php5-gd - provides a module for handling graphics from PHP scripts

These modules have the same names in the equivalent Debian/Ubuntu packages, which you can install with the command:

sudo apt-get install php5-cli php5-mysql php5-gd

On Red Hat Enterprise, you can install these packages with:

yum install php php-gd php-mysql

The php-cli package is installed automatically as a dependency of the php package on Red Hat Enterprise. You will also need the PHP module for the Apache web server, which has the package name libapache2-mod-php5 in Debian/Ubuntu. This package should be installed automatically as a dependency when installing the PHP packages mentioned above.

4. ImageMagick (http://www.imagemagick.org).

Needed for creating thumbnails of images. Available in Debian/Ubuntu's imagemagick package:

sudo apt-get install imagemagick

and in Red Hat Enterprise with:

yum install ImageMagick

All of these Newscoop dependencies are available as standard packages in most GNU/Linux distributions. You should be able to find them using your distribution's software package manager, although the exact package names can vary from the examples given above for Debian/Ubuntu and Red Hat Enterprise.

Setting up the database user and password

An existing Newscoop installation should have a named database already set up on a MySQL server, with access protected by a username and password. For a new installation of Newscoop, you will need to tell the installer to create a database to store your content in. See the chapter MySQL installation for details.

PHP modules

On Debian or Ubuntu, the PHP modules that you have installed should be configured automatically, with an entry for each module added to the /etc/php5/apache2/conf.d/ directory. You can also create your own PHP customization options using files in that directory, which should not be overwritten when the main php.ini file is upgraded. Red Hat Enterprise also sets up these modules automatically.

On other distributions of GNU/Linux, you may need to add a line for each module to the php.ini file, such as /etc/php5/apache2/php.ini or similar. The following extensions should be enabled. If the line is already present but starts with the semi-colon comment ';' you will need to remove this character for the corresponding extension to work.

extension=gd.so
extension=mysqli.so
extension=mysql.so

PHP configuration

On any GNU/Linux distribution, the php.ini file contains some default settings which should be checked or adjusted to enable optimum Newscoop performance and security. You can do this by opening the file in your text editor, such as nano:

sudo nano /etc/php5/apache2/php.ini

This is a long file, so use the search tool in nano (Ctrl+W) to find the lines you want. The recommend settings are that you should:

1. Turn off register_globals because it's a potential security hole:

register_globals = Off

2. Set the amount of memory available to at least 128MB:

memory_limit = 128M

3. Turn off magic quotes:

magic_quotes_gpc = Off

4. Allow HTTP file uploads:

file_uploads = On

The values above are the default settings on Debian or Ubuntu. You may wish to adjust the following two settings, which affect the maximum size of media that Newscoop users can upload.

5. The maximum size of POST data that PHP will accept defaults to 8MB on Debian/Ubuntu. You may find that you need to set this higher, for example:

post_max_size = 100M

6. The maximum allowed size for uploaded files defaults to 2MB on Debian/Ubuntu. This is likely to be insufficient for large multimedia attachments, so you may wish to set this value higher. However, it must not be higher than the maximum POST size set above, otherwise large uploads may fail.

upload_max_filesize = 100M

7. You may also wish to disable automatic session garbage collection, which can cause fatal PHP errors if your server runs Debian or Ubuntu. These GNU/Linux distributions use a cron job /etc/cron.d/php5 to perform garbage collection instead.

session.gc_probability = 0

Apache configuration

The Apache web server's configuration will need to be adjusted to set the path to the Newscoop files and templates. On Debian or Ubuntu, Apache configuration files are usually found in the /etc/apache2/sites-available/ directory.

1. Create a file such as newscoop containing a virtual host definition.

sudo nano /etc/apache2/sites-available/newscoop

For a publication with the domain name www.example.com, you could use a virtual host definition like the following:

<VirtualHost *:80>
      DocumentRoot /var/www/newscoop
      ServerName example.com
      ServerAlias www.example.com
      DirectoryIndex index.php index.html
      <Directory /var/www/newscoop>
              Options -Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              Allow from all
      </Directory>
</VirtualHost>

Make sure that the DocumentRoot directory that you set in the virtual host definition actually exists, otherwise Apache will complain when it starts up.

$ sudo mkdir -p /var/www/newscoop

If the ServerName or ServerAlias that you are using is not yet set up in DNS for this particular machine's IP address, you can create a temporary hostname in your /etc/hosts/ file which will enable you to test the installation locally.

2. Disable the default Apache configuration, if you aren't using it.

sudo a2dissite default
Site default disabled.
Run '/etc/init.d/apache2 reload' to activate new configuration!

3. Enable the Newscoop configuration that you just created.

sudo a2ensite newscoop
Enabling site newscoop.
Run '/etc/init.d/apache2 reload' to activate new configuration!

4. You may also need to enable Apache's rewrite and php5 modules. On Debian/Ubuntu, you can do this with the a2enmod command:

sudo a2enmod rewrite php5

The server should respond:

Enabling module rewrite.
Module php5 already enabled
Run '/etc/init.d/apache2 restart' to activate new configuration!

5. Restart Apache as suggested by the output of the command above, so that the Newscoop configuration and the new modules can be loaded:

sudo /etc/init.d/apache2 restart

The server should respond:

* Restarting web server apache2                           [ OK ]

Installing Newscoop

1. Extract the Newscoop tarball that you downloaded in your working directory. This action will generate a directory named newscoop- with a version number suffix. (A beta version may have an additional suffix on the extracted directory, such as -BETA4).

tar -xvzf newscoop-4.1.0.tar.gz

2. Examine the contents of the extracted directory with the ls command.

ls newscoop-4.1.0

The output of this command should appear similar to:

admin-files         cache           extensions   install      README.txt
admin.php        ChangeLog.txt   favicon.ico  INSTALL.txt  robots.txt
admin-style      classes         files        js           scripts
application      conf            get_img.php  library      template_engine
application.php  COPYING.txt     htaccess     log          themes
attachment.php   CREDITS.txt     images       pdf          upgrade.php
backup           db_connect.php  include      plugins      UPGRADE.txt
bin              docs            index.php    public       videos

3. Move the contents of the extracted directory into the DocumentRoot directory of the Apache VirtualHost that you set up, such as /var/www/newscoop/

sudo mv newscoop-4.1.0/* /var/www/newscoop/

If you wish to install Newscoop into a subdirectory of the DocumentRoot, for example /var/www/newscoop/subdirectory/ your Newscoop site will be visible at the http://www.example.com/subdirectory/ URL. This method is useful for adding Newscoop to an existing site without changing the contents of the DocumentRoot directory, which might be static pages or other archived content.

4. Change the ownership of the DocumentRoot directory to the username of the web server, for instance www-data on Debian or Ubuntu.

sudo chown -R www-data.www-data /var/www/newscoop/

5. Open a web browser with the URL of the Apache ServerName or ServerAlias that you set up earlier. If you see the Newscoop installer page, you are ready to proceed through the Installation steps chapter.

Shared hosting without root access

Some shared hosting servers provide administration tools such as cPanel or vDeck instead of root access in a shell. It is usually possible to install Newscoop on this type of server if you create a MySQL database user and Apache configuration before copying the Newscoop files to the server's web root directory via FTP or SFTP. You would then access the Newscoop installer at the domain name configured in the Apache page of the control panel.

If you cannot access the Newscoop installer page after copying the files to a vDeck server, and you see a 403 Forbidden error instead, you may need to make an adjustment to the server's .htaccess file. Open the .htaccess editor in the vDeck control panel, and set a Default Page instruction to point to the index.php file in the web root directory of your Apache configuration. Then refresh your browser window on the domain name you have configured.

Installing XCache

This step is optional, but highly recommended for optimum Newscoop performance. On Ubuntu, you can install XCache (http://xcache.lighttpd.net/) with the following command:

sudo apt-get install php5-xcache

You may wish to adjust the XCache configuration for your particular requirements:

sudo nano /etc/php5/conf.d/xcache.ini

On a Debian or Ubuntu server with two processors, example adjustments to the default configuration might be:

; Configure this to use admin pages
xcache.admin.user = "my_admin_name"

; xcache.admin.pass = md5($your_password)
xcache.admin.pass = "5f4dcc3b5aa765d61d8327deb882cf99"

; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows
xcache.size  =                32M

; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count =                 2

; for *nix, xcache.mmap_path is a file path, not directory.
xcache.mmap_path =    "/var/cache/xcache"

The value of xcache.admin.pass shown above is just an example. You should generate your own md5 hashed password using a piped command such as:

echo -n "password"|md5sum

You can set up your Apache VirtualHost to allow administrator access to the XCache statistics page from the localhost, or a specific IP address that you determine. Add a stanza like the following to the VirtualHost definition that you created earlier, before the closing </VirtualHost> tag:

# php xcache stats
Alias /xcache/ /usr/share/xcache/admin/
<Directory "/usr/share/xcache/admin/">
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from localhost
</Directory>

Then reload the Apache configuration again:

sudo /etc/init.d/apache2 reload

The xcache statistics page should now be visible under the /xcache/ path on your web server, such as http://localhost/xcache/ if you have enabled access from the localhost only.

Installation steps

At the URL of your publication's server, Newscoop should display a Pre-installation Check page indicating the status of dependencies.

If there are any No entries in the Status column, other than the optional packages shown under Recommended, check your server has the packages shown. Otherwise, click the Next button to run through the installation steps.

The next step is for you to review the license under which Newscoop is distributed, which is the GNU General Public License version 3. Check the box and click the Next button if you accept the license terms.

Next, you need to set the Server Name/Address for the database, which will be localhost if Apache and MySQL are running on the same machine. You only need to enter a number in the Server Port field if you are using a non-standard MySQL port. Then enter the User Name, User Password and Database Name that you set up earlier.

If you enter a Database Name which already exists on the specified server, you will asked if you wish to Overwrite Database. Only click the Yes option if you are very sure that any production databases are fully backed up.

Next is the Main Configuration page, where you set the name of your first publication as the Site Title, as well as the password and email address for Newscoop's Administrator, the admin user. This user account is critical for management of your Newscoop publications, so make sure that you set a strong password and keep it somewhere secure.

Newscoop includes sample sites and themes which you can use for evaluation purposes, or adapt to your needs. For the sample sites to work, you will need to set up a Publication alias with your chosen ServerName later. If you already have a theme designed for your publication, or wish to start with an empty theme, click the No, thanks! radio button.

The next page of the installer sets up automated maintenance tasks for your Newscoop server.

Once installation has completed, two large buttons are shown. Clicking on the upper Administrator button, with a tools icon, redirects you to the Newscoop administration interface. You can access this interface at any time by appending admin to the end of your Newscoop server's URL, such as:

http://www.example.com/admin

You will need to log in with the user name admin to begin with, using the password that you set for the administrator during the installation. See the Getting started chapter for details.

The lower Welcome to Sourcefabric button takes you to the Sourcefabric website, for further information and support on Newscoop.

If you attempt to access the reader side of your new website before logging into the administration interface for the first time, you may see an error message in your web browser that the site alias (such as www.example.com) was not yet assigned to a publication. This aspect of Newscoop configuration is dealt with in the Creating a publication chapter of this manual.

Log file maintenance

The Newscoop database has an audit_event table which logs the actions of your publication's staff in the administration interface. For a busy publication, this table can grow very quickly. To keep the size of this table down, you may prefer to write audit data which is more than a week old into a log file instead. A maintenance script for this task is provided with Newscoop 4, in the scripts/ sub-directory of the Newscoop installation. It can be run via a cron job in the /etc/cron.daily/ directory, or executed manually as required.

For a Newscoop installation where the DocumentRoot is /var/lib/newscoop the script can be run from the command line of your server, as the root user or with sudo, like this:

sudo php /var/lib/newscoop/scripts/newscoop.php log:maintenance
Log data processed.

What this script does is to look for events older than seven days, flush all those events from the database, and write them to a newscoop-audit.log file in the log/ sub-directory of your Newscoop installation, such as /var/lib/newscoop/log/newscoop-audit.log

After this script has run, your staff will only see the last seven days of audited actions when clicking Configure, then Logs in the administration interface menu. See the chapter Logs for details.

Log rotation

A program such as logrotate can be used to to compress and rotate the newscoop-audit.log file. An example logrotate configuration might look as follows:

/var/lib/newscoop/log/*.log {
                             weekly
                             missingok
                             rotate 8
                             compress
                             delaycompress
                             create 0640 www-data root
                             }

On Debian or Ubuntu GNU/Linux, this configuration could be saved to a file such as /etc/logrotate.d/newscoop and would then be read automatically the next time that the /etc/cron.daily/logrotate script runs.

Where to go for support

Sourcefabric offers full commercial support for Newscoop. Additional support is provided to the Newscoop user and developer community.

Forum and mailing list: You can visit the Newscoop online support forum, and sign up for the mailing list, at http://forum.sourcefabric.org/categories/newscoop-support

This forum is mirrored by the mailing list, so posts on the forum appear on the mailing list and vice versa. You can therefore also post a message there by emailing: newscoop-support@lists.sourcefabric.org.

To subscribe to forum updates via mail, please register or login to the forum by clicking the appropriate link. Then click the 'Subscribe' button at the top of each forum page.

Bug reporting: Newscoop needs your input to improve. If you think you've found a bug, please visit http://dev.sourcefabric.org and sign in, using the same login and password that you registered for the Newscoop forum. Create a bug report by selecting Create Issue, then Newscoop, and then Bug. That way, the Newscoop team can keep track of your problem and notify you when it has been fixed. You can also suggest improvements and new features for Newscoop on that site.

Contact: Finally, when all other avenues have been exhausted, email us directly at contact@sourcefabric.org and we'll try to help!

Expert install

These install steps are based on Debian or Ubuntu package names, and are suitable for experienced GNU/Linux system administrators who want to know exactly what is happening on their server. For a more detailed explanation, please read the chapter Manual installation in this book.

Production Newscoop users may find it more convenient to use the automated installation methods described in the chapters Installation on Debian/Ubuntu and Installation on Red Hat Enterprise.

1. Install dependencies and set a password for the MySQL root user:

sudo apt-get install apache2 mysql-server php5-cli php5-mysql php5-gd libapache2-mod-php5 imagemagick

2. Connect to MySQL using the root account and password:

mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.1.41-3ubuntu12.8 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

3. Create a user account and password for Newscoop to connect to the database. Substitute your own password for 'newscoop_user_password' in the following example:

mysql> CREATE USER 'newscoop_user'@'localhost'
    -> IDENTIFIED BY 'newscoop_user_password';
Query OK, 0 rows affected (0.04 sec)

4. Grant access privileges to the database user:

mysql> GRANT ALL ON newscoop.*
    -> TO 'newscoop_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)

5. Exit from MySQL and return to the shell prompt:

mysql> quit;
Bye

6. Open the PHP configuration file in the nano editor:

sudo nano /etc/php5/apache2/php.ini

Use the search tool (Ctrl+W) to find and adjust the maximum size of POST data to 100MB:

post_max_size = 100M

Adjust the maximum allowed size for uploaded files to 100MB:

upload_max_filesize = 100M

Disable automatic session garbage collection:

session.gc_probability = 0

Write out the file with Ctrl+O, then close it with Ctrl+X.

7. Create an Apache configuration file containing a VirtualHost definition, using the nano editor:

sudo nano /etc/apache2/sites-available/newscoop

For a publication with the domain name www.example.com, you could use a VirtualHost definition like the following:

<VirtualHost *:80>
      DocumentRoot /var/www/newscoop
      ServerName example.com
      ServerAlias www.example.com
      DirectoryIndex index.php index.html
      <Directory /var/www/newscoop>
              Options -Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              Allow from all
      </Directory>
</VirtualHost>

8. Create the DocumentRoot directory that you set in the VirtualHost definition:

sudo mkdir -p /var/www/newscoop

9. Disable the default Apache configuration, if you aren't using it:

sudo a2dissite default
Site default disabled.
Run '/etc/init.d/apache2 reload' to activate new configuration!

10. Enable the Newscoop configuration that you just created:

sudo a2ensite newscoop
Enabling site newscoop.
Run '/etc/init.d/apache2 reload' to activate new configuration!

11. Enable Apache's rewrite and php5 modules:

sudo a2enmod rewrite php5
Enabling module rewrite.
Module php5 already enabled
Run '/etc/init.d/apache2 restart' to activate new configuration!

12. Restart Apache so that the new configuration and modules can be loaded:

sudo /etc/init.d/apache2 restart
* Restarting web server apache2                           [ OK ]

13. Extract the Newscoop tarball in your working directory, which will create a new directory called newscoop. If installing a beta version, the newscoop directory might have a suffix such as -BETA4.

tar -xvzf newscoop-4.1.0.tar.gz

14. Copy the contents of the newscoop directory that you just extracted into the DocumentRoot directory of the Apache VirtualHost:

sudo cp -r newscoop/* /var/www/newscoop/

15. Change the owner and group of the DocumentRoot directory to the username of the web server:

sudo chown -R www-data.www-data /var/www/newscoop/

16. Open a web browser with the URL of the Apache ServerName that you set up earlier. If you see the Newscoop installer page, you are ready to proceed through the Installation steps chapter of this book.

Credits

Copyright © 2011-2013 Sourcefabric o.p.s.
Copyright © 1999-2010 Media Development Loan Fund.

Newscoop is being developed by an international community of developers and designers led by Sourcefabric.

http://newscoop.sourcefabric.org

This version of the manual was written by Daniel James and reviewed by Trevor Parsons, using Booktype Pro. Please add your comments and contributions at: http://sourcefabric.booktype.pro/newscoop-41-for-journalists-and-editors/

License

All chapters in this manual are licensed with the GNU General Public License version 3.

This documentation is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this documentation; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

GNU GENERAL PUBLIC LICENSE

Version 3, 29 June 2007

Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The GNU General Public License is a free, copyleft license for software and other kinds of works.

The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.

For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.

Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.

Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS

0. Definitions.

“This License” refers to version 3 of the GNU General Public License.

“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.

“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.

To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work.

A “covered work” means either the unmodified Program or a work based on the Program.

To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.

To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.

1. Source Code.

The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.

A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.

The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.

The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.

The Corresponding Source for a work in source code form is that same work.

2. Basic Permissions.

All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.

You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.

3. Protecting Users' Legal Rights From Anti-Circumvention Law.

No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.

When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.

4. Conveying Verbatim Copies.

You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.

You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.

5. Conveying Modified Source Versions.

You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

a) The work must carry prominent notices stating that you modified it, and giving a relevant date.

b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.

c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.

d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

6. Conveying Non-Source Forms.

You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:

a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.

b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.

c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.

d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.

e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.

A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.

A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.

“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.

If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).

The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.

Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.

7. Additional Terms.

“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.

When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.

Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or

b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or

c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or

d) Limiting the use for publicity purposes of names of licensors or authors of the material; or

e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or

f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.

All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.

If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.

Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.

8. Termination.

You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).

However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.

9. Acceptance Not Required for Having Copies.

You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.

10. Automatic Licensing of Downstream Recipients.

Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.

An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.

11. Patents.

A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”.

A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.

Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.

In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.

If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.

If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.

A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.

Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.

12. No Surrender of Others' Freedom.

If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.

13. Use with the GNU Affero General Public License.

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

14. Revised Versions of this License.

The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.

If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.

Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.

15. Disclaimer of Warranty.

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. Limitation of Liability.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

17. Interpretation of Sections 15 and 16.

If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.

END OF TERMS AND CONDITIONS