Dokumentacja techniczna dla programistów Wieloformatowych Obiektów Multimedialnych i Interaktywnych (WOMI) na platformie epodreczniki.

Podobne dokumenty
1. Podgląd WOMI z repozytorium treści Podgląd WOMI dla deweloperów zdalnych Wymagania dotyczące tworzenia silników przez partnerów...

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

REFERAT O PRACY DYPLOMOWEJ

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: Wersja: 1.

Dokumentacja przystosowania zadań generatorowych do aplikacji mobilnych

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Kompresja stron internetowych

Specyfikacja techniczna kreacji HTML5

Aplikacje WWW - laboratorium

Udostępnianie obrazu z kamer Sanyo HD na stronach WWW PORADNIK

Dokumentacja imapliteapi

Baza danych sql. 1. Wprowadzenie

Webowy generator wykresów wykorzystujący program gnuplot

Zajęcia 4 - Wprowadzenie do Javascript

Pomoc dla systemu WordPress

Zaawansowane aplikacje internetowe - laboratorium

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

SYSTEMY ZARZĄDZANIA TREŚCIĄ WORDPRESS

Przewodnik... Budowanie listy Odbiorców

SAS Institute TECHNICAL SUPPORT )

Budowanie listy Odbiorców

CMS Admin instrukcja administratora

Dokumentacja Administratora portalu. aplikacji. Wirtualna szkoła

Zaawansowane aplikacje internetowe

Instrukcja instalacji wtyczki Przelewy24

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

INTENSE PLATFORM Zmiany w wersji Wersja 7.2

Instrukcja użytkownika

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop Spis treści

Backend Administratora

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Instytut Chemii Bioorganicznej PAN Poznańskie Centrum Superkomputerowo-Sieciowe

Wybrane działy Informatyki Stosowanej

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

Instalowanie VHOPE i plików biblioteki VHOPE

Instrukcja laboratoryjna

Co już można, a co będzie można zrobić w e-podręczniku technologicznie?

Patryk Jar Meet.js, Gdańsk 11 marca 2013 r. MODULARNY JAVASCRIPT

Instrukcja obsługi Multiconverter 2.0

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

Wprowadzenie do projektu QualitySpy

Laboratorium 7 Blog: dodawanie i edycja wpisów

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

I. Dlaczego standardy kodowania mailingów są istotne?

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Sage Symfonia ERP Wystawianie nieobsługiwanych w programach e-deklaracji i załączników do e-deklaracji

Podstawy JavaScript ćwiczenia

Sage Symfonia Sage Symfonia Start Wystawianie nieobsługiwanych w programach e-deklaracji i załączników do e-deklaracji

System zdalnego dostępu (VPN) do sieci Wydziału Elektrycznego PW

- dodaj obiekt tekstowy: /** Maciej */ Stage { title : "First JavaFX App" scene: Scene { width: 300 height: 300 content: [ ] } }

Współpraca z platformą Emp@tia. dokumentacja techniczna

Dokumentacja techniczna API systemu SimPay.pl

Poznań, Materiał dystrybuowany na licencji Uznanie autorstwa-bez utworów zależnych 3.0 PL (CC BY-ND 3.0 PL)

Instrukcja obsługi DHL KONWERTER 1.6

MDW. (Moduł Dystrybucji Wysyłek) (Moduł Magento) v Strona 1 z 11

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Wybrane działy Informatyki Stosowanej

Spis treści CZĘŚĆ I JĘZYK SIECI 17. Wstęp 13. Rozdział 1 Wprowadzenie do HTML5 19. Rozdział 2 Znajomość znaczników HTML5 37

System zarządzający grami programistycznymi Meridius

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Tworzenie Stron Internetowych. odcinek 9

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12

Podręcznik korzystania z platformy szkoleniowej i szkoleń elearningowych BDOT10k

Przewodnik... Tworzenie Landing Page

Silent setup SAS Enterprise Guide (v 3.x)

Procedura aktualizacji systemu TelkomBud. dla serwera DBfC w wersji 4.x

Programowanie Obiektowe GUI

Wdrożenie modułu płatności eservice. dla systemu Magento

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Pracownia internetowa w szkole ZASTOSOWANIA

Instrukcja laboratoryjna cz.3

Delphi podstawy programowania. Środowisko Delphi

Jak ustawić cele kampanii?

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

Specyfikacja funkcjonalna systemu katalog opinii

