File Manager
Upload
Current Directory: /home/lartcid/public_html/journal.lartc.id
[Back]
..
[Open]
Hapus
Rename
.htaccess
[Edit]
Hapus
Rename
.well-known
[Open]
Hapus
Rename
README.md
[Edit]
Hapus
Rename
api
[Open]
Hapus
Rename
cache
[Open]
Hapus
Rename
cgi-bin
[Open]
Hapus
Rename
classes
[Open]
Hapus
Rename
config.TEMPLATE.inc.php
[Edit]
Hapus
Rename
config.inc.php
[Edit]
Hapus
Rename
controllers
[Open]
Hapus
Rename
cypress.json
[Edit]
Hapus
Rename
dbscripts
[Open]
Hapus
Rename
docs
[Open]
Hapus
Rename
error_log
[Edit]
Hapus
Rename
favicon.ico
[Edit]
Hapus
Rename
index.php
[Edit]
Hapus
Rename
js
[Open]
Hapus
Rename
lib
[Open]
Hapus
Rename
locale
[Open]
Hapus
Rename
mini.php
[Edit]
Hapus
Rename
pages
[Open]
Hapus
Rename
php.ini
[Edit]
Hapus
Rename
plugins
[Open]
Hapus
Rename
public
[Open]
Hapus
Rename
registry
[Open]
Hapus
Rename
scheduledTaskLogs
[Open]
Hapus
Rename
schemas
[Open]
Hapus
Rename
styles
[Open]
Hapus
Rename
templates
[Open]
Hapus
Rename
tools
[Open]
Hapus
Rename
Edit File
<?php /** * @file tools/plugins.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class PluginsTool * @ingroup tools * * @brief CLI tool to get information about installed/available plugins */ require(dirname(dirname(dirname(dirname(__FILE__)))) . '/tools/bootstrap.inc.php'); import('lib.pkp.controllers.grid.plugins.PluginGalleryGridHandler'); // load constant: PLUGIN_GALLERY_ALL_CATEGORY_SEARCH_VALUE class PluginsTool extends CommandLineTool { /** * Constructor. * @param $argv array command-line arguments */ function __construct($argv = array()) { parent::__construct($argv); if (!isset($this->argv[0]) || !$this->validateArgs()) { $this->usage(); exit(1); } } /** * Validate arguments */ function validateArgs() { switch ($this->argv[0]) { case 'list': if (count($this->argv) > 2) { return false; } return true; case 'info': if (count($this->argv) != 2) { return false; } if (count(explode('/', $this->argv[1])) != 2) { echo "\n\033[0;31m✘ The plugin path `" . $this->argv[1] . "` is not valid. It should be in the following format: generic/pln\033[0m\n\n"; return false; } return true; default: return false; } } /** * Print command usage information. */ function usage() { echo "Plugin Gallery tool\n" . "Usage: {$this->scriptName} action [arguments]\n" . " Actions:\n" . "\tlist [search]: show latest compatible plugin(s). Optional \"search\" text against plugin class\n" . "\tinfo path: show detail for plugin identified by \"path\", such as generic/pln\n"; } /** * Execute the specified command. */ function execute() { $result = false; /** @var PluginGalleryDAO $pluginGalleryDao */ $pluginGalleryDao = DAORegistry::getDAO('PluginGalleryDAO'); switch ($this->argv[0]) { case 'list': $plugins = $pluginGalleryDao->getNewestCompatible( Application::get(), null, count($this->argv) > 1 ? $this->argv[1] : null ); $this->listPlugins($plugins); $result = true; break; case 'info': $opts = explode('/', $this->argv[1]); $plugin = $this->selectPlugin($opts[0], $opts[1]); if ($plugin) { foreach ($plugin->getAllData() as $key => $data) { if (is_array($data)) { print $key.': '.str_replace("\n", '\n', $plugin->getLocalizedData($key))."\n"; } else { print $key.': '.str_replace("\n", '\n', $data)."\n"; } } $result = true; } if (!$result) { error_log('"'.$opts[1].'" not found in "'.$opts[0].'"'); $result = true; } break; } if (!$result) { $this->usage(); exit(1); } return $result; } /** * Select a specific plugin * @param $category string a plugin category * @param $name string a plugin name * @return GalleryPlugin|null */ function selectPlugin($category, $name) { /** @var PluginGalleryDAO $pluginGalleryDao */ $pluginGalleryDao = DAORegistry::getDAO('PluginGalleryDAO'); $plugins = $pluginGalleryDao->getNewestCompatible( Application::get(), $category, $name ); foreach ($plugins as $plugin) { if ($plugin->getData('product') === $name) { return $plugin; } } return; } /** * Print the plugins as a list * @param $plugins GalleryPlugin[] array of plugins */ function listPlugins($plugins) { foreach ($plugins as $plugin) { $statusKey = ''; switch ($plugin->getCurrentStatus()) { case PLUGIN_GALLERY_STATE_NEWER: $statusKey = 'manager.plugins.installedVersionNewer'; break; case PLUGIN_GALLERY_STATE_UPGRADABLE: $statusKey = 'manager.plugins.installedVersionOlder'; break; case PLUGIN_GALLERY_STATE_CURRENT: $statusKey = 'manager.plugins.installedVersionNewest'; break; case PLUGIN_GALLERY_STATE_AVAILABLE: $statusKey = 'manager.plugins.noInstalledVersion'; break; case PLUGIN_GALLERY_STATE_INCOMPATIBLE: $statusKey = 'manager.plugins.noCompatibleVersion'; break; } $keyOut = explode('.', $statusKey); $keyOut = array_pop($keyOut); print implode('/', array('plugins', $plugin->getData('category'), $plugin->getData('product'))) . ' ' . $plugin->getData('releasePackage') . ' ' . $keyOut . "\n"; } } } $tool = new PluginsTool(isset($argv) ? $argv : array()); $tool->execute();
Simpan