83 lines
1.7 KiB
PHP
83 lines
1.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @brief Profile Fields and Settings
|
|
* @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
|
|
* @since 09 Apr 2013
|
|
*/
|
|
|
|
namespace IPS\core\modules\admin\membersettings;
|
|
|
|
/* To prevent PHP errors (extending class does not exist) revealing path */
|
|
|
|
use IPS\core\ProfileFields\Field;
|
|
use IPS\Dispatcher;
|
|
use IPS\Member;
|
|
use IPS\Node\Controller;
|
|
use function defined;
|
|
|
|
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
|
{
|
|
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* Profile Fields and Settings
|
|
*/
|
|
class profilefields extends Controller
|
|
{
|
|
/**
|
|
* @brief Has been CSRF-protected
|
|
*/
|
|
public static bool $csrfProtected = TRUE;
|
|
|
|
/**
|
|
* Node Class
|
|
*/
|
|
protected string $nodeClass = '\IPS\core\ProfileFields\Group';
|
|
|
|
/**
|
|
* Show the "add" button in the page root rather than the table root
|
|
*/
|
|
protected bool $_addButtonInRoot = FALSE;
|
|
|
|
/**
|
|
* Execute
|
|
*
|
|
* @return void
|
|
*/
|
|
public function execute() : void
|
|
{
|
|
Dispatcher::i()->checkAcpPermission( 'profilefields_manage' );
|
|
parent::execute();
|
|
}
|
|
|
|
/**
|
|
* Get Root Buttons
|
|
*
|
|
* @return array
|
|
*/
|
|
public function _getRootButtons(): array
|
|
{
|
|
/* @var Field $nodeClass */
|
|
$nodeClass = $this->nodeClass;
|
|
|
|
if ( $nodeClass::canAddRoot() )
|
|
{
|
|
$add = array(
|
|
'icon' => 'plus',
|
|
'title' => 'add',
|
|
'link' => $this->url->setQueryString( 'do', 'form' ),
|
|
'data' => ( $nodeClass::$modalForms ? array( 'ipsDialog' => '', 'ipsDialog-title' => Member::loggedIn()->language()->addToStack('add') ) : array() )
|
|
);
|
|
|
|
return array( 'add' => $add );
|
|
}
|
|
|
|
return array();
|
|
}
|
|
} |