Instrukcja konfiguracji funkcji skanowania

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

REFERAT PRACY DYPLOMOWEJ

Dokumentacja końcowa projektu z ZPR

Załącznik 1 instrukcje instalacji

W tej sekcji znajdują się foldery gromadzące wszystkie pliki znajdujące się w Twoim projekcie. Nazwa folderu odpowiada rodzaj owi załącznika.

EXSO-CORE - specyfikacja

Tytuły Wykonawcze. Opis systemu tworzenia dokumentacji TW-1

Symfonia Produkcja. Kreator raportów. Wersja 2013

Kancelaria instalacja programu

OPIS PRZEDMIOTU ZAMÓWIENIA

Zaawansowane aplikacje WWW - laboratorium

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Programowanie obiektowe

Platforma szkoleniowa krok po kroku

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Ćwiczenie: JavaScript Cookies (3x45 minut)

Instrukcja użytkowania

Transkrypt:

Dokumentacja techniczna dla programistów Wieloformatowych Obiektów Multimedialnych i Interaktywnych (WOMI) na platformie epodreczniki.pl Platformy Technologicznej epodreczniki.pl w wersji 3.0 Poznań, 30 listopada 2015 r. 1

Spis treści Historia zmian... 3 Wprowadzenie... 4 Podejścia tworzenia WOMI... 4 Dostępne biblioteki programistyczne... 5 Wspólne pliki... 6 WOMI jako HTML w ramce... 6 Interfejs programistyczny (API) dla WOMI... 7 API dla modularnego WOMI... 7 Opis 'reader.api'... 7 API dla WOMI w ramce... 9 API do pobrania osadzalnego WOMI... 11 Użycie Reader API w WOMI typu "Baw się i ucz" / "Pomyśl i działaj"... 12 Używanie API do zapisu/odczytu danych... 12 Ustawienia WOMI... 12 Szablon pliku manifest.json... 12 Przykład dla WOMI w ramce html... 13 Przygotowanie WOMI krok po kroku... 14 Dodatkowe kroki... 14 DODATEK... 14 Lista dostępnych silników WOMI:... 14 custom_logic_exercise_womi... 15 2

Historia zmian Wersja Autor/autorzy Opis zmian 1.1-1.6 Andrzej Przybyszewski, Piotr Dziubecki, Tomasz Kuczyński, Krzysztof Kurowski Podstawowa specyfikacja i obsługa zapisu obrazów z poziomu WOMI i i kontekstu użytkownika 1.7 Andrzej Przybyszewski Zmiany w API 1.8 Andrzej Przybyszewski Stabilna wersja API 1.9 Andrzej Przybyszewski Dodatkowe metody zapisu i odczytu w profilu użytkownika 3

Wprowadzenie Głównym celem dokumentacji technicznej dla programistów Wieloformatowych Obiektów Multimedialnych i Interaktywnych (WOMI) jest opis interfejsów programistycznych dla oprogramowania dostarczanego i uruchamianego przez zewnętrznych programistów na platformie epodreczniki.pl. Komponenty typu WOMI są to elementy e-podręczników składające się z plików pozwalających na zaawansowaną prezentacje tekstową i graficzną w przeglądarce internetowej. Obecnie na platformie wspierane są tylko technologie zgodne z ustalonym i potwierdzonym przez W3C otwartym standardem HTML5, w szczególności sam język HTML5, CSS2, CSS3 i JavaScript. WOMI nie pozwalają osadzać elementów oprogramowania napisanych w innych niż wyżej wymienionych technologiach, w szczególności: Adobe Flash, MS Silverligh, które wymagają dodatkowych komponentów instalowanych w systemie. Podejścia tworzenia WOMI Szkielet aplikacyjny WOMI opiera się na bibliotece require.js. Biblioteka pozwala na bardzo modularne podejście programistyczne i "opakowanie" części kodu jako niezależne lub zależne moduły. Moduły mogą być przechowywane w osobnych plikach poprzez odpowiednie ich umieszczenie w funkcji nadrzędnej. System importowania zależności modułów zapobiega problemom związanym z brakiem możliwości załadowania danego modułu/biblioteki przed wykonaniem. W większości specyficznych ustawień/konfiguracji programista tworzący moduł nie musi znać szczegółów biblioteki require.js, zaleca się jednak zapoznanie z opisem funkcjonalności rozpoznania i przetworzenia modułów require.js. Główny moduł powinien spełniać poniższe założenia: nadrzędne wywołanie funkcji define, która rejestruje to co zwraca funkcja podana w drugim parametrze jako moduł; pierwszy parametr funkcji jest to lista zależnych modułów, bibliotek, które mają zostać załadowane przed wykonaniem tego modułu; parametry funkcji przekazywane jako drugi parametr define, są to kolejne uchwyty do załadowanych bibliotek (wg kolejności, podania ich w zależnościach), mogą być one użyte dalej w ciele funkcji (modułu); atrybuty nowo utworzonego modułu: o enablemaximize: aby WOMI uruchomiło się w kontenerze na całym ekranie (po kliknięciu w obraz zastępczy), wartość tego parametru musi być ustawiona na true; 4

