<?xml version="1.0" encoding="utf-8"?>
<plugin xmlns="http://www.xptdev.com/frameworks/wordpress/plugin"
				namespace="WCFE">
	<parameters>
		<factoryClass>WCFE\Factory</factoryClass>
		<factoryNamespace>Factory</factoryNamespace>
		<dbVersion>0.5</dbVersion>
        <localizationDir>Languages</localizationDir>
		<serviceModules>
			<classId>Module</classId>
		</serviceModules>
	</parameters>
	<mvc>
		<objects namespace="WPPFW\MVC">
			<object class="MVCStructure">
				<param name="module" 							value="Modules" />
				<param name="controller" 					value="Controller" />
				<param name="controllerClassId" 	value="Controller" />
				<param name="model"								value="Model" />
				<param name="modelClassId"				value="Model" />
      	<object class="MVCViewStructure">
					<param name="view" 					value="View" />
					<param name="viewClassId" 	value="View" />      	
      	</object>
			</object>
			<object class="MVCNames">
				<param name="module" 			value="module" />
				<param name="controller" 	value="controller" />
				<param name="action"			value="action" />
				<param name="format"			value="format" />
				<object class="MVCViewNames">
				  <param name="view" 			value="view" />
				  <param name="layout" 		value="layout" />
				</object>				
			</object>
			<object class="MVCParams">
				<param name="action"			value="Index" />
				<param name="format"			value="JSON" />
				<param name="controller"	value="" />
				<object class="MVCViewParams">
					<param name="format"		value="HTML" />
				  <param name="view" 			value="" />
				  <param name="layout" 		value="" />
				</object>
			</object>
		</objects>
		<types>
			<type name="Service">
				<params>WPPFW\MVC\MVCParams</params>
				<names>WPPFW\MVC\MVCNames</names>
				<structure>WPPFW\MVC\MVCStructure</structure>
			</type>
			<type name="View">
				<params>WPPFW\MVC\MVCViewParams</params>
				<names>WPPFW\MVC\MVCViewNames</names>
				<structure>WPPFW\MVC\MVCViewStructure</structure>
			</type>
		</types>
	</mvc>
	
	<services namespace="WCFE\Services">
	
		<!-- Editor Module -->
		<service serviceObjectClass="Editor\MenuPages\Editor\Page"
						 serviceFront="Editor"
						 routerClass="WPPFW\Plugin\ServiceObjectViewRouter"
						 homeProxy="WPPFW\Services\Dashboard\Menu\Proxy">
			<proxy typeName="View" namespace="WPPFW\MVC" class="WPPFW\Services\Dashboard\Menu\Proxy" frontClass="WPPFW\Plugin\MVCViewRequestInputFrontProxy">
				<object class="MVCViewParams">
					<param name="module" 			value="Editor" />
					<param name="view" 				value="Editor" />
				</object>
			</proxy>
		</service>
		
		<service serviceObjectClass="Editor\MenuPages\Editor\RawEdit"
						 serviceFront="Editor"
						 routerClass="WPPFW\Plugin\ServiceObjectViewRouter"
						 homeProxy="WPPFW\Services\Dashboard\Menu\Proxy">
			<proxy typeName="View" namespace="WPPFW\MVC" class="WPPFW\Services\Dashboard\Menu\Proxy" frontClass="WPPFW\Plugin\MVCViewRequestInputFrontProxy">
				<object class="MVCViewParams">
					<param name="module" 				value="Editor" />
					<param name="action" 				value="RawEdit" />
					<param name="layout" 			value="Preview" />
					<param name="view" 					value="Editor" />
				</object>
			</proxy>
		</service>
		
		<service serviceObjectClass="Editor\Services\Editor\Ajax"
						 serviceFront="Service"
						 routerClass="WPPFW\Plugin\ServiceObjectRouter"
						 homeProxy="WPPFW\Services\Dashboard\Ajax\Proxy">
			<proxy typeName="Service" namespace="WPPFW\MVC" class="WPPFW\Services\Dashboard\Ajax\Proxy" frontClass="WPPFW\Plugin\MVCRequestInputFrontProxy">
				<object class="MVCParams">
					<param name="module" 						value="Editor" />
					<param name="controller" 				value="EditorService" />
				</object>
			</proxy>
		</service>

		
		<service serviceObjectClass="Editor\Services\Editor\AjaxViews"
						 serviceFront="Service"
						 routerClass="WPPFW\Plugin\ServiceObjectViewRouter"
						 homeProxy="WPPFW\Services\Dashboard\Ajax\Proxy">
			<proxy typeName="View" namespace="WPPFW\MVC" class="WPPFW\Services\Dashboard\Ajax\Proxy" frontClass="WPPFW\Plugin\MVCViewRequestInputFrontProxy">
				<object class="MVCViewParams">
					<param name="module" 						value="Editor" />
					<param name="controller" 				value="MultiSiteTools" />
					<param name="view" 							value="MultiSiteTools" />
					<param name="action" 						value="Setup" />
				</object>
			</proxy>
		</service>
		
		
		<!-- PROFILES Module -->		
		<service serviceObjectClass="Profiles\Services\Profiles\Ajax"
						 serviceFront="Service"
						 routerClass="WPPFW\Plugin\ServiceObjectRouter"
						 homeProxy="WPPFW\Services\Dashboard\Ajax\Proxy">
			<proxy typeName="Service" namespace="WPPFW\MVC" class="WPPFW\Services\Dashboard\Ajax\Proxy" frontClass="WPPFW\Plugin\MVCRequestInputFrontProxy">
				<object class="MVCParams">
					<param name="module" 						value="Profiles" />
					<param name="controller" 				value="ProfilesService" />
				</object>
			</proxy>
		</service>
		
		<service serviceObjectClass="Profiles\Services\Profiles\AjaxView"
						 serviceFront="Service"
						 routerClass="WPPFW\Plugin\ServiceObjectViewRouter"
						 homeProxy="WPPFW\Services\Dashboard\Ajax\Proxy">
			<proxy typeName="View" namespace="WPPFW\MVC" class="WPPFW\Services\Dashboard\Ajax\Proxy" frontClass="WPPFW\Plugin\MVCViewRequestInputFrontProxy">
				<object class="MVCViewParams">
					<param name="module" 						value="Profiles" />
					<param name="controller" 				value="Profiles" />
					<param name="view" 							value="Profiles" />
					<param name="action" 						value="List" />
				</object>
			</proxy>
		</service>

		<service serviceObjectClass="Editor\MultiSiteTools\MultiSiteNetworkPageTools"
						 serviceFront="ServiceFront"
						 routerClass="WPPFW\Plugin\ServiceObjectViewRouter"
						 homeProxy="WCFE\Services\Editor\MultiSiteTools\Proxy">
			<proxy typeName="View" namespace="WPPFW\MVC" class="WCFE\Services\Editor\MultiSiteTools\Proxy" frontClass="WPPFW\Plugin\MVCViewRequestInputFrontProxy">
				<object class="MVCViewParams">
					<param name="module" 						value="Editor" />
					<param name="controller" 				value="MultiSiteTools" />
					<param name="view" 							value="MultiSiteTools" />
					<param name="action" 						value="SetupNetwork" />
				</object>
			</proxy>
		</service>
		
		<!-- Sys FIlters Module -->
		<service serviceObjectClass="SysFilters\Dashboard\Page"
						 serviceFront="Dashboard"
						 routerClass="WPPFW\Plugin\ServiceObjectViewRouter"
						 homeProxy="WPPFW\Services\Dashboard\Menu\Proxy">
			<proxy typeName="View" namespace="WPPFW\MVC" class="WPPFW\Services\Dashboard\Menu\Proxy" frontClass="WPPFW\Plugin\MVCViewRequestInputFrontProxy">
				<object class="MVCViewParams">
					<param name="module" 						value="SysFilters" />
					<param name="controller" 				value="SysFiltersDashboard" />
					<param name="view" 							value="SysFiltersDashboard" />
					<param name="action" 						value="Index" />
				</object>
			</proxy>
		</service>
		
		<service serviceObjectClass="Profiles\Services\SysFilters\Ajax"
						 serviceFront="Service"
						 routerClass="WPPFW\Plugin\ServiceObjectRouter"
						 homeProxy="WPPFW\Services\Dashboard\Ajax\Proxy">
			<proxy typeName="Service" namespace="WPPFW\MVC" class="WPPFW\Services\Dashboard\Ajax\Proxy" frontClass="WPPFW\Plugin\MVCRequestInputFrontProxy">
				<object class="MVCParams">
					<param name="module" 						value="SysFilters" />
					<param name="controller" 				value="SysFiltersServices" />
				</object>
			</proxy>
		</service>
		
		<service serviceObjectClass="Profiles\Services\SysFilters\AjaxView"
						 serviceFront="Service"
						 routerClass="WPPFW\Plugin\ServiceObjectViewRouter"
						 homeProxy="WPPFW\Services\Dashboard\Ajax\Proxy">
			<proxy typeName="View" namespace="WPPFW\MVC" class="WPPFW\Services\Dashboard\Ajax\Proxy" frontClass="WPPFW\Plugin\MVCViewRequestInputFrontProxy">
				<object class="MVCViewParams">
					<param name="module" 						value="SysFilters" />
					<param name="controller" 				value="SysFiltersDashboard" />
				</object>
			</proxy>
		</service>
		
		<models>
		
			<model id="WCFE\Modules\Editor\Model\EditorModel">
				<stateType>WPPFW\MVC\Model\State\GlobalWPOptionsModelState</stateType>
			</model>
			
			<model id="WCFE\Modules\Editor\Model\MultiSiteToolsModel">
				<stateType>WPPFW\MVC\Model\State\GlobalWPOptionsModelState</stateType>
			</model>
			
			<model id="WCFE\Modules\Editor\Model\SystemCheckToolsModel">
				<stateType>WPPFW\MVC\Model\State\GlobalWPOptionsModelState</stateType>
			</model>
			
			<model id="WCFE\Modules\Profiles\Model\ProfilesModel">
				<stateType>WPPFW\MVC\Model\State\GlobalWPOptionsModelState</stateType>
			</model>
			
			<model id="WCFE\Modules\SysFilters\Model\SysFiltersDashboardModel">
				<stateType>WPPFW\MVC\Model\State\GlobalWPOptionsModelState</stateType>
			</model>
		</models>

	</services>

</plugin>