← Powrót
Dokumentacja Darkan API dla edytora (zobacz demo)
Wciągamy Darkan API do systemu wklejając linijkę poniżej na swoją stronę:
<script type="text/javascript" src="https://darkan.eu/js/editors/standard/api/darkan_editor_api.js"></script>
Dodajemy ramkę (iFrame) na swoją stronę. Będzie to okno edytora projektu w Darkanie.
<iframe id="darkan-iframe" width="1280" height="720"></iframe>
Testowy klucz API:
YOUR_API_KEY = 88e1a99e1531edad4a6c20179ffc3b575ef3aa3f
Pobieramy postem token i hashujemy nim apikey. Token jest ważny przez 5 min. Tylko podczas generowania tokena podajemy klucz API w postaci niezmodyfikowanej.
Request:
POST: /apiParams: {
"apikey": "YOUR_API_KEY",
"action": "generateToken"
}
Response:
{
"token":"3Ww540Ob7o11hUWvapXaT7UX2I8kFtsh",
"message":"success",
"status":"success"
}
Twój klucz api musi zostać zahashowany metodą sha1:
YOUR_HASHED_API_KEY = sha1(YOUR_API_KEY + token)
Tworzymy instancję DarkanEditorAPI i ustawiamy dla niej iframe, w którym będzie znajdować się okno edytora. Dostęp do projektu będzie zablokowany jeśli nie zostanie ustawiony klucz API do Darkana. Po ustawieniu klucza API wykonujemy metodę loadProject i podajemy ID naszego projektu. Przykład:
// pobieramy element iframe
var darkanIFrame = document.getElementById('darkan-iframe');
// inicjalizujemy obiekt Darkan API
var darkanEditorAPI = DarkanEditorAPI.getInstance();
// ustawiamy naszą ramkę/iframe w API
darkanEditorAPI.setIframe(darkanIFrame);
// wysyłamy klucz API do Darkana, po czym następuje weryfikacja
darkanEditorAPI.setCredentials({ apikey:'YOUR_HASHED_API_KEY' });
// wczytaj projekt o danym ID!
darkanEditorAPI.loadProject({ darkanProjectId:35 })
Zdarzenia wysyłane z iFrame z Darkanem można nasłuchiwać w następujący sposób:
darkanEditorAPI.addEventListener(DarkanEditorAPI.ON_MESSAGE, onMessage);
darkanEditorAPI.addEventListener(DarkanEditorAPI.ON_CONNECT, onConnect);
darkanEditorAPI.addEventListener(DarkanEditorAPI.ON_PAGE_ADDED, onPageAdded);
darkanEditorAPI.addEventListener(DarkanEditorAPI.ON_PAGES_REMOVED, onPagesRemoved);
darkanEditorAPI.addEventListener(DarkanEditorAPI.ON_PAGE_SELECTED, onPageSelected);
darkanEditorAPI.addEventListener(DarkanEditorAPI.ON_PROJECT_LOADED, onProjectLoaded);
darkanEditorAPI.addEventListener(DarkanEditorAPI.ON_PAGES_COLLECTION_CHANGED, onPagesCollectionChanged);
darkanEditorAPI.addEventListener(DarkanEditorAPI.ON_PROJECT_CHANGED, onProjectChanged);
function onMessage(e){
console.log('darkanEditorAPI onMessage', e);
}
function onConnect(e){
console.log('darkanEditorAPI onConnect', e);
}
function onPageAdded(e){
console.log('darkanEditorAPI onPageAdded', e);
}
function onPagesRemoved(e){
console.log('darkanEditorAPI onPagesRemoved', e);
}
function onPageSelected(e){
console.log('darkanEditorAPI onPageSelected', e);
}
function onProjectLoaded(e){
console.log('darkanEditorAPI onProjectLoaded', e);
}
function onPagesCollectionChanged(e){
console.log('darkanEditorAPI onPagesCollectionChanged', e);
}
function onProjectChanged(e){
console.log('darkanEditorAPI onProjectChanged’, e);
}
Metody do sterowania edytorem z zewnątrz.
Idź do następnej strony
darkanEditorAPI.goToNextPage();
Idź do poprzedniej strony
darkanEditorAPI.goToPrevPage();
Idź do strony
darkanEditorAPI.goToPage({pageIndex:1});
Sortuj strony
darkanEditorAPI.sortPages({pageIndex:1, position:0});