Modul für Link zum Startartikel

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

Modul für Link zum Startartikel

Beitrag von lunsen_de » Mo 29. Jan 2018, 13:42

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: 1515
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von Faar » Mo 29. Jan 2018, 13:59

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: 202
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von lunsen_de » Mo 29. Jan 2018, 15:11

Hallo,

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

Gruß larslunsen

lunsen_de
Beiträge: 202
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von lunsen_de » Mo 29. Jan 2018, 16:03

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: 1515
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von Faar » Mo 29. Jan 2018, 17:02

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: 202
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von lunsen_de » Di 30. Jan 2018, 08:23

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: 4072
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von Oldperl » Di 30. Jan 2018, 09:48

Servus,

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

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

lunsen_de
Beiträge: 202
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Re: Modul für Link zum Startartikel

Beitrag von lunsen_de » Di 30. Jan 2018, 10:27

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

Gruß larslunsen

Antworten