
Witam Czasami zachodzi sytuacja w której jedno powiadomienie to za mało i musimy jednemu klientowi wyświetlić wiadomość A a drugiemu wiadomość B. Możemy to zrobić w ten sposób, że na serwerze www definiujemy kilka wirtualnych hostów np: info1.domena.pl info2.domena.pl
do każdego wrzucamy zawartość katalogu squid_redirector tak jak to wygląda standardowo. Najlepiej jest od razu zmienić nazwę pliku message.html tak aby nazwy były różne w różnych katalogach (np: info1.html, info2.html), ponieważ Smarty ma to do siebie że zapamiętuje zawartość pierwszego wyświetlonego pliku i nawet jak mamy inną wiadomość z innego wirtuala to i tak będze pokazywał to co zostało pokazane wcześniej (mam nadzieje że wyjaśniełem zrozumiale:), dlatego musimy zmienić nazwy plików. Teraz w każdym katalogu z odrębną wiadomością musimy jeszcze przerobić plik index.php i w linijce 177: $SMARTY->display('message.html'); zmienić message.html na info1.html etc. Oczywicie w plikach info1.html oraz info2.html wpisujecie Wasze komunikaty.
Został nam do przerobienia plik lms-squid w którym dopisujemy: my $info1 = $ini->val('redirector', 'info1') || 'http://info1.domena.pl/'; my $info2 = $ini->val('redirector', 'info2') || 'http://info2.domena.pl/';
oraz if ($row->{'warning'}==2 || $row->{'access'}==0) { if (!($lista[0] =~ m/$info1/)) { $lista[0] = $info1."?oldurl=".$lista[0]; $adres = '302:'.join(' ',@lista)."\n"; } }
if ($row->{'warning'}==3 || $row->{'access'}==0) { if (!($lista[0] =~ m/$info2/)) { $lista[0] = $info2."?oldurl=".$lista[0]; $adres = '302:'.join(' ',@lista)."\n"; } }
przed wpisem: print $adres;
teraz jeżeli chcemy aby klient dostał odpowiednią informację w bazie danych w tabeli nodes w polu warning wpisujemy 2 dla info1 lub 3 dla info2
Powodzenia :)
uczestnicy (1)
-
Łukasz Rostalski