champion-8.x-3.1-no-core/modules/contrib/hax/src/HaxService.php
modules/contrib/hax/src/HaxService.php
<?php namespace Drupal\hax; class HAXService { /** * returns an array of app store definitions based * on passing in the apikeys for the ones we have * baked in support for. * @param array $apikeys array of API keys per service * @return array HAX appstore specification */ public function loadBaseAppStore($apikeys = array()) { $json = array(); // youtube if (isset($apikeys['youtube'])) { $jsonstring = '{ "details": { "title": "Youtube", "icon": "av:play-arrow", "color": "red", "author": "Google, Youtube LLC", "description": "The most popular online video sharing and remix site.", "status": "available", "tags": ["video", "crowdsourced"] }, "connection": { "protocol": "https", "url": "www.googleapis.com/youtube/v3", "data": { "key": "' . $apikeys['youtube'] . '" }, "operations": { "browse": { "method": "GET", "endPoint": "search", "pagination": { "style": "page", "props": { "previous": "prevPageToken", "next": "nextPageToken", "total_items": "pageInfo.totalResults" } }, "search": { "q": { "title": "Search", "type": "string" } }, "data": { "part": "snippet", "type": "video", "maxResults": "20" }, "url": "https://www.youtube.com/watch?v=", "resultMap": { "defaultGizmoType": "video", "items": "items", "preview": { "title": "snippet.title", "details": "snippet.description", "image": "snippet.thumbnails.default.url", "id": "id.videoId" }, "gizmo": { "title": "snippet.title", "description": "snippet.description", "id": "id.videoId", "_url_source": "https://www.youtube.com/watch?v=<%= id %>", "caption": "snippet.description", "citation": "snippet.channelTitle" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); } // memegenerator if (isset($apikeys['memegenerator'])) { $jsonstring = '{ "details": { "title": "Meme generator", "icon": "android", "color": "blue", "author": "Meme generator", "description": "A search engine of popular memes.", "status": "available", "tags": ["picture", "crowdsourced", "image", "meme"] }, "connection": { "protocol": "http", "url": "version1.api.memegenerator.net", "data": { "apiKey": "' . $apikeys['memegenerator'] . '" }, "operations": { "browse": { "method": "GET", "endPoint": "Generators_Search", "pagination": { "style": "page", "props": { "previous": "prevPageToken", "next": "nextPageToken", "total_items": "pageInfo.totalResults" } }, "search": { "q": { "title": "Search", "type": "string" } }, "data": { "pageIndex":"0", "pageSize":"20" }, "resultMap": { "defaultGizmoType": "image", "items": "result", "preview": { "title": "displayName", "details": "", "image": "imageUrl", "id": "imageID" }, "gizmo": { "title": "displayName", "id": "imageID", "source": "imageUrl" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); } // vimeo if (isset($apikeys['vimeo'])) { $jsonstring = '{ "details": { "title": "Vimeo", "icon": "av:play-circle-filled", "color": "blue", "author": "Vimeo Inc.", "description": "A high quality video sharing community.", "status": "available", "tags": ["video", "crowdsourced"] }, "connection": { "protocol": "https", "url": "api.vimeo.com", "data": { "access_token": "' . $apikeys['vimeo'] . '" }, "operations": { "browse": { "method": "GET", "endPoint": "videos", "pagination": { "style": "link", "props": { "first": "paging.first", "next": "paging.next", "previous": "paging.previous", "last": "paging.last" } }, "search": { "query": { "title": "Search", "type": "string" } }, "data": { "direction": "asc", "sort": "alphabetical", "filter": "CC", "per_page": "20" }, "resultMap": { "defaultGizmoType": "video", "items": "data", "preview": { "title": "name", "details": "description", "image": "pictures.sizes.1.link", "id": "id" }, "gizmo": { "_url_source": "https://vimeo.com<%= id %>", "id": "uri", "title": "title", "caption": "description", "description": "description", "citation": "user.name" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); } // giphy if (isset($apikeys['giphy'])) { $jsonstring = '{ "details": { "title": "Giphy", "icon": "gif", "color": "green", "author": "Giphy", "description": "Crowd sourced memes via animated gifs.", "status": "available", "tags": ["gif", "crowdsourced", "meme"] }, "connection": { "protocol": "https", "url": "api.giphy.com", "data": { "api_key": "' . $apikeys['giphy'] . '" }, "operations": { "browse": { "method": "GET", "endPoint": "v1/gifs/search", "pagination": { "style": "offset", "props": { "offset": "pagination.offset", "total": "pagination.total_count", "count": "pagination.count" } }, "search": { "q": { "title": "Search", "type": "string" }, "rating": { "title": "Rating", "type": "string", "component": { "name": "dropdown-select", "slot": "<paper-item value=\'Y\'>Y</paper-item><paper-item value=\'G\'>G</paper-item><paper-item value=\'PG\'>PG</paper-item><paper-item value=\'PG-13\'>PG-13</paper-item><paper-item value=\'R\'>R</paper-item>" } }, "lang": { "title": "Language", "type": "string", "component": { "name": "dropdown-select", "slot": "<paper-item value=\'en\'>en</paper-item><paper-item value=\'es\'>es</paper-item><paper-item value=\'pt\'>pt</paper-item><paper-item value=\'id\'>id</paper-item><paper-item value=\'fr\'>fr</paper-item><paper-item value=\'ar\'>ar</paper-item><paper-item value=\'tr\'>tr</paper-item><paper-item value=\'th\'>th</paper-item><paper-item value=\'vi\'>vi</paper-item><paper-item value=\'de\'>de</paper-item><paper-item value=\'it\'>it</paper-item><paper-item value=\'ja\'>ja</paper-item><paper-item value=\'zh-CN\'>zh-CN</paper-item><paper-item value=\'zh-TW\'>zh-TW</paper-item><paper-item value=\'ru\'>ru</paper-item><paper-item value=\'ko\'>ko</paper-item><paper-item value=\'pl\'>pl</paper-item><paper-item value=\'nl\'>nl</paper-item><paper-item value=\'ro\'>ro</paper-item><paper-item value=\'hu\'>hu</paper-item><paper-item value=\'sv\'>sv</paper-item><paper-item value=\'cs\'>cs</paper-item><paper-item value=\'hi\'>hi</paper-item><paper-item value=\'bn\'>bn</paper-item><paper-item value=\'da\'>da</paper-item><paper-item value=\'fa\'>fa</paper-item><paper-item value=\'tl\'>tl</paper-item><paper-item value=\'fi\'>fi</paper-item><paper-item value=\'iw\'>iw</paper-item><paper-item value=\'ms\'>ms</paper-item><paper-item value=\'no\'>no</paper-item><paper-item value=\'uk\'>uk</paper-item>" } } }, "data": { "limit": "20", "lang": "en" }, "resultMap": { "defaultGizmoType": "image", "items": "data", "preview": { "title": "title", "details": "description", "image": "images.preview_gif.url", "id": "id" }, "gizmo": { "source": "images.original.url", "source2": "images.480w_still.url", "id": "id", "title": "title", "alt": "title", "caption": "user.display_name", "citation": "user.display_name" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); } // unsplash if (isset($apikeys['unsplash'])) { $jsonstring = '{ "details": { "title": "Unsplash", "icon": "image:collections", "color": "grey", "author": "Unsplash", "description": "Crowd sourced, open photos", "status": "available", "tags": ["images", "crowdsourced", "cc"] }, "connection": { "protocol": "https", "url": "api.unsplash.com", "data": { "client_id": "' . $apikeys['unsplash'] . '" }, "operations": { "browse": { "method": "GET", "endPoint": "search/photos", "pagination": { "style": "link", "props": { "first": "paging.first", "next": "paging.next", "previous": "paging.previous", "last": "paging.last" } }, "search": { "query": { "title": "Search", "type": "string" } }, "data": { }, "resultMap": { "defaultGizmoType": "image", "items": "results", "preview": { "title": "tags.0.title", "details": "description", "image": "urls.thumb", "id": "id" }, "gizmo": { "id": "id", "source": "urls.regular", "alt": "description", "caption": "description", "citation": "user.name" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); } // flickr if (isset($apikeys['flickr'])) { $jsonstring = '{ "details": { "title": "Flickr", "icon": "image:collections", "color": "pink", "author": "Yahoo", "description": "The original photo sharing platform on the web.", "status": "available", "rating": "0", "tags": ["images", "creative commons", "crowdsourced"] }, "connection": { "protocol": "https", "url": "api.flickr.com", "data": { "api_key": "' . $apikeys['flickr'] . '" }, "operations": { "browse": { "method": "GET", "endPoint": "services/rest", "pagination": { "style": "page", "props": { "per_page": "photos.perpage", "total_pages": "photos.pages", "page": "photos.page" } }, "search": { "text": { "title": "Search", "type": "string" }, "safe_search": { "title": "Safe results", "type": "string", "value": "1", "component": { "name": "dropdown-select", "valueProperty": "value", "slot": "<paper-item value=\'1\'>Safe</paper-item><paper-item value=\'2\'>Moderate</paper-item><paper-item value=\'3\'>Restricted</paper-item>" } }, "license": { "title": "License type", "type": "string", "value": "", "component": { "name": "dropdown-select", "valueProperty": "value", "slot": "<paper-item value=\'\'>Any</paper-item><paper-item value=\'0\'>All Rights Reserved</paper-item><paper-item value=\'4\'>Attribution License</paper-item><paper-item value=\'6\'>Attribution-NoDerivs License</paper-item><paper-item value=\'3\'>Attribution-NonCommercial-NoDerivs License</paper-item><paper-item value=\'2\'>Attribution-NonCommercial License</paper-item><paper-item value=\'1\'>Attribution-NonCommercial-ShareAlike License</paper-item><paper-item value=\'5\'>Attribution-ShareAlike License</paper-item><paper-item value=\'7\'>No known copyright restrictions</paper-item><paper-item value=\'8\'>United States Government Work</paper-item><paper-item value=\'9\'>Public Domain Dedication (CC0)</paper-item><paper-item value=\'10\'>Public Domain Mark</paper-item>" } } }, "data": { "method": "flickr.photos.search", "safe_search": "1", "format": "json", "per_page": "20", "nojsoncallback": "1", "extras": "license,description,url_l,url_s" }, "resultMap": { "defaultGizmoType": "image", "items": "photos.photo", "preview": { "title": "title", "details": "description._content", "image": "url_s", "id": "id" }, "gizmo": { "title": "title", "source": "url_l", "alt": "description._content" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); } // pixabay if (isset($apikeys['pixabay'])) { $jsonstring = '{ "details": { "title": "Pixabay images", "icon": "places:all-inclusive", "color": "orange", "author": "Pixabay", "description": "Pixabay open image community", "status": "available", "tags": ["images", "crowdsourced"] }, "connection": { "protocol": "https", "url": "pixabay.com", "data": { "key": "' . $apikeys['pixabay'] . '" }, "operations": { "browse": { "method": "GET", "endPoint": "api", "pagination": { "style": "page", "props": { "total_items": "totalHits", "page": "page" } }, "search": { "q": { "title": "Search", "type": "string" } }, "data": { "image_type": "photo" }, "resultMap": { "defaultGizmoType": "image", "items": "hits", "preview": { "title": "tags", "details": "user", "image": "previewURL", "id": "id" }, "gizmo": { "source": "webformatURL", "id": "uri", "title": "tags", "caption": "tags", "citation": "user.name" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); } // Google Poly if (isset($apikeys['googlepoly'])) { $jsonstring = '{ "details": { "title": "Google Poly", "icon": "icons:3d-rotation", "color": "red", "author": "Google", "description": "Google 3D object sharing service", "status": "available", "tags": ["3D", "creative commons", "crowdsourced"] }, "connection": { "protocol": "https", "url": "poly.googleapis.com/v1", "data": { "key": "' . $apikeys['googlepoly'] . '" }, "operations": { "browse": { "method": "GET", "endPoint": "assets", "pagination": { "style": "page", "props": { "previous": "prevPageToken", "next": "nextPageToken", "total_items": "pageInfo.totalResults" } }, "search": { "keywords": { "title": "Search", "type": "string" }, "category": { "title": "Category", "type": "string", "value": "", "component": { "name": "dropdown-select", "valueProperty": "value", "slot": "<paper-item value=\'\'>Any</paper-item><paper-item value=\'animals\'>Animals</paper-item><paper-item value=\'architecture\'>Architecture</paper-item><paper-item value=\'art\'>Art</paper-item><paper-item value=\'food\'>Food</paper-item><paper-item value=\'nature\'>Nature</paper-item><paper-item value=\'objects\'>Objects</paper-item><paper-item value=\'people\'>People</paper-item><paper-item value=\'scenes\'>Scenes</paper-item><paper-item value=\'technology\'>Technology</paper-item><paper-item value=\'transport\'>Transport</paper-item>" } } }, "data": { "pageSize": "20" }, "resultMap": { "defaultGizmoType": "video", "items": "assets", "preview": { "title": "displayName", "details": "description", "image": "thumbnail.url", "id": "name" }, "gizmo": { "title": "displayName", "description": "description", "id": { "property": "name", "op": "split", "delimiter": "/", "position": "1" }, "image": "thumbnail.url", "_url_source": "https://poly.google.com/view/<%= id %>/embed", "caption": "description", "citation": "authorName", "license": "license" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); } // nasa $jsonstring = '{ "details": { "title": "NASA", "icon": "places:all-inclusive", "color": "blue", "author": "US Government", "description": "The cozmos through one simple API.", "status": "available", "tags": ["images", "government", "space"] }, "connection": { "protocol": "https", "url": "images-api.nasa.gov", "operations": { "browse": { "method": "GET", "endPoint": "search", "pagination": { "style": "page", "props": { "page": "page" } }, "search": { "q": { "title": "Search", "type": "string" } }, "data": { "media_type": "image" }, "resultMap": { "defaultGizmoType": "image", "items": "collection.items", "preview": { "title": "data.0.title", "details": "data.0.description", "image": "links.0.href", "id": "links.0.href" }, "gizmo": { "id": "links.0.href", "source": "links.0.href", "title": "data.0.title", "caption": "data.0.description", "description": "data.0.description", "citation": "data.0.photographer", "type": "data.0.media_type" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); // sketchfab $jsonstring = '{ "details": { "title": "Sketchfab", "icon": "icons:3d-rotation", "color": "purple", "author": "Sketchfab", "description": "3D sharing community.", "status": "available", "rating": "0", "tags": ["3D", "creative commons", "crowdsourced"] }, "connection": { "protocol": "https", "url": "api.sketchfab.com", "data": { "type": "models" }, "operations": { "browse": { "method": "GET", "endPoint": "v3/search", "pagination": { "style": "page", "props": { "per_page": "photos.perpage", "total_pages": "photos.pages", "page": "photos.page" } }, "search": { "q": { "title": "Search", "type": "string" }, "license": { "title": "License type", "type": "string", "value": "", "component": { "name": "dropdown-select", "valueProperty": "value", "slot": "<paper-item value=\'\'>Any</paper-item><paper-item value=\'by\'>Attribution</paper-item><paper-item value=\'by-sa\'>Attribution ShareAlike</paper-item><paper-item value=\'by-nd\'>Attribution NoDerivatives</paper-item><paper-item value=\'by-nc\'>Attribution-NonCommercial</paper-item><paper-item value=\'by-nc-sa\'>Attribution NonCommercial ShareAlike</paper-item><paper-item value=\'by-nc-nd\'>Attribution NonCommercial NoDerivatives</paper-item><paper-item value=\'cc0\'>Public Domain Dedication (CC0)</paper-item>" } } }, "resultMap": { "defaultGizmoType": "video", "items": "results", "preview": { "title": "name", "details": "description._content", "image": "thumbnails.images.2.url", "id": "uid" }, "gizmo": { "title": "name", "source": "embedUrl", "alt": "description" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); // dailymotion $jsonstring = '{ "details": { "title": "Dailymotion", "icon": "av:play-circle-filled", "color": "blue", "author": "Dailymotion", "description": "A crowdsourced video platform that is ad supported.", "status": "available", "tags": ["video", "crowdsourced"] }, "connection": { "protocol": "https", "url": "api.dailymotion.com", "operations": { "browse": { "method": "GET", "endPoint": "videos", "pagination": { "style": "page", "props": { "total_items": "total", "total_pages": "total_pages", "page": "page" } }, "search": { "search": { "title": "Search", "type": "string" } }, "data": { "fields":"description,embed_url,thumbnail_240_url,title,id", "no_live":"1", "ssl_assets":"true", "sort":"relevance", "limit":"20" }, "resultMap": { "defaultGizmoType": "video", "items": "list", "preview": { "title": "title", "details": "description", "image": "thumbnail_240_url", "id": "id" }, "gizmo": { "title": "title", "description": "description", "source": "embed_url", "alt": "description", "caption": "description" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); // wikipedia $jsonstring = '{ "details": { "title": "Wikipedia", "icon": "account-balance", "color": "grey", "author": "Wikimedia", "description": "Encyclopedia of the world.", "status": "available", "tags": ["content", "encyclopedia", "wiki"] }, "connection": { "protocol": "https", "url": "en.wikipedia.org", "data": { "action": "query", "list": "search", "format": "json", "origin": "*" }, "operations": { "browse": { "method": "GET", "endPoint": "w\/api.php", "pagination": { "style": "offset", "props": { "offset": "sroffset" } }, "search": { "srsearch": { "title": "Search", "type": "string" } }, "data": {}, "resultMap": { "image": "https://en.wikipedia.org/static/images/project-logos/enwiki.png", "defaultGizmoType": "content", "items": "query.search", "preview": { "title": "title", "details": "snippet", "id": "title" }, "gizmo": { "_url_source": "https://en.wikipedia.org/wiki/<%= id %>", "id": "title", "title": "title", "caption": "snippet", "description": "snippet" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); // cc-mixter $jsonstring = '{ "details": { "title": "CC Mixter", "icon": "av:library-music", "color": "purple", "author": "CC Mixter", "description": "User submitted audio files and music.", "status": "available", "tags": ["audio", "crowdsourced"] }, "connection": { "protocol": "http", "url": "ccmixter.org", "data": { "format":"json", "sort":"name", "limit":"20" }, "operations": { "browse": { "method": "GET", "endPoint": "api/query", "pagination": { "style": "link", "props": { "first": "paging.first", "next": "paging.next", "previous": "paging.previous", "last": "paging.last" } }, "search": { "tags": { "title": "Search", "type": "string" } }, "data": { "direction": "asc", "sort": "alphabetical", "filter": "CC", "per_page": "20" }, "resultMap": { "defaultGizmoType": "audio", "items": "", "preview": { "title": "upload_name", "details": "upload_description_plain", "image": "license_logo_url", "id": "upload_id" }, "gizmo": { "source": "files.0.download_url", "id": "upload_id", "title": "upload_name", "caption": "upload_description_plain", "description": "upload_description_plain", "citation": "license_name" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); // codepen $jsonstring = '{ "details": { "title": "Codepen.io", "icon": "code", "color": "green", "author": "Code pen", "description": "HTML / CSS / JS sharing community", "status": "available", "rating": "0", "tags": ["code", "development", "html", "js", "crowdsourced"] }, "connection": { "protocol": "https", "url": "cpv2api.com", "operations": { "browse": { "method": "GET", "endPoint": "search/pens", "pagination": { "style": "page", "props": { "per_page": "photos.perpage", "total_pages": "photos.pages", "page": "photos.page" } }, "search": { "q": { "title": "Search", "type": "string" } }, "resultMap": { "defaultGizmoType": "video", "items": "data", "preview": { "title": "title", "details": "details", "image": "images.small", "id": "id" }, "gizmo": { "_url_source": "https://codepen.io/fchazal/embed/<%= id %>/?theme-id=0&default-tab=html,result&embed-version=2", "id": "id", "image": "images.large", "title": "title", "caption": "details", "description": "details" } } } } } }'; $tmp = json_decode($jsonstring); array_push($json, $tmp); return $json; } /** * Returns some example / default BLOX definitions, which are * the layouts as defined by HAX to go in a grid-plate element. * This is the specification required by the HAX appstore in * order to correctly present the listing of layouts in their * associated layout drawer. * @return array HAX blox specification */ public function loadBaseBlox() { $jsonstring = '[ { "details": { "title": "50% columns", "author": "ELMS:LN", "icon": "hax:6/6", "status": "available", "layout": "1-1" }, "blox": [ { "tag": "h2", "properties": { "slot": "col-1" }, "content": "Heading" }, { "tag": "p", "properties": { "slot": "col-1" }, "content": "A paragraph of text would go here to describe the work." }, { "tag": "place-holder", "properties": { "slot": "col-2", "type": "image" }, "content": "" } ] }, { "details": { "title": "66 / 33 columns", "author": "ELMS:LN", "icon": "hax:8/4", "status": "available", "layout": "2-1" }, "blox": [ { "tag": "place-holder", "properties": { "slot": "col-1", "type": "text" }, "content": "" }, { "tag": "place-holder", "properties": { "slot": "col-2", "type": "image" }, "content": "" } ] }, { "details": { "title": "33% columns", "author": "ELMS:LN", "icon": "hax:4/4/4", "status": "available", "layout": "1-1-1" }, "blox": [ { "tag": "place-holder", "properties": { "slot": "col-1", "type": "image" }, "content": "" }, { "tag": "place-holder", "properties": { "slot": "col-2", "type": "image" }, "content": "" }, { "tag": "place-holder", "properties": { "slot": "col-3", "type": "image" }, "content": "" } ] }, { "details": { "title": "33 / 66 columns", "author": "ELMS:LN", "icon": "hax:4/8", "status": "available", "layout": "1-2" }, "blox": [ { "tag": "place-holder", "properties": { "slot": "col-2", "type": "text" }, "content": "" }, { "tag": "place-holder", "properties": { "slot": "col-1", "type": "image" }, "content": "" }, { "tag": "place-holder", "properties": { "slot": "col-1", "type": "image" }, "content": "" }, { "tag": "place-holder", "properties": { "slot": "col-1", "type": "image" }, "content": "" } ] }, { "details": { "title": "25% columns", "author": "ELMS:LN", "icon": "hax:3/3/3/3", "status": "available", "layout": "1-1-1-1" }, "blox": [ { "tag": "place-holder", "properties": { "slot": "col-1", "type": "image" }, "content": "" }, { "tag": "place-holder", "properties": { "slot": "col-2", "type": "image" }, "content": "" }, { "tag": "place-holder", "properties": { "slot": "col-3", "type": "image" }, "content": "" }, { "tag": "place-holder", "properties": { "slot": "col-4", "type": "image" }, "content": "" } ] } ]'; return json_decode($jsonstring); } /** * Returns some example STAX definitions, which are * predefined sets of items which can be broken apart * after the fact. This is like a template in traditional WYSIWYGs. * @return array HAX stax specification */ public function loadBaseStax() { $jsonstring = '[{ "details": { "title": "Example Lesson", "author": "ELMS:LN", "description": "An example of what HAX can do", "status": "available", "rating": "0", "tags": ["example"] }, "stax": [ { "tag": "h2", "properties": {}, "content": "Introduction to ELMS: Learning Network" }, { "tag": "p", "properties": {}, "content": "What is ELMS: Learning Network? How is it fundamentally different from other learning technologies? Why is it your reading this when it\'s example text that you\'ve just added to see how to make a really solid introduction to a new unit of instruction? Let\'s keep reading to find out!" }, { "tag": "video-player", "properties": { "style": "width: 75%; margin: 0px auto; display: block;", "source": "https://www.youtube.com/watch?v=pKLPQ4ufo64", "src": "https://www.youtube-nocookie.com/embed/pKLPQ4ufo64?showinfo=0&controls=1&rel=0", "iframed": true, "sandboxed": false, "width": "560", "height": "315", "responsive": true, "caption": "What is ELMS:LN? Why is it fundamentally different from any other educational technology that\'s ever existed? What is sustainable innovation? Why is this so ...", "secondaryColor": "#fff9c4", "textColor": "#000000", "secondaryColorClass": "yellow lighten-4", "textColorClass": "black-text", "ytNocookie": true, "ytSuggested": false, "ytControls": true, "ytTitle": false, "vimeoTitle": false, "vimeoByline": false, "vimeoPortrait": false, "videoColor": "FF031D" }, "content": "" } ] }]'; return json_decode($jsonstring); } /** * Return an array of the base app keys we support. This * can reduce the time to integrate with other solutions. * @return array service names keyed by their key name */ public function baseSupportedApps() { return array( 'youtube' => array( 'name' => 'YouTube', 'docs' => 'https://developers.google.com/youtube/v3/getting-started', ), 'googlepoly' => array( 'name' => 'Google Poly', 'docs' => 'https://developers.google.com/poly/develop/api', ), 'memegenerator' => array( 'name' => 'Meme generator', 'docs' => 'https://memegenerator.net/Api', ), 'vimeo' => array( 'name' => 'Vimeo', 'docs' => 'https://developer.vimeo.com/', ), 'giphy' => array( 'name' => 'Giphy', 'docs' => 'https://developers.giphy.com/docs/', ), 'unsplash' => array( 'name' => 'Unsplash', 'docs' => 'https://unsplash.com/developers', ), 'flickr' => array( 'name' => 'Flickr', 'docs' => 'https://www.flickr.com/services/developer/api/', ), 'pixabay' => array( 'name' => 'Pixabay', 'docs' => 'https://pixabay.com/api/docs/', ), ); } }