Aide Mémoire concrete5
Themes et feuilles de styles
Appleller la feuille de styles
$this->getStyleSheet();
Charger la feuille de style dans le header
<?php echo $this->getStyleSheet('main.css')?>
Appeller le chemin du thème
$this->getThemePath();
Afficher le nom du site
<?php print SITE; ?>
Obtenir le répertoire relatif de votre site (utile pour les liens)
<?php print DIR_REL; ?>
<a href="<?=DIR_REL?>/">Back to Home</a>
Pour charger une image du répertoire images du thème
<img src="<?=$this->getThemePath()?>/images/photo.png">
ou
<?php
$v = View::getInstance();
$v->getThemePath();
?>
Paramétrer le chemin du thème
$view->setTheme(PageTheme::getByHandle('Theme_Handle');
Utiliser le chemin du thème dans un bloc
<?php
$v = View::getInstance();
$themePath = $v->getThemePath();
?>
Afficher une image du répertoire images du thème
<img src="<?php echo $themePath ?>/images/photo.png">
Travailler avec les blocs
Ajouter un espace entre les blocs en mode édition
<?php
if ($c->isEditMode()) { ?>
<div style="min-height: 20px"> </div>
<?php } ?>
Insérer un bloc sur une page (depuis le carnet)
<?php
$block = Block::getByName('BLOCK NAME');
if( is_object($block) ) $block->display();
?>
Obtenir une URL pour le répertoire du bloc
<img src="<?php echo $this->getBlockURL() ?>/images/image.png">
Encadrer chaque bloc dans une zone avec des Divs
<?php
$a = new Area('sidebar');
$a->setBlockWrapperStart('<div class="box">');
$a->setBlockWrapperEnd('</div>');
$a->display($c);
?>
Travailler avec les pages dans vos blocs et thèmes
Ajouter un type de page
<?php
/* Vérifier que la page existe. */
Loader::model('collection_types');
$pageType = CollectionType::getByHandle('[page_type_handle]');
/* Ajouter une nouvelle page si ce n'est pas le cas. */
if(!is_object($pageType)) {
$data['ctHandle'] = '[page_type_handle]';
$data['ctName'] = t('[page_type_name]');
$newPage = CollectionType::add($data, $pkg);
}
?>
Afficher une image depuis un attribut de page
<img src="<?php echo ($c->getAttribute('page_thumbnail')->getVersion()->getRelativePath());?>" width="120px" height="160px">
Afficher lenom d'une page
<?php echo $page->getCollectionName() ?>
Afficher le nom d'une page parente
<?php
$page=Page::getByID($c->getCollectionParentID());
echo $page->getCollectionName();
?>
Obtenir un objet de la page courante
$page = Page::getCurrentPage();
Otenir la date d'ajout/création de la page
<?php
$c->getCollectionDateAdded('F j, Y')
?>
Afficher la date d'ajout de la page.
<?php echo $c->getCollectionDateAdded('F j, Y') ?>
Afficher l'identifiant d'une page
<?php print $page->getCollectionHandle(); ?>
Afficher l'identifiant d'une page et l'utiliser
<?php
$page=Page::getByID($c->getCollectionParentID());
if ( $page->getCollectionName() == 'es' ) {
echo '<a href="/index.php/gallery">Galería</a>';
} else {
echo '<a href="/index.php/gallery">Gallery</a>';
}
?>
Obtenir le valeur de l'attribut d'une page
$c->getCollectionAttributeValue()
Aficher le texte de la valeur d'un attribut de page.
<?php echo $c->getCollectionAttributeValue('attribute_name') ?>
*Dans les blocs vous devez substituer la variable par $cobj
Tester qu'une valeur soit paramétrée dans un attribut
<?php
if ($c->getCollectionAttributeValue(ATTRIBUTE_NAME)) {
Do Something Here;
}
?>
Si un attribut File/Image est paramétré, afficher le lien de téléchargement
<?php
if($c->getAttribute('attribute_name')) {
echo '<a href="' . $c->getAttribute('attribute_name')->getVersion()->getRelativePath() .' ">Download PDF</a>';
}
?>
Obtenir la description d'une page
$c->getCollectionDescription();
Afficher la description d'une page
<?php echo $c->getCollectionDescription() ?>
Obtnir l'identifiant d'une page
$c->getCollectionHandle();
Créer un div pour ajouter individuellement des styles aux pages
<div id="<?php echo $c->getCollectionHandle() ?> "> </div>
Ajouter une classe sur un div basé sur l'identifiant de la page
<div id="header" class="<?php echo $c->getCollectionHandle() ?>"> </div>
Obtenir l'ID d'une page
$c->getCollectionID();
Afficher l'ID d'une page
<?php echo $c->getCollectionID() ?>
Obtenir le nom d'une page
$c->getCollectionName();
Afficher le nom d'une page
<?php echo $c->getCollectionName() ?>
Vous aurez certainement besoins de la globale $c; avant.
Obtenir l'ID d'une page parente
$c ->getCollectionParentID();
Afficher l'ID d'une page parente
<?php echo $c->getCollectionParentID() ?>
Obtenir le nom d'une page type
$c->getCollectionTypeName();
Paramétrer une class sur le nom d'une page type.
<?php
if($c->getCollectionTypeName() == 'Full Width'){
echo 'class="full-width"';
}
?>
Obtenir la Date/Heure publique dans les propriétés de pages
$c->getCollectionDatePublic('F j, Y')
Afficher la date publique
<?php echo $c->getCollectionDatePublic('F j, Y') ?>
Sélectionner un attribut de page basé sur la navigation (voir le changement de langue)
<?php
if ($c->getCollectionAttributeValue('spanish_menus')) {
$block = Block::getByName('Spanish Menus');
if( is_object($block) ) $block->display();
} else {
$block = Block::getByName('English Menus');
if( is_object($block) ) $block->display();
}
?>
Travailler avec les utilisateurs
Ajouter un utilisateur à un groupe
<?php
$u = new User();
$u->getByUserID($uID);
$groupName = Group::getByName('Name_Of_Your_Group');
$u->enterGroup($groupName);
?>
Afficher le nom d'un utilisteur
<?php
$u = new User();
echo $u->getUserName();
?>
Si connecté, ajuster la position du fond
<?php
$u = new User();
if ($u->isLoggedIn()) { ?>
<style type="text/css">
body { background-position: 0px 49px; }
</style>
<?php } ?>
Si un utilisateur est connecté, faire quelque chose
<?php
$u = new User();
if($u->isLoggedIn()) {
echo 'Hello '.$u->getUserName();
}
?>
Base de données
Obtenir des données de la BDD
<?php
$db = Loader::db();
$r = $db->Execute("SELECT * FROM [table] WHERE [column] = [value] ");
$row = $r->FetchRow();
echo $row[column name];
?>
Mettre la BDD à jour
<?php
$update = $db->Execute("UPDATE [table] SET [column] = [value]
WHERE bID = $this->bID");
?>
Helpers
Helper Date/Heure
Charger le helper Date/Heure
<?php
$date = Loader::helper("date");
?>
Comparer la date d'aujourd'hui avec l'attribut date/heure d'une page (end_date) et l'utiliser
Utilisation du Helper date pour formater ($mask=) l'affichage des dates et heures.
<?php
$date = Loader::helper("date");
if($date->getSystemDateTime($c->getCollectionAttributeValue('end_date'), $mask = 'd-m-Y G:i') > $date->getLocalDateTime('now',$mask = 'd-m-Y G:i')) {
echo 'La date de fin est ultérieure à celle d'aujourd'hui';
}
?>
Afficher la Date/Heure au format dd-mm-yyyy 00:00
<?php
$date = Loader::helper("date");
echo $date->getLocalDateTime('now',$mask = 'd-m-Y G:i')
?>
Afficher l'attribut de date "end_date" au format dd/mm/yy
<?php
$date = Loader::helper("date");
echo $date->getSystemDateTime($c->getCollectionAttributeValue('end_date'), $mask = 'd/m/y')
?>
Obtenir la date de la dernière page qui à été éditée
<?php
$date = Loader::helper("date");
foreach($c->getBlocks('Main') as $b) {
$bDate[$i] = $b->getBlockDateLastModified();
$i ++;
}
rsort( $bDate );
echo $date->getLocalDateTime($bDate[0],$mask = 'm-d-Y g:i:s');
?>
Si l'attribut de page "end_date" est plus grand que l'heure courante, faire quelque chose.
<?php
$date = Loader::helper("date");
if($date->getSystemDateTime($c->getCollectionAttributeValue('end_date'), $mask = 'd-m-Y G:i') > $date->getLocalDateTime('now',$mask = 'd-m-Y G:i')) {
[exécuter son action ici]
}
?>
Formats de date PHP pour les masques :
a 'am' ou 'pm'
A 'AM' ou 'PM'
B Swatch Internet time
d jour du mois, 2 deux chiffres avec le zéro pour les premiers; i.e. '01' to '31'
D jour de la semaine, textuel, 3 lettres; i.e. 'Fri'
F mois, textuel, complet; ex: 'January'
g heure, format 12h sans le zéro des neufs premiers; ex. '1' to '12'
G heure, format 24h sans le zéro des neufs premiers; i.e. '0' to '23'
h heure, format 12h; ex. '01' to '12'
H heure, format 24h; ex. '00' to '23'
i minutes; ex. '00' to '59'
I (i majuscule) '1' pour l'heure d'été, sinon '0'
j jour du mois sans les zéros; ex. '1' to '31'
l ('L' minuscule) jour de la semaine, textuel, long; ex. 'Friday'
L boolean pour les années bissextile; ex. '0' ou '1'
m mois; ex. '01' à '12'
M mois, textu2l, 3 lettres; ex. 'Jan'
n mois sans les zéro; ex. '1' à '12'
r date formatée selon la norme RFC 822; ex. 'Thu, 21 Dec 2000 16:01:07 +0200' (depuis PHP 4.0.4)
s secondes; ex. '00' to '59'
S Suffix ordinal Anglais, textuel, 2 caractères; ex. 'th', 'nd'
t nombre de jour dans le mois donné; ex. '28' à '31'
T Fuseau horaire de cette machine; ex. 'MDT'
U secondes depuis l'epoch
w jour de la semaine, numerique, ex. '0' (Dimanche) à '6' (Samedi)
Y année, 4 chiffres; ex. '1999'
y année, 2 chiffres; ex. '99'
z jour de l'année; ex. '0' à '365'
Z Décalage horaire en secondes (ex. '-43200' à '43200'). Le décalage hooraire à l'ouest de l'UTC est toujours négatif, et positif pour l'est de l'UTC.
Helper pour les images
Charger le helper pour les images
$imgHelper = Loader::Helper('image');
Sortir les miniatures depuis les attributs de page
Si une image existe dans l'attribut Image/File "product_image", afficher un image recadrée à 100px.
<?php
$imgHelper = Loader::Helper('image');
if($c->getAttribute('product_image')) {
$imgHelper->outputThumbnail($c->getAttribute('product_image'),100 ,100);
}
?>sources:
http://www.concrete5.org/documentation/introduction/cheat-sheet
http://www.weblicating.com/index.php/c5/cheat-sheet
