Handler::getTargetContext PHP 메소드

getTargetContext() 공개 메소드

Returns a "best-guess" journal, based in the request data, if a request needs to have one in its context but may be in a site-level context as specified in the URL.
public getTargetContext ( $request, &$journalsCount = null ) : mixed
$request Request
$journalsCount int Optional reference to receive journals count
리턴 mixed Either a Journal or null if none could be determined.
    function getTargetContext($request, &$journalsCount = null)
    {
        // Get the requested path.
        $router = $request->getRouter();
        $requestedPath = $router->getRequestedContextPath($request);
        if ($requestedPath === 'index' || $requestedPath === '') {
            // No journal requested. Check how many journals the site has.
            $journalDao = DAORegistry::getDAO('JournalDAO');
            /* @var $journalDao JournalDAO */
            $journals = $journalDao->getAll(true);
            $journalsCount = $journals->getCount();
            $journal = null;
            if ($journalsCount === 1) {
                // Return the unique journal.
                $journal = $journals->next();
            }
            if (!$journal && $journalsCount > 1) {
                // Get the site redirect.
                $journal = $this->getSiteRedirectContext($request);
            }
        } else {
            // Return the requested journal.
            $journal = $router->getContext($request);
        }
        if (is_a($journal, 'Journal')) {
            return $journal;
        }
        return null;
    }