Comment DedeCMS appelle-t-il cycliquement les colonnes multi-niveaux et les listes de contenu ?
Boucles DedeCMS pour appeler des colonnes et des listes de contenu multi-niveaux
Apprentissage recommandé : Dream Weaver cms
Dedecms est plutôt bon, de bien sûr, en plus de la rapidité de réponse technique du forum ! ! Aujourd'hui je vais partager un petit code relativement pratique pour appeler cycliquement des sous-colonnes et leurs listes de contenu. En fait, vous pouvez aussi le voir en regardant le manuel des balises, mais après tout, il y a encore des paresseux !
Selon le manuel des balises, dans le système DedeCMS, la balise channelartlist peut être utilisée pour parcourir les sous-colonnes et les données de leurs colonnes. On dit que c'est également la seule du système DedeCMS à prendre en charge les balises. imbrication. L'utilisation de base des balises d'appel est la suivante, qui peut être modifiée selon les besoins :
<div> {dede:channelartlist} <dl> <dt><strong><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></strong> <span><a href="{dede:field name='typeurl'/}">更多...</a></span></dt> <dd> <ul> {dede:arclist titlelen='60' row='8'} <li><span>[field:pubdate function="MyDate('m-d',@me)'/]</span><a href="[field:arcurl /]"> [field:title /]</a></li> {/dede:arclist} </ul> </dd> </dl> {/dede:channelartlist} </div>
Le code ci-dessus peut réaliser l'appel de sous-colonnes et de listes de contenu de sous-colonnes sur la page d'accueil ! Parlons de l'utilisation de la balise channelartlist sur les pages de liste et les pages de contenu.
1. Introduction des paramètres
La balise channelartlist prend temporairement en charge trois paramètres, qui sont :
typeid='0' pour limiter l'ID de colonne de niveau supérieur ; utilisez top, qui prend en charge " , " signifie plusieurs colonnes
row='20' Le nombre de colonnes à parcourir, la valeur par défaut est 20
cacheid = '' ID de cache de balise, généralement vide
mais si vous copiez et collez simplement le code ci-dessus inchangé dans la page de colonne ou la page de contenu ultime, aucun résultat d'appel n'apparaîtra, car dans la balise channelartlist, lorsque le typeid est vide, cela signifie la colonne actuelle, mais la liste de colonnes ultime et la page de contenu n'ont pas de colonnes subordonnées, donc une erreur se produira !
2. Exemple d'appel
Sur la page de liste ultime ou la page de contenu, la méthode d'appel correcte doit être la suivante :
{dede:channelartlist typeid='top'}
Voici typed='top'. La valeur supérieure peut être remplacée par l'ID de colonne de niveau supérieur souhaité, mais elle ne doit pas être vide. Tout le monde doit y prêter attention !
3. Mise en surbrillance des colonnes et appel d'effets spéciaux
Sous cette balise, vous pouvez directement utiliser respectivement {dede:field name='typename'/} et {dede:field name='typeurl'. . /} pour représenter le nom de la colonne et le lien de la colonne. Bien sûr, il existe d'autres variables spéciales, qui sont également introduites ici, telles que :
{dede:field name='id'/}与{dede:field name='typeid'/} 均表示循环中的栏目ID; {dede:global name='itemindex'} 表示循环递增变量,从1开始; {dede:global name='itemparity'} 表示循环魔法变量,单数为1,双数为2;
Ce qui précède peut être appliqué directement dans channelartlist. être payé au 2 et au 3. Avec ces deux variables, vous pouvez facilement créer divers effets très personnalisés, comme changer la couleur des colonnes une ligne sur deux.
Concernant la mise en avant de cette colonne, channelartlist.lib.php ne vient pas avec, mais grâce au DIY suivant, la colonne actuelle peut être mise en avant. Méthode (en prenant comme exemple dedecms 5.6) :
Ouvrez le fichier channelartlist.lib.php et trouvez le code suivant :
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
Ajoutez le code suivant à la ligne suivante :
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id']){ $pv->Fields['currentstyle'] = ' id="pic_focus"'; } else{ $pv->Fields['currentstyle'] = ''; }
Ensuite, vous pouvez utiliser {dede:field name='currentstyle'/} pour l'appeler dans le modèle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!