| Server IP : 127.0.1.1 / Your IP : 216.73.216.60 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/classes/services/ |
Upload File : |
<?php
define('DATA_STATEMENT_TYPE_IN_MANUSCRIPT', 0x000000001);
define('DATA_STATEMENT_TYPE_REPO_AVAILABLE', 0x000000002);
define('DATA_STATEMENT_TYPE_DATAVERSE_SUBMITTED', 0x000000003);
define('DATA_STATEMENT_TYPE_ON_DEMAND', 0x000000004);
define('DATA_STATEMENT_TYPE_PUBLICLY_UNAVAILABLE', 0x000000005);
class DataStatementService
{
private $dataverseName;
public function getDataStatementTypes($includeSubmittedType = true): array
{
$types = [
DATA_STATEMENT_TYPE_IN_MANUSCRIPT => __('plugins.generic.dataverse.dataStatement.inManuscript'),
DATA_STATEMENT_TYPE_REPO_AVAILABLE => __('plugins.generic.dataverse.dataStatement.repoAvailable'),
DATA_STATEMENT_TYPE_ON_DEMAND => __('plugins.generic.dataverse.dataStatement.onDemand'),
DATA_STATEMENT_TYPE_PUBLICLY_UNAVAILABLE => __('plugins.generic.dataverse.dataStatement.publiclyUnavailable')
];
if ($includeSubmittedType) {
$dataverseUrl = $this->getDataverseUrl();
$this->getDataverseName();
if (!is_null($this->dataverseName)) {
$types[DATA_STATEMENT_TYPE_DATAVERSE_SUBMITTED] = __(
'plugins.generic.dataverse.dataStatement.submissionDeposit',
['dataverseName' => $this->dataverseName, 'dataverseUrl' => $dataverseUrl]
);
}
}
return $types;
}
private function getDataverseUrl(): string
{
$contextId = Application::get()->getRequest()->getContext()->getId();
$configuration = DAORegistry::getDAO('DataverseConfigurationDAO')->get($contextId);
return $configuration->getDataverseUrl();
}
public function getDataverseName(): ?string
{
if ($this->dataverseName) {
return $this->dataverseName;
}
try {
import('plugins.generic.dataverse.dataverseAPI.DataverseClient');
$dataverseClient = new DataverseClient();
$dataverseCollection = $dataverseClient->getDataverseCollectionActions()->get();
$this->dataverseName = $dataverseCollection->getName();
return $this->dataverseName;
} catch (DataverseException $e) {
error_log('Dataverse API error: ' . $e->getMessage());
return null;
}
}
}