Suite à la vision du screencast \"protecting assets with zend controller plugins\", j'ai détourné le plugin afin de me permettre l'utilisation de ressources situées en plusieurs endroits.

En effet, il est possible que le module doivent charger ces propres CSS/images/Javascript pour avoir un fonctionnement optimal. Hors, je ne souhaite pas à chaque nouveau site, devoir recopier les ressources spécifiques.

De plus, je devais aussi gérer le fait que les différents sites aient le même fichier index.php, les informations propres aux sites se situant dans le répertoire applications.

<?php
 
class ND_Controller_Plugin_Resources 
	extends Zend_Controller_Plugin_Abstract{
 
	public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request){
 
		if ( $request->getControllerName() != 'resources' )
			return ;
 
		$from = $request->getParam('from','default')  ;
 
		switch( $from ){
			case 'common' :
				$file = COMMON_PATH. '/file' ;
				break;
			case 'default':
				$file = APPLICATION_PATH. '/file' ;
				break;
			default :
				$file = MODULES_PATH . '/' . $from ;
				break;
 
		}
 
		$file .= '/statics/' . $request->getParam('file') ; 
		if ( file_exists($file) ){
			header('Content-Type:', finfo_file(finfo_open(FILEINFO_MIME_TYPE), $file) );
			$content = file_get_contents($file);
			// permet de gerer les urls dans les css 
			if ( substr($request->getParam('file'),0,3) == 'css' ){
				$content =  str_replace('url(../', 'url(resources?from='.$from.'&file=', $content );
			}
			echo $content ;
		}			   
		exit;
 
	}	
 
 
}