GetName()=="specnote"){}" puis définissez le "$pecrule" ; " variable ."/> GetName()=="specnote"){}" puis définissez le "$pecrule" ; " variable .">
Maison > Article > Tutoriel CMS > Comment utiliser le modèle spécial dedecms
Comment utiliser le modèle de thème dedecms ?
Il y a relativement peu d'informations sur le sujet des DeDeCms sur bbs J'ai consulté beaucoup d'informations auparavant mais je n'ai pas trouvé sa solution
Etude recommandée. : tissé Dream cms
La seule façon d'avoir suffisamment de nourriture et de vêtements est de compter sur soi-même; il y a ce passage dans la version officielle :
1. la liste est séparée sous la forme ID1, ID2, ID3. Le système exclura automatiquement les articles identiques de différents nœuds
2. Concernant l'utilisation de la balise [field:fieldname /] dans un seul modèle d'enregistrement ; veuillez vous référer aux instructions d'aide du système sur la balise arclist ;
3. L'ID du nœud est l'identifiant unique du nœud. Il est permis d'utiliser {dede:specnote id='identity'/} pour représenter un seul. nœud dans le modèle de sujet.
4. Dans des circonstances normales, chaque nœud affiche les documents dans la « Liste des articles du nœud ». Si vous spécifiez le « mode d'acquisition automatique », vous devez spécifier le mot-clé et l'ID de colonne.
Cependant, après avoir testé {dede:specnote id='note'/}, cela n'a pas amélioré l'efficacité. Nous avons donc commencé à résoudre ce problème pour remplacer le {dede:field name='note' d'origine, plus rigide ; /} tag;
Exemple :
Je souhaite afficher des articles avec des nœuds différents sur deux colonnes. Actuellement, cela ne peut pas être réalisé en utilisant "note". même nœud, ce qui semble forcément un peu gênant. Pas assez flexible.
Ci-dessous, j'écrirai ma solution pour référence aux étudiants. Tout d'abord, je dois préciser qu'elle ne peut réaliser que la fonction, mais que l'algorithme n'est pas nécessairement le meilleur, car je ne suis pas très bon. Je connais le code DEDECMS et je ne l'ai pas, je l'ai étudié attentivement et j'espère que tout le monde comprendra !
Étape 1 :
Emplacement du fichier : {include/inc_archives_view.php}
Le code est le suivant :
//广告标记 //----------------------- else if($ctag->GetName()=="myad"){ $this->dtp->Assign($tagid,$this->PartView->GetMyAd($typeid,$ctag->GetAtt("name"))); } // 专题标识 // by phpfans else if($ctag->GetName()=="specnote"){ $this->dtp->Assign($tagid,$this->ChannelUnit->GetSpecList('',$this->ChannelUnit->specrule,$ctag->GetAtt("id"))); }
Introduction : {Ajouter un sujet sous la balise publicitaire Logo}afin que la page spéciale de liste d'articles puisse reconnaître la balise specnote
Étape 2 :
Emplacement du fichier : {include/inc_channel_unit.php}
var $specrule; //------------- //php5构造函数 //-------------
Introduction : Ajout de la définition de la variable $pecrule
Étape 3 :
Emplacement du fichier : {include/inc_channel_unit.php}
Le code est le suivant :
else if($ftype=="specialtopic"){ $this->specrule = $fvalue; $fvalue = $this->GetSpecList($fname,$fvalue); }
Introduction : Ajoutez ici Ajoutez la phrase $this->specrule = $fvalue; afin d'obtenir les données du champ de note de la table addonspec
Étape 4 :
Emplacement du fichier : {include/inc_channel_unit.php}
Le code est le suivant :
//获得专题文章的列表 //-------------------------------- function GetSpecList($fname,$noteinfo,$noteid="") { if(!isset($GLOBALS['__SpGetArcList'])) require_once(dirname(__FILE__)."/inc/inc_fun_SpGetArcList.php"); if($noteinfo=="") return ""; $rvalue = ""; $tempStr = GetSysTemplets("channel/channel_spec_note.htm"); $dtp = new DedeTagParse(); </p> <p></p> <p>$dtp->LoadSource($noteinfo); if(is_array($dtp->CTags)) { foreach($dtp->CTags as $k=>$ctag){ $notename = $ctag->GetAtt("name"); if($noteid!="" && $ctag->GetAtt("noteid")!=$noteid){ continue; } //指定名称的专题节点 if($noteid!="" && $ctag->GetAtt("noteid")===$noteid) { $isauto = $ctag->GetAtt("isauto"); $idlist = trim($ctag->GetAtt("idlist")); $rownum = trim($ctag->GetAtt("rownum")); if(empty($rownum)) $rownum = 40; $keywords = ""; $stypeid = 0;</p> <p>if($isauto==1){ $idlist = ""; $keywords = trim($ctag->GetAtt("keywords")); $stypeid = $ctag->GetAtt("typeid"); }</p> <p>if(trim($ctag->GetInnerText())!="") $listTemplet = $ctag->GetInnerText(); else $listTemplet = GetSysTemplets("spec_arclist.htm"); $idvalue = SpGetArcList($this->dsql, $stypeid,$rownum,$ctag->GetAtt("col"), $ctag->GetAtt("titlelen"),$ctag->GetAtt("infolen"), $ctag->GetAtt("imgwidth"),$ctag->GetAtt("imgheight"), "all","default",$keywords,$listTemplet,100,0,$idlist);</p> <p>$notestr = str_replace("~notename~",$notename,$tempStr); $notestr = str_replace("~spec_arclist~",$idvalue,$notestr); $rvalue .= $notestr; if($noteid!="" && $ctag->GetAtt("noteid")==$noteid){ break; } } } } $dtp->Clear(); return $rvalue; }
Introduction : Il y a quelques petits changements, qui seront clairs après les avoir comparés par vous-même, donc il n'y en aura plus trembler ici
Étape 5 :
Instructions : La balise originale {dede:field name='note'/} n'est pas valide. Si vous souhaitez l'utiliser, veuillez modifier la quatrième partie par vous-même. . .
Très simple
Fait !
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!