<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
	$pageTitle 		= "SMILA - Mailing lists";
	$pageKeywords	= "SMILA, unstructured information management, information logistics, semantic web, framework, platform, eclipse";
	$pageAuthor		= "Igor Novakovic";
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">
		<h1>Mailing Lists</h1>
		<p>
		    Mailing lists are a primary communication channel with SMILA development team. 
		    If you are interested in getting announcements for new versions, support, or want to 
		    participate in discussions of development or integration topics, then you 
		    can subscribe to one of the following mailing lists.
		</p>
		<div class="homeitem3col">
			<h3>Mailing lists</h3>
			<ul>
				<li>
                    <b><a href="https://dev.eclipse.org/mailman/listinfo/smila-user">smila-user@eclipse.org</a></b>
                     - A mailing list for announcements of new SMILA versions and events. Besides getting announcements you can also
                     post your questions here and get support from us. 
                    <ul>
                    	<li>
							<a href="https://dev.eclipse.org/mailman/listinfo/smila-user">Subscribe/unsubscribe instructions</a>
                    	</li>
                    	<li>
							<a href="http://dev.eclipse.org/mhonarc/lists/smila-user/maillist.html">Mailing list archive</a>
                    	</li>
                    	<li>
							<a href="http://dev.eclipse.org/mhonarc/lists/smila-user/maillist.rss">RSS Feed</a>
                    	</li>
                    </ul>
				</li>
				<li>
                    <b><a href="https://dev.eclipse.org/mailman/listinfo/smila-dev">smila-dev@eclipse.org</a></b>
                     - A mailing list for developer discussion. It's a place, where SMILA committers, contributors 
                    and integrators discuss all topics related to project development.
                    <ul>
                    	<li>
							<a href="https://dev.eclipse.org/mailman/listinfo/smila-dev">Subscribe/unsubscribe instructions</a>
                    	</li>
                    	<li>
							<a href="http://dev.eclipse.org/mhonarc/lists/smila-dev/maillist.html">Mailing list archive</a>
                    	</li>
                    	<li>
							<a href="http://dev.eclipse.org/mhonarc/lists/smila-dev/maillist.rss">RSS Feed</a>
                    	</li>
                    </ul>
				</li>
			</ul>
		</div>
	</div>
	  
	<div id="rightcolumn">
    	<div class="sideitem">
       		<h6>Incubation</h6><p>
       		<div align="center">
         		<a href="/projects/what-is-incubation.php">
           		<img align="center" src="/images/egg-incubation.png" border="0"/></a>
       		</div>
     	</div>
	  	<div class="sideitem">
			<h6>Links</h6>
			<ul>
				<li><a href="http://wiki.eclipse.org/SMILA" target="_blank">Wiki</a></li>				
				<li><a href="http://www.eclipse.org/proposals/eilf/SMILA_Creation_Review.pdf" target="_blank">Creation Review</a></li>
				<li><a href="http://www.eclipse.org/proposals/eilf" target="_blank">Project proposal</a></li>
				<li><a href="http://live.eclipse.org/node/617" target="_blank">Webinar</a></li>
			</ul>
		</div>
	</div>	
	
EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
