php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 01-10-2007, 11:02
lucy_und_snoopy
 Newbie
Links : Onlinestatus : lucy_und_snoopy ist offline
Registriert seit: Oct 2007
Beiträge: 4
lucy_und_snoopy ist zur Zeit noch ein unbeschriebenes Blatt
Standard Sprachen Switch bei dynamisch erzeugten Results

Hallo,
ich programiere eine Suchmaske mit recht aufwendigen Suchmöglichkeiten wie und/oder von/bis mit Templates.
Die Ergebnislisten (also dynamisch erstellt) sollen "stehen bleiben", wenn die Sprache gewechselt wird. Der Sprachwechsel erfolgt mit der üblichen Funktion
if($_SESSION['setLang']=='de')
{
$template = get_file_as_string($base['template_de']);
}
if($_SESSION['setLang']=='en')
{
$template = get_file_as_string($base['template_en']);
}
Ich löse das "Problem", in dem ich über die URL beim Sprachenswitch die Werte der Suchfelder den entsprechenden Funktionen übergebe.
Hier ein kleines Beispiel:

if($_SESSION['setLang']=='de')
{
$nav.="<a href='index.php?cmd=titlexp&amp;title=$_POST[title]&amp;author=$_POST[author]&amp;setLang=en'>English</a><br>";
}
return $nav;


Dies ist einerseits aufwendig, anderseits nicht sehr elegant. Gibt es eine andere Lösung?

Grüße
Kathrin
Mit Zitat antworten
  #2 (permalink)  
Alt 01-10-2007, 11:45
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

was steht in $template ?
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #3 (permalink)  
Alt 01-10-2007, 13:09
lucy_und_snoopy
 Newbie
Links : Onlinestatus : lucy_und_snoopy ist offline
Registriert seit: Oct 2007
Beiträge: 4
lucy_und_snoopy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

In dem $templates steht der HTML Code.
In diesem Fall deutsch/englisch. Sie werden in der
base.inc.php geladen
$base['template_en'] = 'templates/main_en.htm';
$base['template_de'] = 'templates/main_de.htm';

und in der index.php aufgerufen

if($_SESSION['setLang']=='de')
{ $template = get_file_as_string($base['template_de']);
} if($_SESSION['setLang']=='en')
{ $template = get_file_as_string($base['template_en']);
}

Der Link zum switschen per URL steht in der func.inc.php
//hier en Ausschnitt
if($show=='1')
{
if($_SESSION['setLang']=='en')
{
$nav.="<a href='index.php?setLang=de'>Deutsch</a><br>";
}
if($_SESSION['setLang']=='de')
{
$nav.="<a href='index.php?cmd=titlexp&amp;title=$_POST[title]&amp;author=$_POST[author]&amp;setLang=en'>English</a><br>";
}
return $nav;
}

und wird in der index.php übergeben, sowie der Anhang der Url in dem ich per cmd=titlexp die anhängenden Werte der Funktion titlexp übergebe, die ebenfalls in der index.php aufgerufen wird. Sie starten erneut die Suche mit den übergebenen Werten und gibt sie in der gewählten Sprache erneut aus.
Die Texte des Formulars/Ergebnisliste stehen in de.php oder en.php

index.php
#Change lang
switch($_SESSION['setLang'])
{ case"de":
include('lang/de.php');
break;
case"en":
include('lang/en.php');
break;
}
$base['shortnav']= $base['actual'].
$base['shortnav'].=show_lang($show,$com);


case 'titlexp':
$base['content']='<h4>'.$base['actual'].'
<i>'.$lang['content']['Kurz-Titel'].'</i></h4>';
$base['content'].=load_content_titlexp($title,$author);
break;

Das Prinzip ist also ganz traditionelle aufgebaut. Das switchen über die URL und die Übergabe der Werte für die erneute Suche funktioniert auch problemlos,
aber es ist einfach nicht elegant, deshalb meine Frage nach einer besseren Lösung.

Viele Grüße
Kathrin
Mit Zitat antworten
  #4 (permalink)  
Alt 01-10-2007, 15:59
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

