Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de CMS Made Simple. Nous ne faisons de support que sur LA dernière version de CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 17/05/2012 23:54:09

koramarok
Membre
Inscription : 03/05/2012
Messages : 42

[Résolu] Multiples content blocks : deux questions...

Bonjour,

j'ai découvert avec étonnement et plaisir la possibilité de créer des nouveaux content blocks directement dans les gabarits (grace à l'inclusion de tags {content block="monbloc"} ) et que cette création se répercute directement dans l'admin. En voilà une fonctionnalité intéressante !

Mais j'aimerais savoir s'il y a moyen d'organiser l'ordre d'apparition de ces nouveaux blocs dans l'interface d'admin, car par défaut ils apparaissent dans l'ordre ou ils sont appelés dans le gabarit, ce qui s'avère peu pratique dans mon cas tongue

Possible? Pas Possible?

Deuxième question un peu bête : comment peut-on récupérer la valeur de ces même blocs dans des UDT?

Dernière modification par koramarok (03/09/2012 14:21:29)

Hors ligne

 

#2 18/05/2012 11:33:56

kraygoon
Membre
Lieu : Pau, France
Inscription : 02/11/2007
Messages : 495
Site Web

Re : [Résolu] Multiples content blocks : deux questions...

Si tu veux organiser l'ordre d'apparition comme tu veux, ça se fait toujours suivant l'ordre d'appel dans les gabarits.
Si cet arrangement te dérange, je suppose que c'est parce que tu appelles tes blocs à différents endroits du gabarits.

Pour y remédier, tu déclares tes blocs au début de ton gabarit :

[== SMARTY==]
{content block="monbloc1" ..... assign="bloc1"}
{content block="monbloc2" ..... assign="bloc2"}
{content block="monbloc3" ..... assign="bloc3"}

Et plus loin dans ton gabarit tu fais appelles aux variables qui représentent tes blocs :

[== SMARTY==]
<div id="blabla">
{$bloc2}
</div>
<div id="toto">
{$bloc1}
</div>
<div id="plop">
{$bloc3}
</div>

De la sorte tes déclarations de blocs sont dans l'ordre que tu veux et leur utilisation au sein du gabarit dans un autre ordre.

Hors ligne

#3 18/05/2012 11:34:01

kraygoon
Membre
Lieu : Pau, France
Inscription : 02/11/2007
Messages : 495
Site Web

Re : [Résolu] Multiples content blocks : deux questions...

Si tu veux organiser l'ordre d'apparition comme tu veux, ça se fait toujours suivant l'ordre d'appel dans les gabarits.
Si cet arrangement te dérange, je suppose que c'est parce que tu appelles tes blocs à différents endroits du gabarits.

Pour y remédier, tu déclares tes blocs au début de ton gabarit :

[== SMARTY==]
{content block="monbloc1" ..... assign="bloc1"}
{content block="monbloc2" ..... assign="bloc2"}
{content block="monbloc3" ..... assign="bloc3"}

Et plus loin dans ton gabarit tu fais appelles aux variables qui représentent tes blocs :

[== SMARTY==]
<div id="blabla">
{$bloc2}
</div>
<div id="toto">
{$bloc1}
</div>
<div id="plop">
{$bloc3}
</div>

De la sorte tes déclarations de blocs sont dans l'ordre que tu veux et leur utilisation au sein du gabarit dans un autre ordre.

Hors ligne

#4 18/05/2012 11:34:37

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Re : [Résolu] Multiples content blocks : deux questions...

Mais j'aimerais savoir s'il y a moyen d'organiser l'ordre d'apparition de ces nouveaux blocs dans l'interface d'admin, car par défaut ils apparaissent dans l'ordre ou ils sont appelés dans le gabarit, ce qui s'avère peu pratique dans mon cas

Bien sûr, mais il faudrait savoir ce que tu veux comme ordre d'apparition et quelles sont les conditions. Il suffit de créer ces conditions avec smarty : http://www.smarty.net/docsv2/fr/languag … ion.if.tpl

