Robis Posted February 17, 2004 Report 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:
fassko Posted February 17, 2004 Report Posted February 17, 2004 vari meegjinaat katram linkam pievienot index.php?lang=lv vai ari meegjinaat taisiit ar sesijaam!!
Robis Posted February 17, 2004 Author Report Posted February 17, 2004 Un kaa jaataisa ar sesijaam???? Respektiivi, es zinu tikai session_start()!
рпр Posted February 18, 2004 Report Posted February 18, 2004 nu forshi ka tu zini. palaid session_start() un peec tam darbojies ar $_SESSION masiivu.
Venom Posted February 19, 2004 Report 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>';
Robis Posted February 19, 2004 Author Report 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???
Venom Posted February 19, 2004 Report 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.
Recommended Posts