moduł (czyli ta funkcja) powinna zwracać istotne dla nas (czytnika) informacje czyli "klasę" zawierającą metodę start o metoda start: zawiera parametry: placeholder, będzie do niego przekazany główny węzeł DOM, do którego będzie można dopisywać nowe elementy wg uznania options, obiekt posiadający opcje, z którymi zostaje odpalony moduł width height methods: gdy moduł nie posiada zdefiniowanego parametru enablemaximize lub false, dostępne są metody: openfullscreen() i closefullscreen() gdy enablemaximize == true, zdefiniowana jest tylko jedna metoda: closewomi(), która zamyka całe WOMI i wraca do stanu pierwotnego isfullscreen: parametr mówiący o tym czy womi zostało odpalone w opcji pełnoekranowej, (zawsze false przy enablemaximize) metoda clean: opcjonalna metoda zwalniająca zasoby itp metoda sizechange: opcjonalna metoda, która dostaje jako parametry: width i height kontenera nadrzędnego, może służyć do podpięcia się na zdarzenie zmiany rozmiaru (metoda zostanie wywołana przed uruchomieniem metody start, a później za każdym razem gdy dojdzie do zmiany rozmiaru kontenera) należy pamiętać by zwracać prototyp funkcji (w paradygmacie obiektowym - klasę), który może być później zinstancjonowany biblioteka declare.js (http://doug-martin.github.io/declare.js/) pomaga w tworzeniu klas, ale można to zrobić także tradycyjnymi sposobami. Dostępne biblioteki programistyczne Do wykorzystania w "imporcie" w module: 'jquery' - biblioteka jquery 'jqueryui' - dodatek do biblioteki jquery - mechanizmy interfejsu użytkownika 'declare' - biblioteka declarejs 'underscore' - biblioteka underscore.js 'backbone' - biblioteka backbone.js 5

'domready' - plugin require.js do wywoływania zdarzeń po załadowaniu DOM 'text' - plugin require.js do importowania tekstu biblioteki createjs: zgodnie z oczekiwaniami partnerów udostępniamy spakowane wersje bibliotek, są to spakowane źródła createjs i movieclip w odpowiednich wersjach wg: http://code.createjs.com/ poniżej przedstawiono listę mapowań requirejs dla tych bibliotek, należy używać konkretnego movieclip tylko z konkretną biblioteką createjs (jeśli potrzebne): o o o o 'epo.createjs.2013.02.12' oraz 'epo.createjs.movieclip.0.6.0' 'epo.createjs.2013.05.14' oraz 'epo.createjs.movieclip.0.6.1' 'epo.createjs.2013.09.25' oraz 'epo.createjs.movieclip.0.7.0' 'epo.createjs.2013.12.12' oraz 'epo.createjs.movieclip.0.7.1' Wspólne pliki WOMI może składać się z innych modułów, które są importowane w głównym module. Jednak dodatkowe moduły często mogą być ponownie użyte w nowych WOMI, dlatego zalecane by zaimplementować je w formie "biblioteki". W pierwszej kolejności zaleca się implementacje wspólnych modułów w jednym WOMI, a następnie bezpośredni kontakt z partnerem technologicznym w celu sprawdzenia, zatwierdzenia i wgrania wytworzonych bibliotek na serwer statyczny. WOMI jako HTML w ramce Istnieje możliwość stworzenia WOMI w oparciu o plik HTML, który zostanie umieszczony na stronie jako ramka iframe. W efekcie, takie podejście pozwala programiście na większą dowolność w tworzeniu zaawansowanych animacji oraz interakcji z użytkownikiem. WOMI tego typu powinno się składać z pliku głównego HTML, a w razie potrzeby dodatkowych plików: JS, CSS i wykorzystywanych plików graficznych. Istnieje możliwość wydzielenia wspólnych plików dla programisty. W celu wykorzystania własnych bibliotek jako osobnych plików HTML należy przygotowaną strukturę wraz z zawartością oraz odpowiednim identyfikatorem nazwy przesłać do partnera technologicznego w celu przeprowadzenia podstawowego audytu. Schemat dostępu dla partnerów merytorycznych oraz ich podwykonawców wygląda następująco: /global/libraries/<nazwa>/<ścieżka> np. dla pliku, który dla twórcy jest pod ścieżką relatywną: js/script.js i nazwą partnera: partner1 6

<script src="/global/libraries/partner1/js/script.js"></script> Interfejs programistyczny (API) dla WOMI W ogólności interfejs programistyczny (API) ma na celu dostarczyć funkcjonalność pozwalającą na pełną integrację WOMI z platformą epodreczniki.pl. API zostało zaprojektowane ze szczególnym uwzględnieniem dla kontekstu w jakim zostało uruchomione WOMI. Wymienione poniżej sposoby tworzenia WOMI i integracji przez API mogą być rozszerzane o dodatkowe funkcjonalności wspierane na platformie epodreczniki.pl. API dla modularnego WOMI Opis 'reader.api' 'reader.api' jest biblioteką do zaimportowania w module requirejs. Aby zainicjować nowy obiekt API w kontekście danego modułu, należy wykonać var readerapi = new api(require); a następnie można używać poniższych metod (relatywna ścieżka zaczyna sie od./): metoda parametry opis getfullpath path metoda przyjmuje relatywną ścieżkę względem aktualnego modułu (pliku js) z katalogu WOMI, i zwraca pełną ścieżkę loadcss path metoda ładuje plik CSS z relatywnej ścieżki setuservar varname, value ustawienie zmiennej wykorzystywanej przez aplikację (w kontekście użytkownika, kolekcji, modułu i womi) (zapisuje do bazy danych)#aktualnie to co local getuservar varname, callback pobranie zmiennej ustawionej powyższą metodą (zapisuje do bazy danych)#aktualnie to co localwartość jest zwracana w funkcji wywołania zwrotnego setlocaluservar varname, ustawienie zmiennej wykorzystywanej przez aplikację (w kontekście użytkownika, kolekcji, modułu i womi) 7

metoda parametry opis value (zapisuje do localstarage) getlocaluservar varname pobranie zmiennej ustawionej powyższą metodą (zapisuje do localstorage) getcontext callback zwraca obiekt z parametrami: variant: wariant e-podręcznika isteacher: czy użytkownik jest nauczycielem getaudiourl id, callback zwraca link do strumienia WOMI audio, dla WOMI o 'id' getvideourl id, callback zwraca link do strumienia WOMI video, dla WOMI o 'id' setuseranswer value zapisanie womi jako postępu wykonania (statystyki związane z liczba udanych/nieudanych podejść do zadania), wartości: correct, incorrect saveimagefile filename, filedata, descriptor, callback filename to nazwa pliku, filedata to plik w postaci url base64 odczytany np przez FileReader.readAsDataURL, descriptor to deskryptor pliku, który chcemy zaktualizować (null jeśli tworzymy), w callback obiekt odpowiedzi m.in. z deskryptorem getfileurl descriptor, callback podając deskryptor otrzymuje się url do pliku zapisanego powyższą metodą sendmail data data to obiekt zawierający: subject i body (temat i treść emaila) getuserinfo callback zwraca w callbacku obiekt, pole w authenticated przyjmuje wartość true gdy użytkownik zalogowany, false gdy niezalogowany, pole username przechowyje nazwę użytkownika 8

Metody do ustawiania zmiennych jak na razie są jedynie makietami i nie zapisują ich w faktycznym kontekście w bazie danych. Warto zaznaczyć, iż można wykorzystywać tą funkcjonalność do testowania bo są zapisywane w zmiennych javascript. Przykład: define(['require', 'reader.api'], function(require, api){ var readerapi = new api(require); }); API dla WOMI w ramce ABy używać API w kontekście okna w iframe, należy do pliku HTML dodać następujące skrypt: <script src="/global/libraries/epo/frame_script.js"></script> <script src="/global/libraries/jquery/2.1.0/jquery.min.js"></script> <script src="/global/libraries/declare/declare.js"></script> <script src="/global/libraries/epo/api/withoutrequirejs.js"></script> <script src="/global/libraries/epo/api/readerapi.js"></script> Powyższe skrypty pozwalają na uruchomienie API w osobnym pliku HTM w ramce. API komunikuje się po Message API: https://developer.mozilla.org/en- US/docs/Web/API/Window.postMessage, jednakże jest ono "przykryte" odpowiednio spójnym interfejsem, co pozwala na pełną kompatybilność komunikacji window<->parent z przeglądarkami internetowymi wspierającymi HTML5. W sytuacji kiedy w WOMI korzystamy z requirejs wystarczy odpowiednio skonfigurować sobie jquery, declare i podlinkować ścieżkę do ReaderApi.js (jest to moduł requirejs). Zalecane jest załączanie frame_script.js niezależnie od tego co wykonywane jest w aplikacji. metoda parametry opis getfullpath path metoda przyjmuje relatywną ścieżkę względem aktualnego modułu (pliku js) z katalogu WOMI, i zwraca pełną ścieżkę (WAŻNE działa tylko gdy API zostanie załączone przez requirejs) 9

metoda parametry opis setuservar varname, value ustawienie zmiennej wykorzystywanej przez aplikację (w kontekście użytkownika, kolekcji, modułu i womi) (zapisuje do bazy danych) #aktualnie to co local getuservar varname, callback pobranie zmiennej ustawionej powyższą metodą (zapisuje do bazy danych) #aktualnie to co local wartość jest zwracana w funkcji wywołania zwrotnego setlocaluservar varname, value ustawienie zmiennej wykorzystywanej przez aplikację (w kontekście użytkownika, kolekcji, modułu i womi) (zapisuje do localstarage) getlocaluservar varname, callback pobranie zmiennej ustawionej powyższą metodą (zapisuje do localstorage), wartość jest zwracana w funkcji wywołania zwrotnego getaudiourl id, callback zwraca link do strumienia WOMI audio dla WOMI o 'id', wartość jest zwracana w funkcji wywołania zwrotnego getvideourl id, callback zwraca link do strumienia WOMI video dla WOMI o 'id', wartość jest zwracana w funkcji wywołania zwrotnego getposition callback zwraca różne wartości położenia kontenera z WOMI i wielkości okna w podręczniku (wykorzystywane dla układów kaflowych) setuseranswer value zapisanie womi jako postępu wykonania (statystyki związane z liczba udanych/nieudanych podejść do zadania), wartości: correct, incorrect saveimagefile filename, filedata, descriptor, callback filename to nazwa pliku, filedata to plik w postaci url base64 odczytany np przez FileReader.readAsDataURL, descriptor to deskryptor pliku, który chcemy zaktualizować (null jeśli tworzymy), w callback obiekt odpowiedzi m.in. z deskryptorem sendmail data data to obiekt zawierający: subject i body (temat i treść 10

metoda parametry opis emaila) getfileurl descriptor, callback podając deskryptor otrzymuje się url w callbacku do pliku zapisanego powyższą metodą getuserinfo callback zwraca w callbacku obiekt, pole w authenticated przyjmuje wartość true gdy użytkownik zalogowany, false gdy niezalogowany, pole username przechowyje nazwę użytkownika Przykład - nie używamy require.js w pliku HTML: $(document).ready(function(){ var api = new eporeaderapi({}); api.getuservar('233049f3094', function(val){ console.log(val); }); api.setuservar('233049f3094', 'random value'); }); API do pobrania osadzalnego WOMI Dla WOMI w ramce, można zapytać o URL do osadzenia WOMI w iframe. W tym celu należy dodać do skryptów plik: /global/libraries/epo/api/embedapi.js a następnie wywołać metodę getembedurl(type, womiid, womiversion, callback), gdzie type toodpowiednio : Audio lub Video Przykład: epoembedapi.getembedurl('audio', 86016, 1, function(data){ }); console.log(data); W odpowiedzi wywołanej metody dostaniemy obiekt JS z właściwością URL. 11

