Open Journal Systems  3.3.0
PKP\Services\QueryBuilders\PKPPublicationQueryBuilder Class Reference
Inheritance diagram for PKP\Services\QueryBuilders\PKPPublicationQueryBuilder:
PKP\Services\QueryBuilders\Interfaces\EntityQueryBuilderInterface

Public Member Functions

 filterByContextIds ($contextIds)
 
 filterBySubmissionIds ($submissionIds)
 
 getCount ()
 
 getDateBoundaries ()
 
 getIds ()
 
 getQuery ($applyOrder=true)
 
 getQueryByUrlPath ($urlPath, $contextId)
 
 isDuplicateUrlPath ($urlPath, $submissionId, $contextId)
 
 limitTo ($count)
 
 offsetBy ($offset)
 
- Public Member Functions inherited from PKP\Services\QueryBuilders\Interfaces\EntityQueryBuilderInterface
 getQuery ()
 

Protected Attributes

 $contextIds = []
 
 $limit = null
 
 $offset = 0
 
 $submissionIds = []
 

Detailed Description

Definition at line 20 of file PKPPublicationQueryBuilder.inc.php.

Member Function Documentation

◆ filterByContextIds()

PKP\Services\QueryBuilders\PKPPublicationQueryBuilder::filterByContextIds (   $contextIds)

Set contextIds filter

Parameters
array | int$contextIds
Returns
\PKP\Services\QueryBuilders\PKPPublicationQueryBuilder

Definition at line 52 of file PKPPublicationQueryBuilder.inc.php.

References PKP\Services\QueryBuilders\PKPPublicationQueryBuilder\$contextIds.

◆ filterBySubmissionIds()

PKP\Services\QueryBuilders\PKPPublicationQueryBuilder::filterBySubmissionIds (   $submissionIds)

Set submissionIds filter

Parameters
array | int$submissionIds
Returns
\PKP\Services\QueryBuilders\PKPPublicationQueryBuilder

Definition at line 63 of file PKPPublicationQueryBuilder.inc.php.

References PKP\Services\QueryBuilders\PKPPublicationQueryBuilder\$submissionIds.

◆ getCount()

PKP\Services\QueryBuilders\PKPPublicationQueryBuilder::getCount ( )

Get a count of the number of rows that match the select conditions configured in this query builder.

Returns
int

Implements PKP\Services\QueryBuilders\Interfaces\EntityQueryBuilderInterface.

Definition at line 95 of file PKPPublicationQueryBuilder.inc.php.

◆ getDateBoundaries()

PKP\Services\QueryBuilders\PKPPublicationQueryBuilder::getDateBoundaries ( )

Get the oldest and most recent publication dates for publications

Returns
object Query object

Definition at line 157 of file PKPPublicationQueryBuilder.inc.php.

References PKP\Services\QueryBuilders\Interfaces\EntityQueryBuilderInterface\getQuery().

◆ getIds()

PKP\Services\QueryBuilders\PKPPublicationQueryBuilder::getIds ( )

Get a list of ids that match the select conditions configured in this query builder.

Returns
array

Implements PKP\Services\QueryBuilders\Interfaces\EntityQueryBuilderInterface.

Definition at line 106 of file PKPPublicationQueryBuilder.inc.php.

◆ getQuery()

PKP\Services\QueryBuilders\PKPPublicationQueryBuilder::getQuery (   $applyOrder = true)

Get a query builder with the applied select, where and join clauses based on builder's configuration

This returns an instance of Laravel's query builder.

Call the get method on a query builder to return an array of matching rows.

$qb = new \PKP\Services\QueryBuilders\PublicationQueryBuilder();
$result = $qb
->filterByContextIds(1)
->getQuery()
->get();

Or use the query builder to retrieve objects from a DAO. This example retrieves the first 20 matching Publications.

