pkp / pkp-lib

The library used by PKP's applications OJS, OMP and OPS, open source software for scholarly publishing.
https://pkp.sfu.ca
GNU General Public License v3.0
297 stars 442 forks source link

OMP could use a Series Index page #6086

Open gemusehandler opened 4 years ago

gemusehandler commented 4 years ago

When it comes to books (or monographs) then from an academic point of view, book series are essential. Books series provide a path to academic recognition. Books series can for instance be included in academic indexes such as Scopus, standalone books can't. Wouldn't it be a good idea when OMP allows presses to present series more prominently? We though it is! We developed a seriesindex page that provides an effect overview of the series that are included in a press. And we like to see this seriesindex page to become part of the regular OMP installation.

How did we do it? We added a catalogSeriesIndex.tpl to the installation. It requires a small additions to the index.php page and the CatelogHandler.inc.php. These modifications are highlighted in the files with: /** GEMUSEHANDLER begin modification:

Please see the files at my GIST page at Github

Here is a slightly older version of the page in action:

Correct: the example displays the Print/Online ISSN header when there is actually noting to display. This has been resolved in the coding on the GIST pages

NateWr commented 4 years ago

I'd be open to this. @asmecher and @withanage do you have any thoughts about this?

One thing I'd like to see is to have the seriesIndex path just be series. That way we have a good URL structure:

This would require stepping in at https://github.com/pkp/omp/blob/master/pages/catalog/CatalogHandler.inc.php#L131-L133 and passing off to the correct template.

@gemusehandler are you able to work on a PR for this (with the caveat that I'd like to hear from Alec and Dulip first)?

withanage commented 4 years ago

Hi @NateWr

I think this is a very good addition and a very good requirement.

  • /catalog/series = a list of all series
  • /catalog/series/abcd = a list of all books in the abcd series

This is a very good path approach

One thing, which would be needed , if we have the series list, is the series info page too.

/catalog/series/abcd/info or something similar.

Another idea is : If we could use the REST API for for fetching metadata, that would be very good, cause we can use the same mapping for the API and the front-end and for performance issues, we can optimize the pagination etc. in REST in the longer run. As we have the sortable criteria for Series in Backend, users may want to sort according to chronology, title or author. This all we can handle from the REST API.

NateWr commented 4 years ago

One thing, which would be needed , if we have the series list, is the series info page too.

Shouldn't this be included in the main series page? Similar to how we include a category description at the top of a category listing or the issue description at the top of an issue table of contents.

withanage commented 4 years ago

Shouldn't this be included in the main series page? Similar to how we include a category description at the top of a category listing or the issue description at the top of an issue table of contents.

yes, that is also an option. In Heidelberg, they really needed a very customizable page as a separate landing page. Their argument was , there is one series list page, where all series are listed and from that the user have a link to a series info page without looking at the books as here

Another thing, that was noted is e.g. if we a have large number of of books in a series what is the best solution. If we paginate, we have to have to have the header in each paginated page, which some may like, but some may not like. Considering both those, I went for the separate page in python frontend, which was also helpful when they were advertising the book series launching or wanted to refer from other sources.

gemusehandler commented 4 years ago

That landing page for a specific series, doesn't it already exists? Here an example: https://books.bk.tudelft.nl/index.php/press/catalog/series/RIUS

NateWr commented 4 years ago

If we paginate, we have to have to have the header in each paginated page

Ah yeah, I'd like to solve that in the original template. Subsequent pages can show a reduced series title area. Maybe a separate issue to consider...

asmecher commented 4 years ago

^ As @gemusehandler points out, there's already a page for this!

gemusehandler commented 4 years ago

@NateWr I like the idea of having series instead of seriesIndex, but... There is already a series.tpl in OMP. That is the reason I didn't use the obvious. The series.tpl is used to display the content of a single book series.

@asmecher The existing landing page for a series (yes, the one generated by the series.tpl) is basic but fine. The only problem you get is when one of your series overdo it with (for instance) a very long list of scientific committee members: CPCL It messes up the overview of the seriesIndex I did solve it with introducing the truncate:800. It is a bit crude but it works.

NateWr commented 4 years ago

There is already a series.tpl in OMP.

The template name doesn't have any impact on the URL. So at the point in the code that I linked above, you can load any template you want, like this:

if (!$series) {

    // ... set up the series index template ...

    return $templateMgr->display('frontend/pages/catalogSeriesIndex.tpl');
}
gemusehandler commented 4 years ago

PR = Pull Request I believe. Sorry guys but I am a newly here.

On 27 Jul 2020, at 12:16, Nate Wright notifications@github.com wrote:

I'd be open to this. @asmecher https://github.com/asmecher and @withanage https://github.com/withanage do you have any thoughts about this?

One thing I'd like to see is to have the seriesIndex path just be series. That way we have a good URL structure:

/catalog/series = a list of all series /catalog/series/abcd = a list of all books in the abcd series This would require stepping in at https://github.com/pkp/omp/blob/master/pages/catalog/CatalogHandler.inc.php#L131-L133 https://github.com/pkp/omp/blob/master/pages/catalog/CatalogHandler.inc.php#L131-L133 and passing off to the correct template.

@gemusehandler https://github.com/gemusehandler are you able to work on a PR for this (with the caveat that I'd like to hear from Alec and Dulip first)?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pkp/pkp-lib/issues/6086#issuecomment-664265677, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABDGQS62YXVEC7C2MEEFHL3R5VHX5ANCNFSM4OXX642Q.

NateWr commented 4 years ago

Sorry @gemusehandler! Yep, PR = Pull Request. To provide a pull request you'll need to fork the project, get it running on your own local server based on the github repoository, and then create a branch and issue a pull request with the changes.

You should be able to find resources online describing how to create a "fork" and create pull requests. Our documentation describes how to get OJS running on a local server based off of the github repository.

gemusehandler commented 4 years ago

Thanks for providing some directions. I think I managed.

On 3 Aug 2020, at 12:59, Nate Wright notifications@github.com wrote:

Sorry @gemusehandler https://github.com/gemusehandler! Yep, PR = Pull Request. To provide a pull request you'll need to fork the project, get it running on your own local server based on the github repoository, and then create a branch and issue a pull request with the changes.

You should be able to find resources online describing how to create a "fork" and create pull requests. Our documentation describes how to get OJS running on a local server https://docs.pkp.sfu.ca/dev/documentation/en/getting-started based off of the github repository.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pkp/pkp-lib/issues/6086#issuecomment-667957634, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABDGQS2KMJ4F4PHDKVNCO5DR62J7NANCNFSM4OXX642Q.

asmecher commented 4 years ago

PR: https://github.com/pkp/omp/pull/855

@gemusehandler, to keep pull requests and issues linked, we use a convention that includes the issue ID in the pull request title:

pkp/pkp-lib#6086 overview page for series available in a press to be added OMP

That'll cause the pull request to be linked to the related issue, and vice versa.

@NateWr, I see you've already been watching over this; could you take a look?

NateWr commented 4 years ago

Thanks @gemusehandler! I've made some comments on the PR but it is looking good. :+1: One thing we still need to figure out is how will readers get to this page? Some ideas:

Any thoughts on this? cc @withanage

withanage commented 4 years ago

@NateWr Apologies for replyling late. Somehow missed it. Generally the use case is that the series page has to be linked from the home page. I prefer your third suggestion as a navigation item. e.g. here they have OMP frontend and links the individual series under the top navigation.

If the top navigation can have the series index page without opening individual dropdowns, that would be really great!

NateWr commented 4 years ago

Thanks @withanage! @gemusehandler did you have any questions about the comments here or on the pull request? We can talk through anything you need to continue work on it.

gemusehandler commented 3 years ago

I think I managed.

On 24 Aug 2020, at 10:23, Nate Wright notifications@github.com wrote:

Thanks @withanage https://github.com/withanage! @gemusehandler https://github.com/gemusehandler did you have any questions about the comments here or on the pull request? We can talk through anything you need to continue work on it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pkp/pkp-lib/issues/6086#issuecomment-678983831, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABDGQS3YCJUVL2W3V4NBQA3SCIPRBANCNFSM4OXX642Q.

rinorazzi commented 3 years ago

Hi @NateWr @gemusehandler I'm very interested in this new feature you are working on. I tried to apply it on a fresh installation of OMP 3.3.0-4 where the Default OMP theme is used. I replaced in my OMP the 3 file your Pull Request : pkp/omp#855 but I was not able to make it run. When i try to view the Series Index page with /index.php/jip/catalog/seriesIndex I get an "error 500". Is this Pull Request compatible with OJS 3.3.0? If yes, could you please help me in getting it work on my website?