Giter Site home page Giter Site logo

6o6o / sci-journal-mgr Goto Github PK

View Code? Open in Web Editor NEW
10.0 5.0 6.0 71 KB

A management system for scientific journals and periodicals

License: MIT License

ApacheConf 0.37% JavaScript 16.71% CSS 20.92% PHP 45.60% HTML 16.40%
scientific-journals cms

sci-journal-mgr's Introduction

Scientific journal manager

A simple and straightforward software for maintaining a website of a scientific journal or any other periodical literature which shares the same structure as most scholarly articles or research papers, including title, author, abstract, references, CrossRef DOI URLs, etc.

Written in PHP, front-end mostly uses various Bootstrap components.

For demonstration check out http://ukrbotj.co.ua, or http://algologia.co.ua

Setup

  1. Create table structure by importing empty.sql to your database.
  2. Put the files into Document Root directory on your server.
  3. Edit the following files:
  • index.php
    • J_NAME - Full journal name
    • J_ABBR - Official abbreviation
    • J_LANG - Default publication language (most used)
    • J_YEAR - Year founded
    • $meta description used on front page
    • $doi link structure: prefix and name used by the journal
  • inc/dbconn.php - your database host, name, user and password
  • pages/*.html
    • Each filename corresponds to a page in top navigation menus respectively
    • tools.html - optional page with additional features.
  • img/logo.gif - journal logo (100 x 100)
  • favicon.ico

To add new pages, alter or remove existing you'll need to modify the following arrays in index.php in form of path => fullname and ensure the included files exist in pages directory with either php or html extension

  • $page - main navigation menu
  • $assist - upper right complementary menu

Usage

Adding new content and managing existing is possible for authorized users with appropriate permissions. Create a new user, activate it, authorize and set admin privileges (the first user created needs to do this manually, in the db, users table, set priv = 4).

Navigate to newabs page and you'll see a form with a bunch of hollow inputs. I made an effort to automate this as much as possible, so if you click on "Autofill" link above the form, you'll get another input, which, upon paste will parse the text, filter illegal characters, add HTML formatting (italics, sub- and superscripts) and fill in the fields below. More on this later...

sci-journal-mgr's People

Contributors

6o6o avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

sci-journal-mgr's Issues

How to config mail?

I just want to know how to config mail. I have checked the codes but haven't found this.
Please can you help me out :)

Need to update the publish date

Hi there!
Thanks for this application.
I would like to know where and how to modify the publish date for the journal. For example we addd the journal for the 2016 but it displays the current year 2017. I can't locate it in the database.
Thanks

Error when try to run

I got this issue after setup. How do I solve this

'.$msg.' '; } function getlang($a) { return $a ? ucfirst($a) : J_LANG; } function buildMenu($items, $current = null) { foreach($items as $url => $name) { if(!$name) $name = ucfirst($url); $active = isset($current[$url]) ? ' class="active"' : ''; echo '['.$name.'](http://localhost:81/'.$url.')'.PHP_EOL.str_repeat("\t",3); } } function showAlert($msg, $ok = null) { echo ' '. ''.($ok ? 'Well done!' : 'Whoa!').' '.$msg. ' '.PHP_EOL; } $doi = array( 'addr' => 'https://doi.org/', 'pref' => '00.00000/', 'name' => 'j.name' ); define('DOI_ADDR', $doi['addr'].$doi['pref']); const J_NAME = 'Admech Journal'; const J_ABBR = 'J. Name'; const J_LANG = 'Eng'; const J_YEAR = 2023; $meta = 'About Admech Journal'; $path = preg_match('/[\w\-.]+/',$_SERVER['REQUEST_URI'],$path) ? $path[0] : ''; $page = array( 'home' => '', 'archive' => '', 'authors' => 'For authors', 'editorial' => 'Editorial Board', 'subscription' => '', 'contacts' => '' ); $assist = array( 'tools' => '', 'login' => '' ); $param = array( 'q' => 'Search results for', 'sec' => 'Articles', 'vol' => '', 'issue' => '', 'page' => '' ); $prefix = array(); $desc = ''; $i = 0; ob_start(); include INC_DIR.'usermodule.php'; include INC_DIR.'postabs.php'; $all = $page + $assist; unset($all['home']); if(isset($all[$path])) { foreach($param as $k => $val) { if(!$val) $val = ucfirst($k); else if($i++) { if(!$prefix && !empty($_GET[$k])) $prefix[] = $val; continue; } if(!empty($_GET[$k])) $prefix[] = $val.' '.$_GET[$k]; } if(!$prefix) $prefix[] = $all[$path] ? $all[$path] : ucfirst($path); } else if(!$path) { $path = 'home'; $desc = $meta; } $current = array($path => true); $template = './pages/'.$path; if(is_file($template.'.html')) include $template.'.html'; elseif(is_file($template.'.php')) include $template.'.php'; else sethead('Page not found'); $output = ob_get_contents(); ob_end_clean(); if($prefix) $prefix[] = '- '; isset($mysqli) && $mysqli->close(); ?>

Always shows the home page

What is the purpose of this logic and it always executes the else part?

$all = $page + $assist;
unset($all['home']);
if(isset($all[$path])) {
foreach($param as $k => $val) {
if(!$val) $val = ucfirst($k);
else if($i++) {
if(!$prefix && !empty($_GET[$k])) $prefix[] = $val;
continue;
}
if(!empty($_GET[$k])) $prefix[] = $val.' '.$_GET[$k];
}
if(!$prefix) $prefix[] = $all[$path] ? $all[$path] : ucfirst($path);
} else $path = 'home';

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.