/**
  * Constructor.
  * @see HandlerValidator::HandlerValidator()
  */
 function HandlerValidatorPress(&$handler, $redirectToLogin = false, $message = null, $additionalArgs = array())
 {
     $application =& PKPApplication::getApplication();
     $request =& $application->getRequest();
     $policy = new ContextRequiredPolicy($request, $message);
     parent::HandlerValidatorPolicy($policy, $handler, $redirectToLogin, $message, $additionalArgs);
 }
 /**
  * Constructor.
  * @param $handler Handler the associated form
  * @param $roles array of role id's
  * @param $all bool flag for whether all roles must exist or just 1
  */
 function HandlerValidatorRoles(&$handler, $redirectLogin = true, $message = null, $additionalArgs = array(), $roles, $all = false)
 {
     $application =& PKPApplication::getApplication();
     $request =& $application->getRequest();
     $policy = new RoleBasedHandlerOperationPolicy($request, $roles, array(), $message, $all, true);
     parent::HandlerValidatorPolicy($policy, $handler, $redirectLogin, $message, $additionalArgs);
 }
Beispiel #3
0
 /**
  * @copydoc SiteSetupForm::fetch()
  */
 function fetch($request, $params = null)
 {
     $application = PKPApplication::getApplication();
     $templateMgr = TemplateManager::getManager();
     $templateMgr->assign('availableMetricTypes', $application->getMetricTypes(true));
     return parent::fetch($request, $params = null);
 }
Beispiel #4
0
 function isTinyMCEInstalled()
 {
     // If the thesis plugin isn't enabled, don't do anything.
     $application =& PKPApplication::getApplication();
     $products =& $application->getEnabledProducts('plugins.generic');
     return isset($products['tinymce']);
 }
