Robis Posted February 17, 2004 Report Share Posted February 17, 2004 Sveiki! Man ir jautājums par valodu pārslēgu! Esmu uztaisījis tādu valodu pārslēgu, ka pārslēdzoties uz konkrētu valodu, tiek pārlādēta index.php lapa un tiek nodots caur $_GET['lang'] attiecīgās valodas kods, piemēram, en! Taču, dažreiz tiek ieiets kaut kur dziļāk saitā, piemēram, index.php?lang=lv&page=110&ref=2034 - jautājums ir tāds - kā lai es tagad pārslēdzu valodu, ka lai pārlādējas index.php nezaudējot pārējos $_GET, varbūt arī $_POST mainīgos, piemēram, lai nevis pārslēdzas uz index.php?lang=en , bet gan index.php?lang=en&page=110&ref=2034 !!! ??? Tāds lūk ir pašreizējais jautājums! :huh: Link to comment Share on other sites More sharing options...
fassko Posted February 17, 2004 Report Share Posted February 17, 2004 vari meegjinaat katram linkam pievienot index.php?lang=lv vai ari meegjinaat taisiit ar sesijaam!! Link to comment Share on other sites More sharing options...
Robis Posted February 17, 2004 Author Report Share Posted February 17, 2004 Un kaa jaataisa ar sesijaam???? Respektiivi, es zinu tikai session_start()! Link to comment Share on other sites More sharing options...
рпр Posted February 18, 2004 Report Share Posted February 18, 2004 nu forshi ka tu zini. palaid session_start() un peec tam darbojies ar $_SESSION masiivu. Link to comment Share on other sites More sharing options...
Venom Posted February 19, 2004 Report Share Posted February 19, 2004 me dāžreiz izmanto ko tādu: //pirmā valoda iekš iekavām ir defaulta $langs=array('lv','ru','en','de'); //ja tikko ienācām lapā, vai ievadīta kāda šurum-burum valoda, ieslēdzam defaulto if (!isset($_GET['l']) || !in_array($_GET['l'],$langs)) $_GET['l']=$langs[0]; function l() //tas lai īsāk rakstītu { return 'l='.$_GET['l']; } pie linkiem echo 'index.php?'.l().'&citi variābļi'; un valodu pārslēgam foreach($langs as $tmp) echo '<a href="'.$_SERVER['QUERY_STRING'].'&l='.$tmp.'">'.$tmp.'</a>'; Link to comment Share on other sites More sharing options...
Robis Posted February 19, 2004 Author Report Share Posted February 19, 2004 koroch baigais sviests tev tur uzrakstīts :) :D ! Tavs skripts vienkārsī pie valodu pārslēga noliek valodu beigās query stringam, man tas galīgi nesaista! :) Es gribētu tā, lai viš apzinās pašreizējo url un vienkārši nomaina $_GET['lang'] vērtību uz attiecīgo, kur ir nepieciešams, jo man taisīt kaut kādu stulbu funkciju iekš faila functions (man viss sakārtots) negribas un pēc tam vēl likt visos linkos funkciju manuprāt ir absolūti stulbi! linkus domāju nodefinēt jau config failā! Es cenšos taisīt elastīgi! Sak, es domāju, varbūt ir iespējams aizstāt lang=lv piemēram ar lang=en ar eregi vai preg_replace palīdzību, ko es mēģināju jau darīt, bet atmetu ar roku... Varbūt kādam ir vēl kāda pieredze ar šo vajadzīgo lietu, kas tiek izmantota daudzās lapās??? Link to comment Share on other sites More sharing options...
Venom Posted February 19, 2004 Report Share Posted February 19, 2004 Nu, man jau būtībā ir fukncija obl() //obligatory, kurā ir ierakstīts, kādi vispār var būt variābļi - lang, page, chapter utt. funkcija attiecīgi pārbauda, kādi mainīgi ir nodefinēti (un ja nav - piešķir tiem defaulta nozīmi) un pievieno pie tekošā dokumenta PHP_SELF, vai nodotā parametra linkā, kā parametru viņai var iebarot variābļu nosaukumus, kurus šoreiz būtu jāzilaiž. piem., ja gribu uzlikt jaunu valodu, saglabājot sadaļu, echoju a href="'.obl('lang').'〈=new", kad gribu linku uz citu sadaļu - obl('chapter').'&chapter=new kad gribu uztaisīt, lai forma postotos uz to pašu lapu - action="'.obl().'" utt. Bet ja tiešām tiek izmantotas sessijas, tad var taisīt, lai GET mainīgais stipetos adresē tikai tad, kad viņu vajag nomainīt, resp. if ($_SESSION['lang']!=$_GET['lang']) $_SESSION['lang']=$_GET['lang']; ar att. pārbaudēm. Link to comment Share on other sites More sharing options...
Recommended Posts