Comment DreamWeaver appelle-t-il le nom, l'ID et l'URL actuels de la colonne supérieure ?
Lorsque nous utilisons le modèle Dreamweaver pour créer un site Web, nous rencontrons souvent le besoin d'appeler le nom actuel de la colonne de niveau supérieur et le nom par défaut de Dreamweaver {dede:field name='typename' /} ne peut obtenir que la colonne actuelle. Le nom de la colonne d'un niveau sur la page, pas le nom de la colonne de niveau supérieur de la colonne actuelle.
Apprentissage recommandé : Dreamweaver cms
Ajouter en bas de include/common.func.php :
//获取顶级栏目名 function GetTopTypename($id) { global $dsql; $row = $dsql->GetOne("SELECT typename,topid FROM dede_arctype WHERE id= $id"); if ($row['topid'] == '0') { return $row['typename']; } else { $row1 = $dsql->GetOne("SELECT typename FROM dede_arctype WHERE id= $row[topid]"); return $row1['typename']; } }
Remarque : si la colonne du haut est non lié Pour déterminer le nom de domaine de deuxième niveau, le champ appelé doit être sitepath, le code doit donc être le suivant :
//获取顶级栏目url function GetTopTypeurl($id) { global $dsql; $row = $dsql->GetOne("SELECT sitepath,topid FROM dede_arctype WHERE id= $id"); if ($row['topid'] == '0') { return $row['sitepath']; } else { $row1 = $dsql->GetOne("SELECT sitepath FROM dede_arctype WHERE id= $row[topid]"); return $row1['sitepath']; } }
La fonction fonction appelée par les autres champs de la colonne du haut peut être écrite comme indiqué ci-dessus .
De même, vous pouvez obtenir la méthode d'URL de colonne de niveau supérieur (le champ appelé lorsque la colonne de niveau supérieur est liée au nom de domaine de deuxième niveau est "siturl")
function GetTopTypeurl($id) { global $dsql; $row = $dsql->GetOne("SELECT siteurl,topid FROM dede_arctype WHERE id= $id"); if ($row['topid'] == '0') { return $row['siteurl']; } else { $row1 = $dsql->GetOne("SELECT siteurl FROM dede_arctype WHERE id= $row[topid]"); return $row1['siteurl']; } }
Quand appelé sur la page d'article ou la page de liste de colonnes, cela peut être réalisé en ajoutant la ligne de code suivante à l'endroit où vous souhaitez appeler le nom de la colonne.
{dede:field name='typeid' function="GetTopTypename(@me)" /} 顶级栏目名 {dede:field name='typeid' function="GetTopTypeurl(@me)" /} 顶级栏目url
dede appelle l'ID de la colonne supérieure
Méthode 1 :
{dede:field.typeid function="GetTopid(@me)"/} dedeyuan recommande cette méthode, c'est faisable après essai.
dede appelle l'ID de colonne de niveau supérieur
Méthode 2 :
1 Là où vous devez appeler l'ID de colonne de niveau supérieur, ajoutez cette syntaxe de balise
.{dede:type}[feild:topid/]{/dede:type}
2. Modifiez le fichier source et recherchez type.lib.php dans le répertoire taglib sous le répertoire include.
Recherchez cette instruction
$row = $dsql->GetOne(“Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where id=’$typeid’ “);
et modifiez-la en
$row = $dsql->GetOne(“Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where id=’$typeid’ “);
Ajoutez
if( $row['topid']==0){$row['topid']=$row['id'];}
à la ligne suivante de if(!is_array($row)) return » ; comme ceci, cette instruction peut être appelée à la fois dans les colonnes et les sous-colonnes de niveau supérieur
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!