Files
2025-12-19 16:27:35 -08:00

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();
}
}