Liste et explication des fonctions facilitant la création de thèmes.
Chacune de ces fonctions retourne une chaîne (sauf aff()
). Si vous souhaiter afficher la chaîne ajouter le prefix aff_
à la fonction (revient au même que faire un echo fonction()
).
Exemple : la liste des auteurs
filter('authors==',$item['authors']); // Retourne la chaîne qu'on poura mettre dans une variable aff_filter('authors==',$item['authors']); // Affiche la chaîne, elle sera donc directement visible dans // la page affichée pas le navigateur
Dans chaque fonction les variables sont explique sous la forme :
nom de l'argument [ = valeur par défaut] | type de variable (array, string) | description |
---|
Si l'argument n'a pas de valeur par défaut il est obligatoire.
Afficher simplement un élément provenant d'un fichier xml et retourne True. Si l'élément n'est pas trouvé retourne False et affiche un message d'erreur.
$var | string, array | Variable à afficher. Ex: $item['title'] affiche le titre de l'élément. |
---|---|---|
$separatorCol = “, ” | string | Séparation des “Colonnes” (balise xml “col”) si $var est un array. |
$separatorLine = “; ” | string | Séparation des “Ligne” (balise xml “line”) si $var est un array. |
Retourne un élément provenant d'un fichier xml. Si l'élément n'est pas trouvé retourne “Erreur : champ introuvable $var”.
$var | string, array | Variable à afficher. Ex: $item['title'] affiche le titre de l'élément. |
---|---|---|
$separatorCol = “, ” | string | Séparation des “Colonnes” (balise xml “col”) si $var est un array. |
$separatorLine = “; ” | string | Séparation des “Ligne” (balise xml “line”) si $var est un array. |
Menu déroulant pour sélectionner la collection
$nameButton = “ok” | string | Label du bouton de confirmation (invisible si javascript est activé sur le navigateur). |
---|
Adresse vers le modèle de page list_<type>.php.
$page = 1 | float, integer | No de le page. Si c'est un float il sera arrondi (voir round) |
---|
Exemple d'utilisation dans le page item_<type>.php (retourner a la page list_<type>.php contenant l'item))
<a title="Parcourir" href="<?php aff_hrefPage($item['key']/$conf['item/page']+.5) ?>">↑</a>
Liens (y compris les balises <a href=
) vers la 1ère et la/les pages précédente(s) de la collection (à utiliser dans les page list_<type>.php).
$nb = 1 | interger | nombre de page précédente à afficher |
---|---|---|
$sep = ' ' | string | signe séparateur a mettre entre la page |
Numéro de la page courante (à utiliser dans les page list_<type>.php).
aucun argument |
---|
Liens vers la/les pages suivante(s) et la dernière page (à utiliser dans les page list_<type>.php).
$nb = 1 | interger | nombre de page précédente à afficher |
---|---|---|
$sep = ' ' | string | signe séparateur a mettre entre la page |
Liens vers le 1er et le/les précédent(s) élements de la collection (filtre pris en compte, à utilisé dans les page item_<type>.php).
$nb = 1 | interger | nombre de page précédente à afficher |
---|---|---|
$sep = ' ' | string | signe séparateur a mettre entre la page |
Numéro de l'élément courant (à utilisé dans les page item_<type>.php).
aucun argument |
---|
Liens vers le/les et le dernier élément de la collection (filtre pris en compte, à utilisé dans les page item_<type>.php).
$nb = 1 | interger | nombre de page précédente à afficher |
---|---|---|
$sep = ' ' | string | signe séparateur a mettre entre la page |
Adresse de la page de l'item.
$id / | array, interger | tableau de type $item ou id de l'item |
---|
Exemple d'utilisation dans le page list_<type>.php (affiche le lien vers la page de l'item)
//dans une boucle foreach ($items as $item) ?><a href="<?php aff_hrefItem($item) ?>"><?php aff($item['title'] ?></a><?php
Lien vers un type de page (standard ou listé dans model_add).
$model | string | $model prendra le nom du type de page (list, item, main, search ou cloud) |
---|---|---|
$sortANDfilter = False | bool | Transmêtre ou nous les filtres et l'ordre de tri des éléments à la page |
Liste de lien qui enveront vers les page au filtres correspondants.
$prefix | string | le champs dans le quel chercher suvit du signe de condition (voir filtre) |
---|---|---|
$var | string, array | la/les valeur(s) qu'il faudra chercher |
$text = Flase | string, array, False | le texte à afficher comme label au lien (si False $text = $var sinon $text soit être du même type que $var et comporter le même nombre d'élément. |
$separator = “, “ | string | les chaînes de séparations a mettre entre les éléments si $text et $var sont des array |
$optionBalise = ”“ | string | permet d'ajouter des options a chaque balise href (comme class=“filter” ). |
$model = Flase | string | Page model (si False, renvoi sur 'list'. |
Exemple d'utilisation : filtre sur le nom des auteurs
filter('authors==',$item['authors'])
Retourne True si c'est le clef de tri courante
$sort | string | idem hrefSortBy() |
---|
Adresse la la page filtrant le élément.
$sort | string | nom du champs selon lequel il faudra trier les éléments suvivit de ASC (ordre ascendant) DSC (ordre descendant). Il est possible d'avoir plusieur clef de triage. Il faut séparé ces clef par un virgule (,) |
---|
Exemple d'utilisation, trier selon la note (plus grande à plus petite) puis le titre (ordre alphbétique).
hrefSortBy('ratingDSC,titleASC')
Permet d'affcher la note sous forme d'image via la feuille de style. Le nombre d'image sera donné par $max/2. Par défaut GCstar note les éléments sur 10, cette fonction permettra donc d'afficher la note sous le forme de 5 image.
Retourne une serie de avec comme class star_full, star_half, ou star_empty
^ $note | integer | note de l'élément |
^ $max = 10 | integer paire | note max (et indirectement le nombre d'image |
exemple d'utilisation : la note sous la forme de 5 étoile.
Code php dans la page
<code php>
star($item['rating']);
</code>
Feuille de style
<code css>
.star_full, .star_half, .star_empty {
background-repeat: no-repeat;
padding:8px;
}
.star_full { background-image : url(img/star_full.png); }
.star_half { background-image : url(img/star_half.png); }
.star_empty { background-image : url(img/star_empty.png); }
</code>
Étant donner que GCstar note les élement sur 10 si vous voulez représenter cette note avec 4 étoile il faudra faire comme cela (a mon avis ça ne donnera pas grand chose, mieux vaut rester sur 5 étoile enfin … c'est possible) :
<code php>
star($item['rating']*4/5,8)
</code>
===== image =====
Afficher un élement de type image (jpg, jpeg, png ou gif).
^ $img = '' | string | Nom de l'image de base |
^ $X = '' | integer, False | Largeur maximal de l'image. False, '' ou 'auto' = largeur de l'image de base |
^ $Y = '' | integer, False | Hauteur maximal de l'image. False, '' ou 'auto' = hauteur de l'image de base |
Si $X et $Y = False, '' ou 'auto' l'image renvoyer sera l'original.
Exemples d'utilisation :
<code php>
#afficher la couverture dans BD avec une hauteur de 160px.
image($item['cover'],'auto',160);
#afficher la même couverture dans ça taille originale
image($item['cover']);
</code>
===== attrsize_image =====
Retourne les attributs (
width=”…” height=“…”) pour la balise img
^ $img = '' | string | Nom de l'image de base |
^ $X = '' | integer, False | Largeur maximal de l'image. False, '' ou 'auto' = largeur de l'image de base |
^ $Y = '' | integer, False | Hauteur maximal de l'image. False, '' ou 'auto' = hauteur de l'image de base |
Si $X et $Y = False, '' ou 'auto' l'image renvoyer sera l'original.
Exemples d'utilisation :
<code html>
<img alt=“image” src=“<?php aff_image($item['cover'],120,160) ?>” <?php aff_attrsize_image($item['cover'],120,160) ?> />
</code>
===== search =====
Toute les fonctionnalité pour les formulaires de recherche. Plutot complexe a utilisé :/ le plus simple est de ce basé sur un thème existant.
^ $champs | 'start', 'submit', 'end', 'keyword', 'in_champs', 'request', string | Type de balise de formulaire. string peut être uniquement utilisé dans les formulaires de recherche avancé. Ce sera le nom du champ qu'on chercher précédé du signe de condition. |
^ $type = '' | 'str', 'num', 'bool', 'list', '', string | type de $champs quand $champ est un string |
^ $optionBalise = '' | string | permet d'ajouter des éléments à la balise html
(par ex width=“20” class=“recherche”) |
^ $default = '' | string/array | Permet de mettre une valeur par défaut dans le champs de recherche. Pour $champs = string il est également possible de mettre un array afin de créer un liste à choix multiple. La valeur à séléctionner par défaut devra être suivit d'un *. |
<note>
$default à été introduit avec GCweb 1.1.
</note>
Exemple d'utilisation : Les champs entre [] sont optionnels
- Afficher un petit formulaire avec un champs pour mettre le mot à chercher et une liste des champs où chercher (comme dans la barre de menu du thème par défaut).<code php>
search('start'); Début du formulaire (ouverture de la balise <form>)
search('keyword'); Zone où l'utilisateur pourra entré ce
qu'il cherche (<input type=“text” …)
search('in_champs',array(
array(<cond1>,<label1>),
[array(<cond2>,<label2>),
[array(<cond3>,<label3>)]]));
Affiche une liste à options (<select><option></option></select>)
pour séléction dans quel champ il faut chercher.
<cond> : La condition de recherche du type <champ>
contient %s :
<champ>=%s
ou encore <champ1> ou <champ2> contient %s :
<champ1>=%s,|<champ2>=%s
<champ> : est le nom du champ du fichier xml dans
lequel il faut chercher
= : Un signe de condition¹ les autres peuvent
aussi être utilisé
%s : Serra remplacé par la chaine à chercher
<label> : étiquette dans la liste à options
[search('in_collec');]
Liste les collections, si non spécifier untilise la
collection courantes.
search('submit'); Bouton de soumission² (<input type=“submit” …)
search('end'); fin du formulaire (</form>)
</code>
- Afficher un formulaire de recherche multi-critères (comme dans la page recherche avancée du thème pas défaut)<code php>
search('start'); Début du formulaire
[search(<nom du champs>, <type>);]
Affiche une ligne de recherche pour un des critères.
Réutiliser cette fonction pour les autres critères.
<Nom du champs> ben … le champs ou chercher
<type> : Type de champs (affiche le choix des signes
de condition en conséquence.
'str': Chaine, on peut donc faire des “contient”,
“ne contient pas”, …
'num': Valeur numérique, on peut donc faire des “<”, “>”, …
'bool': Oui/non
'list': Affiche un liste des valeur que peut prendre le champ
'': Signe de condition à taper
<other>:<other> sera le signe de condition¹
search('submit'); Bouton de soumission (il est possible de
spécifier le label avec le 2ème arguments
search('end'); Fin du formulaire
</code>
- Afficher une zone de texte pour taper une requête manuellement (comme la 2ème et dernière partie de la recherche avancée du thème par défaut)<code php>
search('start'); Début du formulaire
search('request'); Zone pour taper la requête, utilisé le
3ème argument de la fonction pour spécifier la taille
de cette zonne (voir options de textarea en html)
search('submit'); Bouton de soumission il est possible de
spécifier le label avec le 2ème arguments
search('end'); Fin du formulaire
</code>
* (¹) Les signes de conditions (insensible à la case)<code>
= contient
!= ne contient pas
== est exactement
==! ne contient pas l'expression exacte
< plus petit que (valeur numérique uniquement)
> plus grand que (idem)
⇐ plus petit ou égal que (idem)
>= plus grand ou égal que (idem)
</code>
===== cloud =====
Afficher un Nuage
^ $champ | string | champs avec le quel faire le nuage |
^ $pas=10 | integer | Nombre de pas (taille des mots du nuage par exemple). Chanque élément du nuage est un lien qui aura comme class cloud<n°pas> le <n°pas> commencant par 1 (moins important) et finissant par $pas (plus important). |
exemple d'utilisation : nuage de genre
Dans la page
<code php>
<?php aff_cloud('genre') ?>
</code>
Feuille de style
<code css>
.cloud1 {color: #99F; font-size:80% }
.cloud2 {color: #88F; font-size:90% }
.cloud3 {color: #77F; font-size:100%}
.cloud4 {color: #66F; font-size:110%}
.cloud5 {color: #55F; font-size:120%}
.cloud6 {color: #44F; font-size:130%}
.cloud7 {color: #33F; font-size:140%}
.cloud8 {color: #22F; font-size:150%}
.cloud9 {color: #11F; font-size:160%}
.cloud10{color: #00F; font-size:170%}
</code>
===== test =====
Tester si une variable est vide ou pleine dans le fichier xml de GCstar.
^ $value | string array … | Valeur à tester |
===== noIE =====
Petit gadget affichant un message à l'attention des utilisateurs d'internet explorer. Si le navigateur respectant très mal les css moderne un message définit par l'utilisateur dans la configuration s'affichera.
Cette fonction doit être utilisé dans un partie non mise en cache. Sinon le message s'affichera toujours si la 1ère visite de la page c'est faite avec ce satané navigateur ou ne s'affichera jamais si la 1ère visite c'est faite avec un vrais navigateur.
^ aucun argument |