Użycie Reader API w WOMI typu "Baw się i ucz" / "Pomyśl i działaj" W WOMI tego typu można używać analogicznie API dla WOMI w ramce, czyli ReaderApi i EmbedApi. Używanie API do zapisu/odczytu danych API do zapisu danych powinno być wywoływane w kluczowych momentach wykonania aplikacji. Odczyt danych powinien nastąpić na początku uruchamiania aplikacji. WAŻNE: nie zaleca się wywoływania w sposób nieograniczony i/lub niekontrolowany zapisu i odczytu danych/zmiennych podczas wykonywania aplikacji. Ustawienia WOMI WOMI powinno zostać opisane dwoma plikami: manifest.json - plik zawierający definicję silnika dla WOMI metadata.json - plik zawierający metadane opisujące WOMI Szablon pliku manifest.json { "engine": "custom_womi", "mainfile": "womi.js", "version": "1.0", "parameters": { "object": { "heightratio": 0.54 12

} }, "womiids": [ "id_womi_1", "id_womi_2" ] } Pole engine służy do podania silnika przetwarzania dla danego WOMI, dla wcześniej wymienionych przypadków będą to: custom_womi - dla WOMI jako moduł requirejs framed_html - dla WOMI, które ma być osadzone w ramce jako HTML Pole parameters musi wystąpić, a w nim obiekt zawierający pole object, z kolei w nim pole heightratio, które ustawia proporcje WOMI, według których będzie skalowane w widoku prezentacyjnym. W przypadku zagnieżdżania WOMI w WOMI listę takich obiektów należy zdefiniować poprzez womiids. Każde WOMI musi mieć podaną proporcję. Height ratio w tym wypadku to stosunek wysokości do szerokości dla danego WOMI, pozwala to skalować WOMI z zachowaniem jego proporcji. Przykład dla WOMI w ramce html { "engine": "framed_html", "mainfile": "index.html", "version": "1.0", "parameters": { "object": { "heightratio": 0.54 } } } 13

