SillySmart est un framework MVC flexible écrit en PHP5 et se basant sur du parsing XML / XSL.
SillySmart est un framework gratuit et open-source depuis 2007.
Il a été développé dans plusieurs optiques :
Principales fonctionnalités :
Consulter http://www.sillysmart.org pour plus d'informations, téléchargement, api, getting started, documentation et forum.
Comme tout le monde a pu le voir, ce n'est guère évident de trouver le temps pour rédiger des news mais..
Ca y'est, l'année 2011 a commencé, l'occasion rêvée pour faire un 1er bilan après plus de 3 années intensives consacrées au développement Web au côté de SillySmart et dorénavant de Wandi.
La 1ère année de Wandi a été très riche avec la réalisation de plus d'une trentaine de sites.
Un grand merci à tous ceux qui nous font confiance et qui permettent de faire progresser l'aventure Wandi et SillySmart chaque jour.
Sans oublier tous ceux qui nous accompagnent au quotidien : les Wandiz, Charly, Jerem, Mickey, Chatton, les Nsn guys et tous les autres..
Bonne année à tous !
Lorsque vous affichez des images dynamiquement, si vous voulez vous assurez qu'elles existent réellement, vous pouvez le faire assez aisément directement en XSL :
<!-- - Apply css with XSL --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" version="1.0"> <xsl:output method="xml" encoding="UTF-8" indent="yes" /> <xsl:template match="root"> <html> <head></head> <body> <!-- On suppose que le noeud 'id' contient une partie du nom du fichier --> <xsl:variable name="imgSrc" select="boolean(document(string(concat('http://www.sillysmart.org/img/users/', id, '.jpg'))))" /> <xsl:choose> <xsl:when test="$imgSrc"> <img src="{concat('http://www.sillysmart.org/img/users/', id, '.jpg')}" alt="{id}" /> </xsl:when> <xsl:otherwise> <img src="http://www.sillysmart.org/img/404.jpg" alt="Not found" /> </xsl:otherwise> </xsl:choose> </body> </html> </xsl:template> </xsl:stylesheet>
Supposons le flux XML suivant listant un ensemble d'utilisateurs :
<?xml version="1.0" encoding="UTF-8"?> <users> <user> <id>1</id> <login>lo</login> <email>laurent@sillysmart.org</email> </user> <user> <id>2</id> <login>flo</login> <email>florian@sillysmart.org</email> </user> <user> <id>3</id> <login>charly</login> <email>charly@sillysmart.org</email> </user> </users>
Le css suivant :
table.bo_table_visible { border:1px solid #000; border-spacing: 0px; margin-top:10px; margin-bottom:10px; } table.bo_table_visible tr.summary th { background:#2E2D2D; color:#E45A49; } table.bo_table_visible tr td, table.bo_table_visible tr th { padding:0 10px; } table.bo_table_visible tr.even td { background-color:#FFF; color:#000; } table.bo_table_visible tr.even:hover td { background-color:#FF8ABC; color:#FFF; } table.bo_table_visible tr.odd td { background-color:#DFDFDF; color:#000; } table.bo_table_visible tr.odd:hover td { background-color:#64B8FE; color:#FFF; }
Il vous suffit d'appliquer le script XSL suivant pour appliquer les styles sur votre liste d'utilisateurs :
<!-- - Apply css with XSL --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" version="1.0"> <xsl:output method="xml" encoding="UTF-8" indent="yes" /> <xsl:template match="root"> <html> <head></head> <body> <table class="bo_table_visible"> <tr> <th>Id</th> <th>Login</th> <th>Email</th> </tr> <xsl:for-each select="//users/user"> <xsl:variable name="cssClass"> <xsl:choose> <xsl:when test="(position() mod 2) = 0"> even </xsl:when> <xsl:otherwise> odd </xsl:otherwise> </xsl:choose> </xsl:variable> <tr class="{$cssClass}"> <td><xsl:value-of select="id" /></td> <td><xsl:value-of select="login" /></td> <td><xsl:value-of select="email" /></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Ce qui produira :
Id | Login | |
---|---|---|
1 | lo | laurent@sillysmart.org |
2 | flo | florian@sillysmart.org |
3 | charly | charly@sillysmart.org |
Si vous souhaitez en MySQL (ou en PHP) récupérer les commentaires de tables et/ou les commentaires des colonnes d'une table, sachez qu'il est très facile d'accéder à ces informations directement à partir d'une requête.
Récupérer les commentaires d'une table :
# 'sillysmart' est le nom de la base de données dont vous voulez extraire des informations mysql> SHOW TABLE STATUS FROM sillysmart mysql>
produira les informations suivantes:
Name | Engine | Version | Rows | Comment |
---|---|---|---|---|
Country | MyISAM | 10 | 240 | Countries Listing |
News | MyISAM | 10 | 30 | News Listing |
où la colonne 'Comment' vous donnera l'information voulue, à savoir le commentaire de la table. Sachez que beaucoup d'autres informations sont accessibles grâce à cette requête.
Récupérer les commentaires des colonnes d'une table :
# 'Country' est le nom de la table voulue mysql> SHOW FULL COLUMNS FROM Country mysql>
produira les informations suivantes:
Field | Type | Collation | Null | Key | Extra | Privileges | Comment |
---|---|---|---|---|---|---|---|
country_id | bigint(20) | NULL | NO | PRI | auto_increment | select,insert,update | Id |
country_name | varchar(255) | latin1_swedish_ci | NO | UNI | select,insert,update | Country Name | |
country_tld | varchar(2) | latin1_swedish_ci | YES | select,insert,update | Country TLD |
où la colonne 'Comment' vous donnera l'information voulue, à savoir le commentaire de la colonne de la table.
Libre à vous d'exploiter ces informations en PHP. Personnellement nous utilisons ces colonnes de manière transparente sur SillySmart pour créer des back-office génériques qui reste néanmoins parlant pour un non-informaticien. La seule contrainte est que la longueur du commentaire est bridée à 60 caractères, donc soyez succinct !