/** * Event call to get content for public project page * * @return */ public function onProjectPublicList($model) { if (!$model->exists() || !$model->access('content') || !$model->isPublic()) { return false; } if (!$model->params->get('publications_public', 0)) { return false; } // Instantiate a publication object $pub = new \Components\Publications\Models\Publication(); $view = new \Hubzero\Plugin\View(array('folder' => 'projects', 'element' => 'publications', 'name' => 'publist')); // Filters for returning results $view->filters = array('project' => $model->get('id'), 'sortby' => 'date_published', 'sortdir' => 'DESC'); $view->items = $pub->entries('list', $view->filters); $view->model = $model; return $view->loadTemplate(); }
/** * Get a list of project files * * @apiMethod GET * @apiUri /projects/{id}/files * @apiParameter { * "name": "id", * "description": "Project identifier (numeric ID or alias)", * "type": "string", * "required": true, * "default": null * } * @apiParameter { * "name": "limit", * "description": "Number of result to return.", * "type": "integer", * "required": false, * "default": 25 * } * @apiParameter { * "name": "limitstart", * "description": "Number of where to start returning results.", * "type": "integer", * "required": false, * "default": 0 * } * @apiParameter { * "name": "sortby", * "description": "Field to sort results by.", * "type": "string", * "required": false, * "default": "title", * "allowedValues": "title, date, id, category, status" * } * @apiParameter { * "name": "sortdir", * "description": "Direction to sort results by.", * "type": "string", * "required": false, * "default": "asc", * "allowedValues": "asc, desc" * } * @apiParameter { * "name": "published", * "description": "Get only published datasets (1) or all including drafts (0)", * "type": "string", * "required": false, * "default": "0", * "allowedValues": "0, 1" * } * @return void */ public function listTask() { $response = new stdClass(); // Instantiate a publication object $pub = new \Components\Publications\Models\Publication(); // Filters for returning results $filters = array('project' => $this->model->get('id'), 'limit' => Request::getInt('limit', 25), 'limitstart' => Request::getInt('limitstart', 0), 'sortby' => Request::getWord('sortby', 'title', 'post'), 'sortdir' => strtoupper(Request::getWord('sortdir', 'ASC')), 'ignore_access' => 1); $published = Request::getInt('published', '0', 'post'); if (!$published) { $filters['dev'] = 1; } $response->publications = array(); $response->total = $pub->entries('count', $filters); $response->project = $this->model->get('alias'); $publications = $pub->entries('list', $filters); if (!empty($publications)) { $base = rtrim(Request::base(), '/'); foreach ($publications as $i => $entry) { $obj = new stdClass(); $obj->id = $entry->get('id'); $obj->alias = $entry->get('alias'); $obj->title = $entry->get('title'); $obj->abstract = $entry->get('abstract'); $obj->creator = $entry->creator('name'); $obj->created = $entry->get('created'); $obj->published = $entry->published('date'); $obj->masterType = $entry->masterType()->type; $obj->category = $entry->category()->name; $obj->version = $entry->get('version_number'); $obj->versionLabel = $entry->get('version_label'); $obj->status = $entry->get('state'); $obj->statusName = $entry->getStatusName(); $obj->thumbUrl = str_replace('/api', '', $base . '/' . ltrim(Route::url($entry->link('thumb')), '/')); $obj->uri = str_replace('/api', '', $base . '/' . ltrim(Route::url($entry->link('version')), '/')); $response->publications[] = $obj; } } $this->send($response); }
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. * */ // No direct access defined('_HZEXEC_') or die; $pubParams = $this->publication->params; $filters = array('category' => Request::getVar('category', ''), 'sortby' => Request::getCmd('sortby', 'date'), 'limit' => Request::getInt('limit', 10000), 'start' => Request::getInt('limitstart', 0), 'search' => Request::getVar('search', ''), 'tag' => trim(Request::getVar('tag', '', 'request', 'none', 2)), 'tag_ignored' => array()); // Instantiate a publication object $model = new \Components\Publications\Models\Publication(); // Execute count query $total = $model->entries('count', $filters); // Run query with limit $results = $model->entries('list', $filters); // Initiate paging $pageNav = new \Hubzero\Pagination\Paginator($total, $filters['start'], $filters['limit']); $database = \App::get('db'); $pa = new \Components\Publications\Tables\Author($database); ?> <label for="pub-search"><?php echo Lang::txt('Search'); ?> </label> <input id="pub-search" name="search" placeholder="Start typing here" type="text" data-list=".pub-selector" autocomplete="off" /> <ul class="pub-selector" id="pub-selector"> <?php foreach ($results as $item) {