Server : Apache/2.4.41 (Ubuntu) System : Linux journalup 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/classes/services/ |
<?php /** * @file classes/services/SectionService.php * * Copyright (c) 2014-2020 Simon Fraser University * Copyright (c) 2000-2020 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class SectionService * @ingroup services * * @brief Helper class that encapsulates section business logic */ namespace APP\Services; use \Services; use \PKP\Services\interfaces\EntityPropertyInterface; class SectionService implements EntityPropertyInterface { /** * Get array of sections * * @param int $contextId * * @return array */ public function getSectionList($contextId) { $sectionDao = \DAORegistry::getDAO('SectionDAO'); /* $sectionDao SectionDAO */ $sectionIterator = $sectionDao->getByContextId($contextId); $sections = array(); while ($section = $sectionIterator->next()) { $sections[] = array( 'id' => $section->getId(), 'title' => $section->getLocalizedTitle(), ); } return $sections; } /** * @copydoc \PKP\Services\interfaces\EntityPropertyInterface::getProperties() */ public function getProperties($section, $props, $args = null) { $values = array(); foreach ($props as $prop) { switch ($prop) { case 'id': $values[$prop] = (int) $section->getId(); break; case 'abbrev': $values[$prop] = $section->getAbbrev(null); break; case 'title': $values[$prop] = $section->getTitle(null); break; case 'seq': $values[$prop] = (int) $section->getSequence(); break; } } $locales = $args['request']->getContext()->getSupportedFormLocales(); $values = Services::get('schema')->addMissingMultilingualValues(SCHEMA_GALLEY, $values, $locales); \HookRegistry::call('Section::getProperties::values', array(&$values, $section, $props, $args)); ksort($values); return $values; } /** * @copydoc \PKP\Services\interfaces\EntityPropertyInterface::getSummaryProperties() */ public function getSummaryProperties($section, $args = null) { $props = array ( 'id','abbrev','title','seq', ); \HookRegistry::call('Section::getProperties::summaryProperties', array(&$props, $section, $args)); return $this->getProperties($section, $props, $args); } /** * @copydoc \PKP\Services\interfaces\EntityPropertyInterface::getFullProperties() */ public function getFullProperties($section, $args = null) { // No fuller representation of a section is used at this time $props = $this->getSummaryProperties($section, $args); \HookRegistry::call('Section::getProperties::fullProperties', array(&$props, $section, $args)); return $props; } /** * Add a new section * * This does not check if the user is authorized to add a section, or * validate or sanitize this section. * * @param $section Section * @param $context Journal * @return Section */ public function addSection($section, $context) { $sectionDao = \DAORegistry::getDAO('SectionDAO'); /* $sectionDao SectionDAO */ // Don't allow sections to be added to any other context $section->setJournalId($context->getId()); $sectionDao->insertObject($section); return $section; } }