/**
  * Save changes to an archive's settings.
  */
 function updateArchive()
 {
     $archiveId = Request::getUserVar('archiveId');
     if (empty($archiveId)) {
         $archiveId = null;
     } else {
         $archiveId = (int) $archiveId;
     }
     $this->validate($archiveId);
     $this->setupTemplate(true);
     import('admin.form.ArchiveForm');
     $archiveForm = new ArchiveForm($archiveId);
     $archiveForm->initData();
     $archiveForm->readInputData();
     $dataModified = false;
     if (Request::getUserVar('uploadArchiveImage')) {
         if (!$archiveForm->uploadArchiveImage()) {
             $archiveForm->addError('archiveImage', Locale::translate('archive.image.profileImageInvalid'));
         }
         $dataModified = true;
     } else {
         if (Request::getUserVar('deleteArchiveImage')) {
             $archiveForm->deleteArchiveImage();
             $dataModified = true;
         }
     }
     if (!$dataModified && $archiveForm->validate()) {
         $archiveForm->execute();
         Request::redirect('submitter', $archiveId);
     } else {
         $archiveForm->display();
     }
 }
 /**
  * Save changes to a archive's settings.
  * @param $args array
  * @param $request object
  */
 function updateArchive($args, &$request)
 {
     $this->validate();
     $this->setupTemplate();
     import('classes.admin.form.ArchiveForm');
     $archiveId = (int) $request->getUserVar('archiveId');
     $archiveForm = new ArchiveForm($archiveId, true);
     $archiveForm->initData();
     $archiveForm->readInputData();
     $dataModified = false;
     if ($request->getUserVar('uploadArchiveImage')) {
         if (!$archiveForm->uploadArchiveImage()) {
             $archiveForm->addError('archiveImage', Locale::translate('archive.image.profileImageInvalid'));
         }
         $dataModified = true;
     } else {
         if ($request->getUserVar('deleteArchiveImage')) {
             $archiveForm->deleteArchiveImage();
             $dataModified = true;
         }
     }
     if (!$dataModified && $archiveForm->validate()) {
         $archiveForm->execute();
         import('lib.pkp.classes.notification.NotificationManager');
         $notificationManager = new NotificationManager();
         $notificationManager->createTrivialNotification('notification.notification', 'common.changesSaved');
         $request->redirect(null, 'archives');
     } else {
         $this->setupTemplate(true);
         $archiveForm->display();
     }
 }
 function manage($verb, $args)
 {
     switch ($verb) {
         case 'fetchArchiveInfo':
             // The user has requested that the archive form be filled out given
             // the OAI URL.
             $harvesterUrl = Request::getUserVar('harvesterUrl');
             $archiveId = (int) array_shift($args);
             $archiveDao =& DAORegistry::getDAO('ArchiveDAO');
             $archive =& $archiveDao->getArchive($archiveId);
             $this->import('OAIHarvester');
             $oaiHarvester = new OAIHarvester($archive);
             $metadata = $oaiHarvester->getMetadata($harvesterUrl, Request::getUserVar('isStatic'));
             import('admin.form.ArchiveForm');
             $archiveForm = new ArchiveForm($archiveId);
             $archiveForm->initData();
             $archiveForm->readInputData();
             $metadataMap = array('repositoryName' => 'title', 'adminEmail' => 'adminEmail', 'description' => 'description');
             if ($metadata === false) {
                 foreach ($oaiHarvester->getErrors() as $error) {
                     $archiveForm->addError('harvesterUrl', $error);
                 }
             } else {
                 foreach ($metadata as $name => $value) {
                     $archiveForm->setData($name, $value);
                 }
             }
             $archiveForm->display();
             return true;
     }
     return HarvesterPlugin::manage($verb, $args);
 }