4. Hook List

The following list describes all the hooks built into OJS as of release 2.1. Ampersands before variable names (e.g. &$sourceFile) indicate that the parameter has been passed to the hook callback in the parameters array by reference and can be modified by the hook callback. The effect of the hook callback's return value is specified where applicable; in addition to this, the hook callback return value will always determine whether or not further callbacks registered on the same hook will be skipped.

Table 5.2. Hook List

Name

Parameters

Description

LoadHandler

&$page, &$op, &$sourceFile

Called by OJS's main index.php script after the page (&$page), operation (&$op), and handler code file (&$sourceFile) names have been determined, but before $sourceFile is loaded. Can be used to intercept browser requests for handling by the plugin. Returning true from the callback will prevent OJS from loading the handler stub in $sourceFile.

ArticleEmailLogDAO::​_returnLogEntryFromRow

&$entry, &$row

Called after ArticleEmailLogDAO builds an ArticleEmailLogEntry (&$entry) from the database row (&$row), but before the entry is passed back to the calling function.

ArticleEventLogDAO::​_returnLogEntryFromRow

&$entry, &$row

Called after ArticleEventLogDAO builds an ArticleEventLogEntry (&$entry) from the database row (&$row), but before the entry is passed back to the calling function.

ArticleCommentDAO::​_returnArticleCommentFromRow

&$articleComment, &$row

Called after ArticleCommentDAO builds an ArticleComment (&$articleComment) from the database row (&$row), but before the comment is passed back to the calling function.

ArticleDAO::​_returnArticleFromRow

&$article, &$row

Called after ArticleDAO builds an Article (&$article) from the database row (&$row), but before the article is passed back to the calling function.

ArticleFileDAO::​_returnArticleFileFromRow

&$articleFile, &$row

Called after ArticleFileDAO builds an ArticleFile (&$articleFile) from the database row (&$row), but before the article file is passed back to the calling function.

ArticleGalleyDAO::​_returnGalleyFromRow

&$galley, &$row

Called after ArticleGalleyDAO builds an ArticleGalley (&$galley) from the database row (&$row), but before the galley is passed back to the calling function.

ArticleNoteDAO::​_returnArticleNoteFromRow

&$articleNote, &$row

Called after ArticleNoteDAO builds an ArticleNote (&$articleNote) from the database row (&$row), but before the entry is passed back to the calling function.

AuthorDAO::​_returnAuthorFromRow

&$author, &$row

Called after AuthorDAO builds an Author (&$author) from the database row (&$row), but before the author is passed back to the calling function.

SuppFileDAO::​_returnSuppFileFromRow

&$suppFile, &$row

Called after SuppFileDAO builds an SuppFile (&$suppFile) from the database row (&$row), but before the supplementary file is passed back to the calling function.

PublishedArticleDAO::​_returnPublishedArticleFromRow

&$publishedArticle, &$row

Called after PublishedArticleDAO builds a PublishedArticle (&$publishedArticle) from the database row (&$row), but before the published article is passed back to the calling function.

CommentDAO::​_returnCommentFromRow

&$comment, &$row, &$childLevels

Called after CommentDAO builds a Comment (&$comment) from the database row (&$row), before fetching &$childLevels child comments and returning the comment to the calling function. Returning true will prevent OJS from fetching any child comments.

Request::​redirect

&$url

Called before Request::​redirect performs a redirect to &$url. Returning true will prevent OJS from performing the redirect after the hook is finished. Can be used to intercept and rewrite redirects.

Request::​getBaseUrl

&$baseUrl

Called the first time Request::​getBaseUrl is called after the base URL has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getBasePath

&$basePath

Called the first time Request::​getBasePath is called after the base path has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getIndexUrl

&$indexUrl

Called the first time Request::​getIndexUrl is called after the index URL has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getCompleteUrl

&$completeUrl

Called the first time Request::​getCompleteUrl is called after the complete URL has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getRequestUrl

&$requestUrl

Called the first time Request::​getRequestUrl is called after the request URL has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getQueryString

&$queryString

Called the first time Request::​getQueryString is called after the query string has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getRequestPath

&$requestPath

Called the first time Request::​getRequestPath is called after the request path has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getServerHost

&$serverHost

Called the first time Request::​getServerHost is called after the server host has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getProtocol

&$protocol

Called the first time Request::​getProtocol is called after the protocol (http or https) has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getRemoteAddr

&$remoteAddr

Called the first time Request::​getRemoteAddr is called after the remote address has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getRemoteDomain

&$remoteDomain

Called the first time Request::​getRemoteDomain is called after the remote domain has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getUserAgent

&$userAgent

Called the first time Request::​getUserAgent is called after the user agent has been determined but before returning it to the caller. This value is used for all subsequent calls.

Request::​getRequestedJournalPath

&$journal

Called the first time Request::​getRequestedJournalPath is called after the requested journal path has been determined but before returning it to the caller. This value is used for all subsequent calls.

[Anything]DAO::​Constructor

&$dataSource

Called whenever the named DAO's constructor is called with the specified &$dataSource. This hook should only be used with PHP >= 4.3.0.

[Anything]DAO::​[Any function calling DAO::​retrieve]

&$sql, &$params, &$value

Any DAO function calling DAO::​retrieve will cause a hook to be triggered. The SQL statement in &$sql can be modified, as can the ADODB parameters in &$params. If the hook callback is intended to replace the function of this call entirely, &$value should receive the retrieve call's intended result and the hook should return true. This hook should only be used with PHP >= 4.3.0.

[Anything]DAO::​[Any function calling DAO::​retrieveCached]

&$sql, &$params, &$secsToCache, &$value

Any DAO function calling DAO::​retrieveCached will cause a hook to be triggered. The SQL statement in &$sql can be modified, as can the ADODB parameters in &$params and the seconds-to-cache value in &$secsToCache. If the hook callback is intended to replace the function of this call entirely, &$value should receive the retrieve call's intended result and the hook should return true. This hook should only be used with PHP >= 4.3.0.

