Files
IPB/applications/cms/sources/Selector/Databases.php
T
2025-12-19 16:27:35 -08:00

118 lines
2.7 KiB
PHP

<?php
/**
* @brief Databases Selector Model
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Content
* @since 20 July 2015
*/
namespace IPS\cms\Selector;
/* To prevent PHP errors (extending class does not exist) revealing path */
use IPS\Node\Model;
use IPS\Node\Permissions;
use function defined;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* @brief Databases Model
*/
class Databases extends Model implements Permissions
{
/**
* @brief [ActiveRecord] Multiton Store
*/
protected static array $multitons = array();
/**
* @brief [ActiveRecord] Database Prefix
*/
public static string $databasePrefix = 'database_';
/**
* @brief [ActiveRecord] ID Database Table
*/
public static ?string $databaseTable = 'cms_databases';
/**
* @brief [ActiveRecord] ID Database Column
*/
public static string $databaseColumnId = 'id';
/**
* @brief [ActiveRecord] Database ID Fields
*/
protected static array $databaseIdFields = array( 'database_key', 'database_page_id' );
/**
* @brief [ActiveRecord] Multiton Map
*/
protected static array $multitonMap = array();
/**
* @brief [Node] Parent ID Database Column
*/
public static ?string $databaseColumnOrder = 'id';
/**
* @brief [Node] Sortable?
*/
public static bool $nodeSortable = FALSE;
/**
* @brief [Node] Node Title
*/
public static string $nodeTitle = '';
/**
* @brief [Node] Subnode class
*/
public static ?string $subnodeClass = 'IPS\cms\Selector\Categories';
/**
* @brief The map of permission columns
*/
public static array $permissionMap = array(
'view' => 'view',
'read' => 2,
'add' => 3,
'edit' => 4,
'reply' => 5,
'review' => 7,
'rate' => 6
);
/**
* @brief [Node] App for permission index
*/
public static ?string $permApp = 'cms';
/**
* @brief [Node] Type for permission index
*/
public static ?string $permType = 'databases';
/**
* @brief [Node] Prefix string that is automatically prepended to permission matrix language strings
*/
public static string $permissionLangPrefix = 'perm_content_';
/**
* @brief [Node] Title prefix. If specified, will look for a language key with "{$titleLangPrefix}_{$id}" as the key
*/
public static ?string $titleLangPrefix = 'content_db_';
/**
* @brief [Node] Description suffix. If specified, will look for a language key with "{$titleLangPrefix}_{$id}_{$descriptionLangSuffix}" as the key
*/
public static ?string $descriptionLangSuffix = 'desc';
}