Beispiel #5
0
 /**
  * Constructor
  * @param $plugin MedraExportPlugin
  * @param $contextId integer
  */
 function MedraSettingsForm($plugin, $contextId)
 {
     $this->_contextId = $contextId;
     $this->_plugin = $plugin;
     parent::Form($plugin->getTemplatePath() . 'settingsForm.tpl');
     // DOI plugin settings action link
     $pubIdPlugins = PluginRegistry::loadCategory('pubIds', true);
     if (isset($pubIdPlugins['doipubidplugin'])) {
         $application = PKPApplication::getApplication();
         $request = $application->getRequest();
         $dispatcher = $application->getDispatcher();
         import('lib.pkp.classes.linkAction.request.AjaxModal');
         $doiPluginSettingsLinkAction = new LinkAction('settings', new AjaxModal($dispatcher->url($request, ROUTE_COMPONENT, null, 'grid.settings.plugins.SettingsPluginGridHandler', 'manage', null, array('plugin' => 'doipubidplugin', 'category' => 'pubIds')), __('plugins.importexport.common.settings.DOIPluginSettings')), __('plugins.importexport.common.settings.DOIPluginSettings'), null);
         $this->setData('doiPluginSettingsLinkAction', $doiPluginSettingsLinkAction);
     }
     // Add form validation checks.
     $this->addCheck(new FormValidator($this, 'registrantName', FORM_VALIDATOR_REQUIRED_VALUE, 'plugins.importexport.medra.settings.form.registrantNameRequired'));
     $this->addCheck(new FormValidator($this, 'fromCompany', FORM_VALIDATOR_REQUIRED_VALUE, 'plugins.importexport.medra.settings.form.fromCompanyRequired'));
     $this->addCheck(new FormValidator($this, 'fromName', FORM_VALIDATOR_REQUIRED_VALUE, 'plugins.importexport.medra.settings.form.fromNameRequired'));
     $this->addCheck(new FormValidatorEmail($this, 'fromEmail', FORM_VALIDATOR_REQUIRED_VALUE, 'plugins.importexport.medra.settings.form.fromEmailRequired'));
     $this->addCheck(new FormValidatorInSet($this, 'exportIssuesAs', FORM_VALIDATOR_REQUIRED_VALUE, 'plugins.importexport.medra.settings.form.exportIssuesAs', array(O4DOI_ISSUE_AS_WORK, O4DOI_ISSUE_AS_MANIFESTATION)));
     $this->addCheck(new FormValidatorInSet($this, 'publicationCountry', FORM_VALIDATOR_REQUIRED_VALUE, 'plugins.importexport.medra.settings.form.publicationCountry', array_keys($this->_getCountries())));
     // The username is used in HTTP basic authentication and according to RFC2617 it therefore may not contain a colon.
     $this->addCheck(new FormValidatorRegExp($this, 'username', FORM_VALIDATOR_OPTIONAL_VALUE, 'plugins.importexport.medra.settings.form.usernameRequired', '/^[^:]+$/'));
     $this->addCheck(new FormValidatorPost($this));
 }
 /**
  * Assign parameters to template
  * @param $paramArray array
  */
 function assignParams($paramArray = array())
 {
     $submission = $this->submission;
     $application = PKPApplication::getApplication();
     $request = $application->getRequest();
     parent::assignParams(array_merge(array('submissionTitle' => strip_tags($submission->getLocalizedTitle()), 'submissionId' => $submission->getId(), 'submissionAbstract' => PKPString::html2text($submission->getLocalizedAbstract()), 'authorString' => strip_tags($submission->getAuthorString())), $paramArray));
 }
 /**
  * @see templates/article/footer.tpl
  */
 function callbackTemplateArticlePageFooter($hookName, $params)
 {
     $smarty =& $params[1];
     $output =& $params[2];
     // Identify similarity terms for the given article.
     $displayedArticle = $smarty->get_template_vars('article');
     $articleId = $displayedArticle->getId();
     import('classes.search.ArticleSearch');
     $articleSearch = new ArticleSearch();
     $searchTerms = $articleSearch->getSimilarityTerms($articleId);
     if (empty($searchTerms)) {
         return false;
     }
     // If we got similarity terms then execute a search with...
     // ... request, journal and error messages, ...
     $request = PKPApplication::getRequest();
     $router = $request->getRouter();
     $journal = $router->getContext($request);
     $error = null;
     // ... search keywords ...
     $query = implode(' ', $searchTerms);
     $keywords = array(null => $query);
     // ... and pagination.
     $rangeInfo = Handler::getRangeInfo($request, 'articlesBySimilarity');
     $rangeInfo->setCount(RECOMMEND_BY_SIMILARITY_PLUGIN_COUNT);
     $results = $articleSearch->retrieveResults($request, $journal, $keywords, $error, null, null, $rangeInfo, array($articleId));
     $smarty->assign('articlesBySimilarity', $results);
     $smarty->assign('articlesBySimilarityQuery', $query);
     $output .= $smarty->fetch($this->getTemplatePath() . 'articleFooter.tpl');
     return false;
 }
 /**
  * @see Filter::process()
  */
 function &process(&$input)
 {
     // Initialize view
     $locale = AppLocale::getLocale();
     $application = PKPApplication::getApplication();
     $request = $application->getRequest();
     $templateMgr = TemplateManager::getManager($request);
     // Add the filter's directory as additional template dir so that
     // templates can include sub-templates in the same folder.
     array_unshift($templateMgr->template_dir, $this->getBasePath());
     // Give sub-filters a chance to add their variables
     // to the template.
     $this->addTemplateVars($templateMgr, $input, $request, $locale);
     // Use a base path hash as compile id to make sure that we don't
     // get namespace problems if several filters use the same
     // template names.
     $previousCompileId = $templateMgr->compile_id;
     $templateMgr->compile_id = md5($this->getBasePath());
     // Let the template engine render the citation.
     $output = $templateMgr->fetch($this->getTemplateName());
     // Remove the additional template dir
     array_shift($templateMgr->template_dir);
     // Restore the compile id.
     $templateMgr->compile_id = $previousCompileId;
     return $output;
 }
