Comment ajouter l'attribut nototypeid à la balise Dreamweaver artlist pour implémenter le filtrage des colonnes ?
La fonction de balise de DreamWeaver est très puissante. Tant que vous êtes familier avec ces balises, vous pourrez facilement appeler diverses formes de données d'arrière-plan au premier plan. Bien sûr, ce serait encore plus parfait si nous pouvions comprendre certaines technologies et améliorer le label de DreamWeaver.
Étude recommandée : Dream Weaver cms
J'ai récemment développé et subdivisé les colonnes de mon petit site, des sept colonnes originales de premier niveau à dix Deux premières Colonnes de premier niveau, chaque colonne de premier niveau est subdivisée en quatre à huit colonnes de deuxième niveau pour une meilleure gestion du contenu.
Mais j'ai rencontré un problème. Je ne souhaite pas qu'une des colonnes soit affichée dans la dernière liste d'articles sur la page d'accueil, il s'agit selon la méthode existante de DreamWeaver de changer l'attribut typeid de la balise arclist. pour afficher l'article. Tous les ID de colonne sont définis, mais il y a trop d'ID de colonne, ce qui sera difficile à maintenir à l'avenir, donc je pense que puisque arclist prend en charge flag et noflag, il devrait également prendre en charge typeid et nototypeid, n'est-ce pas ?
Après quelques tests et traçage du code source, j'ai découvert que Notypeid n'est pas pris en charge par Dreamweaver. Que dois-je faire ? Écrivez-le vous-même !
Ouvrez le fichier /include/taglib/arclist.lib.php et trouvez ce code (environ la ligne 130) :
return lib_arclistDone ( $refObj, $ctag, $typeid, $ctag->GetAtt('row'), $ctag->GetAtt('col'), $titlelen, $infolen, $ctag->GetAtt('imgwidth'), $ctag->GetAtt('imgheight'), $listtype, $orderby, $ctag->GetAtt('keyword'), $innertext, $envs['aid'], $ctag->GetAtt('idlist'), $channelid, $ctag->GetAtt('limit'), $flag,$ctag->GetAtt('orderway'), $ctag->GetAtt('subday'), $ctag->GetAtt('noflag'), $tagid,$pagesize,$isweight );
Ajoutez à la fin de la dernière parenthèse (notez la virgule devant ):
,$ctag->GetAtt('notypeid')
Trouvez ensuite ce bout de code (à propos de la ligne 168) :
function lib_arclistDone(&$refObj, &$ctag, $typeid=0, $row=10, $col=1, $titlelen=30, $infolen=160, $imgwidth=120, $imgheight=90, $listtype='all', $orderby='default', $keyword='', $innertext='', $arcid=0, $idlist='', $channelid=0, $limit='', $att='', $order='desc', $subday=0, $noflag='',$tagid='', $pagesize=0, $isweight='N')
Ajoutez à la fin des parenthèses (notez la virgule devant) :
,$notypeid=0
Retrouvez-le cette phrase :
$orwheres[] = ' arc.arcrank > -1 ';
Ajoutez le code suivant devant :
if(!empty($notypeid)) { $orwheres[] = " and arc.typeid NOT IN (".GetSonIds($notypeid).")"; }
De cette façon, le code est modifié. Après l'enregistrement, essayez l'attribut nototypeid dans la balise arclist. Pour les sites Web comportant de nombreuses colonnes et un affichage de contenu compliqué, cet attribut est très pratique.
Utilisation :
Le code est le suivant :
{dede:arclist row=6 orderby=pubdate type='image.' imgwidth='108' imgheight='150' channelid='1' notypeid='9'}
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!