Modul für Link zum Startartikel

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
lunsen_de
Beiträge: 302
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Modul für Link zum Startartikel

Beitrag von lunsen_de »

Hallo, ich suche ein Modul, welches mich in zum Startartikel der aktuellen (selben) Kategorie leitet.

Also z.B. von einem Listenartikel zum Übersicht (Liste).
Um gleich ein paar Ideen auszuschließen: die idcat der Kategorie funktioniert nicht, da de Artikel später verschoben wird in eine andere Kategorie und dann soll der Link auf den Startartikel der neune (selben) Kategorie verweisen.
Java history back geht auch nicht, da es z.B. von der Startseite auch einen Quereinstieg auf den Detailartikel gibt und javahistory back wieder zur Startseite und nicht zum Startartikel (also der Liste) führt.

Hat jemand soetwas oder weiß eine schnelle Lösung dafür. Würde mich freuen.

Grüße larslunsen
Faar
Beiträge: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 15 Mal
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von Faar »

Die $idcat geht schon, auch wenn sie sich ändert, da innerhalb eines Artikels immer die aktuelle Idcat vorhanden ist.
Baut man sich also in einem einfachen Modul einen Link mit front_content zusammen, wo $idacat und vielleicht noch $client und $lang vorkommen, dann sollte man eigentlich immer auf dem Startartikel der aktuellen Kategorie landen.

Beispiel:

Code: Alles auswählen

.../front_content.php?idcat=2&client=1&lang=1
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
lunsen_de
Beiträge: 302
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von lunsen_de »

Hallo,

wie würde/könnte das dann aussehen. Dafür reichen meine Kenntnisse leider nicht.

Gruß larslunsen
lunsen_de
Beiträge: 302
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von lunsen_de »

Hallo, habe etwas gebastelt (aus Sachen, di ich im Forum gefunden habe), weiß aber nicht ob das so technisch in Ordnung ist. Funktionieren tut es.

Code: Alles auswählen

<?php
$iIdCat = 0;
$oCatArtColl = new cApiCategoryArticleCollection();
$aIdCats = $oCatArtColl->getCategoryIdsByArticleId($iIdArt);
if(count($aIdCats) == 1) {
    $iIdCat = $aIdCats[0];
}
echo '<a href="' .$url. '" title="" class="button">zur Übersicht</a>';
?>
Kann jemand sagen, ob das so io ist und ob das mehreren Mandanten auch funktioniert?

Gruß larslunsen
Faar
Beiträge: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 15 Mal
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von Faar »

lunsen_de hat geschrieben: Mo 29. Jan 2018, 16:03 Hallo, habe etwas gebastelt...
So sieht es für mich auch aus.
... weiß aber nicht ob das so technisch in Ordnung ist. Funktionieren tut es.
Also, technisch ist das ein seltsames Konstrukt und dass es funktioniert, ist eher Zufall.
Es gibt immer noch die globalen Variablen, also auch $idcat, $idart, $client und $lang.
Du befindest dich mit einem Modul in einem Artikel, für den diese Variablen gültig sind.
Also kannst du mit einem Modul diese Variablen auch nützen:

Code: Alles auswählen

$url = $cfgClient[$client]['path']['htmlpath']."front_content.php?idcat=".$idcat."&client=".$client."&lang=".$lang."";
Jetzt weiß ich nicht genau, ob der / vor front_content benötigt wird oder nicht, darum wäre zum testen erst einmal ein echo $url; ganz gut.

Viele Daten die man braucht, kann man hier heraus ziehen: https://api.contenido.org/con4911/class-cRegistry.html
Allerdings ist die Schreibweise damit anders, so in etwa:
$frontendurl = cRegistry::getFrontendUrl();

Nun zum Code:
$iIdCat = 0;
Warum das?

$oCatArtColl = new cApiCategoryArticleCollection();
Ein Objekt wird erstellt, gut.

$aIdCats = $oCatArtColl->getCategoryIdsByArticleId($iIdArt);
Alle Kategorie IDs der Artikel ID = $iIdArt werden gesucht.
Was steht in $iIdArt drin?
Sinnvollerweise vielleicht $iIdArt = $idart;
Oder $iIdArt = cRegistry::getArticleId();

if(count($aIdCats) == 1) {
$iIdCat = $aIdCats[0];
}

Aha, wenn das Array $aIdCats genau einen Wert enthält, ist es gültig? Was ist, wenn die Artikel in tieferen Kategorien verschachtelt sind?

echo '<a href="' .$url. '" title="" class="button">zur Übersicht</a>';
Und jetzt frage ich mich, woher kommt dieses $url?
Und was steht da drin?

Sollte das funktionieren, ist es eher Zufall.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
lunsen_de
Beiträge: 302
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von lunsen_de »

Hallo, danke ür die Info.

Ja wo dieses $url herkommt ist mir auch unbekannt. War mir nicht aufgefallen, da ich die Codefragmente gelöscht hatte, die wohl darauf gerichtet waren.

habe jetzt deinen Code probiert.

Code: Alles auswählen

$url = $cfgClient[$client]['path']['htmlpath']."front_content.php?idcat=".$idcat."&client=".$client."&lang=".$lang."";
Funktioniert. Gibt aber bei aktivem mod_rewrite trotzdem als Link aus :

Code: Alles auswählen

http://www.test.de/cms/front_content.php?idcat=6&client=1&lang=1
Kann man das noch ändern?

Gruß larslunsen
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von Oldperl »

Servus,

etwas in dieser Art? :arrow: Modul: phpBO StartArticle Backlink

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
lunsen_de
Beiträge: 302
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von lunsen_de »

Super, vielen Dank. Macht genau das Gewünschte.

Gruß larslunsen
Antworten