My Developpement Blog

Aller au contenu | Aller au menu | Aller à la recherche

Développement Web

Sortez couvert, mettez des couches.

Diviser pour mieux régner

Nicolas Machiavel

Cela reste valable aussi dans le développement

Lire la suite

NDCMS: Le fichier bootstrap

Un Anneau pour les gouverner tous,
Un Anneau pour les trouver
Un Anneau pour les amener tous et dans les ténèbres les lier

J.R.R. Tolkien in Le Seigneur des Anneaux

Lire la suite

NDCMS : Gestions des fichiers JS/CSS/...

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;
 
	}	
 
 
}

NDCMS : Gestion de la maintenance d'un site

Un plugin

  1. class ND_Controller_Plugin_Maintenance extends Zend_Controller_Plugin_Abstract
  2. {
  3. public function routeShutdown(Zend_Controller_Request_Abstract $request)
  4. {
  5. $request->setActionName('index');
  6. $request->setModuleName('default');
  7. $request->setControllerName('maintenance');
  8. }
  9. }

un controlleur

  1. <?php
  2.  
  3. class MaintenanceController extends ND_Controller_Action {
  4.  
  5. public function indexAction(){}
  6.  
  7. }

une vue

  1. <h1><?php echo $this->translate('site.unavailable.title');?></h1>
  2.  
  3. <?php echo $this->translate('site.unavailable.content');?>

une ligne dans le application.ini à décommenter en cas de maintenance

  1. ; resources.frontController.plugins.maintenance = "ND_Controller_Plugin_Maintenance"

Ne reste plus qu’a :

  • permettre de gérer la mise en/sortie de maintenance via le système de gestion de l’application
  • permettre de by-passer la maintenance selon des règles établies (IP/Authentification htaccess)

Merci à E.Schrade pour l’idée qui reste à appronfondir

Réaliser un dégradé linéaire

Petite note pour gérer les dégradés linéaires, beaucoup de possibilités s’ouvrent grâce à ça. Yapluka

Lire la suite

- page 1 de 4