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;
}
?>