Dev {Tricks}

  • Home
  • WordPress
  • OJS
  • Oxwall
  • Server and Hosting
You are here: Home / Archives for OJS / Plugins

January 6, 2023 by dev

Most Read Articles

ThemePlugin.ini.php

 public function init() {

// Load language selection - #most read#
HookRegistry::register ('TemplateManager::display', array($this, 'loadTemplateData'));
}




public function loadTemplateData($hookName, $args) { 
$templateMgr = $args[0];
$template = $args[1];
$request = Application::getRequest();
$site = $request->getSite();
$issueDao = DAORegistry::getDAO('IssueDAO');
$journalDao = DAORegistry::getDAO('JournalDAO');


// Start Language selector
$templateMgr->assign('isPostRequest', $request->isPost()); 

if (!defined('SESSION_DISABLE_INIT')) {
$locales = $site->getSupportedLocales();
} else {
$locales = AppLocale::getAllLocales();
$templateMgr->assign('languageToggleNoUser', true);
}
if (isset($locales) && count($locales) > 1) {
$templateMgr->assign('enableLanguageToggle', true);
$templateMgr->assign('languageToggleLocales', $locales);
}
// End Language selector


// Start Latest issues
$issues = array();
$issueList = array();
$volLabel = __('issue.vol');
$numLabel = __('issue.no');

$result = $issueDao->retrieve("SELECT issue_id FROM issues WHERE published = '1' AND access_status= '1' AND year != '0' ORDER BY date_published DESC LIMIT 6");

while (!$result->EOF) {
$resultRow = $result->GetRowAssoc(false);
$issues[$resultRow['issue_id']] = $issueDao->getById($resultRow['issue_id']);
$result->MoveNext();
}
$result->Close();

foreach($issues as $issueId => $issue){

$journal = $journalDao->getById($issue->getJournalId());
$issueList[$issueId]['journal'] = $journal->getLocalizedName();
$issueList[$issueId]['journalPath'] = $journal->getPath();

if ($issue->getLocalizedCoverImageUrl()){
$issueList[$issueId]['cover'] = $issue->getLocalizedCoverImageUrl();
$issueList[$issueId]['contain'] = true;
} 
else{
$issueList[$issueId]['cover'] = $request->getBaseUrl()."/plugins/themes/tsvSite/images/journalfi_default_cover.png";
}


$issueList[$issueId]['path'] = $issue->getBestIssueId();

$volume = $issue->getVolume();
$number = $issue->getNumber();
$year = $issue->getyear();

$issueIdentification = "";
if ($year != "") $issueIdentification = "(".$year.")".$issueIdentification;
if ($number != "0") $issueIdentification = $numLabel." ".$number." ".$issueIdentification;
if ($volume != "0") $issueIdentification = $volLabel." ".$volume." ".$issueIdentification; 

$issueList[$issueId]['identification'] = $issueIdentification;
}
$templateMgr->assign('issueList', $issueList);

// End Latest issues


// Start Most read
$metricsDao = DAORegistry::getDAO('MetricsDAO');
$cacheManager =& CacheManager::getManager();
$cache =& $cacheManager->getCache('mostreadsite', 0, array($this, '_cacheMiss'));

$daysToStale = 1;
$cachedMetrics = false;

if (time() - $cache->getCacheTime() > 60 * 60 * 24 * $daysToStale) {
$cachedMetrics = $cache->getContents();
$cache->flush();
}
$resultMetrics = $cache->getContents();

if (!$resultMetrics && $cachedMetrics) {
$resultMetrics = $cachedMetrics;
$cache->setEntireCache($cachedMetrics);
} elseif (!$resultMetrics) {
$cache->flush();
}

$templateMgr->assign('resultMetrics', $resultMetrics);

// End Most read




}

