<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
<style type="text/css">
/* <![CDATA[ */ @import "/branding/css/tigris.css"; /* ]]> */
</style>
  <script src="/branding/scripts/sc.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="/branding/css/print.css" media="print" />

  <title>Managing project site news</title>
 </head>

 <body class="docs" onload="self.focus()">
  <div class="docs" id="projectownernews">
   <h2>Managing project site news</h2>

   <div id="toc">
    <ul>
     <li><strong><a href="/nonav/servlets/HelpTOC">Help index</a></strong></li>
    </ul>

    <ul>
      <li> <a href="/nonav/docs/ProjectOwnerAdmin.html">Project Owner Administration</a> 
        <ul>
          <li><a href="/nonav/docs/ProjectOwnerEdit.html">Editing and maintaining 
            the Project Home page</a></li>
          <li> Managing project site news 
            <ul>
              <li><a href="#situating">Arranging the news</a></li>
              <li><a href="#makingnews">Making it news</a></li>
              <li><a href="#things">Things to keep in mind</a></li>
            </ul>
          </li>
          <li><a href="/nonav/docs/ProjectOwnerFiles.html">Managing project files</a></li>
          <li><a href="/nonav/docs/ProjectOwnerMembers.html">Adding project members 
            and approving roles</a></li>
          <li><a href="/nonav/docs/ProjectOwnerMailingLists.html">Configuring 
            and managing project mailing lists</a></li>
          <li><a href="/nonav/docs/ProjectOwnerDocuments.html">Managing project 
            documentation</a></li>
          <li><a href="/nonav/docs/ProjectOwnerSource.html">Managing project source 
            code</a></li>
          <li><a href="/nonav/docs/ProjectOwnerIssues.html">Tracking project issues</a></li>
          <li><a href="/nonav/docs/ProjectOwnerCustomStyle.html">Managing custom 
            HTML styling</a></li>
        </ul>
      </li>
    </ul>
   </div>

   <h3>Managing project site news</h3>

   <p>compliments our discussion of the <a href="/nonav/docs/ProjectNews.html">Project News page</a> and offers some tips and tricks so that the content developer can easily and efficiently manage news articles for your project site. News encompasses articles, essays, and other items that are relevant to your project, or that you think the community would be interested in. News can also include your own press releases--for instance, project press releases.</p>

   <h3><a id="situating" name="situating">Arranging the news</a></h3>

   <p>The News page provides current status to project members as well as curious surfers. This page also places your project the world at large.</p>

   <p>The <b>Project News</b> page, and the associated pages, have been designed to simplify and automate many of the mail maintenance processes. To add news, click on the <strong>Add a News Item</strong> link on the upper right of the <b>Project News</b> page.</p>

   <p>The fields on the <b>Add News Item</b> page have the following functionality:</p>

   <ul>
    <li>
     <p><strong>Date of event</strong> : To add a date to your news item click on the pull-down menus and select a date.</p>
    </li>

    <li>
     <p><strong>Headline</strong>: Enter a title or headline for your news item. You can use HTML markup tags in this text field.</p>
    </li>

    <li>
     <p><strong>Body</strong>: Add in the text of the news item. HTML markup tags can be used in this text field.</p>
    </li>
   </ul>

   <p>For example, you want to add an article recently published in a trade journal on an issue relevant to your project. The article, "Widget Kids", was published January 13, 2001, in the "Widget Week" magazine. To create this as a news item first click on the appropriate pull-down menus in the <strong>Date</strong> field to enter the date. Next, enter the article headline, "Widget Kids" in the <strong>Headline</strong> field. Since HTML is permitted here, you can cut and paste the headline as you saw it online.</p>

   <p><strong>NOTE</strong>: Instead of cutting and pasting the article information into the news fields, you can include any level of html complexity. However, as a rule, you should opt for that which can load quickly and surely across a range of browsers and platforms. If the original headline is a graphic, it is a good idea to use the original.</p>

   <h3><a id="makingnews" name="makingnews">Making it news</a></h3>

   <p>If you choose to add previously published articles, keep in mind that you do not "own" the article. While you can refer to the headline or title, and provide a synopsis that you have written, you must provide the proper compensations to the owner of the copyright.</p>

   <p>One process is to cite the headline, link to it, and then provide, in your own words, an explanatory sentence or paragraph, preferably short. See, for an example of this practice, the news page for <a href="http://www.openoffice.org/news.html">OpenOffice.org.</a></p>

   <p><strong>NOTE</strong> : You do not need to follow the process above for your own work.</p>

   <p>Once you have entered the information on your chosen article, you are ready to "publish" it.</p>

   <p>There are several options for submitting news:</p>

   <ul>
    <li>By clicking on the <strong>Add News Item</strong> button, you can publish the article immediately</li>

    <li>You can select the <strong>Advanced Options</strong> button to set a future date for publication. This button also allows you to set a date for removing the news item. You can either select to have the news item never be removed or to specify a date for obsolescence.</li>
   </ul>

   <h3><a id="things" name="things">Things to keep in mind:</a></h3>

   <ul>
    <li>In the case of the acquired sources, be sure to clearly state where you obtained them. Neglecting to do so may be interpreted as plagiarism.</li>

    <li>Save a copy of the article featuring your project as it originally appeared in the publication. Although you will need to acquire the rights to the article before you can put the article up on your project's site, having the article will allow you to create and put up a summary of the article more quickly.</li>

    <li>Add new items on a regular basis. A page that has been static a long time suggests a lack of momentum. If you have no news to report, you can make announcements and post them. You might also consider placing news items that, if not directly relevant to your project, relate to issues your community (actual or anticipated) will find interesting.</li>

    <li>Be sure to notify community members of recently posted news items. You can efficiently do this using the project's mailing lists.</li>
   </ul>

   <div class="courtesylinks">
    <p><a href="#toc">Top</a> | <a href="/nonav/servlets/HelpTOC">Help index</a></p>
   </div>
  </div>
 </body>
</html>


