Maison  >  Article  >  Tutoriel CMS  >  Comment utiliser la balise d'extension DEDECMS

Comment utiliser la balise d'extension DEDECMS

藏色散人
藏色散人original
2020-01-11 09:17:121919parcourir

Comment utiliser la balise d'extension DEDECMS

Comment utiliser la balise d'extension DEDECMS ?

Exemple de démonstration de balise d'extension DEDECMS

Apprentissage recommandé : Dreamcms

Nous pouvons regarder un exemple de balise : demotag.lib .php,

if(!defined('DEDEINC')) 
{ 
exit("Request Error!"); 
} 
function lib_demotag(&$ctag,&$refObj) 
{ 
global $dsql,$envs; 
 
$attlist="row|12,titlelen|24"; 
FillAttsDefault($ctag->CAttribute->Items,$attlist); 
extract($ctag->CAttribute->Items, EXTR_SKIP); 
$revalue = ''; 
 
//------------------------------------------------------ 
$revalue = 'Hello Word!'; 
//------------------------------------------------------ 
return $revalue; 
} 
?>

Nous constaterons que la balise fonctionne et notre contenu est affiché.

Comment utiliser la balise dextension DEDECMS

$revalue = 'Hello Word!'; 
$revalue .=" 
Row:".$row.";TitleLen:".$titlelen;

Comment utiliser la balise dextension DEDECMS

Nous pouvons donc voir que cet attribut a été créé en tant que variable et attribué une valeur.

Ensuite, nous pouvons modifier davantage cette balise.

function lib_writerarc(&$ctag,&$refObj)

Ensuite, nous pouvons écrire des instructions de requête et des fonctions associées pour le traitement du modèle sous-jacent

$revalue = ''; 
$innertext = $ctag->GetInnerText(); 
$ctp = new DedeTagParse(); 
$ctp->SetNameSpace('field', '[', ']'); 
$sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row"; 
 
 
 
$dsql->Execute('me',$sql); 
while($rs = $dsql->GetArray('me')) 
{ 
 
$rs['title'] = cn_substr($rs['title'], $titlelen); 
 
$ctp->LoadSource($innertext); 
foreach($ctp->CTags as $tagid=>$ctag) { 
if(!emptyempty($rs[strtolower($ctag->GetName())])) { 
$ctp->Assign($tagid,$rs[$ctag->GetName()]); 
} 
} 
 
$revalue .= $ctp->GetResult(); 
}

Enfin, renvoyer cette valeur return $revalue;

Le contenu complet du fichier est le suivant :

if(!defined('DEDEINC')) 
{ 
exit("Request Error!"); 
} 
function lib_writerarc(&$ctag,&$refObj) 
{ 
global $dsql,$envs; 
 
$attlist="row|12,titlelen|24"; 
FillAttsDefault($ctag->CAttribute->Items,$attlist); 
extract($ctag->CAttribute->Items, EXTR_SKIP); 
$revalue = ''; 
$innertext = $ctag->GetInnerText(); 
$ctp = new DedeTagParse(); 
$ctp->SetNameSpace('field', '[', ']'); 
$sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row"; 
$dsql->Execute('me',$sql); 
while($rs = $dsql->GetArray('me')) 
{ 
 
$rs['title'] = cn_substr($rs['title'], $titlelen); 
 
$ctp->LoadSource($innertext); 
foreach($ctp->CTags as $tagid=>$ctag) { 
if(!emptyempty($rs[strtolower($ctag->GetName())])) { 
$ctp->Assign($tagid,$rs[$ctag->GetName()]); 
} 
} 
 
$revalue .= $ctp->GetResult(); 
} 
return $revalue; 
} 
?>

Afficher et déboguer grâce à la navigation dynamique de la page?aid=3

{dede:writerarc row='10' titlelen='6'} 
[field:title/]  
{/dede:writerarc}

Comment utiliser la balise dextension DEDECMS

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn