[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
[solved] Artikelweiterleitung - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Tizian
Beiträge: 151
Registriert: 4. Apr 2008, 11:58
Wohnort: Bremen
Kontaktdaten: Website

[solved] Artikelweiterleitung

30. Mär 2016, 12:57

hallo,
ich brauche hilfe beim umschreiben eines moduls von r4 auf r5.

alter code eingabe:

Code: Alles auswählen

REX_LINK_BUTTON[1]
alter code ausgabe:

Code: Alles auswählen

if($REX['REDAXO']!=1 && REX_ARTICLE_ID != REX_LINK_ID[1]) //wenn Frontend
{
  if ( REX_LINK_ID[1] != 0) 
  {
   rex_redirect(REX_LINK_ID[1], $REX['CUR_CLANG']);
  }
}else // wenn Backend
{
  echo "Weiterleitung zu <a href='index.php?page=content&article_id=REX_LINK_ID[1]&mode=edit'>Artikel           REX_LINK[1]</a>";
}
so funktioniert es in r5:

neuer code eingabe:

Code: Alles auswählen

REX_LINK[id="1" widget="1"]
neuer code ausgabe:

Code: Alles auswählen

<?php

$article=rex_article::get(REX_LINK[1]);
$name=$article->getName(); 

if(rex::isBackend()){
   echo '<b>Backendinfo:</b> Modul wurde eingefügt/aktualisiert<br>';
   echo "Weiterleitung zu <a href='index.php?page=content&article_id=REX_LINK[1]&mode=edit'>Artikel: ".$name." ID:".REX_LINK[1]."</a>";
}
else
{
       rex_redirect(REX_LINK[1]);
}

?>
siehe auch die weitere lösungsmöglichkeit von PXDemon unten.
danke auch dafür.
Zuletzt geändert von Tizian am 4. Apr 2016, 12:38, insgesamt 1-mal geändert.
schöne grüße
tizian
********************************
ansichtsache TM

PXDemon
Beiträge: 147
Registriert: 26. Jul 2007, 14:25

Re: Artikelweiterleitung

3. Apr 2016, 13:38

Hi tizian,

hast du schon eine Lösung für ein Weiterleitungs Modul?

PXDemon
Beiträge: 147
Registriert: 26. Jul 2007, 14:25

Re: Artikelweiterleitung

3. Apr 2016, 17:26

Ich hab mal auf die Schnelle was erstellt. Gibt bestimmt auch andere Wege, ich selber habs aber auch nicht mit der Funktion rex_redirect hin bekommen.

Meine Weiterleitung benötigt die URL und die Art der Weiterleitung, sprich 301, 302 oder 307.
  • 301 - Moved Permanently - dauerhafte Weiterleitung / alte Url existiert nicht mehr
    303 - See Other / normale Weiterleitung
    307 - Temporary Redirect / vorübergehende Weiterleitung in Zukunft kann der Inhalt unter der aufgerufenen Url wieder zu finden sein
Ich nutze eine Header Weiterleitung in PHP, was somit erforderlich macht das der Modul-Inhalt noch vor dem ersten HTML ausgegeben wird. Hierzu habe ich ein "$this->getArticle(X)" in das Template ganz nach oben geschrieben. Das X ist zu ersetzten durch dein logische nächste Anzahl der getArticle in deinem Template. Somit kann ich nun über das Backend in einem Artikel einfach das Redirect Modul einsetzten.

Im Template also...

Code: Alles auswählen

<?php 
print $this->getArticle(3);
/* THIS WILL ONLY USED FOR HEADER REDIRECTS*/
?>
In der Modul Eingabe

Code: Alles auswählen

<div class="modItemBlock">
	<h2>Neues Ziel<span class="modRequired">*</span></h2>
    <i>Wählen Sie eine Seite im System</i><br />
    REX_LINKLIST[id=1 widget=1]
</div>

<div class="modItemBlock">
	<h2>Weiterleitungsart<span class="modRequired">*</span></h2>
	<select name="REX_INPUT_VALUE[1]" style="width:100%;">
		<?php
	    foreach (array("301","303","307") as $value) {
	        echo '<option value="'.$value.'" ';
	        if ( "REX_VALUE[1]"=="$value" ) {
	            echo 'selected="selected" ';
	        }
	        echo '>'.$value.'</option>';
	    }
	    ?>
	</select>
</div>
In der Modul Ausgabe

Code: Alles auswählen

<?
#######################################################
### PREPAIR INCOMING DATA #############################
#######################################################
$pxRedirectPageId = "REX_LINKLIST[1]";
$pxRedirectPageGetUrl = rex_category::get($pxRedirectPageId);
$pxRedirectType = "REX_VALUE[1]";

#######################################################
### PRINT BACKEND INFO ################################
#######################################################
if(rex::isBackend()){
	echo '<b>Backendinfo:</b> Modul wurde eingefügt/aktualisiert<br>';
	echo 'Ziel:'.$pxRedirectPageGetUrl->getUrl().'<br>';
	echo 'Type:'.$pxRedirectType;
}else{
header("Location: ".$pxRedirectPageGetUrl->getUrl()."", true, $pxRedirectType);
exit;
}
?>

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

Re: Artikelweiterleitung

3. Apr 2016, 22:44

Statt rex_redirect() ist es in R5 rex_response::sendRedirect().

Siehe https://github.com/redaxo/redaxo/blob/m ... se.php#L57

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

Re: Artikelweiterleitung

3. Apr 2016, 22:48


Benutzeravatar
Gregor.Harlan
Entwickler
Beiträge: 1130
Registriert: 4. Jun 2007, 10:35
Wohnort: Frankfurt am Main

Re: Artikelweiterleitung

4. Apr 2016, 09:42

@Markus da hast du nun aber etwas übersehen 8)

https://github.com/redaxo/redaxo/blob/m ... hp#L57-L69

Die Funktion gibt es also weiterhin. Sie ist für Weiterleitungen zu Artikeln. Die andere Funktion ist allgemein für Weiterleitungen (gab es in R4 nicht).
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!

Zurück zu „Module/Aktionen [R5]“