piio@jabster.pl


Kolega zadał mi ciekawe pytanie: czy jest możliwość dodania na joggerze własnego opisu z gadu?

  1. Pierwszy krok: stworzenie bramki gadu – posłużyłem się gotowym skryptem z http://forum.php.pl/index.php?showtopic=21568
  2. Zintegrowanie powstałego pliku z joggerem.

Moje pomysły są następujące:

  1. Użycie ajax’u do zmiany div’a przez document.getElementById() – moim zdaniem najbardziej eleganckie rozwiązanie, niestety gdy domeny są różne nie jest możliwe pobieranie danych z zewnętrznego serwera. Jest to występująca tutaj sytuacja.
  2. Wstrzyknięcie opisu przez include(‘plik’) w php – na joggerze niemożliwe do zrealizowania.
  3. Użycie iframe‘ów – skuteczne, ale niezgodne z specyfikacją xhtml.

Ktoś zna inne rozwiązanie?

Dla chętnych wersja AJAX:
Kod skryptu bramki – wystarczy uzupełnić numer bramki, hasło oraz sprawdzany numer – delikatnie zmodyfikowana wersja skryptu
Skrypt javascript – należy w nim zmienić zmienną adres – na położenie skryptu bramka.php, można też użyć tego skryptu, przesyłając metodą get poprzez zmienną numer swój numer gadu
Dla przykładu http://www.piio.info/opis.php?numer=1111111 zwróci w xml opis numeru 1111111
Aby dodać opis przez ajax do strony, dodajemy

  1. W części
    <head>
    dodajemy
    <script type="text/javascript" src="sciezka/do/pliku/opis.js"></script>
  2. znacznik
    <body>
    zamieniamy na
    <body onload="process()">
    – uruchomienie funkcji po załadowaniu strony
  3. w miejscu gdzie ma się wyświetlać opis dodajemy div’a
    <div id="opis"></div>

Gotowe! Możemy cieszyć się własnym opisem z gadu na naszej stronie.
Ps. Oczywiście, skrypt nie będzie zwracał opisu jeśli używamy opcji ‘tylko dla znajomych, a bramka nie jest na naszej liście kontaktów.

4 komentarze
1   piio - 25 czerwca 2008, 17:55:22

Przypomniałem sobie, że można zamiast <iframe> zastosować <object data=„costam.html” type=„text/html”>, ale podobnież ten znacznik nie jest zbyt dobrze wspierany

2   kubarek - 25 czerwca 2008, 17:55:54

A co Ty się tak tą zgodnością przejmujesz ? Od paru błędów w validatorze jeszcze nikt nie umarł :-P

3   Ktos - 25 czerwca 2008, 18:19:33

Po prostu zamiast rzucać XML-em opis, lepiej rzucić go po stronie serwera do postaci „skryptu” JS, w rodzaju var opis = 'costamcostam'; i następnie po prostu w szablonie Joggera dodać sobie <script src="sciezka/do/pobierania/opisu.js"> i napisać sobie funkcję, która zmienną opis wrzuci gdzie trzeba czy to przy onloadzie czy gdziekolwiek. Bez zabawy z Ajaksem. Dużo serwisów tak robi, tylko rzuca np. JSON zamiast stringa jak u mnie w przykładzie.

A jak już się przejmować zgodnością, ładnością i tak dalej, to zamiast atrybutu onload w body lepiej dodać już to wywołanie gdzieś w funkcji JS ;-)

4   piio - 25 czerwca 2008, 18:28:08

@kubarek: wychodzę z założenia, że skoro powstają standardy to pasowało by się ich trzymać ;)

@Ktos: Rzeczywiście, niepotrzebnie zaprzęgnąłem kobyłę do tej roboty. Twój pomysł wygląda bardzo prosto i sensownie, muszę to wypróbować.
Za dużo książek o AJAX’ie się naczytałem, i teraz próbuję wcielić przeczytane tam mądrości w życie.
Dzięki za rozwiązanie.

Textile Lite włączone

Dodaj komentarz