예제 #1
0
 public function view()
 {
     $mri = new MarketplaceRemoteItemList();
     $mri->sortBy('recommended');
     $mri->setItemsPerPage(1);
     $mri->filterByCompatibility(1);
     $mri->setType('addons');
     $mri->execute();
     $items = $mri->getPage();
     if (is_object($items[0])) {
         $this->set('remoteItem', $items[0]);
     }
 }
예제 #2
0
 public function view()
 {
     session_write_close();
     $mri = new RemoteItemList();
     $mri->setItemsPerPage(5);
     $mri->setIncludeInstalledItems(false);
     $mri->filterByCompatibility(1);
     $mri->setType('addons');
     $keywords = $_REQUEST['q'];
     $mri->filterByKeywords($keywords);
     $mri->execute();
     $items = $mri->getPage();
     $r = array();
     foreach ($items as $it) {
         $obj = new \stdClass();
         $obj->mpID = $it->getMarketplaceItemID();
         $obj->name = $it->getName();
         $obj->img = $it->getRemoteIconURL();
         $obj->href = $it->getRemoteURL();
         $r[] = $obj;
     }
     echo json_encode($r);
     exit;
 }
 public function view()
 {
     $this->setThemeViewTemplate('marketplace.php');
     $this->set('type', $this->getMarketplaceType());
     $this->set('heading', $this->getMarketplaceDefaultHeading());
     $tp = new TaskPermission();
     $mi = Marketplace::getInstance();
     if ($mi->isConnected() && $tp->canInstallPackages()) {
         $mri = new MarketplaceRemoteItemList();
         $mri->setItemsPerPage(9);
         $sets = MarketplaceRemoteItemList::getItemSets($this->getMarketplaceType());
         $setsel = array('' => t('All Items'), 'FEATURED' => t('Featured Items'));
         $req = $this->request->query;
         if (is_array($sets)) {
             foreach ($sets as $s) {
                 $setsel[$s->getMarketplaceRemoteSetID()] = $s->getMarketplaceRemoteSetName();
                 if ($req->has('marketplaceRemoteItemSetID') && $req->get('marketplaceRemoteItemSetID') == $s->getMarketplaceRemoteSetID()) {
                     $this->set('heading', $s->getMarketplaceRemoteSetName());
                 }
             }
         }
         switch ($this->request->query->get('ccm_order_by')) {
             case 'rating':
             case 'skill_level':
             case 'recent':
                 $mri->sortBy($this->request->query->get('ccm_order_by'));
                 $this->set('sort', $this->request->query->get('ccm_order_by'));
                 break;
             case 'price':
                 $mri->sortBy('price_low');
                 $this->set('sort', 'price');
                 break;
             default:
                 $mri->sortBy('popularity');
                 $this->set('sort', 'popularity');
                 break;
         }
         $mri->setIncludeInstalledItems(false);
         if (isset($_REQUEST['marketplaceRemoteItemSetID'])) {
             $set = $_REQUEST['marketplaceRemoteItemSetID'];
         }
         $mri->filterByCompatibility(1);
         if (isset($_REQUEST['keywords']) && $_REQUEST['keywords']) {
             $keywords = h($_REQUEST['keywords']);
             $mri->filterByKeywords($keywords);
             $this->set('keywords', $keywords);
         }
         if ($set) {
             $mri->filterBySet($set);
         }
         $mri->setType($this->getMarketplaceType());
         $mri->execute();
         $items = $mri->getPage();
         $this->set('pagination', $mri->getPagination());
         $this->set('items', $items);
         $this->set('sets', $setsel);
         $this->set('list', $mri);
     } else {
         $this->redirect('/dashboard/extend/connect');
     }
 }
예제 #4
0
 public function view()
 {
     $tp = new TaskPermission();
     $mi = Marketplace::getInstance();
     if ($mi->isConnected() && $tp->canInstallPackages()) {
         $mri = new MarketplaceRemoteItemList();
         $mri->setItemsPerPage(9);
         $sets = MarketplaceRemoteItemList::getItemSets('addons');
         $setsel = array('' => t('All Items'), 'FEATURED' => t('Featured Items'));
         if (is_array($sets)) {
             foreach ($sets as $s) {
                 $setsel[$s->getMarketplaceRemoteSetID()] = $s->getMarketplaceRemoteSetName();
             }
         }
         $sortBy = array('' => t('Recommended'), 'popular' => t('Popular'), 'recent' => t('Recently Added'), 'rating' => t('Highest Rated'), 'price_low' => t('Price: Low to High'), 'price_high' => t('Price: High to Low'));
         $mri->setIncludeInstalledItems(false);
         if (isset($_REQUEST['marketplaceRemoteItemSetID'])) {
             $set = $_REQUEST['marketplaceRemoteItemSetID'];
         }
         if (isset($_REQUEST['mpID'])) {
             $mri->filterByMarketplaceItemID($_REQUEST['mpID']);
         }
         if (isset($_REQUEST['marketplaceRemoteItemSortBy'])) {
             $this->set('selectedSort', Loader::helper('text')->entities($_REQUEST['marketplaceRemoteItemSortBy']));
             $mri->sortBy($_REQUEST['marketplaceRemoteItemSortBy']);
         } else {
             $mri->sortBy('recommended');
         }
         if (isset($_REQUEST['marketplaceIncludeOnlyCompatibleAddons']) && $_REQUEST['marketplaceIncludeOnlyCompatibleAddons'] == 1) {
             $mri->filterByCompatibility(1);
         }
         if (isset($_REQUEST['marketplaceRemoteItemKeywords']) && $_REQUEST['marketplaceRemoteItemKeywords']) {
             $keywords = $_REQUEST['marketplaceRemoteItemKeywords'];
             $sortBy = array('relevance' => t('Relevance')) + $sortBy;
         }
         if ($keywords != '') {
             $mri->filterByKeywords($keywords);
         }
         if ($set == 'FEATURED') {
             $mri->filterByIsFeaturedRemotely(1);
         } else {
             if ($set > 0) {
                 $mri->filterBySet($set);
             }
         }
         $mri->setType('addons');
         $mri->execute();
         $items = $mri->getPage();
         $this->set('sortBy', $sortBy);
         $this->set('selectedSet', $set);
         $this->set('list', $mri);
         $this->set('items', $items);
         $this->set('form', Loader::helper('form'));
         $this->set('sets', $setsel);
         $this->set('pagination', $mri->getPagination());
         $this->set('type', $what);
     } else {
         $this->redirect('/dashboard/extend/connect');
     }
 }
<?php

use Concrete\Core\Application\Service\Dashboard;
use Concrete\Core\Http\Service\Json;
use Concrete\Core\Marketplace\RemoteItemList as MarketplaceRemoteItemList;
$dh = new Dashboard();
if ($dh->canRead()) {
    session_write_close();
    $js = new Json();
    $mri = new MarketplaceRemoteItemList();
    $mri->setItemsPerPage(5);
    $mri->setIncludeInstalledItems(false);
    $mri->setType('addons');
    $keywords = $_REQUEST['q'];
    $mri->filterByKeywords($keywords);
    $mri->execute();
    $items = $mri->getPage();
    $r = array();
    foreach ($items as $it) {
        $obj = new stdClass();
        $obj->mpID = $it->getMarketplaceItemID();
        $obj->name = $it->getName();
        $obj->img = $it->getRemoteIconURL();
        $obj->href = $it->getRemoteURL();
        $r[] = $obj;
    }
    print $js->encode($r);
    exit;
}