function _cacheMiss($cache) {
$metricsDao = DAORegistry::getDAO('MetricsDAO');
$publishedArticleDao = DAORegistry::getDAO('PublishedArticleDAO');
$journalDao = DAORegistry::getDAO('JournalDAO');

$currentDate = date('Ymd');
$weekAgo = date('Ymd', strtotime("-1 month"));

$result = $metricsDao->retrieve("SELECT submission_id, SUM(metric) AS metric FROM metrics WHERE (day BETWEEN $weekAgo AND $currentDate) AND (assoc_type='515' AND submission_id IS NOT NULL) GROUP BY submission_id ORDER BY metric DESC LIMIT 4");

while (!$result->EOF) {
$resultRow = $result->GetRowAssoc(false);
$article = $publishedArticleDao->getById($resultRow['submission_id']); 
$journal = $journalDao->getById($article->getJournalId());
$articles[$resultRow['submission_id']]['journalPath'] = $journal->getPath();
$articles[$resultRow['submission_id']]['journalName'] = $journal->getLocalizedName();
$articles[$resultRow['submission_id']]['articleId'] = $article->getBestArticleId();
$articles[$resultRow['submission_id']]['articleTitle'] = $article->getLocalizedTitle();
$articles[$resultRow['submission_id']]['articleAuthors'] = $article->getAuthorString();
$articles[$resultRow['submission_id']]['datePublished'] = $article->getDatePublished();
$articles[$resultRow['submission_id']]['metric'] = $resultRow['metric'];

$result->MoveNext();
}
$result->Close(); 
$cache->setEntireCache($articles);
return $result;
}

 

 

 

 

indexjournal.tpl

<ul class="most_read">
{foreach from=$resultMetrics item=article}
<li class="most_read_article">
<p><em>Open Access</em></p>
<div class="most_read_article_title"><a href="{url journal=$article.journalPath page="article" op="view" path=$article.articleId}">{$article.articleTitle}</a></div>

<div class="most_read_article_authors">
{$article.articleAuthors}
</div>
<div class="most-read-footer">
<div class="most_read_article_journal"><em>Read in the last month:</em> {$article.metric} times</div>
<div class="most_read_article_published"><strong>Published:</strong> <span>{$article.datePublished}</span></div>
</div>
</li>
{/foreach} 
</ul>

 

 

Filed Under: Frontend, Help, OJS, Plugins, Theme, Theme Customization, Theme Development Tagged With: most read, popular articles

March 29, 2022 by dev

Usage stats shows 0 in the downloaded files

    • Download statistics stop working
    • Usage stats shows 0 in the downloaded files
    • Download data is not yet available
    • How to get the Usage Statistics plugin to work
    • OJS statistics views are 0
    • usageEventLogs files are not moved to stage folder

Checklists

  • Visit Statistics > Articles in the backend, do you see any statistics?
  • Check PHP error log for details on those 500 errors
  • Check that base_url in config.inc.php is set correctly
  • Check log files in the usageStats/usageEventLogs directory (inside your OJS files_dir)
  • Check whether dB metrics is updating.
    • In the SQL database, see if there are row(s) for in the metrics table for the journal. If the journal id is 1, use the following SQL:
      select count(*) from metrics where context_id=1

      If there are no metrics, your instance may not be set up to process the usage stats logs.

  • Check to see if there is a scheduled task registered for the metrics.
    select * from scheduled_tasks;

    You should see a listing for plugins.generic.usageStats.UsageStatsLoader. If you do have that listing, your instance may not be running its scheduled tasks and may not have the correct plugins installed.

  • If UsageStatsLoader is running check whether log files being written and the plugin can find the log files for processing.
    • Look in files_dir (defined in config.inc.php) and look for the usageStats directory. In particular, look for log files in: usageStats > usageEventLogs
    • When the usage stats are processed, they are taken out of this directory for processing. You should only see logs since the last run.
    • Check usageStats > archive directory.
  • If everything looks okey
    • Lets check the journal ID
      select journal_id from journals where path="JOURNALPATH";
    • If it is 1. Then check a usage event log:
      select * from metrics where context_id=1 and load_id="usage_events_20221113.log" limit 10;

      If there are no entries for that, open up usageStats/archive/usage_events_20201113.log and see if there are any entries for the JOURNALPATH journal.

A quick test. Copy an old usageStats/archive log file into usagestats/stage and run:

php tools/runScheduledTasks.php plugins/generic/usageStats/scheduledTasks.xml

Check the metrics table in the database. A new record should be added to the metrics table.

Filed Under: Help, OJS, Plugins Tagged With: acron plugin, ojs expert, ojs fix, ojs help, usage statistics

March 13, 2022 by dev

PHP Fatal Error: Uncaught Error: Call to undefined function – OJS

bindtextdomain

  • Error 500 while setting distribution
  • The 500 error in registration page
  • PHP Fatal error: Uncaught Error: Call to undefined function bindtextdomain() in /lib/pkp/lib/vendor/sokil/php-isocodes/src/AbstractDatabase.php:87
  • Failed AJAX request or invalid JSON returned

If you get a message like this:

PHP Fatal Error: Uncaught Error: Call to undefined function bindtextdomain() in ...

…then your PHP installation is missing support for the gettext extension. You need to install or enable it.

 

