Canonical Tag Modul

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Canonical Tag Modul

Beitrag von Faar » Fr 4. Apr 2014, 14:57

Hallo!
Ich habe das Modul für einen Canonical Tag im <HEAD> von 4.8 nun auch für 4.9.3 zum Download bereit gestellt.
alter Artikel hier

Zum Downloaden bitte hier entlang: http://www.dfabig.de/de/download/conten ... enido.html
Die 4.9.3 Version ist lediglich die zip-Datei.
Die Readme.txt passt ungefähr auch auf die neue Version 2.0 (C 4.8.x ist V 1.x).
Der Modul-Typ ist nun head, beim einbauen des Containers bitte darauf achten.

Code: Alles auswählen

<container id="5" name="Canonical_Tag" types="head" mode="fixed" default="Canonical_Tag">Canonical_Tag</container>
Falls noch Fehler sind, bitte melden.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

volupp11
Beiträge: 93
Registriert: Di 28. Nov 2006, 00:33
Wohnort: Berlin
Kontaktdaten:

Re: Canonical Tag Modul

Beitrag von volupp11 » Di 8. Apr 2014, 23:34

Hallo Faar,
vielen Dank für dein Modul. Den Canonical-Tag kann man aber auch mit Contenido-Bordmitteln realisieren:
- Einfach unter dem Reiter "SEO" einen definierten Metatag ergänzen.
Ist zwar nicht so dynamisch wie dein Modul, aber dafür einfacher erreichbar und im passenden Themenbereich "SEO" erreichbar.

mischi05
Beiträge: 7
Registriert: Do 17. Okt 2013, 16:56
Kontaktdaten:

Re: Canonical Tag Modul

Beitrag von mischi05 » Fr 8. Aug 2014, 15:44

Dieser Code löst die Aufgabe noch eleganter... :)

Code: Alles auswählen

$cl = new cApiCategoryLanguageCollection();
$startid = $cl->getStartIdartByIdcatAndIdlang($idcat,$lang);
if($idart == $startid){
echo '<link rel="canonical" href="'. $sess->url('front_content.php?idcat='. $idcat .'') .'" />';
}else{
echo '<link rel="canonical" href="'. $sess->url('front_content.php?idart='. $idart .'') .'" />';
}

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Canonical Tag Modul

Beitrag von Faar » So 10. Aug 2014, 16:00

mischi05 hat geschrieben:Dieser Code löst die Aufgabe noch eleganter... :)

Code: Alles auswählen

$cl = new cApiCategoryLanguageCollection();
$startid = $cl->getStartIdartByIdcatAndIdlang($idcat,$lang);
if($idart == $startid){
echo '<link rel="canonical" href="'. $sess->url('front_content.php?idcat='. $idcat .'') .'" />';
}else{
echo '<link rel="canonical" href="'. $sess->url('front_content.php?idart='. $idart .'') .'" />';
}
Und was genau löst oder macht der Code?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Zuschauer
Beiträge: 141
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: Canonical Tag Modul

Beitrag von Zuschauer » Mo 11. Aug 2014, 07:45

Das sieht man doch deutlich: die Unterscheidung zwischen Startartikel (Link zur idcat) und nicht-Startartikel (link zur idart).

Gruß
Zuschauer

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Canonical Tag Modul

Beitrag von Faar » Mo 11. Aug 2014, 12:08

Hallo Zuschauer,
das sehe ich schon, ich meinte den Zusammenhang zu den oberen Postings.
Löst der Code etwas im Verlgeich zum Canonical besser und eleganter oder nur bezüglich des Links zur Seite oder als Code-Ergänzung zu meinem Code?
Das geht für mich aus dem Satz "Dieser Code löst die Aufgabe noch eleganter..." nicht klar hervor. :?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Zuschauer
Beiträge: 141
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: Canonical Tag Modul

Beitrag von Zuschauer » Mo 11. Aug 2014, 13:05

Hallo Faar,

nun gut, da ich dein Modul nicht kenne (ist für die 4.9 die ich nicht nutze), kann ich genau dazu nichts sagen.
Aber jetzt verstehe ich zumindest deine Frage ;)