Beispiel #9
0
 /**
  * Check if there is a payment plugin and if is configured
  * @return bool
  */
 function isConfigured()
 {
     $paymentPlugin =& $this->getPaymentPlugin();
     if ($paymentPlugin !== null) {
         return $paymentPlugin->isConfigured(PKPApplication::getRequest());
     }
     return false;
 }
 /**
  * @covers HandlerValidatorRoles
  */
 public function testHandlerValidatorRoles()
 {
     $contextDepth = PKPApplication::getApplication()->getContextDepth();
     // tests: userId, role type, user has role in context?, match all roles?, expected result of isValid()
     $tests = array(array(7, array(HANDLER_VALIDATOR_ROLES_FULL_CONTEXT_ROLE), true, false, true), array(7, array(HANDLER_VALIDATOR_ROLES_MANAGER_ROLE), true, true, true), array(7, array(HANDLER_VALIDATOR_ROLES_SITE_ADMIN_ROLE), true, false, true), array(null, array(HANDLER_VALIDATOR_ROLES_FULL_CONTEXT_ROLE), true, false, false), array(7, array(HANDLER_VALIDATOR_ROLES_FULL_CONTEXT_ROLE), false, false, false), array(7, array(HANDLER_VALIDATOR_ROLES_FULL_CONTEXT_ROLE, HANDLER_VALIDATOR_ROLES_MANAGER_ROLE), array(true, false), false, true), array(7, array(HANDLER_VALIDATOR_ROLES_FULL_CONTEXT_ROLE, HANDLER_VALIDATOR_ROLES_MANAGER_ROLE), array(true, true), false, true), array(7, array(HANDLER_VALIDATOR_ROLES_FULL_CONTEXT_ROLE, HANDLER_VALIDATOR_ROLES_MANAGER_ROLE), array(true, false), true, false), array(7, array(HANDLER_VALIDATOR_ROLES_FULL_CONTEXT_ROLE, HANDLER_VALIDATOR_ROLES_MANAGER_ROLE), array(true, true), true, true));
     foreach ($tests as $testNumber => $test) {
         $this->executeHandlerValidatorRolesTest($test, $testNumber);
     }
 }
 function register($category, $path)
 {
     $success = parent::register($category, $path);
     $this->addLocaleData();
     $request =& PKPApplication::getRequest();
     $templateMgr =& TemplateManager::getManager($request);
     $templateMgr->register_modifier('bibtex_escape', array(&$this, 'bibtexEscape'));
     return $success;
 }
 /**
  * @copydoc PKPTestCase::setUp()
  */
 protected function setUp()
 {
     $application = PKPApplication::getApplication();
     $_SERVER['REQUEST_METHOD'] = 'GET';
     $request = $application->getRequest();
     if (is_null($request->getRouter())) {
         $router = new PKPRouter();
         $request->setRouter($router);
     }
 }
 /**
  * @see WebTestCase::setUp()
  */
 protected function setUp()
 {
     parent::setUp();
     $application = PKPApplication::getApplication();
     $request = $application->getRequest();
     if (is_null($request->getRouter())) {
         $router = new PKPRouter();
         $request->setRouter($router);
     }
 }
 /**
  * @see OAI#OAI
  */
 function PressOAI($config)
 {
     parent::OAI($config);
     $application = PKPApplication::getApplication();
     $request = $application->getRequest();
     $this->site = $request->getSite();
     $this->press = $request->getPress();
     $this->pressId = isset($this->press) ? $this->press->getId() : null;
     $this->dao = DAORegistry::getDAO('OAIDAO');
     $this->dao->setOAI($this);
 }
 function assignParams($paramArray = array())
 {
     $submission = $this->submission;
     $application = PKPApplication::getApplication();
     $request = $application->getRequest();
     $paramArray['submissionTitle'] = strip_tags($submission->getLocalizedTitle());
     $paramArray['submissionId'] = $submission->getId();
     $paramArray['submissionAbstract'] = String::html2text($submission->getLocalizedAbstract());
     $paramArray['authorString'] = strip_tags($submission->getAuthorString());
     parent::assignParams($paramArray);
 }
 /**
  * @see Form::readInputData()
  */
 function readInputData()
 {
     $this->readUserVars(array('dvnUri', 'username', 'password'));
     $request =& PKPApplication::getRequest();
     $password = $request->getUserVar('password');
     if ($password === DATAVERSE_PLUGIN_PASSWORD_SLUG) {
         $plugin =& $this->_plugin;
         $password = $plugin->getSetting($this->_journalId, 'password');
     }
     $this->setData('password', $password);
 }
 /**
  * @see Form::readInputData()
  */
 function readInputData()
 {
     $this->readUserVars($this->_getFormFields());
     $request = PKPApplication::getRequest();
     $password = $request->getUserVar('password');
     if ($password === LUCENE_PLUGIN_PASSWORD_PLACEHOLDER) {
         $plugin =& $this->_plugin;
         $password = $plugin->getSetting(0, 'password');
     }
     $this->setData('password', $password);
 }
