- name - nazwa którą będziemy się posługiwać w gadżecie,
- display_name - nazwa wyświetlana użytkownikowi (jej brak powoduje wyświetlenie atrybutu name),
- datatype - typ danych (string - łańcuch tekstowy, bool - wartość logiczna, enum - typ wyliczeniowy, hidden - pole ukyte, list - dynamiczna lista), domyślnym typem jest string,
- required - atrybut logiczny określający czy dane pole jest wymagane,
- default_value - domyślna wartość dla pola
<UserPref name="imie" display_name="Podaj swoje imię:" />
W przypadku wybrania jako atrybutu pola preferencji typu enum, musimy określić dodatkowo opcje, z których może wybierać użytkownik. Opcje te podajemy za pomocą znacznika <EnumValue>. Posiada on dwa parametry:
- value - wartość opcji,
- display_value - nazwa wyświetlana użytkownikowi (jej brak powoduje wyświetlenie atrybutu value).
<UserPref name="kierunek" display_name="Kierunek geogr." default_value="south" datatype="enum" > <EnumValue value="south" display_value="Południe" /> <EnumValue value="north" display_value="Północ" /> <EnumValue value="west" display_value="Zachód" /> <EnumValue value="east" display_value="Wschód" /> </UserPref>
Dostęp do preferencji z poziomu kodu gadżetu odbywa się z wykorzystaniem JavaScript'u. Poniższy przykład pobierze podane przez użytkownika imię:
var preferencje = new gadgets.Prefs(); var imieUzytkownika = preferencje.getString("imie");Wykorzystajmy naszą wiedzę do stworzenia prostego gadżetu umożliwiającego użytkownikowi podanie napisu, ustawienie koloru tła oraz określenie czy wyświetlać dzisiejszą datę czy też nie.
Wszystkie operacje związane z wyświetlaniem danych przeprowadzimy z wykorzystaniem JavaScript'u. Nasz przykładowy gadżet uruchamia się od funkcji init() (wywołanie gadgets.util.registerOnLoadHandler(init());) To co ma się pojawić w gadżecie zostało ujęte w sekcję HTML:
<div id="zawartosc"></div>Korzystając z możliwości JavaScript'u jesteśmy w stanie zmienić kolor tła tego elementu (element.style.backgroundColor) jak i również wstawić do niego inne elementy czy to teksty czy też znaczniki HTML'a (element.innerHTML). Kod naszego gadżetu:
<?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="Przykładowy gadżet" author="Devon"> <Require feature="dynamic-height" /> </ModulePrefs> <UserPref name="napis" display_name="Napis" default_value="Nasz drugi gadżet!" /> <UserPref name="data" display_name="Pokazać datę?" default_value="true" datatype="bool" /> <UserPref name="kolor" display_name="Kolor tła" default_value="green" datatype="enum" > <EnumValue value="red" display_value="Czerwony" /> <EnumValue value="yellow" display_value="Żółty" /> <EnumValue value="green" display_value="Zielony" /> </UserPref> <Content type="html"> <![CDATA[ <div id="zawartosc"></div> <script type="text/javascript"> // pobieramy preferencje var preferencje = new gadgets.Prefs(); // funkcja startowa (nazwa może być dowolna) function init() { // bierzemy obiekt daty var data = new Date(); // i wyciągamy z niego potrzebne informacje (dzień, miesiąc, rok) var dzisiaj = "< br />Dzisiaj jest: " + data.getDate() + "." + (data.getMonth()+1) + "." + data.getFullYear(); // w tej zmiennej przechowujemy to co później dodamy do gadżetu var html = ""; // pobieramy element zawartosc var element = document.getElementById('zawartosc'); // ustawiamy kolor tła elementu na taki jak podał użytkownik element.style.backgroundColor = preferencje.getString("kolor"); // dodajemy pobrany napis do zmiennej html html += preferencje.getString("napis"); // jeżeli użytkownik chce wyświetlać datę if (preferencje.getBool("data") == true) { // to dodajemy ją do zmiennej html html += dzisiaj; } // wklejamy do "elementu" zawartość zmiennej html element.innerHTML = html; // zmieniamy wysokość gadżetu gadgets.window.adjustHeight(); } // za pomocą tej metody podajemy funkcję, która // ma zostać uruchomiona podczas startu gadżetu (tutaj init()) gadgets.util.registerOnLoadHandler(init()); </script> ]]> </Content> </Module>Dodatkowo wykorzystaliśmy dynamiczną zmianę wysokości gadżetu (gadgets.window.adjustHeight()). Jest to możliwe po załadowaniu odpowiedniej biblioteki (<Require feature="dynamic-height" />) w sekcji <ModulePrefs>.
Po dodaniu gadżet prezentuje się następująco:
Gotowy gadżet jest dostępny do dodania do bloga pod adresem: http://sites.google.com/site/kodatnikfiles/xml/DrugiGadzet.xml
3 Komentarze - Piszemy gadżet do Bloggera - część 2
jak wstawic na blogspot wyswietlanie wszystkich postow w blogu typu 'szeroka lista' na onet blog ?
właśnie altenede
ja też szukam rozwiązania...
Podoba mi się że temat jest tak szczegółowo opisany. To niezwykle pomocne.
Prześlij komentarz
Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)