Filed Under: Frontend, Help, Installation, Issues, legacy, OJS, Plugins, Templates, Theme, Theme Customization, Theme Development, TPL CSS JS, Upgrade Tagged With: AbstractDatabase, AJAX, Call to undefined function, Error 500, gettext, JSON, ojs, PHP Fatal Error, Uncaught Error

November 21, 2021 by dev

A very useful plugin – OJTRocket

Open Journal Theme introduces OJTRocket plugin to help OJS to optimize slow article loading on OJS. This plugin will increase the speed of site access in journal.

This Plugin supports OJS 3.2 and OJS 3.3

How to use this plugin

  • Download plugin here
  • Upload the plugin from the admin dashboard Website Settings → Plugins → Upload a New Plugin or unpack the archive into the plugins/generic/ folder.
  • Activate the plugin from the dashboard
  • Clear Cache Template

That’s all!

Two other plugins from OJT

ojtFileDownload

announcementMailFix

Filed Under: Help, OJS, Plugins Tagged With: mailFix, ojt rocket, OJTRocket

October 2, 2021 by dev

Show DOI on Journal Homepage | OJS

Open the file IssueHandler.inc.php at pages/issue/IssueHandler.inc.php and under the function “$showToc” (search and find) add the following code.

$pubIdPlugins = PluginRegistry::loadCategory('pubIds', true);
$templateMgr->assign('pubIdPlugins', $pubIdPlugins);

Now add DOI code to the article_summary.tpl

{* DOI (requires plugin) *} {* CCDN *}
{foreach from=$pubIdPlugins item=pubIdPlugin}
{if $pubIdPlugin->getPubIdType() != 'doi'}
{continue}
{/if}
{assign var=pubId value=$article->getStoredPubId($pubIdPlugin->getPubIdType())}
{if $pubId}
{assign var="doiUrl" value=$pubIdPlugin->getResolvingURL($currentJournal->getId(), $pubId)|escape}
<div class="itemdoi">
<span class="doilabel"> <img src="https://demo.codexcafe.net/ojs3/plugins/themes/ajsrp/img/doi_logo.jpg" width="20">
{capture assign=translatedDOI}{translate key="plugins.pubIds.doi.readerDisplayName"}{/capture}
{translate key="semicolon" label=$translatedDOI}
</span>
<span class="doivalue">
<a {if $journal}href="{url journal=$journal->getPath() page="article" op="view" path=$articlePath}"{else}href="{url page="article" op="view" path=$articlePath}"{/if}>
{$pubId}
</a>
</span>
</div>
{/if}
{/foreach}

That’s all!

 

 

Filed Under: Help, How to, OJS, Plugins Tagged With: doi ojs, doi on homepage, doi on journal homepage, doi on journal homw, show doi on homepage

  • 1
  • 2
  • Next Page »
  • Upwork
  • Freelancer
  • Fiverr
  • Guru
  • PPH

Recent Posts

  • How to Install cPanel/WHM on Ubuntu 20.04
  • MySQL: Error Code: 1118
  • Install office 365 with free lifetime license
  • Download and Install Office 2021 from Microsoft | Free | Genuine Version
  • Google Scholar Indexing | PKP Docs
  • How to change the SSH port | WHM
  • aaPanel Error and Solutions
  • How To Create a New User and Grant Permissions in MySQL
  • aaPanel Security Risk and Solution
  • aaPanel Management script
  • KeyHelp server control panel
  • Protected: MultiSaaS – Multi-Tenancy Multipurpose Website Builder (SaaS)
  • How to install aaPanel web hosting control panel on CentOS 7 or Ubuntu or Debian
  • How to Change MySQL Root Password in Ubuntu 22.04
  • How to test Laravel Email is functioning.
  • How to set up Hestia on Ubuntu 20.04 LTS & 22.04 LTS
  • How to Reset Laravel Admin Password directly from the Database
  • How to create su user on Linux
  • How to install CyberPanel
  • How to Reset Laravel Admin Password directly at phpMyAdmin

