Fonctions 2014

De Wiki.

Cette nouvelle version du CMS a permis de rajouter des fonctions afin de faciliter le traitement de nouvelles données.

Récupération automatique des meta données d'une image

La fonction s'utilise de la manière suivante :


$aMetaImg = imgData($visuel, $niveau=0);

avec $visuel, la valeur stockée en BDD, $niveau le niveau de l'option (taille de l'image déclarée dans la classe).

Cette fonction va nous permettre de remonter toutes les informations d'une image d'un seul coup. La fonction va retourner un tableau répertoriant les données suivante :

fichier => url du fichier
titre => titre de l'image (si l'image possède des datas)
meta => description de l'image (si l'image possède des datas)
url => URL liée à l'image (si l'image possède des datas)

La fonction est disponible dans le fichier cms-inc/utils/graphic.lib.php

Récursion objets parent / enfant

Si l'on a déclaré qu'une classe peut être ordonnée et que chaque objet peut avoir un objet parent, il est alors pratique de pouvoir récupérer les données facilement ordonnées. Il n'y a pas de fonctions intégrées au CMS car tout va dépendre du fonctionnement que l'on veut. Mais voici un exemple de fonctionnement qui peut être utilisé. L'exemple ci-dessous permet de rendre un code HTML propre pour l'imbrication de 2 classes ordonnables et pouvant avoir un objet parent.

//affichage des produits liées à une gamme spécifique
function produitShow($id_gamme){
	global $translator;
	$htmlProd;
	$sqlProd = "SELECT * FROM shp_produit WHERE shp_pdt_id_gamme = ".$id_gamme." AND shp_pdt_statut = '".DEF_ID_STATUT_LIGNE."' ORDER BY shp_pdt_ordre ASC";
	//echo $sqlProd;
	$aProd = dbGetObjectsFromRequete('shp_produit', $sqlProd);
	if(count($aProd)) {
		foreach ($aProd as $p => $oProd) {
			/* $htmlProd.='<li><a href="'.strip_tags(noAccent(strtolower($translator->getByID($oProd->get_titre_court())))).'/'.$oProd->get_id().'/" title="'.strip_tags($translator->getByID($oProd->get_titre_court())).'" class="prod">'.strip_tags($translator->getByID($oProd->get_titre_court())).'</a></li>';*/
			$htmlProd.='<li><a href="http://'.$_SERVER['HTTP_HOST'].'/'.$_SESSION['rep_travail'].'/Produits/'.strip_tags(noAccent(strtolower($translator->getByID($oProd->get_titre_court())))).'/'.$oProd->get_id().'/" title="'.strip_tags($translator->getByID($oProd->get_titre_court())).'" class="prod">'.strip_tags($translator->getByID($oProd->get_titre_court())).'</a></li>';
		}		
	}
	return $htmlProd;	
}

//affichage des gammes et les sous gammes (ainsi que les produits liées à chaque gamme).
function gammeShow($id_parent) {
	global $translator;
	$htmlGamme;
	$sqlGammme = "SELECT * FROM shp_gamme WHERE shp_gam_id_gamme = ".$id_parent." AND shp_gam_statut = '".DEF_ID_STATUT_LIGNE."' ORDER BY shp_gam_ordre ASC";
	
	$aGamme = dbGetObjectsFromRequete('shp_gamme', $sqlGammme);

	if(count($aGamme)) {
		
		foreach ($aGamme as $g => $oGamme) {
			$htmlGamme.= '<li><a href="#_" title="'.strip_tags($translator->getByID($oGamme->get_titre_court())).'">'.strip_tags($translator->getByID($oGamme->get_titre_court())).'</a>';
			$htmlGamme.= '<ul>';
				$htmlGamme.= produitShow($oGamme->get_id());
				$htmlGamme.= gammeShow($oGamme->get_id());

			$htmlGamme.= '</ul>';

			$htmlGamme.= '</li>';
		}
		
	}
	return $htmlGamme;	
}