Beispiel #18
0
 /**
  * Get an instance of the Help object.
  */
 function &getHelp()
 {
     $instance =& Registry::get('help');
     if ($instance == null) {
         unset($instance);
         $application =& PKPApplication::getApplication();
         $instance =& $application->instantiateHelp();
         Registry::set('help', $instance);
     }
     return $instance;
 }
Beispiel #19
0
 /**
  * Static method to return a new version from a version string of the form "W.X.Y.Z".
  * @param $versionString string
  * @param $productType string
  * @param $product string
  * @param $productClass string
  * @param $lazyLoad integer
  * @param $sitewide integer
  * @return Version
  */
 function &fromString($versionString, $productType = null, $product = null, $productClass = '', $lazyLoad = 0, $sitewide = 1)
 {
     $versionArray = explode('.', $versionString);
     if (!$product && !$productType) {
         $application = PKPApplication::getApplication();
         $product = $application->getName();
         $productType = 'core';
     }
     $version = new Version(isset($versionArray[0]) ? (int) $versionArray[0] : 0, isset($versionArray[1]) ? (int) $versionArray[1] : 0, isset($versionArray[2]) ? (int) $versionArray[2] : 0, isset($versionArray[3]) ? (int) $versionArray[3] : 0, Core::getCurrentDate(), 1, $productType, $product, $productClass, $lazyLoad, $sitewide);
     return $version;
 }