Übrigens, eleganter als der Code von mischi05 wäre es wenn a) eine ordentliche Einrückung vorhanden, b) auf die unnötige Variable $startid und c) auf die leeren Strings verzichtet wäre:

Code: Alles auswählen

$cl = new cApiCategoryLanguageCollection();
if ($idart == $cl->getStartIdartByIdcatAndIdlang($idcat,$lang)) {
    echo '<link rel="canonical" href="' . $sess->url('front_content.php?idcat=' . $idcat) . '" />';
} else {
    echo '<link rel="canonical" href="' . $sess->url('front_content.php?idart=' . $idart) . '" />';
} 
Gruß
Zuschauer

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Canonical Tag Modul

Beitrag von Faar » Mo 11. Aug 2014, 15:18

Zuschauer hat geschrieben:Hallo Faar,

nun gut, da ich dein Modul nicht kenne (ist für die 4.9 die ich nicht nutze), kann ich genau dazu nichts sagen.
Mein Modul gibt es für 4.8 (als XML) und 4.9 (als zip) :shock:
Aber jetzt verstehe ich zumindest deine Frage ;)
Canonical hat laut Google ja nicht nur den Sinn, den Link zur Seite anzuzeigen, sondern in erster Linie, einen Link für verschiedene URIs die zum gleichen Inhalt führen, zu definieren und zu sagen, "das ist der Link zum Seiteninhalt, unter dem du das speichern sollst".
Daher ist der Hauptaugenmerk bei meinem Modul auf die manuelle Eingabe des Links. Dort soll dann der Link eingetragen werden, unter dem die Suchmaschine einen Seiteninhalt listen und ranken soll.
Der Anwendungsfall tritt häufig bei der Startseite auf, wo ich in der Suchmaschine weder /home noch ?idcat=25 oder /hauptmenue/startseite haben möchte, sondern nur die Domain URL ohne Anhang.
Aber das Menü zaubert im Zweifel eben dies oder jenes hinzu, und daher das Modul, das z.B. Google dann sagt, die Startseite ist immer unter http://www.domain.tld/ zu listen. ohne doppelten Content.

Dass im Zweifel einfach nur der Link zur Seite angezeigt wird, wie unten im Code dargestellt, hat mit Komfort und Bequemlichkeit zu tun, denn den Canonical Tag braucht man nicht immer, aber falls er im Modul eingeschaltet wurde (bei meinem Modul kann man ihn einschalten oder ausschalten), sollte er den Link zur Seite beinhalten, ohne dass man den nochmal kopieren und einfügen müsste.
Hat also nur eine Nebenfunktion.
Ich vergleiche diesen Code mal mit meinem und baue ihn ein, falls er eleganter und besser und es erlaubt ist :wink:

Grüsse,
Faar
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Zuschauer
Beiträge: 141
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: Canonical Tag Modul

Beitrag von Zuschauer » Mo 11. Aug 2014, 17:05

Faar hat geschrieben:Mein Modul gibt es für 4.8 (als XML) und 4.9 (als zip) :shock:
Ist mir bekannt, aber hier geht es gerade um die 4.9er Version ;)
Faar hat geschrieben:Ich vergleiche diesen Code mal mit meinem und baue ihn ein, falls er eleganter und besser und es erlaubt ist :wink:
Klar, ist erlaubt :)

Deine Beschreibung für dein Modul (auch die 4.8er Version) macht schon Sinn.
Ich habe ein eigenes Modul, deshalb habe ich mir deins nie angesehen:

Code: Alles auswählen

<?php
# Generate the appropriate URI
$aParams = array('idcat' => $idcat, 'client' => $client, 'lang' => $lang);
if (!isStartArticle($idartlang, $idcat, $lang)) {
    $aParams['idart'] = $idart;
}
$sUrl = Contenido_Url::getInstance()->build($aParams, true);
# Output the tag
echo '<link rel="canonical" href="' . $sUrl . '" />';
?>
Hier kann man aber keine manuelle Eingabe machen, also sollte ich mir deins doch mal ansehen ;)

Gruß
Zuschauer

Antworten