feedback

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() ?>

notes 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