Beispiel #20
0
 /**
  * Return information about the latest available version.
  * @return array
  */
 function getLatestVersion()
 {
     $application = PKPApplication::getApplication();
     $includeId = Config::getVar('general', 'installed') && !defined('RUNNING_UPGRADE') && Config::getVar('general', 'enable_beacon', true);
     if ($includeId) {
         $pluginSettingsDao =& DAORegistry::getDAO('PluginSettingsDAO');
         $uniqueSiteId = $pluginSettingsDao->getSetting(CONTEXT_SITE, 'UsageEventPlugin', 'uniqueSiteId');
     } else {
         $uniqueSiteId = null;
     }
     $request = $application->getRequest();
     return VersionCheck::parseVersionXML($application->getVersionDescriptorUrl() . ($includeId ? '?id=' . urlencode($uniqueSiteId) . '&oai=' . urlencode($request->url('index', 'oai')) : ''));
 }
 protected function setUp()
 {
     $application =& PKPApplication::getApplication();
     $_SERVER['REQUEST_METHOD'] = 'GET';
     $request =& $application->getRequest();
     if (is_null($request->getRouter())) {
         $router = new PKPRouter();
         $request->setRouter($router);
     }
     // Instantiate the citation DAO and make sure we have no left-overs
     // from previous unsuccessful tests.
     $this->citationDao = DAORegistry::getDAO('CitationDAO');
     $this->citationDao->deleteObjectsByAssocId($this->assocType, $this->assocId);
 }
 /**
  * Retrieve the complete version history, ordered by date (most recent first).
  * @param $product string
  * @return array Versions
  */
 function &getVersionHistory($product = null)
 {
     $versions = array();
     if (!$product) {
         $application = PKPApplication::getApplication();
         $product = $application->getName();
     }
     $result =& $this->retrieve('SELECT * FROM versions WHERE product = ? ORDER BY date_installed DESC', array($product));
     while (!$result->EOF) {
         $versions[] = $this->_returnVersionFromRow($result->GetRowAssoc(false));
         $result->MoveNext();
     }
     $result->Close();
     unset($result);
     return $versions;
 }
 /**
  * @see Form::readInputData()
  */
 function readInputData()
 {
     $this->readUserVars(array('dvnUri', 'username', 'password'));
     $request =& PKPApplication::getRequest();
     $password = $request->getUserVar('password');
     if ($password === DATAVERSE_PLUGIN_PASSWORD_SLUG) {
         $plugin =& $this->_plugin;
         $password = $plugin->getSetting($this->_journalId, 'password');
     }
     if (!$password) {
         // Password not required when API token provided, but SWORDAPPClient
         // requires a non-null password.
         $password = DATAVERSE_PLUGIN_PASSWORD_SLUG;
     }
     $this->setData('password', $password);
     $this->setData('dvnUri', preg_replace("/\\/+\$/", '', $this->getData('dvnUri')));
 }
 /**
  * Constructor
  * @param $plugin DOIPubIdPlugin
  * @param $pressId integer
  */
 function DOISettingsForm(&$plugin, $pressId)
 {
     $this->_pressId = $pressId;
     $this->_plugin =& $plugin;
     parent::Form($plugin->getTemplatePath() . 'settingsForm.tpl');
     $this->addCheck(new FormValidatorRegExp($this, 'doiPrefix', 'required', 'plugins.pubIds.doi.manager.settings.doiPrefixPattern', '/^10\\.[0-9][0-9][0-9][0-9][0-9]?$/'));
     $this->addCheck(new FormValidatorCustom($this, 'doiPublicationFormatSuffixPattern', 'required', 'plugins.pubIds.doi.manager.settings.doiPublicationFormatSuffixPatternRequired', create_function('$doiPublicationFormatSuffixPattern,$form', 'if ($form->getData(\'doiSuffix\') == \'pattern\') return $doiPublicationFormatSuffixPattern != \'\';return true;'), array(&$this)));
     $this->addCheck(new FormValidator($this, 'doiSuffix', 'required', 'plugins.pubIds.doi.manager.settings.doiSuffixRequired'));
     $this->addCheck(new FormValidatorPost($this));
     // for DOI reset requests
     import('lib.pkp.classes.linkAction.request.RemoteActionConfirmationModal');
     $application = PKPApplication::getApplication();
     $request = $application->getRequest();
     $clearPubIdsLinkAction = new LinkAction('reassignDOIs', new RemoteActionConfirmationModal(__('plugins.pubIds.doi.manager.settings.doiReassign.confirm'), __('common.delete'), $request->url(null, null, 'plugin', null, array('verb' => 'settings', 'clearPubIds' => true, 'plugin' => $plugin->getName(), 'category' => 'pubIds')), 'modal_delete'), __('plugins.pubIds.doi.manager.settings.doiReassign'), 'delete');
     $this->setData('clearPubIdsLinkAction', $clearPubIdsLinkAction);
     $this->setData('pluginName', $plugin->getName());
 }