comment peut-on récupérer la valeur de ces même blocs dans des UDT?

Déjà plus complexe, cela fait appel à l'api cmsms (http://www.cmsmadesimple.org/apidoc/) et en particulier à la classe GlobalContentOperations : http://www.cmsmadesimple.org/apidoc/CMS … tions.html
Tu crées une udt "show_all_gcb" :

[== PHP ==]
$gcbOps =cmsms()->GetGlobalContentOperations();
$gcbs   =  $gcbOps->LoadHtmlBlobs();
foreach($gcbs as $gcb) {
   echo '<div class="gcb">' . $gcb->content . '</div>';
}

Si tu colles cette udt dans une page à multiple blocs, tu verras leurs contenus ; à toi de modifier le code selon tes besoins. Code existant sur le wiki anglais : http://wiki.cmsmadesimple.org/index.php … _tags_here

Hors ligne

#5 18/05/2012 12:27:33

koramarok
Membre
Inscription : 03/05/2012
Messages : 42

Re : [Résolu] Multiples content blocks : deux questions...

Merci pour les précisions !

Je teste ça de suite...

Hors ligne

#6 18/05/2012 14:45:39

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Re : [Résolu] Multiples content blocks : deux questions...

Pour la récupération du contenu dans l'udt, je me suis gouré, ce que je t'ai donné récupère les blocs de contenus globaux.
Je regarde pour les content blocks et je te dis quoi.

Hors ligne

#7 18/05/2012 15:43:34

koramarok
Membre
Inscription : 03/05/2012
Messages : 42

Re : [Résolu] Multiples content blocks : deux questions...

en fait j'y suis arrivé à coup de php et de requete sql.
c'est pas super propre, mais ça marche...

Hors ligne

#8 18/05/2012 19:38:47

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 687
Site Web

Re : [Résolu] Multiples content blocks : deux questions...

C'est bien pour toi, mais le but d'une communauté est de s'entraider, ce serait sympa que tu nous indiques comment tu as procédé et ton code wink

Voilà l'udt de récupération pour le "bloc1"

$gCms = cmsms();
$contentops = $gCms->GetContentOperations();
$content_obj = $contentops->GetContentObject();
$page_cont = $content_obj->GetPropertyValue('bloc1');//à modifier suivant le nom du bloc voulu
$arr = preg_split("/[\s]+/", $page_cont);
$arr = array_slice($arr,0);
$page_cont = join(' ',$arr);
echo '<div id="bloc2">'.$page_cont.'</div>';

Dernière modification par Jean le Chauve (18/05/2012 19:41:05)

Hors ligne

#9 22/05/2012 09:11:39

koramarok
Membre
Inscription : 03/05/2012
Messages : 42

Re : [Résolu] Multiples content blocks : deux questions...

J'ai procédé en mettant ce code dans un UDT appelé en homepage.

Premier temps je récupère les valeurs :

[== PHP ==]
global $gCms;
$db = &$gCms->GetDb();

$sql = "SELECT content.content_id, nom_artiste.content nom_artiste, titre_album.content titre_album
	FROM ".cms_db_prefix()."content content
	JOIN ".cms_db_prefix()."content_props nom_artiste on (content.content_id = nom_artiste.content_id and nom_artiste.prop_name='nom_Artiste')
    left JOIN ".cms_db_prefix()."content_props titre_album on (content.content_id = titre_album.content_id and titre_album.prop_name='titre_Album')

Deuxième temps je les affiche :

[== PHP ==]
	order by content.hierarchy DESC limit $limit";

$dbresult = $db->Execute($sql);
if( !$dbresult )
{
	echo 'DB error: '. $db->ErrorMsg()."<br/>";
}
while($dbresult && $row = $dbresult->FetchRow()){
	echo "<h3>".$row['nom_artiste']."</h3>";
	echo "<h4>".$row['titre_album']."</h4>";
}

Hors ligne

Pied de page des forums

  Flux Rss Twitter FaceBook