Plik HTML powinien zawierać dołączony skrypt: <script src="/global/libraries/epo/frame_script.js"></script> Przygotowanie WOMI krok po kroku 1. Zalogować się do Edytora Zasobów. Przejść do opcji utworzenia nowego WOMI 2. Stworzyć nowe puste WOMI, czyli strukturę plików, które mogą być już wypełnione kodem. 3. W nowo utworzonym WOMI należy załadować z dysku pliki w sekcji uaktualnienia zasobu. 4. Po udanym załadowaniu możemy edytować pliki WOMI. 5. Po wybraniu "podglądu" możemy na żywo obserwować wprowadzane zmiany. 6. Gdy WOMI jest już kompletne można je pobrać w odpowiednim formacie do importu w Repozytorium Treści na platformie epodreczniki.pl. Dodatkowe kroki 1. Jeżeli potrzebujemy zaimplementować globalną bibliotekę dla swoich WOMI, należy tworzyć katalogi i pliki w jednym WOMI. 2. Po tym jak biblioteka będzie gotowa, należy postępować zgodnie z opisem przedstawionym w tym dokumencie. 3. Po otrzymaniu informacji zwrotnych od partnera technologicznego można tworzyć WOMI z własnymi bibliotekami. UWAGA Wsparcie dla starego sposobu wykorzystywania API (związanego z lokalnym serwerem) nie jest zalecane i nie będzie wspierane. DODATEK Istnieje kilka dodatkowych typów WOMI wspierany przez platformę epodreczniki.pl: Lista dostępnych silników WOMI: edge_animation: dla animacji ze środowiska Adobe Edge createjs_animation: animacje CreateJS 14

ge_animation: animacje Grupy Edukacyjnej custom_womi: szablonowe generyczne WOMI, opisywane wyżej custom_logic_exercise_womi: podobne do custom_womi, pozwala tworzyć WOMI, które nie mają rozmiaru, mogą też ładować same z siebie inne WOMI i tworzyć fragmenty treści, w większości API opisano pod adresem: http://fury.man.poznan.pl/~jaftowicz/dokumentacja/epo.api.placeholderapi.html ace_editor: silnik dla edytora Ace svg_editor: silnik dla edytora SVG Edit geogebra: WOMI typu geogebra swiffy: WOMI typu swiffy custom_logic_exercise_womi WOMI tego typu nie może być używane bez wcześniejszej konsultacji z PCSS. Partner powinien podać powód czemu chce robić WOMI, w którym może być tekst i inne WOMI i dlaczego tego nie robi tworząc podręcznik. Użycie placeholder.api jest powiązane z custom_logic_exercise_womi jest analogiczne do reader.api: define(['require', 'jquery', 'declare', 'placeholder.api'], function (require, $, declare, papi) { }); return declare({ }); instance: { } start: function (placeholder) { } var pa = new papi($(placeholder), require); //... more code here 15