예제 #1
0
 /**
  * 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();
 }
예제 #2
0
 /**
  * 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);
 }
예제 #3
0
 * 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) {