Version 4.7.0

This commit is contained in:
Neo committed 2025-12-19 16:00:35 -08:00
1 parent 517a5e1f70
commit 8ba7d43898
1933 files changed
+65613 -11332

No files matched your search

+31 -6
View File
@@ -60,7 +60,7 @@ trait ClubContainer
*/
public function clubCheckRules()
{
if ( $club = $this->club() AND !$club->rulesAcknowledged() )
if ( $club = $this->club() AND !$club->rulesAcknowledged() AND !\IPS\Member::loggedIn()->modPermission( 'can_access_all_clubs' ) )
{
\IPS\Output::i()->redirect( $club->url()->setQueryString( 'do', 'rules' )->addRef( \IPS\Request::i()->url() ) );
}
@@ -94,7 +94,7 @@ trait ClubContainer
* @param \IPS\Helpers\Form $form Form object
* @return void
*/
public function clubForm( \IPS\Helpers\Form $form )
public function clubForm( \IPS\Helpers\Form $form, \IPS\Member\Club $club )
{
$itemClass = static::$contentItemClass;
$form->add( new \IPS\Helpers\Form\Text( 'club_node_name', $this->_id ? $this->_title : \IPS\Member::loggedIn()->language()->addToStack( static::clubFrontTitle() ), TRUE, array( 'maxLength' => 255 ) ) );
@@ -116,6 +116,7 @@ trait ClubContainer
$this->_saveClubForm( $club, $values );
$needToUpdatePermissions = FALSE;
if ( !$haveId )
{
$clubIdColumn = $this->clubIdColumn();
@@ -125,15 +126,21 @@ trait ClubContainer
'club_id' => $club->id,
'node_class' => $nodeClass,
'node_id' => $this->_id,
'name' => $values['club_node_name']
'name' => $values['club_node_name'],
'public' => ( isset( $values['club_node_public'] ) ) ? $values['club_node_public'] : 0
) );
$needToUpdatePermissions = TRUE;
}
else
{
if( isset( $values['club_node_public'] ) AND $values['club_node_public'] != $this->isPublic() )
{
$needToUpdatePermissions = TRUE;
}
$this->save();
\IPS\Db::i()->update( 'core_clubs_node_map', array( 'name' => $values['club_node_name'] ), array( 'club_id=? AND node_class=? AND node_id=?', $club->id, $nodeClass, $this->_id ) );
\IPS\Db::i()->update( 'core_clubs_node_map', array( 'name' => $values['club_node_name'], 'public' => $values['club_node_public'] ?? 0), array( 'club_id=? AND node_class=? AND node_id=?', $club->id, $nodeClass, $this->_id ) );
}
\IPS\Lang::saveCustom( $itemClass::$application, static::$titleLangPrefix . $this->_id, $values['club_node_name'] );
@@ -197,9 +204,10 @@ trait ClubContainer
case $club::TYPE_OPEN:
case $club::TYPE_READONLY:
$insert[ 'perm_' . $v ] = '*';
break;
break;
case $club::TYPE_CLOSED:
$insert[ 'perm_' . $v ] = ( $this->isPublic() ) ? "*" : "cm,c{$club->id}";
break;
case $club::TYPE_PRIVATE:
$insert[ 'perm_' . $v ] = "cm,c{$club->id}";
break;
@@ -398,4 +406,21 @@ trait ClubContainer
return parent::parents();
}
}
/**
* Is public
*
* @return Bool
*/
public function isPublic()
{
try
{
return (bool) \IPS\Db::i()->select( 'public', 'core_clubs_node_map', array( 'club_id=? AND node_class=? AND node_id=?', $this->club()->id, \get_called_class(), $this->_id ) )->first();
}
catch ( \UnderflowException $e )
{
return FALSE;
}
}
}