Das Modul prüft dabei, ob der als canonical hinterlegte Webartikel ggf. offline ist, gar nicht existiert oder auf sich selbst verweist. Trifft eine der Bedingungen zu, wird im Frontend kein canonical-tag ausgespielt. Im Backend wird entsprechend darauf hingewiesen. Ist die idart okay, kann aus dem Backend heraus der angegebene Artikel direkt aufgerufen werden.
Wichtig: Das Modul muss innerhalb des <head> platziert werden.
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : canonical_sd
* Author(s) : Seamless-Design Markus Hübner
* Copyright : Markus Hübner
* Created : 03/2019
************************************************/
$cms_value="CMS_VALUE[100]";
$cms_value_canonical_idart=intval($cms_value);
$canonical_existing="false";
if($cms_value_canonical_idart=="0") $cms_value_canonical_idart="";
else
{
$search = "SELECT idart,idlang,online FROM con_art_lang WHERE idart='$cms_value_canonical_idart' AND idlang='$lang'";
$result = cRegistry::getDb();
$result->query($search);
while($result->nextRecord())
{
$array_canonical=$result->toArray();
$canonical_existing="true";
}
if($canonical_existing!="true") echo '<p>canonical-idart existiert nicht und wird nicht ausgespielt!</p>';
elseif($array_canonical["online"]!="1") echo '<p>canonical-idart ist offline und wird nicht ausgespielt!</p>';
}
if($cms_value_canonical_idart==$idart) echo '<p>canonical-idart ist identisch mit diesem Webartikel und wird nicht ausgespielt!</p>';
echo 'canonical-idart: <input type="int" name="CMS_VAR[100]" value="'.$cms_value_canonical_idart.'"/>';
if($cms_value_canonical_idart!="" AND $canonical_existing=="true" AND $array_canonical["online"]=="1" AND $cms_value_canonical_idart!=$idart) echo '<br/><a href="http://'.$_SERVER['HTTP_HOST'].'/cms/front_content.php?idart='.$cms_value_canonical_idart.'&lang='.$lang.'" target="_blank">Webartikel aufrufen</a>';
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : canonical_sd
* Author(s) : Seamless-Design Markus Hübner
* Copyright : Markus Hübner
* Created : 03/2019
************************************************/
$canonical_idart="CMS_VALUE[100]";
if(!empty($canonical_idart) AND is_int(intval($canonical_idart)) AND $canonical_idart!=$idart)
{
$search = "SELECT idart,idlang,online FROM con_art_lang WHERE idart='$canonical_idart' AND idlang='$lang'";
$result = cRegistry::getDb();
$result->query($search);
while($result->nextRecord()) $array_canonical=$result->toArray();
if($array_canonical["online"]=="1")
{
$params = array('idart'=>$canonical_idart,'lang'=>$lang);
$canonical_url = cUri::getInstance()->build($params, true);
echo '<link rel="canonical" href="'.$canonical_url.'"/>';
}
}
?>