Categories

  • Affiliate Marketing (1)
  • Customization (3)
    • CSS (1)
  • Email Solutions (21)
    • FrontApp (1)
    • Google Spreadsheet (2)
    • Microsoft Outlook (1)
    • PHP Email Form (3)
    • PolyMail (1)
    • Recaptcha (1)
    • Roundcube (3)
    • Thunderbird (2)
    • WebMail (4)
  • Games (1)
  • How to (81)
  • Joomla (6)
    • Akeeba (1)
    • Fix & Tricks (3)
  • jQuery (3)
  • jQuery Plugins (4)
    • BX Slider (1)
    • Slick (1)
  • Laravel (4)
  • Marketplace (5)
  • Miscellaneous (28)
  • MultiSaaS (1)
  • OJS (53)
    • Help (35)
    • Installation (9)
      • Issues (5)
    • Plugins (7)
    • Scholar Indexing (1)
    • Theme (6)
      • Templates (6)
        • Frontend (5)
        • legacy (1)
    • Theme Customization (9)
    • Theme Development (13)
    • TPL CSS JS (2)
    • Upgrade (11)
  • Oxwall (3)
  • Payment Methods (1)
    • Paypal (1)
  • PC Tips and Tricks (13)
    • MS Office (2)
      • PowerPoint (1)
    • Windows (3)
  • PHP Parse error (2)
  • phpBB (2)
  • Server and Hosting (194)
    • Billing and Management (10)
      • Blesta (5)
      • Boxbilling (2)
      • WHMCS (5)
    • Email (9)
      • Postfix (3)
    • Error and Fix (17)
    • FTP (2)
    • Linux Distribusion (16)
      • Almalinux (5)
      • CentOS (5)
      • Debian (11)
      • Ubuntu (9)
    • Mail Server Solusion (7)
      • iRedMain (6)
    • MySQL (12)
    • Providers (59)
      • AWS (28)
      • Bluehost (28)
      • Cloudcone (17)
      • Contabo (31)
      • Digitalocean (59)
      • HostGator (27)
      • RackNerd (1)
      • VPSDime (29)
    • Security (19)
      • SSH (7)
    • VPS Management (66)
    • Web Control Panel (136)
      • aaPanel (6)
      • CentOS Web Panel (39)
      • cPanel (29)
      • CyberPanel (3)
      • DirectAdmin (92)
        • Find & fix (38)
      • ISPConfig (13)
      • KeyHelp (3)
      • Plesk (22)
      • Webmin (21)
        • Usermin (2)
        • Virtualmin (11)
      • WHM (15)
  • Uncategorized (16)
  • Wordpress (87)
    • Elementor (2)
    • Find and Fix (10)
    • Functions (5)
    • Genesis (9)
    • Glossary (1)
    • How to (21)
    • Neuron TD (15)
      • Console Error (1)
      • functions (5)
        • register_post_type (1)
        • register_sidebar (1)
        • theme_files (1)
        • theme_supports (1)
      • Image Directory (1)
      • Menu (2)
      • Query (4)
    • Plugins (12)
      • Contact Form 7 (5)
      • Duplicator (1)
      • Essential Grid (2)
    • Softaculous (3)
    • Speed and Security (4)
    • Stock Theme Development (6)
      • Header Footer (1)
      • PHP (1)
      • VC (1)
    • Theme Development (2)
      • Issues (1)
      • Menu (1)
    • Timer Theme Development (3)
    • Update (2)
    • Woocommerce (2)
    • WP Basic Guideline (8)

Important DEV links

  • Premium Themes
    • Themeforest
    • Envato Market
  • Built With (What Theme is That?)
    • What WP theme is that
    • Joomla Template Detector
    • Drupal Template Detector
    • Prestashop Template Detector
    • Shopify Theme Detector
    • Squarespace Template Detector
    • OpenCart Detector
    • WordPress.com Theme Detector
  • Domain/IP history checker
    • Who IS request
    • Hosting Info
  • Check DNS Propagation
    • DNS Checker
    • intoDNS
  • What is my IP
    • What is My IP Address
    • What is My IP
    • IP location
    • What is My IP
    • Porkbun
  • SEO Tools
    • Visitor Traffic
    • Broken Link
    • Website Speed Test
      • SEMrush
      • GTmetrix
      • Pingdom
      • PageSpeed Insights
      • DebugBear
      • keyCDN
  • Photo Image
    • Remove Background 50 Free Preview Image 375 × 666 per month
  • Domain Registrars
    • 123-Reg
    • Porkbun
    • Freenom
    • Namecheap NEWCOM598
  • Hosting Providers
    • Bluehost
    • Hostgator
    • Inmotion
  • Hosting Control Panel
    • CWPpro (FREE)
    • DirectAdmin (Trial 60 Days, One account $2/month)
    • ISPConfig (Free)
  • Webmaster Tools
    • Google
    • Bing
    • Yandex
  • Miscellaneous
    • Time Calculator

 

  • Home
  • WordPress
  • OJS
  • Oxwall
  • Server and Hosting

Copyright © 2023 · Executive Pro Theme on Genesis Framework · WordPress · Log in