function getTopicScreen($topic) { $apiScreen = new AppBuilderAPIListScreen($topic['name']); $apiItem = new AppBuilderAPITextItem($topic['name']); $apiItem->setBold(true); $apiItem->setSize(18); $apiItem->setAlign("center"); $apiItem->setPaddingTop(20); $apiItem->setPaddingBottom(20); $apiItem->setPaddingLeft(20); $apiItem->setPaddingRight(20); $apiScreen->addChild($apiItem); foreach ($topic['posts'] as $post) { $apiItem = new AppBuilderAPIThumbItem($post['user']['name'], $post['user']['roles'], "http://community.computingatschool.org.uk{$post['user']['picture']}"); $apiItem->setImageSize(array('width' => 32, 'height' => 24)); $apiItem->setHrAfter(false); $apiScreen->addChild($apiItem); $noTagsBody = strip_tags($post['body']); $shortNoTagsBody = substr($noTagsBody, 0, 200); $shortend = strlen($noTagsBody) > 200; $apiItem = new AppBuilderAPITextItem($shortNoTagsBody); if ($shortend) { $apiItem->setHrAfter(false); } $apiScreen->addChild($apiItem); if ($shortend) { $apiItem = new AppBuilderAPILinkItem("... more"); $apiItem->setScreenLink(getMoreScreen($topic['name'], $post['body'])); $apiItem->setColor("8,74,255"); $apiItem->setAlign("right"); $apiScreen->addChild($apiItem); } } return $apiScreen; }
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPITextItem'); $screen->addChild(new AppBuilderAPITextItem('Hello world')); echo AppBuilderAPI::getScreenResponse($screen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPILinkItem'); $screen->addChild($link = new AppBuilderAPILinkItem('Link item')); echo AppBuilderAPI::getScreenResponse($screen);
private function addLink($row, $item) { if (in_array(get_class($item), array('AppBuilderAPITextItem'))) { return; } switch (isset($row['linktype']) ? $row['linktype'] : $this->getLinktype($row)) { case 'url': $item->setWebLink(isset($row['href']) ? $row['href'] : ''); break; case 'youtube': $item->setYoutubeLink(isset($row['href']) ? $row['href'] : ''); break; case 'vimeo': $item->setVimeoLink(isset($row['href']) ? $row['href'] : ''); break; case 'video': $item->setVideoLink(isset($row['href']) ? $row['href'] : ''); break; case 'text': $item->setScreenLink($articleScreen = new AppBuilderAPIListScreen($row['title'])); $articleScreen->addChild(new AppBuilderAPIFormattedItem($row['text'])); break; default: break; } }
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPISelectItem'); $screen->addChild($select = new AppBuilderAPISelectItem('select', 'select')); $select->addOption('foo', '1'); $select->addOption('bar', '2'); echo AppBuilderAPI::getScreenResponse($screen);
protected function applyLinkToNode($xml, $node, &$data) { switch ($linktype = $this->getAttribute('linktype')) { case 'login': $node->setAttribute('data-linktype', 'login'); $node->setAttribute('data-href', $this->getAttribute('href')); break; case 'register': $node->setAttribute('data-linktype', 'register'); $node->setAttribute('data-href', $this->getAttribute('href')); break; case 'jscode': $this->showArrow = false; $node->setAttribute('data-linktype', 'jscode'); $node->setAttribute('data-href', $this->getIdType() . (isset($data['settings']['prefix']) && $this->prefixed ? $data['settings']['prefix'] : '') . $this->getId()); break; case 'items': case 'gallery': case 'map': if ($this->jsonp || $this->getAttribute('xmlsrc')) { $node->setAttribute('data-linktype', 'remote'); $node->setAttribute('data-href', $this->prepareURL($this->jsonp)); } else { if ($this->screen) { $node->setAttribute('data-linktype', 'screen'); $this->screen->getHTMLNode($xml, $data, true); $node->setAttribute('data-href', (isset($data['settings']['prefix']) && $this->prefixed ? $data['settings']['prefix'] : '') . $this->screen->getId()); if (!empty($this->elementId)) { $node->setAttribute('data-element', $this->elementId); } //$s->setAttribute('data-parent-type', 'item'); //$s->setAttribute('data-parent', $node->getAttribute('id')); } } break; case 'tab': if (!empty($this->tab)) { $node->setAttribute('data-linktype', $linktype); $this->tab->getHTMLNode($xml, $data, true); $node->setAttribute('data-href', (isset($data['settings']['prefix']) && $this->prefixed ? $data['settings']['prefix'] : '') . $this->tab->getId()); break; } else { $node->setAttribute('data-linktype', $linktype); $node->setAttribute('data-href', $this->getAttribute('href')); break; } case 'refresh': $node->setAttribute('data-linktype', 'refresh'); $node->setAttribute('data-refreshtype', $this->getAttribute('refreshtype') ? 'any' : 'button'); break; case 'app': if (!empty($this->app)) { $node->setAttribute('data-linktype', $linktype); $this->app->getHTMLNode($xml, $data, true); $node->setAttribute('data-href', (isset($data['settings']['prefix']) && $this->prefixed ? $data['settings']['prefix'] : '') . $this->app->getId()); break; } case 'screen': $node->setAttribute('data-linktype', $linktype); $node->setAttribute('data-href', (isset($data['settings']['prefix']) && $this->prefixed ? $data['settings']['prefix'] : '') . $this->getAttribute('href')); break; case 'email': if ($data['settings']['emailPreview']) { $screen = new AppBuilderAPIListScreen('Email'); $screen->setId('email' . $this->getId()); $screen->setUpdated(false); $screen->setEditable(false); $screen->setBack(isset($data['settings']['currentscreen']) ? $data['settings']['currentscreen'] : true); $screen->setFetchId($data['settings']['fetchscreen'] ? $data['settings']['fetchscreen']->getId() : null); $screen->addChild(new AppBuilderAPIInputItem('email_to', $this->getAttribute('emailto'), 'To')); $screen->addChild(new AppBuilderAPIInputItem('email_subject', $this->getAttribute('emailsubject'), 'Subject')); $screen->addChild(new AppBuilderAPITextAreaItem('email_body', $this->getAttribute('emailbody'), 'Message')); $send = new AppBuilderAPIButtonItem('Send'); $send->setWebLink('mailto:{email_to}?subject={email_subject}&body={email_body}', 'external'); $screen->addChild($send); $screen->getHTMLNode($xml, $data, true); $node->setAttribute('data-linktype', 'screen'); $node->setAttribute('data-href', (isset($data['settings']['prefix']) && $this->prefixed ? $data['settings']['prefix'] : '') . $screen->getId()); } else { $node->setAttribute('data-linktype', 'web'); $node->setAttribute('data-href', 'mailto:' . $this->getAttribute('emailto') . '?subject=' . urlencode($this->getAttribute('emailsubject')) . '&body=' . urlencode($this->getAttribute('emailbody'))); $node->setAttribute('data-weblinktype', 'external'); } break; case 'phone': if ($data['settings']['telPreview']) { $screen = new AppBuilderAPIListScreen('Phone'); $screen->setId('phone' . $this->getId()); $screen->setUpdated(false); $screen->setScrolling(false); $screen->setEditable(false); $screen->setBack(isset($data['settings']['currentscreen']) ? $data['settings']['currentscreen'] : true); $screen->setFetchId($data['settings']['fetchscreen'] ? (isset($data['settings']['prefix']) && $this->prefixed ? $data['settings']['prefix'] : '') . $data['settings']['fetchscreen']->getId() : null); $screen->addClass('phone-screen'); $screen->setHeader(false); $screen->setTabs(false); $top = new AppBuilderAPILinkItem($this->getAttribute('href')); $top->addClass('top'); $screen->addChild($top); $end = new AppBuilderAPILinkItem('End'); $end->addClass('bottom'); $end->setBackLink(); $screen->addChild($end); $screen->getHTMLNode($xml, $data, true); $node->setAttribute('data-linktype', 'screen'); $node->setAttribute('data-href', (isset($data['settings']['prefix']) && $this->prefixed ? $data['settings']['prefix'] : '') . $screen->getId()); } else { $node->setAttribute('data-linktype', 'web'); $node->setAttribute('data-href', 'tel:' . $this->getAttribute('href')); $node->setAttribute('data-weblinktype', 'confirm'); $node->setAttribute('data-confirm-message', 'Click to make a call to ' . $this->getAttribute('href')); $node->setAttribute('data-okbtn', 'Call'); } break; //file //file case 'pdf': case 'excel': case 'doc': case 'ppt': case 'mp4': case 'mp3': case 'wav': case 'video': $node->setAttribute('data-linktype', 'file'); $node->setAttribute('data-href', $this->getAttribute('href')); if ($this->filename) { $node->setAttribute('data-filename', $this->filename); } break; case 'web': case 'youtube': case 'vimeo': case 'twitter': case 'facebook': $node->setAttribute('data-linktype', $linktype); $node->setAttribute('data-href', $this->getAttribute('href')); if ($this->weblinktype) { $node->setAttribute('data-weblinktype', $this->weblinktype); } break; case 'back': $node->setAttribute('data-linktype', $linktype); if ($this->backlink) { $node->setAttribute('data-href', (isset($data['settings']['prefix']) && $this->prefixed ? $data['settings']['prefix'] : '') . $this->backlink); } break; case 'bbm': $node->setAttribute('data-linktype', 'bbm'); break; case 'toggle': case 'app': default: // } if ($node->hasAttribute('data-linktype')) { $xml->addClass($node, 'link'); if ($this->showArrow) { $node->appendChild($xml->createElement('div', 'link-arrow')); } else { $xml->addClass($node, 'link-no-arrow'); } $node->setAttribute('x-blackberry-focusable', 'true'); } }
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPIInputItem'); $screen->addChild(new AppBuilderAPIInputItem('Input', 'input', 'text')); echo AppBuilderAPI::getScreenResponse($screen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPIPickerItem'); $screen->addChild(new AppBuilderAPIPickerItem('Time', 'time', 'time')); $screen->addChild(new AppBuilderAPIPickerItem('Date', 'date', 'date')); echo AppBuilderAPI::getScreenResponse($screen);
<?php include '../api/api.php'; $screen = new AppBuilderAPIListScreen('Home'); $screen->addChild($link = new AppBuilderAPILinkItem('screen3')); $link->setScreenLink($screen2 = new AppBuilderAPIListScreen('Home')); $screen2->addChild($link2 = new AppBuilderAPILinkItem('link 2 ')); //$link2->setRemoteLink('http://vitaliy.ekreative.com/appshed-git/site/components/com_appbuilder/libraries/appshed-extension-api/examples/example-links.php'); echo AppBuilderAPI::getScreenResponse($screen);
<?php include '../api/api.php'; $screen = new AppBuilderAPIListScreen('Home'); $screen->addChild(new AppBuilderAPITextItem('form variable:' . (isset($_GET['yourformvariable']) ? $_GET['yourformvariable'] : 'null'))); echo AppBuilderAPI::getScreenResponse($screen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $tab = new AppBuilderAPITab('tab'); $tab->setScreenLink($screen = new AppBuilderAPIListScreen('Home', 4)); $screen->setAppsBackground('components/com_appbuilder/assets/images/appbuilder/appscreen-bg.jpg'); echo AppBuilderAPI::getScreenResponse($tab);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPICheckboxItem'); $screen->addChild(new AppBuilderAPICheckboxItem('Checkbox', 'checkbox', true)); echo AppBuilderAPI::getScreenResponse($screen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPIButtonItem'); $screen->addChild(new AppBuilderAPIButtonItem('AppBuilderAPIButtonItem')); echo AppBuilderAPI::getScreenResponse($screen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPITextAreaItem'); $screen->addChild(new AppBuilderAPITextAreaItem('text', 'text', 'title')); echo AppBuilderAPI::getScreenResponse($screen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPICaptureItem'); $screen->addChild(new AppBuilderAPICaptureItem('Capture', 'video', 'video')); echo AppBuilderAPI::getScreenResponse($screen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPIFormattedItem'); $screen->addChild(new AppBuilderAPIFormattedItem(' <h1>FormattedItem</h1><br> <b>Bold</b><br> <i>italic</i><br> ')); echo AppBuilderAPI::getScreenResponse($screen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; // подключаем апи $screen = new AppBuilderAPIListScreen('Home'); // if (isset($_GET['addcomment'])) { // проверяем добавляем ли мы комент $screen->setCSSText(' textbox .title{width: 94px;} item.textarea{height: 165px;} '); // добавляем CSS стили $screen->setHrAfter(false); // отключаем линии под элементами на всем скрине $screen->addChild($name = new AppBuilderAPIInputItem('name', '', 'Имя')); // добавляем поле воода имени $screen->addChild($email = new AppBuilderAPIInputItem('email', '', 'Email')); // добавляем поле воода почты $screen->addChild($text = new AppBuilderAPITextAreaItem('text', 'text', 'Текст')); // добавляем поле воода тсообщения $screen->addChild($button = new AppBuilderAPIButtonItem('Написать')); // добавляем кнопку $button->setRemoteLink('http://dev.appshed.net/examples/forms.php?post=true');
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPIPlainItem'); $screen->addChild(new AppBuilderAPIPlainItem('AppBuilderAPIPlainItem')); $screen->addChild(new AppBuilderAPIPlainItem('AppBuilderAPIPlainItem', 'subtitle')); echo AppBuilderAPI::getScreenResponse($screen);
<?php require_once 'appshed-extension-api/api/api.php'; require_once 'functions.php'; if (empty($_GET['username']) || empty($_GET['password'])) { $apiScreen = new AppBuilderAPIListScreen("Incorrect Login"); echo AppBuilderAPI::getScreenResponse($apiScreen); exit; } $file = fetchURL('http://community.computingatschool.org.uk/forums.json', null, false, array('username' => $_GET['username'], 'password' => $_GET['password'])); if (!$file) { $apiScreen = new AppBuilderAPIListScreen("Incorrect Login"); echo AppBuilderAPI::getScreenResponse($apiScreen); exit; } $data = json_decode($file, true); $apiScreen = new AppBuilderAPIListScreen("Discussion Forums"); $apiScreen->setBack(false); $base = base(); foreach ($data['normal'] as $forum) { $apiItem = new AppBuilderAPILinkItem($forum['name'], "http://images-resized.appshed.com/10148plain_x2.png"); $apiItem->setImageSize(array('width' => 40, 'height' => 40)); $query = http_build_query(array('url' => $forum['json_url'], 'name' => $forum['name'], 'username' => $_GET['username'], 'password' => $_GET['password'])); $apiItem->setRemoteLink("{$base}/forum.php?{$query}"); $apiScreen->addChild($apiItem); } echo AppBuilderAPI::getScreenResponse($apiScreen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPIThumbItem'); $screen->addChild(new AppBuilderAPIThumbItem('tile', 'subtitle')); $screen->addChild(new AppBuilderAPIThumbItem('tile', 'subtitle', 'http://fred-test-images-resized.s3.amazonaws.com/23362_Icon.png')); echo AppBuilderAPI::getScreenResponse($screen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('Home'); $feedUrl = 'http://blog.stuartherbert.com/php/?feed=rss2'; $rawFeed = file_get_contents($feedUrl); $xml = new SimpleXmlElement($rawFeed); foreach ($xml->channel->item as $item) { $screen->addChild($link = new AppBuilderAPIPlainItem((string) $item->title)); $screen->addChild(new AppBuilderAPITextItem((string) $item->description)); $link->setWebLink((string) $item->link); } echo AppBuilderAPI::getScreenResponse($screen);
<?php /** * @package AppBuilderAPI * @subpackage examples * @author Vitaliy Pitvalo <*****@*****.**> * @copyright Copyright (c) 2011, ekreative * @version 1.0 */ include '../api/api.php'; $screen = new AppBuilderAPIListScreen('AppBuilderAPIImageItem'); $screen->addChild(new AppBuilderAPIImageItem('http://fred-test-images-resized.s3.amazonaws.com/21454_Icon.jpeg')); echo AppBuilderAPI::getScreenResponse($screen);
<?php include '../api/api.php'; $app = new AppBuilderAPIApp(); $tab = new AppBuilderAPITab('Home'); $screen = new AppBuilderAPIListScreen('Home'); $screen->addChild(new AppBuilderAPITextItem('some text of this first screen')); $tab->setScreenLink($screen); $app->addTab($tab); $tab = new AppBuilderAPITab('Tab 2'); $screen = new AppBuilderAPIListScreen('Tab 2'); $screen->addChild(new AppBuilderAPITextItem('some text of this second screen')); $tab->setScreenLink($screen); $app->addTab($tab); $tab = new AppBuilderAPITab('Tab 3'); $screen = new AppBuilderAPIListScreen('Tab 3'); $screen->addChild(new AppBuilderAPITextItem('some text of this third screen')); $tab->setScreenLink($screen); $app->addTab($tab); echo AppBuilderAPI::getScreenResponse($app);