Version 5.0.0 beta 1

This commit is contained in:
Neo committed 2025-12-19 16:27:35 -08:00
1 parent 25ddeb65d6
commit 15c7beabc5
6736 files changed
+627902 -497943

No files matched your search

@@ -12,104 +12,117 @@
namespace IPS\downloads\extensions\core\GroupForm;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
use IPS\Application;
use IPS\Extensions\GroupFormAbstract;
use IPS\Helpers\Form;
use IPS\Helpers\Form\Interval;
use IPS\Helpers\Form\Number;
use IPS\Helpers\Form\YesNo;
use IPS\Member;
use IPS\Member\Group;
use IPS\Settings;
use function defined;
use const IPS\CIC2;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* Admin CP Group Form
*/
class _Downloads
class Downloads extends GroupFormAbstract
{
/**
* Process Form
*
* @param \IPS\Helpers\Form $form The form
* @param \IPS\Member\Group $group Existing Group
* @param Form $form The form
* @param Group $group Existing Group
* @return void
*/
public function process( &$form, $group )
public function process( Form $form, Group $group ) : void
{
$restrictions = $group->idm_restrictions ? json_decode( $group->idm_restrictions, TRUE ) : array();
$form->addHeader( 'file_management' );
$form->add( new \IPS\Helpers\Form\YesNo( 'idm_view_downloads', $group->idm_view_downloads ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'idm_view_approvers', $group->idm_view_approvers ) );
if( $group->g_id != \IPS\Settings::i()->guest_group )
$form->add( new YesNo( 'idm_view_downloads', $group->idm_view_downloads ) );
$form->add( new YesNo( 'idm_view_approvers', $group->idm_view_approvers ) );
if( $group->g_id != Settings::i()->guest_group )
{
$form->add( new \IPS\Helpers\Form\YesNo( 'idm_bypass_revision', $group->idm_bypass_revision ) );
$form->add( new YesNo( 'idm_bypass_revision', $group->idm_bypass_revision ) );
}
$form->addHeader( 'submission_permissions' );
if ( \IPS\Application::appIsEnabled( 'nexus' ) and $group->g_id != \IPS\Settings::i()->guest_group )
if ( Application::appIsEnabled( 'nexus' ) and $group->g_id != Settings::i()->guest_group )
{
if ( \IPS\Settings::i()->idm_nexus_on )
if ( Settings::i()->idm_nexus_on )
{
$form->add( new \IPS\Helpers\Form\YesNo( 'idm_add_paid', $group->idm_add_paid ) );
$form->add( new YesNo( 'idm_add_paid', $group->idm_add_paid ) );
}
else
{
\IPS\Member::loggedIn()->language()->words['idm_add_paid_desc'] = \IPS\Member::loggedIn()->language()->addToStack( 'idm_add_paid_enable', FALSE );
$form->add( new \IPS\Helpers\Form\YesNo( 'idm_add_paid', FALSE, FALSE, array( 'disabled' => TRUE ) ) );
Member::loggedIn()->language()->words['idm_add_paid_desc'] = Member::loggedIn()->language()->addToStack( 'idm_add_paid_enable', FALSE );
$form->add( new YesNo( 'idm_add_paid', FALSE, FALSE, array( 'disabled' => TRUE ) ) );
}
}
$form->add( new \IPS\Helpers\Form\YesNo( 'idm_bulk_submit', $group->idm_bulk_submit ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'idm_linked_files', $group->idm_linked_files ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'idm_import_files', $group->idm_import_files ) );
$form->add( new YesNo( 'idm_bulk_submit', $group->idm_bulk_submit ) );
$form->add( new YesNo( 'idm_linked_files', $group->idm_linked_files ) );
$form->add( new YesNo( 'idm_import_files', $group->idm_import_files ) );
$form->add( new \IPS\Helpers\Form\Number( 'idm_max_size', $group->idm_max_size, FALSE, array( 'unlimited' => -1 ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('idm_maxsize_suffix') ) );
$form->add( new Number( 'idm_max_size', $group->idm_max_size, FALSE, array( 'unlimited' => -1 ), NULL, NULL, Member::loggedIn()->language()->addToStack('idm_maxsize_suffix') ) );
$form->addHeader( 'download_restrictions' );
if ( \IPS\Application::appIsEnabled( 'nexus' ) AND \IPS\Settings::i()->idm_nexus_on )
if ( Application::appIsEnabled( 'nexus' ) AND Settings::i()->idm_nexus_on )
{
$form->add( new \IPS\Helpers\Form\YesNo( 'idm_paid_restrictions', $group->idm_paid_restrictions ) );
$form->add( new YesNo( 'idm_paid_restrictions', $group->idm_paid_restrictions ) );
}
if( $group->g_id != \IPS\Settings::i()->guest_group )
if( $group->g_id != Settings::i()->guest_group )
{
$form->add( new \IPS\Helpers\Form\Number( 'min_posts', isset( $restrictions['min_posts'] ) ? $restrictions['min_posts'] : 0, FALSE, array( 'unlimited' => 0, 'unlimitedLang' => 'idm_throttling_unlimited' ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('approved_posts_comments') ) );
$form->add( new Number( 'min_posts', $restrictions['min_posts'] ?? 0, FALSE, array( 'unlimited' => 0, 'unlimitedLang' => 'idm_throttling_unlimited' ), NULL, NULL, Member::loggedIn()->language()->addToStack('approved_posts_comments') ) );
}
if ( !\IPS\CIC2 )
if ( !CIC2 )
{
$form->add( new \IPS\Helpers\Form\Number( 'idm_throttling', $group->idm_throttling, FALSE, array( 'unlimited' => 0, 'unlimitedLang' => 'idm_throttling_unlimited' ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('idm_throttling_suffix') ) );
$form->add( new Number( 'idm_throttling', $group->idm_throttling, FALSE, array( 'unlimited' => 0, 'unlimitedLang' => 'idm_throttling_unlimited' ), NULL, NULL, Member::loggedIn()->language()->addToStack('idm_throttling_suffix') ) );
}
$form->add( new \IPS\Helpers\Form\Interval( 'idm_wait_period', $group->g_id ? $group->idm_wait_period : 0, FALSE, array( 'valueAs' => \IPS\Helpers\Form\Interval::SECONDS, 'unlimited' => 0, 'unlimitedLang' => 'idm_throttling_unlimited' ) ) );
$form->add( new \IPS\Helpers\Form\Number( 'limit_sim', isset( $restrictions['limit_sim'] ) ? $restrictions['limit_sim'] : 0, FALSE, array( 'unlimited' => 0 ) ) );
if ( \IPS\Application::appIsEnabled( 'nexus' ) and \IPS\Settings::i()->idm_nexus_on )
$form->add( new Interval( 'idm_wait_period', $group->g_id ? $group->idm_wait_period : 0, FALSE, array( 'valueAs' => Interval::SECONDS, 'unlimited' => 0, 'unlimitedLang' => 'idm_throttling_unlimited' ) ) );
$form->add( new Number( 'limit_sim', $restrictions['limit_sim'] ?? 0, FALSE, array( 'unlimited' => 0 ) ) );
if ( Application::appIsEnabled( 'nexus' ) and Settings::i()->idm_nexus_on )
{
$form->add( new \IPS\Helpers\Form\YesNo( 'idm_bypass_paid', $group->idm_bypass_paid ) );
$form->add( new YesNo( 'idm_bypass_paid', $group->idm_bypass_paid ) );
}
$form->addHeader( 'bandwidth_limits' );
$form->addMessage( 'downloads_requires_log' );
$form->add( new \IPS\Helpers\Form\Number( 'daily_bw', isset( $restrictions['daily_bw'] ) ? $restrictions['daily_bw'] : 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('kb_per_day') ) );
$form->add( new \IPS\Helpers\Form\Number( 'weekly_bw', isset( $restrictions['weekly_bw'] ) ? $restrictions['weekly_bw'] : 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('kb_per_week') ) );
$form->add( new \IPS\Helpers\Form\Number( 'monthly_bw', isset( $restrictions['monthly_bw'] ) ? $restrictions['monthly_bw'] : 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('kb_per_month') ) );
$form->add( new Number( 'daily_bw', $restrictions['daily_bw'] ?? 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, Member::loggedIn()->language()->addToStack('kb_per_day') ) );
$form->add( new Number( 'weekly_bw', $restrictions['weekly_bw'] ?? 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, Member::loggedIn()->language()->addToStack('kb_per_week') ) );
$form->add( new Number( 'monthly_bw', $restrictions['monthly_bw'] ?? 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, Member::loggedIn()->language()->addToStack('kb_per_month') ) );
$form->addHeader( 'download_limits' );
$form->addMessage( 'downloads_requires_log' );
$form->add( new \IPS\Helpers\Form\Number( 'daily_dl', isset( $restrictions['daily_dl'] ) ? $restrictions['daily_dl'] : 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('downloads_per_day') ) );
$form->add( new \IPS\Helpers\Form\Number( 'weekly_dl', isset( $restrictions['weekly_dl'] ) ? $restrictions['weekly_dl'] : 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('downloads_per_week') ) );
$form->add( new \IPS\Helpers\Form\Number( 'monthly_dl', isset( $restrictions['monthly_dl'] ) ? $restrictions['monthly_dl'] : 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, \IPS\Member::loggedIn()->language()->addToStack('downloads_per_month') ) );
$form->add( new Number( 'daily_dl', $restrictions['daily_dl'] ?? 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, Member::loggedIn()->language()->addToStack('downloads_per_day') ) );
$form->add( new Number( 'weekly_dl', $restrictions['weekly_dl'] ?? 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, Member::loggedIn()->language()->addToStack('downloads_per_week') ) );
$form->add( new Number( 'monthly_dl', $restrictions['monthly_dl'] ?? 0, FALSE, array( 'unlimited' => 0 ), NULL, NULL, Member::loggedIn()->language()->addToStack('downloads_per_month') ) );
}
/**
* Save
*
* @param array $values Values from form
* @param \IPS\Member\Group $group The group
* @param Group $group The group
* @return void
*/
public function save( $values, &$group )
public function save( array $values, Group $group ) : void
{
$group->idm_view_approvers = $values['idm_view_approvers'];
if( $group->g_id != \IPS\Settings::i()->guest_group )
if( $group->g_id != Settings::i()->guest_group )
{
$group->idm_bypass_revision = $values['idm_bypass_revision'];
}
$group->idm_view_downloads = $values['idm_view_downloads'];
if ( !\IPS\CIC2 )
if ( !CIC2 )
{
$group->idm_throttling = $values['idm_throttling'];
}
@@ -119,9 +132,9 @@ class _Downloads
$group->idm_bulk_submit = $values['idm_bulk_submit'];
$group->idm_max_size = $values['idm_max_size'];
if ( \IPS\Application::appIsEnabled( 'nexus' ) and \IPS\Settings::i()->idm_nexus_on )
if ( Application::appIsEnabled( 'nexus' ) and Settings::i()->idm_nexus_on )
{
if( $group->g_id != \IPS\Settings::i()->guest_group )
if( $group->g_id != Settings::i()->guest_group )
{
$group->idm_add_paid = $values['idm_add_paid'];
}
@@ -135,7 +148,7 @@ class _Downloads
$restrictions[ $k ] = $values[ $k ];
}
if( $group->g_id != \IPS\Settings::i()->guest_group )
if( $group->g_id != Settings::i()->guest_group )
{
$restrictions['min_posts'] = $values['min_posts'];
}