Url auslesen, URL-Parameter austauschen und URL-Parameter anhängen.

am 02.05.2013 - 22:18 Uhr in
Hallo,
ich versuche mit PHP einen Link in Drupal zu generieren, der einen URL-Parameter austauscht und einen weiteren Parameter anhängt:
Der Link sieht ungefähr so aus und müsste erstmal natürlich eingelesen werden :
http://localhost/meineseite/ergebnisliste?field_rooms_value%5Bmin%5D=&field_rooms_value%5Bmax%5D=&field_groesse_value%5Bmin%5D=&field_groesse_value%5Bmax%5D=&field_preis_value%5Bmin%5D=&field_preis_value%5Bmax%5D=&field_objektart_value=All&field_bezirk_value=All&field_lage_value=All&field_nutzungsart_value=All&field_etage_value=All&field_terasse_balkon_value=2&field_vermietung_value=All&mode=m2
- beim letzten Teil des Querystrings ( mode="m2 ") soll aus der 2 eine 1 werden.
- am Ende des Querystrings soll noch ein Teil ( &page=[counter]) angehängt werden.
Counter steht dabei für den Global: View result counter, der mir als Field unter Views zu Verfügung steht. Auf den kann ich zwar mit der Drupal Funktion "REWRITE RESULTS
" und den "REPLACEMENT PATTERNS
" zugreifen, wie mache ich mir diesen allerdings für PHP verfügbar ?
Das ganze soll mir später einen neuen Link zur Verfügung stellen.
Ausprobiert habe ich schon folgendes:
<?php
$tmp = $_GET;
$tmp['mode'] = '1';
$tmp['page'] = '2'; // soll die Variable von dem View result counter rein
print http_build_query($tmp);
?>
<?php
$vars = array();
$_GET['lang'] = 'de';
foreach ($_GET as $key => $value) {
if ($key == 'lang') {
$value = 'en';
}
$vars[] = $key.'='.$value;
}
$query = implode('&', $vars);
echo http_build_query($query);
?>
Ich hoffe ich habe mich verständlich ausgedrückt. Bin für jede Hilfe dankbar.
Lg
- Anmelden oder Registrieren um Kommentare zu schreiben
url-funktion und andere nützliche API
am 03.05.2013 - 00:32 Uhr
Es ist ratsam so viel Drupal API wie möglich zu nutzen. In vielen Fällen kann man ein Links inkl. query-Anhang super mit l() und url() erzeugen. Und wenn es direkter gehen muss gibt es auch wrapper Funktionen wie drupal_http_build_query für http_build_query und Deine Parameter bekommst Du mit drupal_get_query_parameters.
Mit "REWRITE RESULTS" scheinst Du die Views interne Konfiguration zu meinen, in der man Tokens verwenden kann. Wenn Du an diese Werte per PHP heran kommen möchtest kannst Du das z.B. in einem Views-Template File machen. Dort sind je nach Template auch viele Daten in Obkekten versteckt, in denen Du wahrscheinlich auch Dein Resul finden kannst. Das devel-Modul und dvm() erleichtert die Suche.