One Hat Cyber Team
Your IP :
216.73.216.182
Server IP :
203.175.9.166
Server :
Linux tanggamus.iixcp.rumahweb.net 5.14.0-427.28.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 2 03:44:10 EDT 2024 x86_64
Server Software :
LiteSpeed
PHP Version :
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
cite5577
/
www
/
lib
/
pkp
/
classes
/
context
/
View File Name :
ContextDAO.inc.php
<?php /** * @file classes/context/ContextDAO.inc.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class ContextDAO * @ingroup core * @see DAO * * @brief Operations for retrieving and modifying context objects. */ import('lib.pkp.classes.db.SchemaDAO'); abstract class ContextDAO extends SchemaDAO { /** * Retrieve the IDs and names of all contexts in an associative array. * @param $enabledOnly true iff only enabled contexts are to be included * @return array */ function getNames($enabledOnly = false) { $contexts = array(); $iterator = $this->getAll($enabledOnly); while ($context = $iterator->next()) { $contexts[$context->getId()] = $context->getLocalizedName(); } return $contexts; } /** * Get a list of localized settings. * @return array */ function getLocaleFieldNames() { return array('name', 'description'); } /** * Check if a context exists with a specified path. * @param $path string the path for the context * @return boolean */ function existsByPath($path) { $result = $this->retrieve( 'SELECT COUNT(*) AS row_count FROM ' . $this->tableName . ' WHERE path = ?', [(string) $path] ); $row = $result->current(); return $row ? (boolean) $row->row_count : false; } /** * Retrieve a context by path. * @param $path string * @return Context? */ function getByPath($path) { $result = $this->retrieve( 'SELECT * FROM ' . $this->tableName . ' WHERE path = ?', [(string) $path] ); $row = (array) $result->current(); return $row?$this->_fromRow($row):null; } /** * Retrieve all contexts. * @param $enabledOnly true iff only enabled contexts should be included * @param $rangeInfo Object optional * @return DAOResultFactory containing matching Contexts */ function getAll($enabledOnly = false, $rangeInfo = null) { $result = $this->retrieveRange( 'SELECT * FROM ' . $this->tableName . ($enabledOnly?' WHERE enabled = 1':'') . ' ORDER BY seq', [], $rangeInfo ); return new DAOResultFactory($result, $this, '_fromRow'); } /** * Retrieve available contexts. * If user-based contexts, retrieve all contexts assigned by user group * or all contexts for site admin * If not user-based, retrieve all enabled contexts. * @param $userId int Optional user ID to find available contexts for * @param $rangeInfo Object optional * @return DAOResultFactory containing matching Contexts */ function getAvailable($userId = null, $rangeInfo = null) { $params = []; if ($userId) $params = array_merge( $params, [(int) $userId, (int) $userId, (int) ROLE_ID_SITE_ADMIN] ); $result = $this->retrieveRange( 'SELECT c.* FROM ' . $this->tableName . ' c WHERE ' . ($userId? 'c.' . $this->primaryKeyColumn . ' IN (SELECT DISTINCT ug.context_id FROM user_groups ug JOIN user_user_groups uug ON (ug.user_group_id = uug.user_group_id) WHERE uug.user_id = ?) OR ? IN (SELECT user_id FROM user_groups ug JOIN user_user_groups uug ON (ug.user_group_id = uug.user_group_id) WHERE ug.role_id = ?)' :'c.enabled = 1') . ' ORDER BY seq', $params, $rangeInfo ); return new DAOResultFactory($result, $this, '_fromRow'); } /** * Get journals by setting. * @param $settingName string * @param $settingValue mixed * @param $contextId int * @return DAOResultFactory */ function getBySetting($settingName, $settingValue, $contextId = null) { $params = array($settingName, $settingValue); if ($contextId) $params[] = $contextId; $result = $this->retrieve( 'SELECT * FROM ' . $this->tableName . ' AS c LEFT JOIN ' . $this->settingsTableName . ' AS cs ON c.' . $this->primaryKeyColumn . ' = cs.' . $this->primaryKeyColumn . ' WHERE cs.setting_name = ? AND cs.setting_value = ?' . ($contextId?' AND c.' . $this->primaryKeyColumn . ' = ?':''), $params ); return new DAOResultFactory($result, $this, '_fromRow'); } /** * Sequentially renumber each context according to their sequence order. */ function resequence() { $result = $this->retrieve('SELECT ' . $this->primaryKeyColumn . ' AS context_id FROM ' . $this->tableName . ' ORDER BY seq'); $i=1; for ($i=1; $row = (array) $result->current(); $i+=2 && $result->next()) { $this->update('UPDATE ' . $this->tableName . ' SET seq = ? WHERE ' . $this->primaryKeyColumn . ' = ?', [$i, $row['context_id']]); $result->next(); $i+=2; } } }