本文整理汇总了PHP中Application::getDispatcher方法的典型用法代码示例。如果您正苦于以下问题:PHP Application::getDispatcher方法的具体用法?PHP Application::getDispatcher怎么用?PHP Application::getDispatcher使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Application
的用法示例。
在下文中一共展示了Application::getDispatcher方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: initialize
/**
* @copydoc GridRow::initialize()
*/
function initialize($request, $template = null)
{
parent::initialize($request, $template);
AppLocale::requireComponents(LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_PKP_SUBMISSION);
$requestArgs = array_merge($this->getRequestArgs(), array('submissionId' => $this->getId(), 'rowId' => $this->getId()));
$dispatcher = Application::getDispatcher();
import('lib.pkp.classes.linkAction.request.AjaxModal');
$this->addAction(new LinkAction('catalogEntry', new AjaxModal($dispatcher->url($request, ROUTE_COMPONENT, null, 'modals.submissionMetadata.CatalogEntryHandler', 'fetch', null, array_merge($requestArgs, array('stageId' => WORKFLOW_STAGE_ID_PRODUCTION))), __('submission.catalogEntry'), 'modal_more_info'), __('submission.editCatalogEntry')));
import('lib.pkp.classes.linkAction.request.RedirectAction');
$this->addAction(new LinkAction('itemWorkflow', new RedirectAction($dispatcher->url($request, ROUTE_PAGE, null, 'workflow', 'access', null, $requestArgs)), __('submission.submission')));
}
示例2: getNotificationUrl
/**
* @copydoc PKPNotificationOperationManager::getNotificationUrl()
*/
function getNotificationUrl($request, $notification)
{
$dispatcher = Application::getDispatcher();
$contextDao = Application::getContextDAO();
$context = $contextDao->getById($notification->getContextId());
$reviewRound = $this->getReviewRound($notification->getAssocId());
$submissionDao = Application::getSubmissionDAO();
$submission = $submissionDao->getById($reviewRound->getSubmissionId());
import('lib.pkp.controllers.grid.submissions.SubmissionsListGridCellProvider');
return SubmissionsListGridCellProvider::getUrlByUserRoles($request, $submission);
}
示例3: getNotificationUrl
/**
* Construct a URL for the notification based on its type and associated object
* @copydoc INotificationInfoProvider::getNotificationContents()
*/
public function getNotificationUrl($request, $notification)
{
$dispatcher = Application::getDispatcher();
$contextDao = Application::getContextDAO();
$context = $contextDao->getById($notification->getContextId());
switch ($notification->getType()) {
case NOTIFICATION_TYPE_ALL_REVIEWS_IN:
case NOTIFICATION_TYPE_ALL_REVISIONS_IN:
assert($notification->getAssocType() == ASSOC_TYPE_REVIEW_ROUND && is_numeric($notification->getAssocId()));
$reviewRoundDao = DAORegistry::getDAO('ReviewRoundDAO');
$reviewRound = $reviewRoundDao->getById($notification->getAssocId());
assert(is_a($reviewRound, 'ReviewRound'));
$submissionDao = Application::getSubmissionDAO();
$submission = $submissionDao->getById($reviewRound->getSubmissionId());
import('lib.pkp.controllers.grid.submissions.SubmissionsListGridCellProvider');
list($page, $operation) = SubmissionsListGridCellProvider::getPageAndOperationByUserRoles($request, $submission);
if ($page == 'workflow') {
$stageId = $reviewRound->getStageId();
$operation = WorkflowStageDAO::getPathFromId($stageId);
}
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), $page, $operation, $submission->getId());
case NOTIFICATION_TYPE_LAYOUT_ASSIGNMENT:
case NOTIFICATION_TYPE_INDEX_ASSIGNMENT:
case NOTIFICATION_TYPE_APPROVE_SUBMISSION:
assert($notification->getAssocType() == ASSOC_TYPE_SUBMISSION && is_numeric($notification->getAssocId()));
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'workflow', 'access', $notification->getAssocId());
case NOTIFICATION_TYPE_REVIEWER_COMMENT:
assert($notification->getAssocType() == ASSOC_TYPE_REVIEW_ASSIGNMENT && is_numeric($notification->getAssocId()));
$reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
/* @var $reviewAssignmentDao ReviewAssignmentDAO */
$reviewAssignment = $reviewAssignmentDao->getById($notification->getAssocId());
$userGroupDao = DAORegistry::getDAO('UserGroupDAO');
$operation = $reviewAssignment->getStageId() == WORKFLOW_STAGE_ID_INTERNAL_REVIEW ? WORKFLOW_STAGE_PATH_INTERNAL_REVIEW : WORKFLOW_STAGE_PATH_EXTERNAL_REVIEW;
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'workflow', $operation, $reviewAssignment->getSubmissionId());
case NOTIFICATION_TYPE_REVIEW_ASSIGNMENT:
$reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
/* @var $reviewAssignmentDao ReviewAssignmentDAO */
$reviewAssignment = $reviewAssignmentDao->getById($notification->getAssocId());
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'reviewer', 'submission', $reviewAssignment->getSubmissionId());
case NOTIFICATION_TYPE_NEW_ANNOUNCEMENT:
assert($notification->getAssocType() == ASSOC_TYPE_ANNOUNCEMENT);
$announcementDao = DAORegistry::getDAO('AnnouncementDAO');
/* @var $announcementDao AnnouncementDAO */
$announcement = $announcementDao->getById($notification->getAssocId());
/* @var $announcement Announcement */
$context = $contextDao->getById($announcement->getAssocId());
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'announcement', 'view', array($notification->getAssocId()));
case NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD:
return __('notification.type.configurePaymentMethod');
}
return $this->getByDelegate($notification->getType(), $notification->getAssocType(), $notification->getAssocId(), __FUNCTION__, array($request, $notification));
}
示例4: getNotificationUrl
/**
* @copydoc PKPNotificationOperationManager::getNotificationUrl()
*/
public function getNotificationUrl($request, $notification)
{
$url = parent::getNotificationUrl($request, $notification);
$dispatcher = Application::getDispatcher();
$contextDao = Application::getContextDAO();
$context = $contextDao->getById($notification->getContextId());
switch ($notification->getType()) {
case NOTIFICATION_TYPE_ASSIGN_COPYEDITOR:
case NOTIFICATION_TYPE_AWAITING_COPYEDITS:
case NOTIFICATION_TYPE_ASSIGN_PRODUCTIONUSER:
case NOTIFICATION_TYPE_AWAITING_REPRESENTATIONS:
assert($notification->getAssocType() == ASSOC_TYPE_SUBMISSION && is_numeric($notification->getAssocId()));
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'workflow', 'access', $notification->getAssocId());
default:
assert(false);
}
}
示例5: getNotificationUrl
/**
* Construct a URL for the notification based on its type and associated object
* @copydoc PKPNotificationOperationManager::getNotificationContents()
*/
public function getNotificationUrl($request, $notification)
{
$url = parent::getNotificationUrl($request, $notification);
$dispatcher = Application::getDispatcher();
$contextDao = Application::getContextDAO();
$context = $contextDao->getById($notification->getContextId());
switch ($notification->getType()) {
case NOTIFICATION_TYPE_COPYEDIT_ASSIGNMENT:
case NOTIFICATION_TYPE_LAYOUT_ASSIGNMENT:
case NOTIFICATION_TYPE_INDEX_ASSIGNMENT:
assert($notification->getAssocType() == ASSOC_TYPE_SUBMISSION && is_numeric($notification->getAssocId()));
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'workflow', 'access', $notification->getAssocId());
case NOTIFICATION_TYPE_REVIEWER_COMMENT:
assert($notification->getAssocType() == ASSOC_TYPE_REVIEW_ASSIGNMENT && is_numeric($notification->getAssocId()));
$reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
/* @var $reviewAssignmentDao ReviewAssignmentDAO */
$reviewAssignment = $reviewAssignmentDao->getById($notification->getAssocId());
$userGroupDao = DAORegistry::getDAO('UserGroupDAO');
$operation = $reviewAssignment->getStageId() == WORKFLOW_STAGE_ID_INTERNAL_REVIEW ? WORKFLOW_STAGE_PATH_INTERNAL_REVIEW : WORKFLOW_STAGE_PATH_EXTERNAL_REVIEW;
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'workflow', $operation, $reviewAssignment->getSubmissionId());
case NOTIFICATION_TYPE_REVIEW_ASSIGNMENT:
$reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
/* @var $reviewAssignmentDao ReviewAssignmentDAO */
$reviewAssignment = $reviewAssignmentDao->getById($notification->getAssocId());
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'reviewer', 'submission', $reviewAssignment->getSubmissionId());
case NOTIFICATION_TYPE_NEW_ANNOUNCEMENT:
assert($notification->getAssocType() == ASSOC_TYPE_ANNOUNCEMENT);
$announcementDao = DAORegistry::getDAO('AnnouncementDAO');
/* @var $announcementDao AnnouncementDAO */
$announcement = $announcementDao->getById($notification->getAssocId());
/* @var $announcement Announcement */
$context = $contextDao->getById($announcement->getAssocId());
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'announcement', 'view', array($notification->getAssocId()));
case NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD:
return __('notification.type.configurePaymentMethod');
default:
$delegateResult = $this->getByDelegate($notification->getType(), $notification->getAssocType(), $notification->getAssocId(), __FUNCTION__, array($request, $notification));
if ($delegateResult) {
$url = $delegateResult;
}
return $url;
}
}
示例6: getNotificationUrl
/**
* Construct a URL for the notification based on its type and associated object
* @copydoc INotificationInfoProvider::getNotificationContents()
*/
public function getNotificationUrl($request, $notification)
{
$dispatcher = Application::getDispatcher();
$contextDao = Application::getContextDAO();
$context = $contextDao->getById($notification->getContextId());
switch ($notification->getType()) {
case NOTIFICATION_TYPE_ALL_REVIEWS_IN:
case NOTIFICATION_TYPE_ALL_REVISIONS_IN:
assert($notification->getAssocType() == ASSOC_TYPE_REVIEW_ROUND && is_numeric($notification->getAssocId()));
$reviewRoundDao = DAORegistry::getDAO('ReviewRoundDAO');
$reviewRound = $reviewRoundDao->getById($notification->getAssocId());
assert(is_a($reviewRound, 'ReviewRound'));
$submissionDao = Application::getSubmissionDAO();
$submission = $submissionDao->getById($reviewRound->getSubmissionId());
import('lib.pkp.controllers.grid.submissions.SubmissionsListGridCellProvider');
list($page, $operation) = SubmissionsListGridCellProvider::getPageAndOperationByUserRoles($request, $submission);
if ($page == 'workflow') {
$stageId = $reviewRound->getStageId();
$operation = WorkflowStageDAO::getPathFromId($stageId);
}
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), $page, $operation, $submission->getId());
case NOTIFICATION_TYPE_LAYOUT_ASSIGNMENT:
case NOTIFICATION_TYPE_INDEX_ASSIGNMENT:
case NOTIFICATION_TYPE_APPROVE_SUBMISSION:
assert($notification->getAssocType() == ASSOC_TYPE_SUBMISSION && is_numeric($notification->getAssocId()));
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'workflow', 'access', $notification->getAssocId());
case NOTIFICATION_TYPE_AUDITOR_REQUEST:
case NOTIFICATION_TYPE_COPYEDIT_ASSIGNMENT:
assert($notification->getAssocType() == ASSOC_TYPE_SIGNOFF);
$signoffDao = DAORegistry::getDAO('SignoffDAO');
/* @var $signoffDao SignoffDAO */
$signoff = $signoffDao->getById($notification->getAssocId());
assert(is_a($signoff, 'Signoff') && $signoff->getAssocType() == ASSOC_TYPE_SUBMISSION_FILE);
$submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO');
/* @var $submissionFileDao SubmissionFileDAO */
$submissionFile = $submissionFileDao->getLatestRevision($signoff->getAssocId());
assert(is_a($submissionFile, 'SubmissionFile'));
$submissionDao = Application::getSubmissionDAO();
$submission = $submissionDao->getById($submissionFile->getSubmissionId());
// Get correct page (author dashboard or workflow), based
// on user roles (if only author, go to author dashboard).
import('lib.pkp.controllers.grid.submissions.SubmissionsListGridCellProvider');
list($page, $operation) = SubmissionsListGridCellProvider::getPageAndOperationByUserRoles($request, $submission);
// If workflow, get the correct operation (stage).
if ($page == 'workflow') {
$stageId = $signoffDao->getStageIdBySymbolic($signoff->getSymbolic());
$operation = WorkflowStageDAO::getPathFromId($stageId);
}
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), $page, $operation, $submissionFile->getSubmissionId());
case NOTIFICATION_TYPE_REVIEW_ASSIGNMENT:
$reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
/* @var $reviewAssignmentDao ReviewAssignmentDAO */
$reviewAssignment = $reviewAssignmentDao->getById($notification->getAssocId());
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'reviewer', 'submission', $reviewAssignment->getSubmissionId());
case NOTIFICATION_TYPE_NEW_ANNOUNCEMENT:
assert($notification->getAssocType() == ASSOC_TYPE_ANNOUNCEMENT);
$announcementDao = DAORegistry::getDAO('AnnouncementDAO');
/* @var $announcementDao AnnouncementDAO */
$announcement = $announcementDao->getById($notification->getAssocId());
/* @var $announcement Announcement */
$context = $contextDao->getById($announcement->getAssocId());
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'announcement', 'view', array($notification->getAssocId()));
case NOTIFICATION_TYPE_CONFIGURE_PAYMENT_METHOD:
return __('notification.type.configurePaymentMethod');
}
return $this->getByDelegate($notification->getType(), $notification->getAssocType(), $notification->getAssocId(), __FUNCTION__, array($request, $notification));
}
示例7: getNotificationUrl
/**
* @copydoc PKPNotificationOperationManager::getNotificationUrl()
*/
function getNotificationUrl($request, $notification)
{
$dispatcher = Application::getDispatcher();
$context = $request->getContext();
return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'workflow', 'access', $notification->getAssocId());
}
开发者ID:PublishingWithoutWalls,项目名称:pkp-lib,代码行数:9,代码来源:PKPApproveSubmissionNotificationManager.inc.php
示例8: spawnProcesses
/**
* Spawn new processes via web requests up to the
* given max. parallelism.
* @param $request Request
* @param $handler string a fully qualified handler class name
* @param $op string the operation to be called on the handler
* @param $processType integer one of the PROCESS_TYPE_* constants
* @param $noOfProcesses integer the number of processes to be spawned.
* The actual number of processes can be lower if the max parallelism
* is exceeded or if there are already processes of the same type
* running.
* @param $additionalData optional Data to include with the processes
* @return integer the actual number of spawned processes.
*/
function spawnProcesses($request, $handler, $op, $processType, $noOfProcesses, $data = null)
{
// Generate the web URL to be called.
$dispatcher = Application::getDispatcher();
$processUrl = $dispatcher->url($request, ROUTE_COMPONENT, null, $handler, $op);
// Parse the URL into parts to construct the fsockopen call.
$urlParts = parse_url($processUrl);
assert(isset($urlParts['scheme']) && isset($urlParts['host']) && isset($urlParts['path']) && !isset($urlParts['fragment']));
if ($urlParts['scheme'] == 'https') {
$port = 443;
$transport = 'ssl://';
} else {
$port = 80;
$transport = '';
}
// Delete process zombies for correct process slot calculation.
$this->deleteZombies();
// Calculate the number of max process slots for the given process type.
$noOfProcesses = min($noOfProcesses, PROCESS_MAX_PARALLELISM);
// Spawn new non-blocking (i.e. parallel) processes via
// web requests until all process slots have been filled.
$currentParallelism = $this->getNumberOfObjectsByProcessType($processType);
$spawnedProcesses = 0;
while ($currentParallelism < $noOfProcesses) {
// Block a process slot.
// NB: insertObject() re-checks the number of currently running
// processes on each iteration to make sure that we don't exceed
// the limit when there are concurrent requests.
$process =& $this->insertObject($processType, $noOfProcesses, $data);
if (!is_a($process, 'Process')) {
break;
}
$oneTimeKey = $process->getId();
// Make the request including the generated one-time-key.
$stream = fsockopen($transport . $urlParts['host'], $port);
if (!$stream) {
break;
}
$processRequest = 'GET ' . $urlParts['path'] . '?authToken=' . urlencode($oneTimeKey) . " HTTP/1.1\r\n" . 'Host: ' . $urlParts['host'] . "\r\n" . "User-Agent: OJS\r\n" . "Connection: Close\r\n\r\n";
stream_set_blocking($stream, 0);
fwrite($stream, $processRequest);
fclose($stream);
unset($stream);
$currentParallelism++;
$spawnedProcesses++;
}
return $spawnedProcesses;
}