 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
19.01.2004, 19:05
|
#1
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
string vom format $string+1 aus einer uri ersetzen
so leute,
auf ein neues!
auf die gefahr, dass ich hinterher die aussicht auf meinen guinnesbucheintrag fuer das laengste und umstaendlichste script auf´s spiel setze.
ich uebergebe eine uri an eine function. in der function soll in einem foreach ein wert entwerder ersetzt (falls vorhanden) oder eingefuegt werden.
meine loesungen machen bislang nur mist (und sind eindeutig zu lang  ). entweder der wert fehlt oder er wird per foreach immer wieder eingefuegt.
der string der uri soll auf das vorhandensein der zeichenkette "template=" geprueft und das nachfolgende zeichen entfernt werden (oder aber eben ersetzt). das ersetzen muss halt eben im foreach geschehen. daher waere es nach meinung nach besser, die zeichenkette vorher ganz zu entfernen und hinterher einfach erneut einzubauen. aber mit der version (die nicht richtig funzt) bin schon fast wieder im guinnesbuch.
hat jemand einen tip?
danke,
hardy
|
|
|
19.01.2004, 20:20
|
#2
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Bahnhof! 
Im Ernst... was hat eine foreach-Schleife mit Ersetzen zu tun?
Zeig mal genauer, was ankommt und was rauskommen soll...
|
|
|
19.01.2004, 20:22
|
#3
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
dann wollma mal....
?
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
19.01.2004, 20:30
|
#4
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
jetzt hab ich eine idee ...
ich schmeiss den ganzen kram mit der programmiererei hin und werde hellseher. ich weiss naemlich jedes mal schon ungefaehr, was als naechstes von euch beiden kommt
aber vorher noch ein versuch:
PHP-Code:
function getNavi($local,$lng,$area, $uri) {
global $_NAVIGATION, $_NAVI, $VHCONFIG_SYSTEM;
$cracked = explode("|", $_NAVIGATION[$local][$lng][$area]);
$uri = explode("page=", $uri);
$rest = strstr($uri[1], '&'); // der rest nach page=...&
$firstPart = $uri[0]; // alles, was vor "page=" kam
foreach($cracked as $link) {
$linkeDinger = explode("|", $_NAVI[$local][$lng][$area][$link]);
$uri = $firstPart.getBridge($firstPart)."page=".$linkeDinger[0].$rest;
($linkeDinger[3] == 'link') ?
$naviArray[] = "<a href=\"".$uri."\"
onmouseover=\"window.status='".htmlentities($linkeDinger[2])."';return true\"
onmouseout=\"window.status='';return true\"
alt=\"".htmlentities($linkeDinger[2])."\"
title=\"".htmlentities($linkeDinger[2])."\"
onfocus='blur()'>".htmlentities($linkeDinger[1])."</a>" : $naviArray[] = htmlentities($linkeDinger[1]);
}
$navigation = implode(" | ", $naviArray);
return $navigation;
}
das array $linkeDinger (ich bin mir schon lange nicht mehr sicher, ob ich stolz auf meine namesgebungen sein soll  ) hat an der fuenften stelle den wert fuer das jeweils zu verwendende template.
also soll in den link (innerhalb der foreach-schleife) template=$linkeDinger[4] eingefuegt werden. solitaer und mit einem "&" davor.
je nun. etwas klarer?
Geändert von theo (19.01.2004 um 20:59 Uhr).
|
|
|
20.01.2004, 13:01
|
#5
|
|
TP-Veteran
Registriert seit: Mar 2001
Ort: wein4tel (ö)
|
ich würde gerne mal deine function ausprobieren.
kannst du mir nur mal ein beispiel für einen funktionsaufruf schreiben - ich blick mit den notwendigen variablen $local,$lng,$area, $uri net ganz durch...
|
|
|
20.01.2004, 13:02
|
#6
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
so. eine q&d-variante hab ich jetzt. nicht schoen, aber funzt:
PHP-Code:
... $cracked = explode("|", $_NAVIGATION[$local][$lng][$area]);
if (substr_count($uri, "template") == "0") {
$uri = $uri.getBridge($uri)."template=[-tpl-]";
} else {
$uri = str_replace("template=".$_GET[template], "template=[-tpl-]", $uri);
}
$uri = explode("page=", $uri); ...
und im foreach ...
PHP-Code:
... $uri = $firstPart.getBridge($firstPart)."page=".$linkeDinger[0].$rest;
$uri = str_replace("[-tpl-]", $linkeDinger[4], $uri);
($linkeDinger[3] == 'link') ? ...
sollte jemandem was besseres einfallen ... bitte schreiben!
ansonsten betrachte ich das thema heute im laufe des tages als erledigt und werde es dann auch abhaken.
hardy
ps: aber keine angst, mir faellt sicher bald was neues ein. 
|
|
|
20.01.2004, 14:53
|
#7
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
oh sorry steff!!!
ich hab deinen beitrag voellig uebersehen. ich reiche die sachen gleich nach.
ich hab das gefuehl, dass mein thread hier eine konkurrenz zu der moduldiskussion werden koennte. nix anderes versuche ich hier. nur haette ich dort was gesagt, haette ich gleich wieder moderatoren vor den kopf stossen koennen. bin ich verrueckt, dass ich sowas noch mal mache?! 
|
|
|
20.01.2004, 15:04
|
#8
|
|
TP-Specialist
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
|
machen wir´s rueckwaerts
die variable $uri
PHP-Code:
$path = explode("/", $REQUEST_URI);
$count = count($path) - 1;
$last = $path[$count];
if (empty($last)) {
$uri = $PHP_SELF;
} else {
$uri = $REQUEST_URI;
}
$local enhaelt nur die angabe, wo in der seite die navi eingebaut wird. danach holt sich die function die entsprechenden strings (die kommen zum schluss).
$lng duerfte klar sein (de|en|fr|es).
$area enthaelt den wert der region der seite. die seite ist in vier bereiche aufgeteilt und daher ist es wichtig, den momentanen aufenthalt mitzugeben.
so und jetzt wie versporchen beispiele fuer die strings:
PHP-Code:
/* die regionen */
$_NAVIGATION[top][de][region] = "hbs|qlb|wr|vh";
/* die links oben aufbauen - deutsch */
$_NAVIGATION[top][de][vh] = "home|firm|touri|event|service|atoz|search";
$_NAVIGATION[top][de][qlb] = "home|firm|touri|event|city|service|atoz|search";
$_NAVI[top][de][vh][home] = "home|Startseite|zurück zur Startseite|link|1";
$_NAVI[top][de][vh][firm] = "firm|Firmendatenbank|zur Firmendatenbank|link|1";
$_NAVI[top][de][vh][touri] = "touri|Tourismusinformation|Informationen zur Region|link|1";
$_NAVI[top][de][vh][event] = "event|Veranstaltungen|was ist los in der Region|link|2";
$_NAVI[top][de][vh][service] = "service|Service|Ecards, Download-Bereich uvm.|link|1";
$_NAVI[top][de][vh][atoz] = "a2z|A - Z|alle Einträge der Datenbank alphabetisch sortiert|link|1";
$_NAVI[top][de][vh][search] = "search|Suche|haben Sie noch nicht gefunden, was Sie suchten?|link|2";
noch fragen?
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:17 Uhr.
|
 |