Modul: phpBO StartArticle Backlink

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
Oldperl
Beiträge: 4315
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 3 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Modul: phpBO StartArticle Backlink

Beitrag von Oldperl »

Servus,

hier mal ein recht einfaches Modul zur Ermittlung und Anzeige eines Backlinks zum Start-Artikel in der aktuellen Kategorie.
Zeigt in allen Artikeln einer Kategorie den Link zum Startartikel an, ausgenommen im Startartikel selbst.

Es gibt im Modul momentan nur den Output-Bereich, der folgendermaßen aussieht:

Code: Alles auswählen

<?php
/**
 * Modul-Output: phpBO StartArticle Backlink
 * 
 * @package Module
 * @subpackage phpBO
 * @version $Rev: 236 $
 * @author Ortwin Pinke <o.pinke@php-backoffice.de>
 * @copyright (c) 2018, Ortwin Pinke
 * @link http://php-backoffice.de PHP-Backoffice
 * 
 * $Id: phpbo-startarticle-backlink_output.php 236 2018-01-30 08:26:27Z oldperl $
 */
/* @var $sess cSession */
/* @var $auth cAuth */

defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');

// getting startarticle for actual category
$oArtList = new cArticleCollector(array(
    "idcat" => cRegistry::getCategoryId(),
    "startonly" => TRUE
));
$oStartArt = $oArtList->startArticle();
$iIdArtStart = $oStartArt->get("idart");
unset($oArtList);
unset($oStartArt);

// backlink to startarticle
$sUrl = cUri::getInstance()->build(array(
    'idart' => $iIdArtStart,
    'lang' => cRegistry::getLanguageId()
));

// show backlink to startarticle if not itself
if($iIdArtStart != cRegistry::getArticleId() && !empty($sUrl)) {
    echo '<a href="' .$sUrl. '" title="'. mi18n("Back to Overview").'" class="button">'. mi18n("Back to Overview").'</a>';
}
?>
Download auf conrepo.org :arrow: http://www.conrepo.org/deutsch/download ... 4.9/Module

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

Re: Modul: phpBO StartArticle Backlink

Beitrag von lunsen_de »

Hallo,

ich habe festgestellt, dass es ein Problem gibt, wenn in der Kategorie kein Startartikel ist. Dann bleibt der angelegte Artikel leer (betrifft bei mit einen Vorlagenartikel für eine Liste, der in einer anderen Kategorie liegt). Man muss ihn dann selbst zum Startartikel machen oder das Modul im Template deaktivieren. Kann man da was tun?

Gruß larslunsen
csmd
Beiträge: 20
Registriert: Mo 15. Jun 2009, 11:06
Kontaktdaten:

Re: Modul: phpBO StartArticle Backlink

Beitrag von csmd »

Hallo zusammen,

ich bin über diesen alten Artikel gestolpert, weil ich in anderer Sache (Canonical-Meta) eine Lösung gesucht hatte.

Dieser Artikel war insofern wichtig für mich, weil ich ebenfalls Startartikel (auch sprachabhängig) erkennen wollte.

Als Lösung für alle, welche hier drüber stolpern sollten, weil sie einen Backlink möchten, wäre vielleicht folgender Ansatz eleganter und auch funktionaler.
Da das Skript eh in jeden Artikel der Kategorie eingebunden werden soll, braucht es meiner Meinung nach nicht mehr in jedem Artikel-Lauf die komplette Kategorie auszulesen und dann nach dem dem Startartikel zu suchen.
Wir wollen ja Strom sparen – auch serverseitig.

Es würde für meinen Geschmack langen zu prüfen, ob dieser Artikel jeweils ein Startartikel ist.
Das Skript stürzt dann auch nicht mehr ab, wenn kein Startartikel mehr in der Kategorie sein sollte.

Das ginge wie folgt (ich konnte es leider nur in einer 4.9.12 testen, da ich dort diese Funktion brauchte – es sollte aber auch in einer höheren Version funktionieren):

Code: Alles auswählen

$idartlang = getArtLang($idart, $lang);

if (!isStartArticle($idartlang, $idcat, $lang)) {
	// echo 'nicht Startartikel';
	// hier der Code, welcher zurück leiten soll
	// zB
	$LinkAction = $sess->url("front_content.php?idcat=$idcat");
	echo '<a href="' .$LinkAction. '" title="'. mi18n("Back to Overview").'" class="button">'. mi18n("Back to Overview").'</a>';
} else {
	// echo 'Startartikel';
	// hier nichts machen
}
Ich hoffe, das hilft eventuell Suchenden für den Moment weiter.

Mein neues Canonical-Modul, welches alle Eventualitäten abdeckt, Sprachen berücksichtigt, AMR-fähig ist und eigene Einträge akzeptiert werde ich in Kürze posten.

LG, Christian
Oldperl
Beiträge: 4315
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 3 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Modul: phpBO StartArticle Backlink

Beitrag von Oldperl »

Hallo Christian,

danke für Deinen Änderungsvorschlag. Ich werde mir das bei Gelegenheit mal anschauen.

Gruß 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
Antworten