[Anything]DAO::​[Any function calling DAO::​retrieveLimit]

&$sql, &$params, &$numRows, &$offset, &$value

Any DAO function calling DAO::​retrieveCached will cause a hook to be triggered. The SQL statement in &$sql can be modified, as can the ADODB parameters in &$params, and the fetch seek and limit specified in &$offset and &$numRows. If the hook callback is intended to replace the function of this call entirely, &$value should receive the retrieve call's intended result and the hook should return true. This hook should only be used with PHP >= 4.3.0.

[Anything]DAO::​[Any function calling DAO::​retrieveRange]

&$sql, &$params, &$dbResultRange, &$value

Any DAO function calling DAO::​retrieveRange will cause a hook to be triggered. The SQL statement in &$sql can be modified, as can the ADODB parameters in &$params and the range information in &$dbResultRange. If the hook callback is intended to replace the function of this call entirely, &$value should receive the retrieve call's intended result and the hook should return true. This hook should only be used with PHP >= 4.3.0.

[Anything]DAO::​[Any function calling DAO::​update]

&$sql, &$params, &$value

Any DAO function calling DAO::​update will cause a hook to be triggered. The SQL statement in &$sql can be modified, as can the ADODB parameters in &$params. If the hook callback is intended to replace the function of this call entirely, &$value should receive the retrieve call's intended result and the hook should return true. This hook should only be used with PHP >= 4.3.0.

TemporaryFileDAO::​_returnTemporaryFileFromRow

&$temporaryFile, &$row

Called after TemporaryFileDAO builds a TemporaryFile (&$temporaryFile) from the database row (&$row), but before the temporary file is passed back to the calling function.

Locale::​_cacheMiss

&$id, &$locale, &$value

Called if a locale key couldn't be found in the locale cache. &$id is the key for the missing locale string, &$locale is the locale name (e.g. en_US). If this hook is to provide the result for this cache miss, the value should be stored in &$value and the hook callback should return true.

Install::​installer

&$installer, &$descriptor, &$params

Called when the installer is instantiated with the descriptor path in &$descriptor and the parameters in &$params. If the hook returns true, the usual initialization of Installer attributes will not be performed.

Installer::​destroy

&$installer

Triggered when the installer cleanup method is called.

Installer::​preInstall

&$installer, &$result

Called after the installer's pre-installation tasks are completed but before the success/​failure result in &$result is returned.

Installer::​postInstall

&$installer,

&$result

Called when the installer's post-installation tasks are completed but before the success/​failure result in &$result is returned.

Installer::​parseInstaller

&$installer, &$result

Called after the installer has completed parsing the installation task set but before the success/​failure result in &$result is returned.

Installer::​executeInstaller

&$installer, &$result

Called after the installer has executed but before the success/​failure result in &$result is returned.

Installer::​updateVersion

&$installer, &$result

Called after the installer has updated the system version information but before the success/​failure result in &$result is returned.

IssueAction::​subscriptionRequired

&$journal, &$issue, &$result

Called after OJS has determined whether or not a subscription is required for viewing &$issue in &$journal but before the true/​false value &$result is returned.

IssueAction::​subscribedUser

&$journal, &$result

Called after OJS has determined whether or not the current user is subscribed to &$journal, before the true/​false value &$result is returned.

IssueAction::​subscribedDomain

&$journal, &$result

Called after OJS has determined whether or not the current user comes from a domain subscribing to &$journal, before the true/​false value &$result is returned.

IssueDAO::​_returnIssueFromRow

&$issue, &$row

Called after IssueDAO builds an Issue (&$issue) from the database row (&$row), but before the issue is passed back to the calling function.

IssueDAO::​_returnPublishedIssueFromRow

&$issue, &$row

Called after IssueDAO builds a published Issue (&$issue) from the database row (&$row), but before the published issue is passed back to the calling function.

JournalDAO::​_returnJournalFromRow

&$journal, &$row

Called after JournalDAO builds a Journal (&$journal) from the database row (&$row), but before the journal is passed back to the calling function.

SectionDAO::​_returnSectionFromRow

&$section, &$row

Called after SectionDAO builds a Section (&$section) from the database row (&$row), but before the section is passed back to the calling function.

EmailTemplateDAO::​_returnBaseEmailTemplateFromRow

&$emailTemplate, &$row

Called after EmailTemplateDAO builds a BaseEmailTemplate (&$emailTemplate) from the database row (&$row), but before the base email template is passed back to the calling function.

EmailTemplateDAO::​_returnLocaleEmailTemplateFromRow

&$emailTemplate, &$row

Called after EmailTemplateDAO builds a localized LocaleEmailTemplate (&$emailTemplate) from the database row (&$row), but before the localized email template is passed back to the calling function.

EmailTemplateDAO::​_returnEmailTemplateFromRow

&$emailTemplate, &$row

Called after EmailTemplateDAO builds an EmailTemplate (&$emailTemplate) from the database row (&$row), but before the email template is passed back to the calling function.

Mail::​send

&$mail, &$recipients, &$subject, &$mailBody, &$headers, &$additionalParameters

Called just before an email with the specified parameters is sent. If this hook callback is to handle the email sending itself, the callback should return true and OJS's sending function will be skipped.

RTDAO::​_returnJournalRTFromRow

&$rt, &$row

Called after RTDAO builds a Reading Tools RT (&$rt) object from the database row (&$row), but before the Reading Tools object is passed back to the calling function.

RTDAO::​_returnVersionFromRow

&$version, &$row

Called after RTDAO builds a Reading Tools Version (&$version) object from the database row (&$row), but before the Reading Tools version object is passed back to the calling function.

RTDAO::​_returnSearchFromRow

&$search, &$row

Called after RTDAO builds a Reading Tools Search (&$search) object from the database row (&$row), but before the Reading Tools search object is passed back to the calling function.

RTDAO::​_returnContextFromRow

&$context, &$row

Called after RTDAO builds a Reading Tools Context (&$context) object from the database row (&$row), but before the Reading Tools context object is passed back to the calling function.

AccessKeyDAO::​_returnAccessKeyFromRow

&$accessKey, &$row

Called after AccessKeyDAO builds an AccessKey (&$accessKey) object from the database row (&$row), but before the access key is passed back to the calling function.

RoleDAO::​_returnRoleFromRow

&$role, &$row

Called after RoleDAO builds a Role (&$role) object from the database row (&$row), but before the Role is passed back to the calling function.

SiteDAO::​_returnSiteFromRow

&$site, &$row

Called after SiteDAO builds a Site (&$site) object from the database row (&$row), but before the Site is passed back to the calling function.

VersionDAO::​_returnVersionFromRow

&$version, &$row

Called after VersionDAO builds a Version (&$version) object from the database row (&$row), but before the Version is passed back to the calling function.

AuthorAction::​deleteArticleFile

&$articleFile, &$authorRevisions

Called before OJS deletes the Author's article file &$articleFile.

AuthorAction::​uploadRevisedVersion

&$authorSubmission

Called before OJS uploads a revised version of &$authorSubmission.

AuthorAction::​completeAuthorCopyedit

&$authorSubmission, &$email

Called when the Author completes their copyediting step before OJS sends the email &$email, if enabled, and flags the copyediting step as completed.

AuthorAction::​copyeditUnderway

&$authorSubmission

Called when the Author indicates that their copyediting step is underway, before OJS flags the underway date.

AuthorAction::​uploadCopyeditVersion

&$authorSubmission, &$copyEditStage

Called when the author uploads a file for &$authorSubmission to the supplied &$copyEditStage before OJS accepts the file upload.

AuthorAction::​viewLayoutComments

&$article

Called when the author requests the layout comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

AuthorAction::​postLayoutComment

&$article, &$emailComment

Called when the author attempts to post a layout comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

AuthorAction::​viewEditorDecisionComments

&$article

Called when the author requests the editor decision comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

AuthorAction::​emailEditorDecisionComment

&$authorSubmission, &$email

Called before OJS sends the editor decision comments for the article &$authorSubmission in the email message &$email. This hook should only be used on OJS > 2.1.0-1.

AuthorAction::​viewCopyeditComments

&$article

Called when the author requests the copyedit comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

AuthorAction::​postCopyeditComment

&$article, &$emailComment

Called when the author attempts to post a copyediting comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

AuthorAction::​viewProofreadComments

&$article

Called when the author requests the proofreading comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

AuthorAction::​postProofreadComment

&$article, &$emailComment

Called when the author attempts to post a proofreading comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

AuthorAction::​downloadAuthorFile

&$article, &$fileId, &$revision, &$canDownload, &$result

Called when the author wishes to download an article file (&$article, &$fileId, &$revision) after OJS has determined whether or not the author has access to that file (modifiable boolean flag &$canDownload) but before the download itself begins. If the hook registrant wishes to override OJS's default download behavior, it should return true from the callback function.

AuthorSubmissionDAO::​_returnAuthorSubmissionFromRow

&$authorSubmission, &$row

Called after AuthorSubmissionDAO builds an AuthorSubmission (&$authorSubmission) object from the database row (&$row), but before the Author Submission is passed back to the calling function.

Action::​viewMetadata

&$article, &$role

Called when a user in the given role (&$role) wishes to view the metadata for the given article (&$article). If the hook registrant wishes to prevent OJS from instantiating and displaying the regular metadata form, it should return true from its callback function.

Action::​saveMetadata

&$article

Called before OJS updates the metadata for the specified article &$article. If the hook registrant wishes to prevent OJS from performing the update, it should return true from its callback function.

Action::​instructions

&$type, &$allowed

Called before OJS displays the instructions of the requested type &$type (copy, layout, or proof); the allowed types are listed in &$allowed. If the hook registrant wishes to prevent OJS from displaying the instructions, it should return true from its callback function.

Action::​editComment

&$article, &$comment

Called before OJS instantiates and displays the comment edit form for the given article (&$article) and comment (&$comment). If the hook registrant wishes to prevent OJS from doing this, it should return true from its callback function.

Action::​saveComment

&$article, &$comment, &$emailComment

Called when a user attempts to save a comment (&$comment) on the article (&$article). If the hook registrant wishes to prevent OJS from saving the supplied comment, it should return true from the callback function.

Action::​deleteComment

&$comment

Called before OJS deletes the supplied comment. If the hook registrant wishes to prevent OJS from deleting the comment, it should return true from the callback function.

CopyAssignmentDAO::​_returnCopyAssignmentFromRow

&$copyAssignment, &$row

Called after CopyAssignmentDAO builds a CopyAssignment (&$copyAssignment) object from the database row (&$row), but before the copyediting assignment is passed back to the calling function.

CopyeditorAction::​completeCopyedit

&$copyeditorSubmission, &$editAssignments, &$author, &$email

Called before OJS sends the COPYEDIT_COMPLETE email (if enabled) and flags the copyeditor's initial copyediting stage as complete.

CopyeditorAction::​completeFinalCopyedit

&$copyeditorSubmission, &$editAssignments, &$email

Called before OJS sends the COPYEDIT_FINAL_COMPLETE email (if enabled) and flags the copyeditor's final copyediting stage as complete.

CopyeditorAction::​copyeditUnderway

&$copyeditorSubmission

Called before OJS flags the copyediting phase for the given submission (&$copyeditorSubmission) as underway. If the hook registrant wishes to prevent OJS from performing this flagging and the associated log entry, it should return true from its callback.

CopyeditorAction::​uploadCopyeditVersion

&$copyeditorSubmission

Called before OJS uploads a revised version of &$copyeditorSubmission.

CopyeditorAction::​viewLayoutComments

&$article

Called when the copyeditor requests the layout comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

CopyeditorAction::​postLayoutComment

&$article, &$emailComment

Called when the copyeditor attempts to post a layout comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

CopyeditorAction::​viewCopyeditComments

&$article

Called when the copyeditor requests the copyediting comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

CopyeditorAction::​postCopyeditComment

&$article, &$emailComment

Called when the copyeditor attempts to post a copyediting comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function. This hook should only be used with OJS > 2.1.0-1.

CopyeditorAction::​downloadCopyeditorFile

&$submission, &$fileId, &$revision, &$result

Called when the copyeditor wishes to download an article file (&$article, &$fileId, &$revision) after OJS has determined whether or not the copyeditor has access to that file (modifiable boolean flag &$canDownload) but before the download itself begins. If the hook registrant wishes to override OJS's default download behavior, it should return true from the callback function. This hook should only be used with OJS > 2.1.0-1.

CopyeditorSubmissionDAO::​_returnCopyeditorSubmissionFromRow

&$copyeditorSubmission, &$row

Called after CopyeditorSubmissionDAO builds a CopyeditorSubmission (&$copyeditorSubmission) object from the database row (&$row), but before the copyeditor submission is passed back to the calling function.

EditAssignmentsDAO::​_returnEditAssignmentFromRow

&$editAssignment, &$row

Called after EditAssignmentsDAO builds an EditAssignment (&$editAssignment) object from the database row (&$row), but before the editing assignment is passed back to the calling function. This hook should only be used with OJS > 2.1.0-1.

EditorAction::​assignEditor

&$editorSubmission, &$sectionEditor, &$isEditor, &$email

Called before OJS assigns the specified editor or section editor (&$sectionEditor) to the article (&$editorSubmission) and sends (if enabled) the supplied email &$email. The &$sectionEditor flag, when true, indicates that the user being assigned is an editor, not a section editor. (Prior to OJS 2.2 this flag did not exist.)

EditorSubmissionDAO::​_returnEditorSubmissionFromRow

&$editorSubmission, &$row

Called after EditorSubmissionDAO builds an EditorSubmission (&$editorSubmission) object from the database row (&$row), but before the editor submission is passed back to the calling function.

LayoutAssignmentDAO::​_returnLayoutAssignmentFromRow

&$layoutAssignment, &$row

Called after LayoutAssignmentDAO builds a LayoutAssignment (&$layoutAssignment) object from the database row (&$row), but before the layout assignment is passed back to the calling function.

LayoutEditorAction::​deleteGalley

&$article, &$galley

Called before OJS deletes the specified galley (&$galley) for the article (&$article). If the hook registrant wishes to prevent OJS from deleting the galley, it should return true.

LayoutEditorAction::​deleteSuppFile

&$article, &$suppFile

Called before OJS deletes the specified supplementary file (&$suppFile) for the article (&$article). If the hook registrant wishes to prevent OJS from deleting the supplementary file, it should return true.

LayoutEditorAction::​completeLayoutEditing

&$submission, &$layoutAssignment, &$editAssignments, &$email

Called before OJS flags the layout editing assignment (&$layoutAssignment) for the article (&$submission) and sends (if enabled) the supplied email &$email.

LayoutEditorAction::​viewLayoutComments

&$article

Called when the layout editor requests the layout comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

LayoutEditorAction::​postLayoutComment

&$article, &$emailComment

Called when the layout editor attempts to post a layout comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

LayoutEditorAction::​viewProofreadComments

&$article

Called when the layout editor requests the proofreading comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

LayoutEditorAction::​postProofreadComment

&$article, &$emailComment

Called when the layout editor attempts to post a proofreading comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

LayoutEditorAction::​downloadFile

&$article, &$fileId, &$revision, &$canDownload, &$result

Called when the layout editor wishes to download an article file (&$article, &$fileId, &$revision) after OJS has determined whether or not the layout editor has access to that file (modifiable boolean flag &$canDownload) but before the download itself begins. If the hook registrant wishes to override OJS's default download behavior, it should pass a success boolean into &$result and return true from the callback function.

LayoutEditorSubmissionDAO::​_returnLayoutEditorSubmissionFromRow

&$submission, &$row

Called after LayoutEditorSubmissionDAO builds a LayoutEditorSubmission (&$submission) object from the database row (&$row), but before the submission is passed back to the calling function.

ProofAssignmentDAO::​_returnProofAssignmentFromRow

&$proofAssignment, &$row

Called after ProofAssignmentDAO builds a ProofAssignment (&$proofAssignment) object from the database row (&$row), but before the proofreading assignment is passed back to the calling function.

ProofreaderAction::​selectProofreader

&$userId, &$article, &$proofAssignment

Called before OJS designates the supplied user (&$userId) as a proofreader of the article (&$article) with the specified proof assignment (&$proofAssignment). If the hook registrant wishes to prevent OJS from performing its usual actions, it should return true from its callback.

ProofreaderAction::​queueForScheduling

&$article, &$proofAssignment

Called when the proofreader with the given assignment (&$proofAssignment) queues the supplied article for scheduling (&$article). If the hook registrant wishes to prevent OJS from performing its usual actions, it should return true from its callback.

ProofreaderAction::​proofreadEmail

&$proofAssignment, &$email, &$mailType

Called before OJS sends a proofreader email of the specified &$mailType (e.g. PROOFREAD_LAYOUT_COMPLETE) and flags the appropriate dates given the supplied &$proofAssignment.

ProofreaderAction::​authorProofreadingUnderway

&$submission, &$proofAssignment

Called before OJS flags an author's proofreading assignment (&$proofAssignment) as underway for the article &$submission. If the hook registrant wishes to prevent OJS from flagging the assignment as underway, it should return true from its callback.

ProofreaderAction::​proofreaderProofreadingUnderway

&$submission, &$proofAssignment

Called before OJS flags a proofreader's proofreading assignment (&$proofAssignment) as underway for the article &$submission. If the hook registrant wishes to prevent OJS from flagging the assignment as underway, it should return true from its callback.

ProofreaderAction::​layoutEditorProofreadingUnderway

&$submission, &$proofAssignment

Called before OJS flags a layout editor's proofreading assignment (&$proofAssignment) as underway for the article &$submission. If the hook registrant wishes to prevent OJS from flagging the assignment as underway, it should return true from its callback.

ProofreaderAction::​downloadProofreaderFile

&$submission, &$fileId, &$revision, &$canDownload, &$result

Called when the proofreader wishes to download an article file (&$article, &$fileId, &$revision) after OJS has determined whether or not the proofreader has access to that file (modifiable boolean flag &$canDownload) but before the download itself begins. If the hook registrant wishes to override OJS's default download behavior, it should pass a success boolean into &$result and return true from the callback function.

ProofreaderAction::​viewProofreadComments

&$article

Called when the proofreader requests the proofreading comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

ProofreaderAction::​postProofreadComment

&$article, &$emailComment

Called when the proofreader attempts to post a proofreading comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

ProofreaderAction::​viewLayoutComments

&$article

Called when the proofreader requests the layout comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

ProofreaderAction::​postLayoutComment

&$article, &$emailComment

Called when the proofreader attempts to post a layout comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

ProofreaderSubmissionDAO::​_returnProofreaderSubmissionFromRow

&$submission, &$row

Called after ProofreaderSubmissionDAO builds a ProofreaderSubmission (&$submission) object from the database row (&$row), but before the submission is passed back to the calling function.

ReviewAssignmentDAO::​_returnReviewAssignmentFromRow

&$reviewAssignment, &$row

Called after ReviewAssignmentDAO builds a ReviewAssignment (&$reviewAssignment) object from the database row (&$row), but before the review assignment is passed back to the calling function.

ReviewerAction::​confirmReview

&$reviewerSubmission, &$email, &$decline

Called before OJS records a reviewer's accepted/​declined status (&$decline) on the supplied &$reviewAssignment and sends the editor the email &$email (if enabled).

ReviewerAction::​recordRecommendation

&$reviewerSubmission, &$email, &$recommendation

Called before OJS records a reviewer's recommendation (&$recommendation) on the supplied &$reviewAssignment and sends the editor the email &$email (if enabled).

ReviewerAction::​uploadReviewFile

&$reviewAssignment

Called before OJS updates the review file for the given &$reviewAssignment with the uploaded file.

ReviewerAction::​deleteReviewerVersion

&$reviewAssignment, &$fileId, &$revision

Called before OJS deletes the supplied reviewer file (&$reviewAssignment, &$fileId, &$version). If the hook registrant wishes to prevent OJS from deleting, it should return true from its callback.

ReviewerAction::​viewPeerReviewComments

&$user, &$article, &$reviewId

Called before OJS displays the peer review comments to the reviewer (&$user) for the given article (&$article) and review ID (&$reviewId). If the hook registrant wishes to prevent OJS from displaying the reviews, it should return true from its callback.

ReviewerAction::​postPeerReviewComment

&$user, &$article, &$reviewId, &$emailComment

Called before records a new comment on the given review ID (&$reviewId) by the reviewer (&$user) on an article (&$article). If the hook registrant wishes to prevent OJS from recording the comment, it should return true from its callback.

ReviewerAction::​downloadReviewerFile

&$article, &$fileId, &$revision, &$canDownload, &$result

Called when the reviewer wishes to download an article file (&$article, &$fileId, &$revision) after OJS has determined whether or not the reviewer has access to that file (modifiable boolean flag &$canDownload) but before the download itself begins. If the hook registrant wishes to override OJS's default download behavior, it should pass a success boolean into &$result and return true from the callback function.

ReviewerAction::​editComment

&$article, &$comment, &$reviewId

Called before OJS instantiates and displays the comment edit form for the reviewer for a given article (&$article) and comment (&$comment). If the hook registrant wishes to prevent OJS from doing this, it should return true from its callback function.

ReviewerSubmissionDAO::​_returnReviewerSubmissionFromRow

&$reviewerSubmission, &$row

Called after ReviewerSubmissionDAO builds a ReviewerSubmission (&$reviewerSubmissionDAO) object from the database row (&$row), but before the review assignment is passed back to the calling function.

AuthorAction::​designateReviewVersion

&$authorSubmission

Called before OJS designates the original file as the review version for the specified article (&$authorSubmission). To prevent OJS from performing this task, the hook registrant should return true from its callback function. Prior to OJS 2.1.1, this hook was called SectionEditorAction::​designateReviewVersion and took a SectionEditorSubmission as a parameter.

SectionEditorAction::​changeSection

&$sectionEditorSubmission, &$sectionId

Called before OJS changes the section of the submission (&$sectionEditorSubmission) to the section with the given section ID (&$sectionId). To prevent OJS from performing this task, the hook registrant should return true from its callback function.

SectionEditorAction::​recordDecision

&$sectionEditorSubmission, &$editorDecision

Called before OJS records a decision (&$editorDecision) for a submission (&$sectionEditorSubmission). To prevent OJS from performing this task, the hook registrant should return true from its callback function.

SectionEditorAction::​addReviewer

&$sectionEditorSubmission, &$reviewerId

Called before OJS creates a new review assignment for the specified reviewer (&$reviewerId) on a submission (&$sectionEditorSubmission). To prevent OJS from performing this task, the hook registrant should return true from its callback function.

SectionEditorAction::​clearReview

&$sectionEditorSubmission, &$reviewAssignment

Called before OJS clears a review (&$reviewAssignment) on a submission (&$sectionEditorSubmission). To prevent OJS from performing this task, the hook registrant should return true from its callback.

SectionEditorAction::​notifyReviewer

&$sectionEditorSubmission, &$reviewAssignment, &$email

Called before OJS flags the notification of a reviewer with a pending review (&$reviewAssignment) on a submission (&$sectionEditorSubmission), sending the associated reviewer request email &$email (if enabled).

SectionEditorAction::​cancelReview

&$sectionEditorSubmission, &$reviewAssignment, &$email

Called before OJS cancels a review (&$reviewAssignment) on a submission (&$sectionEditorSubmission), sending the associated cancellation email (&$email) if enabled.

SectionEditorAction::​remindReviewer

&$sectionEditorSubmission, &$reviewAssignment, &$email

Called before OJS reminds a reviewer of a pending review assignment (&$reviewAssignment) on a submission (&$sectionEditorSubmission), sending the associated reminder email (&$email).

SectionEditorAction::​thankReviewer

&$sectionEditorSubmission, &$reviewAssignment, &$email

Called before OJS thanks a reviewer for completing their review assignment (&$reviewAssignment) on a submission (&$sectionEditorSubmission), also sending the email &$email (if enabled).

SectionEditorAction::​rateReviewer

&$reviewAssignment, &$reviewer, &$quality

Called before OJS records a quality rating (&$quality) for a reviewer (&$reviewer) on a review assignment (&$reviewAssignment). To prevent OJS from recording the rating, the hook registrant should return true from its callback.

SectionEditorAction::​makeReviewerFileViewable

&$reviewAssignment, &$articleFile, &$viewable

Called before OJS records a new visibility setting (&$viewable) for a reviewer file (&$articleFile) belonging to a review assignment (&$reviewAssignment). To prevent OJS from recording the new setting, the hook registrant should return true from its callback.

SectionEditorAction::​setDueDate

&$reviewAssignment, &$reviewer, &$dueDate, &$numWeeks

Called before OJS sets the due date on a reviewer (&$reviewer)'s review assignment (&$reviewAssignment) to &$dueDate. To prevent OJS from setting the due date, the hook registrant should return true from its callback.

SectionEditorAction::​unsuitableSubmission

&$sectionEditorSubmission, &$author, &$email

Called before OJS records an author (&$author)'s submission (&$sectionEditorSubmission) as unsuitable, sending &$email (if enabled).

SectionEditorAction::​notifyAuthor

&$sectionEditorSubmission, &$author, &$email

Called before OJS sends an author notification email (&$email) to an author (&$author) regarding a submission (&$sectionEditorSubmission).

SectionEditorAction::​setReviewerRecommendation

&$reviewAssignment, &$reviewer, &$recommendation, &$acceptOption

Called before a reviewer recommendation (&$recommendation) is recorded on a review assignment (&$reviewAssignment) for the reviewer &$reviewer. To prevent the recommendation from being recorded, the hook registrant should return true from its hook callback.

SectionEditorAction::​setCopyeditFile

&$sectionEditorSubmission, &$fileId, &$revision

Called before OJS sets the copyeditor file for the submission &$sectionEditorSubmission to &$fileId with revision &$revision. To prevent this change from taking place, the hook registrant should return true from its callback.

SectionEditorAction::​resubmitFile

&$sectionEditorSubmission, &$fileId, &$revision

Called before OJS resubmits a file (&$fileId and &$revision) belonging to submission &$sectionEditorSubmission for review. To prevent this action from taking place, the hook registrant should return true from its callback.

SectionEditorAction::​selectCopyeditor

&$sectionEditorSubmission, &$copyeditorId

Called before OJS designates the user with ID &$copyeditorId as copyeditor for the submission &$sectionEditorSubmission. To prevent this from taking place, the hook registrant should return true from its callback.

SectionEditorAction::​notifyCopyeditor

&$sectionEditorSubmission, &$copyeditor, &$email

Called before OJS notifies the copyeditor &$copyeditor about their copyediting assignment for submission &$sectionEditorSubmission, sending &$email if enabled.

SectionEditorAction::​initiateCopyedit

&$sectionEditorSubmission

Called before flagging the beginning of an editor copyediting stage on submission &$sectionEditorSubmission. To prevent this from taking place, the hook registrant should return true from its callback.

SectionEditorAction::​thankCopyeditor

&$sectionEditorSubmission, &$copyeditor, &$email

Called before OJS thanks a copyeditor (&$copyeditor) for contributing to the submission &$sectionEditorSubmission, sending the email &$email if enabled.

SectionEditorAction::​notifyAuthorCopyedit

&$sectionEditorSubmission, &$author, &$email

Called before OJS flags notification of an author (&$author) of their copyediting assignment on a submission (&$sectionEditorSubmission), sending the email &$email if enabled.

SectionEditorAction::​thankAuthorCopyedit

&$sectionEditorSubmission, &$author, &$email

Called before OJS records thanking an author (&$author) for their copyediting contribution to &$sectionEditorSubmission, sending &$email if enabled.

SectionEditorAction::​notifyFinalCopyedit

&$sectionEditorSubmission, &$copyeditor, &$email

Called before OJS records notifying the copyeditor (&$copyeditor) of their final copyediting stage for the submission &$sectionEditorSubmission, sending &$email if enabled.

SectionEditorAction::​thankFinalCopyedit

&$sectionEditorSubmission, &$copyeditor, &$email

Called before OJS records thanking a copyeditor (&$copyeditor) for their final-round copyediting contribution to submission &$sectionEditorSubmission, sending &$email if enabled.

SectionEditorAction::​uploadReviewVersion

&$sectionEditorSubmission

Called before OJS stores a new review version for the submission &$sectionEditorSubmission. To prevent OJS from doing this, the hook registrant should return true from its callback.

SectionEditorAction::​uploadEditorVersion

&$sectionEditorSubmission

Called before OJS stores a new editing version for the submission &$sectionEditorSubmission. To prevent OJS from doing this, the hook registrant should return true from its callback.

SectionEditorAction::​uploadCopyeditVersion

&$sectionEditorSubmission

Called before OJS stores a new copyediting version for the submission &$sectionEditorSubmission. To prevent OJS from doing this, the hook registrant should return true from its callback.

SectionEditorAction::​completeCopyedit

&$sectionEditorSubmission

Called before OJS records a completion date for copyediting on a submission (&$sectionEditorSubmission) performed for the editor (when the use of copyeditors is disabled). To prevent OJS from recording this, the hook registrant should return true from its callback.

SectionEditorAction::​completeFinalCopyedit

&$sectionEditorSubmission

Called before OJS records a completion date for the final copyediting stage on a submission (&$sectionEditorSubmission) performed for the editor (when the use of copyeditors is disabled). To prevent OJS from recording this, the hook registrant should return true from its callback.

SectionEditorAction::​archiveSubmission

&$sectionEditorSubmission

Called before OJS archives a submission (&$sectionEditorSubmission). If this action should not be performed, the hook registrant should return true from its callback.

SectionEditorAction::​restoreToQueue

&$sectionEditorSubmission

Called before OJS restores a submission (&$sectionEditorSubmission) from the archives into an active queue. If this action should not be performed, the hook registrant should return true from its callback.

SectionEditorAction::​updateSection

&$submission, &$sectionId

Called before OJS moves the article &$submission into the section with ID &$sectionId. To prevent OJS from performing this action, the hook registrant should return true from its callback.

SectionEditorAction::​uploadLayoutVersion

&$submission, &$layoutAssignment

Called before OJS stores a new layout version of the submission &$submission with the given layout assignment &$layoutAssignment. To prevent OJS from performing this action, the hook registrant should return true from its callback.

SectionEditorAction::​assignLayoutEditor

&$submission, &$editorId

Called before OJS assigns the layout editor with user ID &$editorId to submission &$submission. To prevent OJS from performing this action, the hook registrant should return true from its callback.

SectionEditorAction::​notifyLayoutEditor

&$submission, &$layoutEditor, &$layoutAssignment, &$email

Called before OJS flags notification of the layout editor &$layoutEditor for the submission &$submission, sending the email &$email if enabled.

SectionEditorAction::​thankLayoutEditor

&$submission, &$layoutEditor, &$layoutAssignment, &$email

Called before OJS records thanking the layout editor &$layoutEditor for their work on the submission &$submission, sending the email &$email if enabled.

SectionEditorAction::​deleteArticleFile

&$submission, &$fileId, &$revision

Called before OJS deletes an article galley image (&$fileId, &$revision) for the submission &$submission. To prevent OJS from performing this action, the hook registrant should return true from its callback.

SectionEditorAction::​deleteArticleImage

&$submission, &$fileId, &$revision

Called before OJS deletes an article image (&$fileId, &$revision) for the submission &$submission. To prevent OJS from performing this action, the hook registrant should return true from its callback. (This hook is only available on OJS 2.1.1 and later.)

SectionEditorAction::​addSubmissionNote

&$articleId, &$articleNote

Called before OJS adds a submission note (&$articleNote) to a submission with article ID &$articleId. To prevent OJS from performing this action, the hook registrant should return true from its callback.

SectionEditorAction::​removeSubmissionNote

&$articleId, &$noteId, &$fileId

Called before OJS removes the submission note (&$noteId) and, if present, the associated file (&$fileId) from the submission with article ID &$articleId. To prevent OJS from performing this action, the hook registrant should return true from its callback.

SectionEditorAction::​updateSubmissionNote

&$articleId, &$articleNote

Called before OJS saves the changes to a submission note on the article with ID &$articleId, already performed on the object &$articleNote but not committed to database. The new attached file, if one has been uploaded, has not been stored yet. To prevent OJS from storing the changes, the hook registrant should return true from its callback.

SectionEditorAction::​clearAllSubmissionNotes

&$articleId

Called before OJS removes all submission notes and, if present, the associated files from the submission with article ID &$articleId. To prevent OJS from performing this action, the hook registrant should return true from its callback.

SectionEditorAction::​viewPeerReviewComments

&$article, &$reviewId

Called before OJS displays the peer review comments to the editor or section editor for the given article (&$article) and review ID (&$reviewId). If the hook registrant wishes to prevent OJS from displaying the reviews, it should return true from its callback.

SectionEditorAction::​postPeerReviewComment

&$article, &$reviewId, &$emailComment

Called before OJS records a new comment on the given review ID (&$reviewId) by the editor or section editor on an article (&$article). If the hook registrant wishes to prevent OJS from recording the comment, it should return true from its callback.

SectionEditorAction::​viewEditorDecisionComments

&$article

Called when the Editor or Section Editor requests the editor decision comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

SectionEditorAction::​postEditorDecisionComment

&$article, &$emailComment

Called before OJS records a new editor comment on the submission &$article. To prevent OJS from performing this action, the hook callback should return true.

SectionEditorAction::​emailEditorDecisionComment

&$sectionEditorSubmission, &$send

Called before OJS emails the author an editor decision comment on a submission (&$sectionEditorDecision).

SectionEditorAction::​blindCcReviewsToReviewers

&$article, &$reviewAssignments, &$email

Called before OJS anonymously sends the reviews (&$reviewAssignments) email (&$email) to reviewers for the article &$article.

SectionEditorAction::​viewCopyeditComments

&$article

Called when the editor or section editor requests the copyediting comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

SectionEditorAction::​postCopyeditComment

&$article, &$emailComment

Called when the editor or section editor attempts to post a copyediting comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

SectionEditorAction::​viewLayoutComments

&$article

Called when the section editor or editor requests the layout comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

SectionEditorAction::​postLayoutComment

&$article, &$emailComment

Called when the section editor or editor attempts to post a layout comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

SectionEditorAction::​viewProofreadComments

&$article

Called when the editor or section editor requests the proofreading comments for the article &$article. If the hook registrant wishes to prevent OJS from instantiating and displaying the comment form, it should return true from the callback function.

SectionEditorAction::​postProofreadComment

&$article, &$emailComment

Called when the editor or section editor attempts to post a proofreading comment on the article &$article. If the hook registrant wishes to prevent OJS from recording the supplied comment, it should return true from the callback function.

SectionEditorAction::​confirmReviewForReviewer

&$reviewAssignment, &$reviewer,

&$accept

Called before OJS records the editor's acceptance or refusal of a review assignment (&$reviewAssignment) on behalf of a reviewer (&$reviewer). To prevent OJS from performing this action, the hook registrant should return true from its callback. Prior to OJS 2.2, this hook was called SectionEditorAction::​acceptReviewForReviewer (without the $accept parameter).

SectionEditorAction::​uploadReviewForReviewer

&$reviewAssignment, &$reviewer

Called before OJS stores an editor's review upload for a review assignment (&$reviewAssignment) on behalf of a reviewer (&$reviewer). To prevent OJS from performing this action, the hook registrant should return true from its callback.

SectionEditorSubmissionDAO::​_returnSectionEditorSubmissionFromRow

&$sectionEditorSubmission, &$row

Called after SectionEditorSubmissionDAO builds a SectionEditorSubmission (&$sectionEditorSubmission) object from the database row (&$row), but before the submission is passed back to the calling function.

SectionEditorSubmissionDAO::​_returnReviewerUserFromRow

&$user, &$row

Called after SectionEditorSubmissionDAO builds a User (&$user) object from the database row (&$row), but before the submission is passed back to the calling function. The use of this hook is not recommended as it may be removed in the future.

CurrencyDAO::​_returnCurrencyFromRow

&$currency, &$row

Called after CurrencyDAO builds a Currency (&$currency) object from the database row (&$row), but before the currency is passed back to the calling function.

SubscriptionDAO::​_returnSubscriptionFromRow

&$subscription, &$row

Called after SubscriptionDAO builds a Subscription (&$subscription) object from the database row (&$row), but before the subscription is passed back to the calling function.

SubscriptionTypeDAO::​_returnSubscriptionTypeFromRow

&$subscriptionType, &$row

Called after SubscriptionTypeDAO builds a SubscriptionType (&$subscriptionType) object from the database row (&$row), but before the subscription type is passed back to the calling function.

TemplateManager::​display

&$templateMgr, &$template, &$sendContentType, &$charset

Called before the template manager (&$templateMgr) sends the content type header with the given content type (&$sendContentType) and character set (&$charset) and displays a template (&$template). To prevent OJS from performing this action, the hook registrant should return true from its callback.

UserDAO::​_returnUserFromRow

&$user, &$row

Called after UserDAO builds a User (&$user) object from the database row (&$row), but before the user is passed back to the calling function.

GroupDAO::​_returnGroupFromRow

&$group, &$row

Called after GroupDAO builds a Group (&$group) object from the database row (&$row), but before the group is passed back to the calling function.

GroupMembershipDAO::​_returnMemberFromRow

&$membership, &$row

Called after GroupMembershipDAO builds a GroupMembership (&$membership) object from the database row (&$row), but before the group membership is passed back to the calling function.

Templates::​About::​Index::​People

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the People section of the About page, within the <ul class="plain">...</ul> tag.

Templates::​About::​Index::​Policies

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the Policies section of the About page, within the <ul class="plain">...</ul> tag.

Templates::​About::​Index::​Submissions

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the Submissions section of the About page, within the <ul class="plain">...</ul> tag.

Templates::​About::​Index::​Other

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the Other section of the About page, within the <ul class="plain">...</ul> tag.

Templates::​Admin::​Index::​SiteManagement

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the Site Management section of the site administration page, within the <ul class="plain">...</ul> tag.

Templates::​Admin::​Index::​AdminFunctions

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the Admin Functions section of the site administration page, within the <ul class="plain">...</ul> tag.

Templates::​Editor::​Index::​Submissions

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the Submissions section of the editor's page, within the <ul class="plain">...</ul> tag.

Templates::​Editor::​Index::​Issues

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the Issues section of the editor's page, within the <ul class="plain">...</ul> tag.

Templates::​Manager::​Index::​ManagementPages

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the Management Pages section of the journal manager's page, within the <ul class="plain">...</ul> tag.

Templates::​Manager::​Index::​Users

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the Users section of the journal manager's page, within the <ul class="plain">...</ul> tag.

Templates::​Manager::​Index::​Roles

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the Roles section of the journal manager's page, within the <ul class="plain">...</ul> tag.

Templates::​User::​Index::​Site

&$params, &$templateMgr, &$output

Called after the site management link is displayed (if applicable) in the user home, within the <ul class="plain">...</ul> tag.

Templates::​User::​Index::​Journal

&$params, &$templateMgr, &$output

Called at the end of the bulleted list displaying the roles for each journal in the user home, within the <ul class="plain">...</ul> tag.

Templates::​Admin::​Index::​MyAccount

&$params, &$templateMgr, &$output

Called at the end of the bulleted list in the My Account section of the user home, within the <ul class="plain">...</ul> tag.

LayoutEditorAction::​deleteArticleFile

&$submission, &$fileId, &$revision

Called before OJS deletes an article galley image (&$fileId, &$revision) for the submission &$submission. To prevent OJS from performing this action, the hook registrant should return true from its callback. (This hook is only available on OJS 2.1.1 and later.)