ich finde der Einsatz nicht besonders gut.
die Html-Inhalt bei template_de und template_en unterscheidet sich nur durch ein paar texte, aber die html-struktur ist doch gleich.
aus diesem grund muss du einfach die platzhalter bzw mit dem echo von variablen arbeiten und zur Laufzeit die werte von platzhalter oder variablen dynamisch für eine oder andere Sprache zu ersetzen.
Beispiel mit variablen:
PHP-Code:
datei lang/de_index.php
<?php
$inhalt
=array();
$inhalt['title']='Titel deutsch';
$inhalt['sprache']='Deutsch';
$inhalt['fremdsprache']='Englisch';
$inhalt['gruss']='Hallo Welt';
-------------
datei lang/en_index.php
$inhalt
=array();
$inhalt['title']='Titel englisch';
$inhalt['sprache']='Englisch';
$inhalt['fremdsprache']='Germany';
$inhalt['gruss']='Halo Word';
-------------
datei index_tpl.php
<html>
<
head><title><?php echo $inhalt['title']; ?></title></head>
<body>
<?php echo $inhalt['gruss']; ?>
.....
<a href="<?php echo $link"><php echo $inhalt['fremdsprache'];</a>
<br />
</body>
</html>
---------------
datei index.php
$spr='de';
if(isset($_SESSION['setLang']) && 
strlen($_SESSION['setLang'])==2 &&
file_exists('lang/'.$_SESSION['setLang'].'_index.php'))
{
 $spr=$_SESSION['setLang'];
 $link="
.......";

include "
lang/$spr_index.php";
include "
index_tpl.php";
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #5 (permalink)  
Alt 01-10-2007, 19:13
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Bitte die PHP-Tags benutzen!
Den Code schaut sich doch so keiner an...
Mit Zitat antworten
  #6 (permalink)  
Alt 02-10-2007, 17:18
lucy_und_snoopy
 Newbie
Links : Onlinestatus : lucy_und_snoopy ist offline
Registriert seit: Oct 2007
Beiträge: 4
lucy_und_snoopy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für die Rückmeldung.
Der Code sieht für mich sehr ähnlich aus, wie meiner...
Es geht mir darum das ich, dass, wenn ich meine Ergebnisse einer Datenbankabfrage ausgegeben habe auf den Englisch "Button" klicken kann und die Ergebnisse stehen bleiben und die Texte auf englisch stehen. Z.Z. Wechsle ich die Sprache, verschwindet die Ergebnisliste, da sie dynamisch erzeugt wurde und der Aufruf der Funktion zum Sprachenwechsel wie ein Reset wirkt.... und nur der Text ist englisch z.B. vom Suchformular.
Ich habe das Dilema versucht so zu lösen, indem ich über die den Aufruf der Funktion zum Sprachenwechsel gleichzeitig die Werte der Abfragen übergeben und die Suche nocheinmal gestartet habe......
und das find ich so unelegant..

Viele Grüße
Kathrin
Mit Zitat antworten
  #7 (permalink)  
Alt 02-10-2007, 17:33
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von lucy_und_snoopy
Ich habe das Dilema versucht so zu lösen, indem ich über die den Aufruf der Funktion zum Sprachenwechsel gleichzeitig die Werte der Abfragen übergeben und die Suche nocheinmal gestartet habe......
und das find ich so unelegant..
was stört dich denn daran?dass die werte im url-sichtbar sind?
dann könntest du die letzten suchparameter z.b. in einer session oder den sprachwechsel als formular mit hidden feldern gestalten.

ansonsten kann ich daran nichts "unelegantes" finden, wobei selbst google alles per get durchreicht.
Mit Zitat antworten
  #8 (permalink)  
Alt 04-10-2007, 15:06
lucy_und_snoopy
 Newbie
Links : Onlinestatus : lucy_und_snoopy ist offline
Registriert seit: Oct 2007
Beiträge: 4
lucy_und_snoopy ist zur Zeit noch ein unbeschriebenes Blatt
Wink

An hidden habe ich nicht gedacht.......

Danke für die Antwort.

Grüße
Kathrin
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:46 Uhr.