$qo = $qb
->filterByContextIds(1)
->getQuery();
$result = DAORegistry::getDAO('PublicationDAO')->retrieveRange(
$qo->toSql(),
$qo->getBindings(),
new DBResultRange(20, null, 0);
);
$queryResults = new DAOResultFactory($result, $publicationDao, '_fromRow');
$iteratorOfObjects = $queryResults->toIterator();

Laravel's other query builder methods, such as first and pluck, can also be used.

$qb = new \PKP\Services\QueryBuilders\PublicationQueryBuilder();
$result = $qb
->filterByContextIds(1)
->getQuery()
->first();

See: https://laravel.com/docs/5.5/queries

Returns
Illuminate\Database\Query\Builder
Parameters
$applyOrderboolean True iff an order by version (ascending) should be applied

Definition at line 118 of file PKPPublicationQueryBuilder.inc.php.

References HookRegistry\call().

◆ getQueryByUrlPath()

PKP\Services\QueryBuilders\PKPPublicationQueryBuilder::getQueryByUrlPath (   $urlPath,
  $contextId 
)

Get a query builder to retrieve publications by their urlPath

Parameters
string$urlPath
int$contextId
Returns
Illuminate\Database\Query\Builder

Definition at line 171 of file PKPPublicationQueryBuilder.inc.php.

◆ isDuplicateUrlPath()

PKP\Services\QueryBuilders\PKPPublicationQueryBuilder::isDuplicateUrlPath (   $urlPath,
  $submissionId,
  $contextId 
)

Is the urlPath a duplicate?

Checks if the urlPath is used in any publication other than the submission passed.

A urlPath may be duplicated across more than one publication of the same submission. But two publications in two different submissions can not share the same urlPath.

This is only applied within a single context.

Parameters
string$urlPath
int$submissionId
int$contextId
Returns
boolean

Definition at line 195 of file PKPPublicationQueryBuilder.inc.php.

◆ limitTo()

PKP\Services\QueryBuilders\PKPPublicationQueryBuilder::limitTo (   $count)

Set query limit

Parameters
int$count
Returns
\PKP\Services\QueryBuilders\PKPPublicationQueryBuilder

Definition at line 75 of file PKPPublicationQueryBuilder.inc.php.

◆ offsetBy()

PKP\Services\QueryBuilders\PKPPublicationQueryBuilder::offsetBy (   $offset)

Set how many results to skip

Parameters
int$offset
Returns
\PKP\Services\QueryBuilders\PKPPublicationQueryBuilder

Definition at line 87 of file PKPPublicationQueryBuilder.inc.php.

References PKP\Services\QueryBuilders\PKPPublicationQueryBuilder\$offset.

Field Documentation

◆ $contextIds

array PKPPublicationQueryBuilder::$contextIds = []
protected

get publications for one or more contexts

Definition at line 26 of file PKPPublicationQueryBuilder.inc.php.

Referenced by PKP\Services\QueryBuilders\PKPPublicationQueryBuilder\filterByContextIds().

◆ $limit

int null PKPPublicationQueryBuilder::$limit = null
protected

whether to limit the number of results returned

Definition at line 38 of file PKPPublicationQueryBuilder.inc.php.

◆ $offset

int PKPPublicationQueryBuilder::$offset = 0
protected

whether to offset the number of results returned. Use to return a second page of results.

Definition at line 44 of file PKPPublicationQueryBuilder.inc.php.

Referenced by PKP\Services\QueryBuilders\PKPPublicationQueryBuilder\offsetBy().

◆ $submissionIds

array PKPPublicationQueryBuilder::$submissionIds = []
protected

get publications for one or more submissions

Definition at line 32 of file PKPPublicationQueryBuilder.inc.php.

Referenced by PKP\Services\QueryBuilders\PKPPublicationQueryBuilder\filterBySubmissionIds().


The documentation for this class was generated from the following file:
DBResultRange
Container class for range information when retrieving a result set.
Definition: DBResultRange.inc.php:17
DAOResultFactory
Wrapper around ADORecordSet providing "factory" features for generating objects from DAOs.
Definition: DAOResultFactory.inc.php:21
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57