コード例 #1
0
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;
}
コード例 #2
0
<?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);
コード例 #3
0
<?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);
コード例 #4
0
 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);
コード例 #9
0
<?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);
コード例 #10
0
<?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);
コード例 #11
0
<?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);
コード例 #17
0
<?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');
コード例 #18
0
<?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);
コード例 #19
0
<?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);
コード例 #20
0
<?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);
コード例 #21
0
<?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);
コード例 #22
0
<?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);
コード例 #23
0
<?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);