16 define(
'RUNNING_UPGRADE', 1);
18 require(dirname(dirname(dirname(dirname(__FILE__)))) .
'/tools/bootstrap.inc.php');
20 import(
'lib.pkp.classes.site.Version');
21 import(
'lib.pkp.classes.site.VersionCheck');
32 parent::__construct(
$argv);
34 if (!isset($this->argv[0]) || !file_exists($this->argv[0])) {
39 $this->_descriptor = $this->argv[0];
46 echo
"Install plugin version tool\n"
47 .
"Usage: {$this->scriptName} path/to/version.xml\n";
55 $pluginVersion = $versionInfo[
'version'];
57 $productType = $pluginVersion->getProductType();
59 error_log(
"Invalid type \"$productType\".");
64 $versionDao->insertVersion($pluginVersion,
true);
66 $pluginPath = dirname($this->_descriptor);
67 $plugin = @include(
"$pluginPath/index.php");
68 if ($plugin && is_object($plugin)) {
73 import(
'classes.install.Upgrade');
74 $installer =
new Upgrade(array());
75 if (!isset($installer->dbconn)) {
78 $installer->dbconn = $conn->getDBConn();
80 if (!$conn->isConnected()) {
81 $installer->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg());
85 if (!isset($installer->dataXMLParser)) {
87 $installer->dataXMLParser->setDBConn($installer->dbconn);
90 $param = array(&$installer, &$result);
92 if ($plugin->getInstallSchemaFile()) {
93 $plugin->updateSchema(
'Installer::postInstall', $param);
95 if ($plugin->getInstallSitePluginSettingsFile()) {
96 $plugin->installSiteSettings(
'Installer::postInstall', $param);
98 if ($plugin->getInstallControlledVocabFiles()) {
99 $plugin->installControlledVocabs(
'Installer::postInstall', $param);
101 if ($plugin->getInstallEmailTemplatesFile()) {
102 $plugin->installEmailTemplates(
'Installer::postInstall', $param);
104 if ($plugin->getInstallEmailTemplateDataFile()) {
105 $plugin->installEmailTemplateData(
'Installer::postInstall', $param);
107 if ($plugin->getInstallDataFile()) {
108 $plugin->installData(
'Installer::postInstall', $param);
110 $plugin->installFilters(
'Installer::postInstall', $param);