Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-09-2010 15:17:17

Denis. Beurive
Membre
Date d'inscription: 06-06-2009
Messages: 35

Layout conditionnel?

Bonjour à tous,

Je commence à utiliser l'implémentation du patron MVC. J'ai suivi la documentation officielle.

Pour activer une nouvelle "disposition" (traduction française de "layout"), j'ai lancé la commande suivante :

Code:

zf.sh enable layout

Cette commande a pour effet d'ajouter des lignes de configuration au fichier d'initialisation "application/configs/application.ini".

Code:

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"

Les autres paramètres (layout, layoutPath,...) de configuration sont ceux définis par défaut.

Jusque là: Pas de problème.

Cela dit, avant de continuer l'exploration, je désirerais savoir comment réaliser l'opération suivante, de la façon la plus propre possible :

Je désire adapter l'affichage de mon site en fonction du terminal (PC, Iphone, Ipad, Adroid) utilisé pour naviguer sur mon site. En fonction du terminal, je propose une disposition (layout) adaptée à la taille de l'écran.

Mon idée :

1. Dans le fichier de démarrage (quickstart/public/index.php), je détermine le type de terminal (fonction PHP get_browser() - http://php.net/manual/fr/function.get-browser.php).

Pour information. Fichier quickstart/public/index.php:

Code:

<?php

// Define path to application directory
defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(realpath(APPLICATION_PATH . '/../library'), get_include_path(),)));

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
$application->bootstrap()->run();

2. En fonction du retour de la fonction get_browser(), je définis une constante qui représente un "nom de disposition" (nom de layout) : define('LAYOUT_NAME', $layouName).

3. Et, dans le fichier d'initialisation (application/configs/application.ini): resources.layout.layout = LAYOUT_NAME.

Qu'en pensez-vous?

Merci,

Denis

Dernière modification par Denis. Beurive (17-09-2010 15:18:07)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages