Future issue plugin

Hi, I’m working in a “future issue” plugin, the idea is that users don’t need to wait until next issue publication, and can read the next issue articles when they are ready, right now it’s working in the www.medisur.sld.cu journal and the readers are very glad with new feature. The main problem is that I need to modify the core OJS validations for allow users to access at the future issue articles before it is published. How can I solve this problem?

1 Like

This sounds similar to the “publish-as-you-go” philosophy. I think I’ve heard talk at PKP regarding more formal support for that in the megajournal context.

In your immediate scenario, what is to prevent you from using the existing codebase to publish the next issue before it is finalized, and publish articles as-you-go into that “already published” issue? I think this would remove the need for changing the validation code.

ctgraham, thanks for your quick answer.

We don’t want the issue to be officially published, we just want to show some completed articles before the official issue publication, right now (please correct me if I’m wrong) the code base allows only show published issues, but we want to show some articles before the issue has marked as published. We want a complete actual issue, and a future issue section with some articles from the next (and not published) issue.

As you can see in the journal site, we have a main “actual issue” tab, and a “future issue” tab with some articles from the next issue to be published. In the OJS original template, the “future issue” articles will appear as a block.

Yes, I think you are going to be stuck with some pretty intensive code changes unless you can reimagine the strategy just slightly.

For an implementation a bit lighter on the local changes, perhaps you could “publish” a single “Future Issue” which is hidden from the “Current Issues” list and contains only these articles you want to preview. Exclude this from DOI assignment, Crossref export, etc. Then when the next issue is really published, move the articles from this “Future Issue” to the actual new issue.

This part of the workflow is not my strength, so other might have some better suggestions.

@cccaballero,

If you just want to allow all users to access an issue before it’s published, you need to change just one line in pages/issue/IssueHandler.inc.php file, line 409. Change it to this one:

if (isset($issue) && $issue->getJournalId() == $journalId) {

Note that after doing this, everyone will have access to all issues, no matter if they are logged in or not, or if the issue is published, you can’t control that any more. But the publish action will still move the issue from future ones to published, and the template will still mark the non published issue as a preview.

I am not sure if that’s what you want, but it’s an easy change into the code.

Cheers,
Bruno

1 Like

Bruno, thanks for your answer, that’s what I’m doing right now, modifying the file of OJS core, but I want to make a completely independent plugin, for use in other journals without change the OJS code.

@cccaballero,

You can always register your plugin against the LoadHandler hook and set your custom HANDLER_CLASS.

I think that you can extend the IssueHandler class and overwrite the _isVisibleIssue method to implement your custom check. That way you can just set your custom handler when an issue/view request is made and that’s it.

Cheers,
Bruno

1 Like

Many thanks Bruno, that’s the way to go.

Cheers.