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
Aller au contenu | Aller au menu | Aller à la recherche
09/06/2010, 00:14. ND_CMS Conception web ND_CMS PHP Zend Framework
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
07/06/2010, 20:18. ND_CMS
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; } }
21/05/2010, 19:13. ND_CMS ND_CMS Zend Framework
Un plugin
class ND_Controller_Plugin_Maintenance extends Zend_Controller_Plugin_Abstract { public function routeShutdown(Zend_Controller_Request_Abstract $request) { $request->setActionName('index'); $request->setModuleName('default'); $request->setControllerName('maintenance'); } }
un controlleur
<?php class MaintenanceController extends ND_Controller_Action { public function indexAction(){} }
une vue
une ligne dans le application.ini à décommenter en cas de maintenance
; resources.frontController.plugins.maintenance = "ND_Controller_Plugin_Maintenance"
Ne reste plus qu’a :
Merci à E.Schrade pour l’idée qui reste à appronfondir
30/04/2010, 10:50. ND_CMS Action Helper Code Source ND_CMS PHP Snippet Zend Framework
Je cherchais un moyen de gérer de manière transparente et relativement simple les Action Helper sans avoir à modifier ma classe étendant Zend_Controller_Action à chaque ajout/suppression d’helper.
14/10/2009, 20:09. ND_CMS Conception web ND_CMS PHP Zend Framework
Ce module doit permettre la création/modification/suppression de comptes utilisateurs ainsi que leur identification. Personnellement, je pense que ce module ne doit gérer que peu de données : - Login (doit être unique) - Mot de passe (enregistré sous forme de Hash) - Date de création - Date d’activation - Email (doit être unique)
J’ai décidé de ne pas prendre l’email en tant qu’identifiant du compte, car cela permet à l’utilisateur de choisir son propre identifiant qui peut être plus court que son email.
Pour 2 raisons :
Le hashage sera obligatoire mais l’administrateur de l’application aura la possibilité de choisir la manière dont il veut gérer cela.
Le grain de sel sera paramétrable
Le hash se fera ensuite
Ce système empêche qu’un même mot de passe est le même hash.
Ce choix se justifie par le simple fait de purge de la base, un compte n’ayant pas été validé X jours après sa création est probablement un compte mort, donc un espace perdu.
A ce système d’identification peut se greffer 2 autres tables permettant de gérer un nombre infini de données utilisateurs supplémentaires. Cela permet une malléabilité a l’administrateur d’une instance du CMS dans le choix des données utilisateurs qu’il souhaite. Le système n’ayant besoin à la base que de pouvoir identifier l’utilisateur
Cette table permet à l’administrateur de choisir les informations de l’utilisateur qu’il souhaite La table contiendrait 3 voire 4 champs hors identifiant.
Cette table permet d’associer un utilisateur, une donnée et sa valeur.
Voilà, je pense que tout est dit, si vous avez des remarques à faire, n’hésitez pas
« billets précédents - page 1 de 2