rulururu

post Gestion des langues avec Prado

novembre 28th, 2007

Catégorie: Prado — 23unit @ 18:45

Voici un petit tutorial pour mettre en place un site en français et anglais avec Prado.

Tout d’abord, nous allons configurer le fichier application.xml pour mettre en place la gestion de l’Internationalization (I18N).

Nous lui rajoutons donc le module concerné ayant pour langue par défaut : fr

<module id=”globalization” class=”TGlobalizationAutoDetect” Culture=”fr”>

<translation type=”XLIFF” source=”Application.lang” autosave=”false” cache=”false” />

</module>

Application.lang signifiant que les fichiers xml des langues seront dans le répertoire lang de l’application : protected/lang par défaut.

Ensuite nous modifions le fichier index.php de l’application en lui ajoutant une nouvelle classe héritant de TApplication.

On remplace donc :

$application=new TApplication;
$application->run();

Par :

class MyApplication extends TApplication
{

public function OnLoadStateComplete()
{

parent::OnLoadStateComplete();// If the culture has changed
if (isset($this->Request[’lang’])) {

$this->setGlobalState(’lang’, $this->Request[’lang’]);

}

// This changes the Culture if the GlobalState variable ‘lang’ is set.
if ($this->getGlobalState(’lang’) != “”) {

$this->getGlobalization()->setCulture($this->getGlobalState(’lang’));

}

$this->getGlobalization()->Charset = “UTF-8″; //change the charset

}

}

$application=new MyApplication;
$application->run();

Vous pouvez bien entendu mettre autre chose que UTF-8 pour le Charset.

Nous rajoutons ensuite des liens pour passer de français à anglais et vise et versa :

<a href=”index.php?page=<%= $this->Request->ServiceParameter %>〈=fr”>FR</a>
<a href=”index.php?page=<%= $this->Request->ServiceParameter %>〈=en”>EN</a>

Il ne vous reste plus qu’à mettre <%[Welcome]%> à la place de Welcome par exemple, et Prado va créer automatiquement les fichiers xml : lang/fr/messages.xml et lang/en/messages.xml

Ensuite à vous de rentrer les traductions dans les fichiers xml comme ceci :

<trans-unit id=”1″>

<source>Bienvenue</source>
<target>
Welcome</target>

</trans-unit>

<trans-unit id=”2″>

<source><![CDATA[Propulsé par]]></source>
<target>Powered by</target>

</trans-unit>

Pour le deuxième exemple : <%[Propulsé par]%>

Pour toute question, critique ou suggestion, n’hésitez pas.

post Création des classes Active Record sous Prado

novembre 9th, 2007

Catégorie: Prado — 23unit @ 15:09

Pour créer les classes Active Record correspondant aux tables de votre base de donnée, tout est expliqué ici : http://www.pradosoft.com/demos/blog-tutorial/?page=Day2.CreateAR

Cependant, une petite précision :

Pour effectuer la commande php path/to/prado-cli.php shell . sous windows :

Ouvrez la console windows (démarrer->exécuter->cmd), allez dans le répertoire où ce situe php.exe, et tapez :

php chemin_vers_le_framework_prado/prado-cli.php shell chemin_vers_le_repertoire_de_votre_site

Si vous avez des erreurs, vérifiez bien les paramètres de connexion à la base dans le fichier application.xml. Et surtout le bon chargement de l’extension php_pdo_mysql dans le fichier ini de php (si vous travaillez sous wamp, faites la modification dans les 2 fichiers ini de php, car en mode console ce n’est pas le même qui est chargé).

post Remplir une liste depuis une base de donnée avec Prado

novembre 2nd, 2007

Catégorie: Prado — 23unit @ 16:36

Dans la documentation de Prado (blog tutorial et quickstart), il y est expliqué les différents moyens d’accès à une base de donnée ainsi que les différents composants (liste, label, boutons,…).

Pour ceux qui sont un peu perdu, je vais mettre ici un exemple simple et rapide, pour remplir une liste à partir d’un contenu extrait d’une base de donnée.

Tout d’abord, il faut créer un fichier gabarit (exemple : bindListe.page) et son fichier de classe (soit bindListe.php) et les placer dans le répertoire par défaut des pages du site nommé “Pages”.

Ensuite on veut que notre application démarre par défaut sur cette page. Pour cela il suffit de modifier le fichier “application.xml” et de insérer/modifier le code existant par :

<paths>

<using namespace=”System.Data.*” />
<using namespace=”System.Web.UI.ActiveControls.*” />

</paths>

et

<services>

<service id=”page” class=”TPageService” DefaultPage=”index” />

</services>

Ensuite dans le fichier “bindListe.page”, copier/coller le code suivant :

<com:TActivePanel>

<com:TActiveListBox ID=”liste” Rows=”1″ />

</com:TActivePanel>

Et dans le fichier “bindListe.php”, copier/coller le code suivant :

<?php

class bindListe extends TPage
{

public function onInit($param)
{

parent::onInit($param);

$connection=new TDbConnection(”mysql:host=host;dbname=nomBDD”,”user”,”pass”);
$connection->Active=true;

$command=$connection->createCommand(”SELECT * FROM votreTable”);
$dataReader=$command->query();

$dataReader->bindColumn(2,$texte); //traduiser cette ligne de code par “je veux que la colonne 2 du résultat de ma requête sql soit envoyé dans la variable $texte”

$tbl=array();

//on lit l’ensemble des lignes du résultat de la requête
while($dataReader->read()!==false)
{

$tbl[]=array($texte);

}

$this->liste->DataSource=$tbl;
$this->liste->dataBind();

}

}

?>

Bien entendu vous devez avoir une table dans votre base avec au minimum 2 colonnes. La 2ème colonne étant le texte à afficher dans la liste.

Voilà, pour tout problème ou commentaire, n’hésitez pas à laisser un message.

post Découverte de Prado

novembre 2nd, 2007

Catégorie: Prado — 23unit @ 2:46

Etant sur un gros projet actuellement (dont je ne peux divulguer d’informations pour l’instant), j’ai décider d’approfondir mes connaissances sur les Frameworks PHP existant. Suite à des recherches diverses sur le sujet, j’ai opté pour l’utilisation du Framework PHP Prado.

PRADO est un framework de programmation Web pour PHP5, orienté composant et basé sur un modèle événementiel. Avec PRADO, les applications Web sont conçues en termes de composants, d’événements et de propriétés plutôt qu’en termes de procédures, d’URLs et de paramètres de requête.

De première vue, il parait assez complexe, il faut un minimum de connaissance en PHP et surtout en langage événementiel. PRADO que l’on surnomme d’ailleurs l’ASP .net du PHP.

Je posterais donc des articles sur PRADO au cours de mon projet sur les points qui m’auront ralenti dans la compréhension de celui-ci.

ruldrurd