Beispiel #25
0
 /**
  * Retrieve Notes by assoc id/type
  * @param $assocId int
  * @param $assocType int
  * @param $userId int
  * @return object DAOResultFactory containing matching Note objects
  */
 function &getByAssoc($assocType, $assocId, $userId = null)
 {
     $application =& PKPApplication::getApplication();
     $productName = $application->getName();
     $params = array((int) $assocId, (int) $assocType);
     if (isset($userId)) {
         $params[] = (int) $userId;
     }
     $sql = 'SELECT * FROM notes WHERE assoc_id = ? AND assoc_type = ?';
     if (isset($userId)) {
         $sql .= ' AND user_id = ?';
     }
     $sql .= ' ORDER BY date_created DESC';
     $result =& $this->retrieveRange($sql, $params);
     $returner = new DAOResultFactory($result, $this, '_returnNoteFromRow');
     return $returner;
 }
 /**
  * @see LazyLoadPlugin::register()
  */
 function register($category, $path)
 {
     $success = parent::register($category, $path);
     if ($this->getEnabled() && $success) {
         // Register callbacks.
         $app = PKPApplication::getApplication();
         $version = $app->getCurrentVersion();
         HookRegistry::register('AcronPlugin::parseCronTab', array($this, 'callbackParseCronTab'));
         HookRegistry::register('PluginRegistry::loadCategory', array($this, 'callbackLoadCategory'));
         // If the plugin will provide the access logs,
         // register to the usage event hook provider.
         if ($this->getSetting(CONTEXT_ID_NONE, 'createLogFiles')) {
             HookRegistry::register('UsageEventPlugin::getUsageEvent', array(&$this, 'logUsageEvent'));
         }
     }
     return $success;
 }
 /**
  * Associate a category with a submission.
  * @copydoc ListbuilderHandler::insertEntry
  */
 function insertEntry($request, $newRowId)
 {
     $application = PKPApplication::getApplication();
     $request = $application->getRequest();
     $categoryId = $newRowId['name'];
     $categoryDao = DAORegistry::getDAO('CategoryDAO');
     $submissionDao = DAORegistry::getDAO('MonographDAO');
     $context = $request->getContext();
     $submission = $this->submission;
     $category = $categoryDao->getById($categoryId, $context->getId());
     if (!$category) {
         return true;
     }
     // Associate the category with the submission
     $submissionDao->addCategory($submission->getId(), $categoryId);
     return true;
 }
Beispiel #28
0
 /**
  * Retrieve a reference to the specified DAO.
  * @param $name string the class name of the requested DAO
  * @param $dbconn ADONewConnection optional
  * @return DAO
  */
 function &getDAO($name, $dbconn = null)
 {
     $daos =& DAORegistry::getDAOs();
     if (!isset($daos[$name])) {
         // Import the required DAO class.
         $application =& PKPApplication::getApplication();
         $className = $application->getQualifiedDAOName($name);
         if (!$className) {
             fatalError('Unrecognized DAO ' . $name . '!');
         }
         // Only instantiate each class of DAO a single time
         $daos[$name] =& instantiate($className, array('DAO', 'XMLDAO'));
         if ($dbconn != null) {
             $daos[$name]->setDataSource($dbconn);
         }
     }
     return $daos[$name];
 }
Beispiel #29
0
 /**
  * Static method to return a new version from a version string of the form "W.X.Y.Z".
  * @param $versionString string
  * @param $product string
  * @param $productType string
  * @return Version
  */
 function &fromString($versionString, $product = null, $productType = null)
 {
     $version = new Version();
     if (!$product && !$productType) {
         $application = PKPApplication::getApplication();
         $product = $application->getName();
         $productType = 'core';
     }
     $versionArray = explode('.', $versionString);
     $version->setMajor(isset($versionArray[0]) ? (int) $versionArray[0] : 0);
     $version->setMinor(isset($versionArray[1]) ? (int) $versionArray[1] : 0);
     $version->setRevision(isset($versionArray[2]) ? (int) $versionArray[2] : 0);
     $version->setBuild(isset($versionArray[3]) ? (int) $versionArray[3] : 0);
     $version->setDateInstalled(null);
     $version->setProduct($product);
     $version->setProductType($productType);
     return $version;
 }
Beispiel #30
0
 /**
  * @see LazyLoadPlugin::register()
  */
 function register($category, $path)
 {
     $success = parent::register($category, $path);
     if ($this->getEnabled() && $success) {
         // Register callbacks.
         $app =& PKPApplication::getApplication();
         $version = $app->getCurrentVersion();
         HookRegistry::register('PluginRegistry::loadCategory', array($this, 'callbackLoadCategory'));
         if ($version->getMajor() < 3) {
             HookRegistry::register('LoadHandler', array(&$this, 'callbackLoadHandler'));
         }
         // If the plugin will provide the access logs,
         // register to the usage event hook provider.
         if ($this->getSetting(0, 'createLogFiles')) {
             HookRegistry::register('UsageEventPlugin::getUsageEvent', array(&$this, 'logUsageEvent'));
         }
     }
     return $success;
 }