Open Journal Systems
3.3.0
RecommendBySimilarityPlugin.inc.php
1
<?php
2
17
import
(
'lib.pkp.classes.plugins.GenericPlugin'
);
18
19
define(
'RECOMMEND_BY_SIMILARITY_PLUGIN_COUNT'
, 10);
20
21
class
RecommendBySimilarityPlugin
extends
GenericPlugin
{
22
23
//
24
// Implement template methods from Plugin.
25
//
29
function
register
($category, $path, $mainContextId =
null
) {
30
$success = parent::register($category, $path, $mainContextId);
31
if
(!
Config::getVar
(
'general'
,
'installed'
) || defined(
'RUNNING_UPGRADE'
))
return
$success;
32
33
if
($success && $this->
getEnabled
($mainContextId)) {
34
HookRegistry::register
(
'Templates::Article::Footer::PageFooter'
, array($this,
'callbackTemplateArticlePageFooter'
));
35
}
36
return
$success;
37
}
38
42
function
getDisplayName
() {
43
return
__(
'plugins.generic.recommendBySimilarity.displayName'
);
44
}
45
49
function
getDescription
() {
50
return
__(
'plugins.generic.recommendBySimilarity.description'
);
51
}
52
53
54
//
55
// View level hook implementations.
56
//
60
function
callbackTemplateArticlePageFooter
($hookName, $params) {
61
$smarty =& $params[1];
62
$output =& $params[2];
63
64
// Identify similarity terms for the given article.
65
$displayedArticle = $smarty->getTemplateVars(
'article'
);
66
$articleId = $displayedArticle->getId();
67
import
(
'classes.search.ArticleSearch'
);
68
$articleSearch =
new
ArticleSearch
();
69
$searchTerms = $articleSearch->getSimilarityTerms($articleId);
70
if
(empty($searchTerms))
return
false
;
71
72
// If we got similarity terms then execute a search with...
73
// ... request, journal and error messages, ...
74
$request
=
Application::get
()->getRequest();
75
$router =
$request
->getRouter();
76
$journal = $router->getContext(
$request
);
77
$error =
null
;
78
// ... search keywords ...
79
$query = implode(
' '
, $searchTerms);
80
$keywords = array(
null
=> $query);
81
// ... and pagination.
82
$rangeInfo =
Handler::getRangeInfo
(
$request
,
'articlesBySimilarity'
);
83
$rangeInfo->setCount(RECOMMEND_BY_SIMILARITY_PLUGIN_COUNT);
84
$smarty->assign(array(
85
'articlesBySimilarity'
=> $articleSearch->retrieveResults(
86
$request
,
87
$journal,
88
$keywords,
89
$error,
90
null
,
null
,
91
$rangeInfo,
92
array($articleId)
93
),
94
'articlesBySimilarityQuery'
=> $query,
95
));
96
$output .= $smarty->fetch($this->
getTemplateResource
(
'articleFooter.tpl'
));
97
return
false
;
98
}
99
}
100
RecommendBySimilarityPlugin
Plugin to recommend similar articles.
Definition:
RecommendBySimilarityPlugin.inc.php:21
RecommendBySimilarityPlugin\callbackTemplateArticlePageFooter
callbackTemplateArticlePageFooter($hookName, $params)
Definition:
RecommendBySimilarityPlugin.inc.php:60
PKPHandler\getRangeInfo
static getRangeInfo($request, $rangeName, $contextData=null)
Definition:
PKPHandler.inc.php:417
RecommendBySimilarityPlugin\getDisplayName
getDisplayName()
Definition:
RecommendBySimilarityPlugin.inc.php:42
Plugin\getEnabled
getEnabled()
Definition:
Plugin.inc.php:868
Config\getVar
static getVar($section, $key, $default=null)
Definition:
Config.inc.php:35
RecommendBySimilarityPlugin\getDescription
getDescription()
Definition:
RecommendBySimilarityPlugin.inc.php:49
Plugin\getTemplateResource
getTemplateResource($template=null, $inCore=false)
Definition:
Plugin.inc.php:349
Plugin\$request
$request
Definition:
Plugin.inc.php:68
HookRegistry\register
static register($hookName, $callback, $hookSequence=HOOK_SEQUENCE_NORMAL)
Definition:
HookRegistry.inc.php:70
PKPApplication\get
static get()
Definition:
PKPApplication.inc.php:235
ArticleSearch
Class for retrieving article search results.
Definition:
ArticleSearch.inc.php:20
GenericPlugin
Abstract class for generic plugins.
Definition:
GenericPlugin.inc.php:18
plugins
generic
recommendBySimilarity
RecommendBySimilarityPlugin.inc.php
Generated on Fri Aug 28 2020 14:53:20 for Open Journal Systems by
1.8.17