Version 4.0.13.1 (nulled)

This commit is contained in:
Neo committed 2025-12-19 05:28:09 -08:00
1 parent c6a86f0d9b
commit 3ba79295ee
19 files changed
+277 -490

No files matched your search

+1 -1
View File
@@ -21,7 +21,7 @@
},
{
"key": "ipb_calendar_mon",
"default": "0"
"default": "1"
},
{
"key": "show_bday_calendar",
+21
View File
@@ -2,6 +2,7 @@
<language>
<app key="core" version="100045">
<word key="__app_core" js="0">System</word>
<word key="__iaf__nulling_null_alert" js="0">This distribution is Nulled! You can't use this function.</word><!-- Custom alert about Null -->
<word key="__indefart_personal_conversation" js="0">a personal conversation</word>
<word key="__indefart_personal_conversation_message" js="0">a message in a personal conversation</word>
<word key="__indefart_report" js="0">a report</word>
@@ -488,7 +489,26 @@
<word key="to" js="0">To</word>
<word key="subject" js="0">Subject</word>
<word key="message" js="0">Message</word>
<word key="ipb_license_edit_main" js="0">Edit License Data</word>
<word key="ipb_reg_number" js="0">IPS License Key</word>
<word key="ipb_license_active" js="0">License Active</word>
<word key="ipb_license_expires" js="0">Expires</word>
<word key="ipb_license_cloud" js="0">Cloud License</word>
<word key="ipb_license_urls" js="0">URLs</word>
<word key="ipb_license_url" js="0">URL</word>
<word key="ipb_license_test_url" js="0">Test URL</word>
<word key="ipb_license_components" js="0">Active Components</word>
<word key="ipb_license_product_forums" js="0">Forums</word>
<word key="ipb_license_product_calendar" js="0">Calendar</word>
<word key="ipb_license_product_blog" js="0">Blog</word>
<word key="ipb_license_product_gallery" js="0">Gallery</word>
<word key="ipb_license_product_downloads" js="0">Downloads</word>
<word key="ipb_license_product_cms" js="0">Pages</word>
<word key="ipb_license_product_nexus" js="0">Commerce</word>
<word key="ipb_license_product_copyright" js="0">Remove Copyright</word>
<word key="ipb_license_services" js="0">IPS Services</word>
<word key="ipb_license_chat_limit" js="0">Chat Limit</word>
<word key="ipb_license_support" js="0">Support</word>
<word key="learn_more" js="0">Learn More</word>
<word key="help" js="0">Help</word>
<word key="permanently" js="0">Permanently</word>
@@ -3916,6 +3936,7 @@
<word key="my_details" js="0">My Details</word>
<word key="menu__core_overview_security" js="0">Security</word>
<word key="r__security" js="0">Security Center</word>
<!-- Miku (^_^) -->
<word key="r__security_manage" js="0">Can view security center?</word>
<word key="security_center" js="0">Security Center</word>
<word key="security_settings" js="0">Security Settings</word>
+8 -8
View File
@@ -2928,10 +2928,10 @@
"g_max_messages": "0",
"g_max_mass_pm": "0",
"g_search_flood": "0",
"g_edit_cutoff": "5",
"g_edit_cutoff": "0",
"g_promotion": "-1&-1",
"g_photo_max_vars": "500:170:240",
"g_dohtml": "0",
"g_photo_max_vars": "1024:500:500",
"g_dohtml": "1",
"g_bypass_badwords": "1",
"g_can_msg_attach": "1",
"g_attach_per_post": "0",
@@ -2942,13 +2942,13 @@
"g_rep_max_negative": "100",
"g_signature_limits": "0:::::",
"g_hide_online_list": "0",
"g_bitoptions": "26148875",
"g_bitoptions": "1099890816",
"g_pm_perday": "0",
"g_mod_post_unit": "5",
"g_ppd_limit": "500",
"g_ppd_unit": "5",
"g_mod_post_unit": "0",
"g_ppd_limit": "0",
"g_ppd_unit": "0",
"g_displayname_unit": "0",
"g_sig_unit": "5",
"g_sig_unit": "0",
"g_pm_flood_mins": "0",
"g_max_bgimg_upload": "-1",
"g_post_polls": "1",
+55 -3
View File
@@ -241,7 +241,59 @@
},
{
"key": "ipb_reg_number",
"default": ""
"default": "LICENSE KEY GOES HERE!-123456789"
},
{
"key": "ipb_license_active",
"default": "1"
},
{
"key": "ipb_license_cloud",
"default": "0"
},
{
"key": "ipb_license_url",
"default": "https:\/\/www.invisionpower.com\/buy\/self-hosted"
},
{
"key": "ipb_license_test_url",
"default": "http:\/\/community.invisionpower.com"
},
{
"key": "ipb_license_expires",
"default": "09 MAR 2037"
},
{
"key": "ipb_license_product_forums",
"default": "1"
},
{
"key": "ipb_license_product_calendar",
"default": "1"
},
{
"key": "ipb_license_product_blog",
"default": "1"
},
{
"key": "ipb_license_product_gallery",
"default": "1"
},
{
"key": "ipb_license_product_downloads",
"default": "1"
},
{
"key": "ipb_license_product_cms",
"default": "1"
},
{
"key": "ipb_license_product_nexus",
"default": "1"
},
{
"key": "ipb_license_product_copyright",
"default": "1"
},
{
"key": "ipb_url_blacklist",
@@ -669,7 +721,7 @@
},
{
"key": "strip_quotes",
"default": "1"
"default": "0"
},
{
"key": "subs_autoprune",
@@ -689,7 +741,7 @@
},
{
"key": "tags_force_lower",
"default": "1"
"default": "0"
},
{
"key": "tags_len_max",
+28 -27
View File
@@ -1582,25 +1582,25 @@
{$pagination|raw}
{{endif}}
]]></template>
<template template_group="embed" template_name="embedNoPermission" template_data="" template_location="global" template_app="core"><![CDATA[<div class='ipsEmbedded'>
<div class='ipsEmbedded_headerArea'>
<h4 class='ipsType_reset ipsType_normal ipsTruncate ipsTruncate_line'><i class='fa fa-warning'></i> {lang="embed_no_perm_title"}</h4>
</div>
<div class='ipsEmbedded_content'>
<p class="ipsType_large ipsPad ipsType_light">
{lang="embed_no_perm_desc"}
</p>
</div>
<template template_group="embed" template_name="embedNoPermission" template_data="" template_location="global" template_app="core"><![CDATA[<div class='ipsEmbedded'>
<div class='ipsEmbedded_headerArea'>
<h4 class='ipsType_reset ipsType_normal ipsTruncate ipsTruncate_line'><i class='fa fa-warning'></i> {lang="embed_no_perm_title"}</h4>
</div>
<div class='ipsEmbedded_content'>
<p class="ipsType_large ipsPad ipsType_light">
{lang="embed_no_perm_desc"}
</p>
</div>
</div>]]></template>
<template template_group="embed" template_name="embedUnavailable" template_data="" template_location="global" template_app="core"><![CDATA[<div class='ipsEmbedded'>
<div class='ipsEmbedded_headerArea'>
<h4 class='ipsType_reset ipsType_normal ipsTruncate ipsTruncate_line'><i class='fa fa-warning'></i> {lang="embed_unavailable_title"}</h4>
</div>
<div class='ipsEmbedded_content'>
<p class="ipsType_large ipsPad ipsType_light">
{lang="embed_unavailable_desc"}
</p>
</div>
<template template_group="embed" template_name="embedUnavailable" template_data="" template_location="global" template_app="core"><![CDATA[<div class='ipsEmbedded'>
<div class='ipsEmbedded_headerArea'>
<h4 class='ipsType_reset ipsType_normal ipsTruncate ipsTruncate_line'><i class='fa fa-warning'></i> {lang="embed_unavailable_title"}</h4>
</div>
<div class='ipsEmbedded_content'>
<p class="ipsType_large ipsPad ipsType_light">
{lang="embed_unavailable_desc"}
</p>
</div>
</div>]]></template>
<template template_group="embed" template_name="facebook" template_data="$url" template_location="global" template_app="core"><![CDATA[<script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = '//connect.facebook.net/en_US/all.js#xfbml=1'; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script>
<div class='fb-post' data-href='{$url}' data-width='500'></div>
@@ -4546,6 +4546,7 @@
{template="includeJS" app="core" group="global" location="global" params=""}
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<!-- Miku (^_^) -->
<body data-baseurl="{setting="base_url"}" class='ipsApp ipsApp_admin {{if isset( \IPS\Request::i()->cookie['hasJS'] )}}ipsJS_has{{else}}ipsJS_none{{endif}} {{if isset( \IPS\Request::i()->cookie['hideAdminMenu'] )}}cAdminHideMenu{{endif}}' data-controller="{expression="implode( ',', \IPS\Output::i()->globalControllers )"}" {{if isset( output.inlineMessage )}}data-message="{expression="output.inlineMessage"}"{{endif}} data-pageApp='{$location['app']}' data-pageLocation='admin' data-pageModule='{$location['module']}' data-pageController='{$location['controller']}'>
<a href='#content' id='acpJumpToContent'>{lang="jump_to_content"}</a>
<div id='ipsLayout_header' class='ipsClearfix' role='banner' data-controller='core.admin.core.mobileNav'>
@@ -6403,15 +6404,15 @@
<template template_group="global" template_name="userPhoto" template_data="$member, $size='small'" template_location="admin" template_app="core"><![CDATA[<a href="{$member->url()}" class="ipsUserPhoto ipsUserPhoto_{$size}" target="_blank">
<img src='{$member->photo}' alt=''>
</a>]]></template>
<template template_group="global" template_name="userPhoto" template_data="$member, $size='small', $warningRef=NULL, $classes='', $hovercard=TRUE" template_location="front" template_app="core"><![CDATA[{{if $member->member_id and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) )}}
{{$memberURL = ( $warningRef ) ? $member->url()->setQueryString( 'wr', $warningRef ) : $member->url();}}
<a href="{$memberURL}" {{if $hovercard}}data-ipsHover data-ipsHover-target="{$memberURL->setQueryString( 'do', 'hovercard' )}"{{endif}} class="ipsUserPhoto ipsUserPhoto_{$size}{{if $classes}} {$classes}{{endif}}" title="{lang="view_user_profile" sprintf="$member->name"}">
<img src='{$member->photo}' alt=''>
</a>
{{else}}
<span class='ipsUserPhoto ipsUserPhoto_{$size} {{if $classes}}{$classes}{{endif}}'>
<img src='{$member->photo}' alt=''>
</span>
<template template_group="global" template_name="userPhoto" template_data="$member, $size='small', $warningRef=NULL, $classes='', $hovercard=TRUE" template_location="front" template_app="core"><![CDATA[{{if $member->member_id and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) )}}
{{$memberURL = ( $warningRef ) ? $member->url()->setQueryString( 'wr', $warningRef ) : $member->url();}}
<a href="{$memberURL}" {{if $hovercard}}data-ipsHover data-ipsHover-target="{$memberURL->setQueryString( 'do', 'hovercard' )}"{{endif}} class="ipsUserPhoto ipsUserPhoto_{$size}{{if $classes}} {$classes}{{endif}}" title="{lang="view_user_profile" sprintf="$member->name"}">
<img src='{$member->photo}' alt=''>
</a>
{{else}}
<span class='ipsUserPhoto ipsUserPhoto_{$size} {{if $classes}}{$classes}{{endif}}'>
<img src='{$member->photo}' alt=''>
</span>
{{endif}}]]></template>
<template template_group="global" template_name="utilitiesMenu" template_data=" " template_location="front" template_app="core"><![CDATA[<div id='elHeaderSubLinks' class='ipsPos_right'>
<ul class='ipsList_inline'>
@@ -7,6 +7,7 @@
* @package IPS Social Suite
* @since 20 June 2013
* @version SVN_VERSION_NUMBER
* @modified 13.09.2015 by IAF
*/
namespace IPS\core\extensions\core\CommunityEnhancements;
@@ -184,18 +185,17 @@ class _Mandrill
throw new \DomainException( 'mandrill_bad_credentials' );
}
/* Tell IPS */
$response = NULL;
try
{
$response = \IPS\Http\Url::ips( 'mandrill' )->request()->post( array(
'key' => $values['mandrill_api_key'],
'username' => $values['mandrill_username'],
'lkey' => \IPS\Settings::i()->ipb_reg_number,
'version' => \IPS\Application::load('core')->long_version
) )->decodeJson();
}
catch ( \IPS\Http\Request\Exception $e ) { }
/* Do not Tell IPS */
$response = array(
"mail_method" => "smtp",
"smtp_host" => "smtp.mandrillapp.com",
"smtp_port"=> 587,
"mail_wrap_brackets" => 0,
"smtp_user" => $values['mandrill_username'],
"smtp_pass" => $values['mandrill_api_key'],
"smtp_helo" => "HELO"
);
/* If we want to use Mandrill for "everything", we need to update our local SMTP settings with the values returned from the API call */
if( $values['mandrill_use_for'] == 2 )
@@ -213,4 +213,6 @@ class _Mandrill
unset( \IPS\Data\Store::i()->settings );
}
}
}
}
/* Nulled by IandroidFan (IAF) */
@@ -7,6 +7,7 @@
* @package IPS Social Suite
* @since 17 Apr 2013
* @version SVN_VERSION_NUMBER
* @modified 13.09.2015 by IAF
*/
namespace IPS\core\extensions\core\CommunityEnhancements;
@@ -78,7 +79,7 @@ class _SpamMonitoring
}
catch ( \LogicException $e )
{
\IPS\Output::i()->error( $e->getMessage(), '2C116/2', 403, '' );
//Do not show error message. We will see error message in Settings
}
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=core&module=membersettings&controller=spam&tab=service' ) );
@@ -125,4 +126,6 @@ class _SpamMonitoring
throw new \DomainException('spam_service_noservice');
}
}
}
}
/* Nulled by IandroidFan (IAF) */
@@ -7,6 +7,7 @@
* @package IPS Social Suite
* @since 18 Apr 2013
* @version SVN_VERSION_NUMBER
* @modified 13.09.2015 by IAF
*/
namespace IPS\core\modules\admin\membersettings;
@@ -173,11 +174,11 @@ class _spam extends \IPS\Dispatcher\Controller
$disabled = TRUE;
if( !\IPS\Settings::i()->ipb_reg_number )
{
\IPS\Member::loggedIn()->language()->words['spam_service_enabled_desc'] = \IPS\Member::loggedIn()->language()->addToStack( 'spam_service_nokey', FALSE, array( 'sprintf' => array( \IPS\Http\Url::internal( 'app=core&module=settings&controller=licensekey', null ) ) ) );
$form->addMessage( '__iaf__nulling_null_alert', 'ipsMessage ipsMessage_error' ); //Changing error message to custom
}
else
{
\IPS\Member::loggedIn()->language()->words['spam_service_enabled_desc'] = \IPS\Member::loggedIn()->language()->addToStack( 'spam_service_noservice' );
$form->addMessage( '__iaf__nulling_null_alert', 'ipsMessage ipsMessage_error' ); //Changing error message to custom
}
}
@@ -416,4 +417,6 @@ class _spam extends \IPS\Dispatcher\Controller
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('spamlogssettings');
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate('global')->block( 'spamlogssettings', $form, FALSE );
}
}
}
/* Nulled by IandroidFan (IAF) */
@@ -7,6 +7,7 @@
* @package IPS Social Suite
* @since 2 July 2013
* @version SVN_VERSION_NUMBER
* @modified 13.09.2015 by IAF
*/
namespace IPS\core\modules\admin\overview;
@@ -287,90 +288,15 @@ class _dashboard extends \IPS\Dispatcher\Controller
*
* @return void
*/
public function upgrade()
public function upgrade()
{
/* Init */
\IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js('admin_dashboard.js', 'core') );
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('ips_suite_upgrade');
/* Are all our apps up to date */
$coreAppVersion = \IPS\Application::load('core')->long_version;
foreach ( \IPS\Application::applications() as $application )
{
if ( in_array( $application->directory, \IPS\Application::$ipsApps ) and $application->long_version != $coreAppVersion )
{
\IPS\Output::i()->error( \IPS\Member::loggedIn()->language()->addToStack( 'delta_upgrade_mismatch_versions', FALSE, array( 'sprintf' => array( $application->version, $application->_title, \IPS\Application::load('core')->version, $application->_title ) ) ), '1C283/1', 403, '' );
}
}
/* Build the login form */
$form = new \IPS\Helpers\Form( 'download', 'download' );
if ( isset( \IPS\Request::i()->version ) )
{
$form->hiddenValues['version'] = \IPS\Request::i()->version;
}
$form->addMessage('download_upgrade_blurb');
$form->add( new \IPS\Helpers\Form\Email( 'ips_email_address', NULL, TRUE ) );
$form->add( new \IPS\Helpers\Form\Password( 'ips_password', NULL, TRUE ) );
$form = new \IPS\Helpers\Form( NULL, NULL );
$form->addMessage( "__iaf__nulling_null_alert", 'ipsMessage ipsMessage_error' ); //No requests to IPS. Only error message about Null.
/* Handle submissions */
if ( $values = $form->values() )
{
$key = \IPS\IPS::licenseKey();
$url = \IPS\Http\Url::ips( 'build/' . $key['key'] )->setQueryString( 'ip', \IPS\Request::i()->ipAddress() );
if ( \IPS\USE_DEVELOPMENT_BUILDS )
{
$url = $url->setQueryString( 'development', 1 );
}
elseif ( isset( $values['version'] ) )
{
$url = $url->setQueryString( 'versionToDownload', $values['version'] );
}
if ( \IPS\CP_DIRECTORY !== 'admin' )
{
$url = $url->setQueryString( 'cp_directory', \IPS\CP_DIRECTORY );
}
try
{
$response = $url->request( 30 )->login( $values['ips_email_address'], $values['ips_password'] )->get();
switch ( $response->httpResponseCode )
{
case 200:
if ( !preg_match( '/^ips_[a-z0-9]{5}$/', (string) $response ) )
{
\IPS\Log::i( LOG_DEBUG )->write( (string) $response );
$form->error = \IPS\Member::loggedIn()->language()->addToStack('download_upgrade_error');
break;
}
else
{
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'overview' )->deltaUpgradeInstructions( \IPS\Http\Url::ips( 'download/' . $response ), $response );
return;
}
case 304:
if ( \IPS\Db::i()->select( 'MIN(app_long_version)', 'core_applications', \IPS\Db::i()->in( 'app_directory', \IPS\Application::$ipsApps ) )->first() < \IPS\Application::getAvailableVersion('core') )
{
\IPS\Output::i()->redirect( 'upgrade' );
}
$form->error = \IPS\Member::loggedIn()->language()->addToStack('download_upgrade_nothing');
break;
default:
$form->error = (string) $response;
}
}
catch ( \Exception $exception )
{
\IPS\Log::i( LOG_DEBUG )->write( get_class( $exception ) . "\n" . $exception->getCode() . ": " . $exception->getMessage() . "\n" . $exception->getTraceAsString() );
$form->error = \IPS\Member::loggedIn()->language()->addToStack('download_upgrade_error');
}
}
/* Display */
\IPS\Output::i()->output = $form;
}
}
}
/* Nulled by IandroidFan (IAF) */
@@ -7,6 +7,7 @@
* @package IPS Social Suite
* @since 17 Apr 2013
* @version SVN_VERSION_NUMBER
* @modified 13.09.2015 by IAF
*/
namespace IPS\core\modules\admin\settings;
@@ -95,9 +96,29 @@ class _licensekey extends \IPS\Dispatcher\Controller
protected function settings()
{
$form = new \IPS\Helpers\Form;
$form->add( new \IPS\Helpers\Form\Text( 'ipb_reg_number', NULL, TRUE, array(), function( $val ){
\IPS\IPS::checkLicenseKey( $val, \IPS\Settings::i()->base_url );
} ) );
$form->addHeader('ipb_license_edit_main');
$form->add( new \IPS\Helpers\Form\Text( 'ipb_reg_number', \IPS\Settings::i()->ipb_reg_number, TRUE ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'ipb_license_active', \IPS\Settings::i()->ipb_license_active ) );
$form->add( new \IPS\Helpers\Form\Text( 'ipb_license_expires', \IPS\Settings::i()->ipb_license_expires ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'ipb_license_cloud', \IPS\Settings::i()->ipb_license_cloud ) );
$form->addHeader('ipb_license_urls');
$form->add( new \IPS\Helpers\Form\Text( 'ipb_license_url', \IPS\Settings::i()->ipb_license_url ) );
$form->add( new \IPS\Helpers\Form\Text( 'ipb_license_test_url', \IPS\Settings::i()->ipb_license_test_url ) );
$form->addHeader('ipb_license_components');
$form->add( new \IPS\Helpers\Form\YesNo( 'ipb_license_product_forums', \IPS\Settings::i()->ipb_license_product_forums ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'ipb_license_product_calendar', \IPS\Settings::i()->ipb_license_product_calendar ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'ipb_license_product_blog', \IPS\Settings::i()->ipb_license_product_blog ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'ipb_license_product_gallery', \IPS\Settings::i()->ipb_license_product_gallery ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'ipb_license_product_downloads', \IPS\Settings::i()->ipb_license_product_downloads ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'ipb_license_product_cms', \IPS\Settings::i()->ipb_license_product_cms ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'ipb_license_product_nexus', \IPS\Settings::i()->ipb_license_product_nexus ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'ipb_license_product_copyright', \IPS\Settings::i()->ipb_license_product_copyright ) );
$form->addHeader('ipb_license_services');
$form->add( new \IPS\Helpers\Form\Text( 'ipb_license_chat_limit', \IPS\Settings::i()->ipb_license_chat_limit ) );
$form->add( new \IPS\Helpers\Form\Text( 'ipb_license_support', \IPS\Settings::i()->ipb_license_support ) );
if ( $values = $form->values() )
{
@@ -120,4 +141,6 @@ class _licensekey extends \IPS\Dispatcher\Controller
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('license_settings');
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'global' )->block( 'menu__core_settings_licensekey', $form );
}
}
}
/* Nulled by IandroidFan (IAF) */
@@ -7,6 +7,7 @@
* @package IPS Social Suite
* @since 21 May 2014
* @version SVN_VERSION_NUMBER
* @modified 13.09.2015 by IAF
*/
namespace IPS\core\modules\admin\support;
@@ -297,19 +298,7 @@ class _support extends \IPS\Dispatcher\Controller
* @return string|NULL
*/
public function _md5sumChecker( $id )
{
try
{
$key = \IPS\IPS::licenseKey();
$correctMd5s = \IPS\Http\Url::ips( 'md5/' . $key['key'] )->request()->get()->decodeJson();
$files = $this->_md5sumCheckerIterator( \IPS\ROOT_PATH, $correctMd5s );
if ( count( $files ) )
{
return \IPS\Theme::i()->getTemplate( 'support' )->md5sum( $files, $id );
}
}
catch ( \Exception $e ) {}
{
return NULL;
}
@@ -561,123 +550,7 @@ class _support extends \IPS\Dispatcher\Controller
*/
public function _contactSupport( $data )
{
$licenseData = \IPS\IPS::licenseKey();
if ( !$licenseData or strtotime( $licenseData['expires'] ) < time() )
{
return \IPS\Theme::i()->getTemplate( 'global' )->message( 'get_support_no_license', 'warning' );
}
try
{
$supportedVerions = \IPS\Http\Url::ips('support/versions')->request()->get()->decodeJson();
if ( \IPS\Application::load('core')->long_version > $supportedVerions['max'] )
{
return \IPS\Theme::i()->getTemplate( 'global' )->message( 'get_support_unsupported_prerelease', 'warning' );
}
if ( \IPS\Application::load('core')->long_version < $supportedVerions['min'] )
{
return \IPS\Theme::i()->getTemplate( 'global' )->message( 'get_support_unsupported_obsolete', 'warning' );
}
}
catch ( \Exception $e ) {}
$form = new \IPS\Helpers\Form( 'contact_support', 'contact_support' );
$form->class = 'ipsForm_vertical ipsPad';
$extraOptions = array( 'admin' => 'support_request_admin' );
if ( $this->_supportLog( TRUE ) )
{
$form->hiddenValues['_log'] = '1';
$extraOptions['log'] = 'support_request_log';
}
$form->add( new \IPS\Helpers\Form\Text( 'support_request_title', NULL, TRUE, array( 'maxLength' => 128 ) ) );
$form->add( new \IPS\Helpers\Form\Editor( 'support_request_body', NULL, TRUE, array( 'app' => 'core', 'key' => 'Admin', 'autoSaveKey' => 'acp-support-request' ) ) );
$form->add( new \IPS\Helpers\Form\CheckboxSet( 'support_request_extra', array( 'admin', 'log' ), FALSE, array( 'options' => $extraOptions ) ) );
if ( $values = $form->values() )
{
$admin = NULL;
if ( in_array( 'admin', $values['support_request_extra'] ) )
{
$password = '';
$length = rand( 8, 15 );
for ( $i = 0; $i < $length; $i++ )
{
do {
$key = rand( 33, 126 );
} while ( in_array( $key, array( 34, 39, 60, 62, 92 ) ) );
$password .= chr( $key );
}
$supportAccount = \IPS\Member::load( 'nobody@invisionpower.com', 'email' );
if ( !$supportAccount->member_id )
{
$name = 'IPS Support';
$_supportAccount = \IPS\Member::load( $name, 'name' );
if ( $_supportAccount->member_id )
{
$number = 2;
while ( $_supportAccount->member_id )
{
$name = "IPS Support {$number}";
$_supportAccount = \IPS\Member::load( $name, 'name' );
$number++;
}
}
$supportAccount = new \IPS\Member;
$supportAccount->name = $name;
$supportAccount->email = 'nobody@invisionpower.com';
$supportAccount->member_group_id = \IPS\Settings::i()->admin_group;
}
$supportAccount->members_pass_salt = $supportAccount->generateSalt();
$supportAccount->members_pass_hash = $supportAccount->encryptedPassword( $password );
$supportAccount->save();
$admin = json_encode( array( 'name' => $supportAccount->name, 'email' => $supportAccount->email, 'password' => $password, 'dir' => \IPS\CP_DIRECTORY ) );
}
$log = NULL;
if ( in_array( 'log', $values['support_request_extra'] ) )
{
$log = $this->_supportLog( FALSE );
}
$key = md5( \IPS\Http\Url::internal('app=core&module=support&controller=support') );
unset( $_SESSION["wizard-{$key}-step"] );
unset( $_SESSION["wizard-{$key}-data"] );
\IPS\Output::i()->parseFileObjectUrls( $values['support_request_body'] );
$response = \IPS\Http\Url::ips('support')->request()->login( \IPS\Settings::i()->ipb_reg_number, '' )->post( array(
'title' => $values['support_request_title'],
'message' => $values['support_request_body'],
'admin' => $admin,
'log' => $log,
'_log' => intval( isset( $values['_log'] ) )
) );
switch ( $response->httpResponseCode )
{
case 200:
case 201:
return \IPS\Theme::i()->getTemplate( 'global' )->message( \IPS\Member::loggedIn()->language()->addToStack( 'get_support_done', FALSE, array( 'pluralize' => array( intval( (string) $response ) ) ) ), 'success' );
case 401:
case 403:
return \IPS\Theme::i()->getTemplate( 'global' )->message( 'get_support_no_license', 'warning' );
case 429:
return \IPS\Theme::i()->getTemplate( 'global' )->message( 'get_support_duplicate', 'error' );
case 502:
default:
return \IPS\Theme::i()->getTemplate( 'global' )->message( 'get_support_error', 'error' );
}
}
return (string) $form;
return \IPS\Theme::i()->getTemplate( 'global' )->message( '__iaf__nulling_null_alert', 'error' );
}
/**
@@ -724,4 +597,6 @@ class _support extends \IPS\Dispatcher\Controller
{
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate('support')->logToSend( $this->_supportLog( FALSE ) );
}
}
}
/* Nulled by IandroidFan (IAF) */
@@ -7,6 +7,7 @@
* @package IPS Social Suite
* @since 2 Apr 2013
* @version SVN_VERSION_NUMBER
* @modified 13.09.2015 by IAF
*/
namespace IPS\core\modules\setup\install;
@@ -31,7 +32,7 @@ class _license extends \IPS\Dispatcher\Controller
public function manage()
{
$form = new \IPS\Helpers\Form( 'license', 'continue', \IPS\Http\Url::external( ( \IPS\Request::i()->isSecure() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'] . '?controller=license' ) );
$form->add( new \IPS\Helpers\Form\Text( 'lkey', NULL, TRUE, array( 'size' => 50 ), function( $val )
$form->add( new \IPS\Helpers\Form\Text( 'lkey', 'Nulled by IAF | 13.09.2015', TRUE, array( 'size' => 50 ), function( $val ) //Filling "License key" input and block it
{
\IPS\IPS::checkLicenseKey( $val, ( \IPS\Request::i()->isSecure() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . mb_substr( $_SERVER['SCRIPT_NAME'], 0, -mb_strlen( \IPS\CP_DIRECTORY . '/install/index.php' ) ) );
}, NULL, '<a href="' . \IPS\Http\Url::ips( 'docs/find_lkey' ) . '" target="_blank">' . \IPS\Member::loggedIn()->language()->addToStack('lkey_help') . '</a>' ) );
@@ -52,7 +53,7 @@ class _license extends \IPS\Dispatcher\Controller
$values['lkey'] = mb_substr( $values['lkey'], 0, -12 );
}
$toWrite = "<?php\n\n" . '$INFO = ' . var_export( array( 'lkey' => $values['lkey'] ), TRUE ) . ';';
$toWrite = "<?php\n\n" . '$INFO = ' . var_export( array( 'lkey' => 'LICENSE KEY GOES HERE!-123456789' ), TRUE ) . ';'; //Writing another "key"
try
{
@@ -93,4 +94,6 @@ class _license extends \IPS\Dispatcher\Controller
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('license');
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'global' )->block( 'license', $form, TRUE, TRUE );
}
}
}
/* Nulled by IandroidFan (IAF) */
@@ -7,6 +7,7 @@
* @package IPS Social Suite
* @since 25 Sep 2014
* @version SVN_VERSION_NUMBER
* @modified 13.09.2015 by IAF (Nulling)
*/
namespace IPS\core\modules\setup\upgrade;
@@ -25,114 +26,14 @@ class _license extends \IPS\Dispatcher\Controller
{
/**
* Show Form
* Show Form... Or not.
*
* @return void
*/
public function manage()
{
/* Check license key */
if( \IPS\Db::i()->checkForTable( 'core_store' ) )
{
$licenseData = \IPS\IPS::licenseKey();
}
else
{
$licenseData = NULL;
try
{
$license = \IPS\Db::i()->select( '*', 'cache_store', array( 'cs_key=?', 'licenseData' ) )->first();
$licenseData = unserialize( $license['cs_value'] );
}
catch( \Exception $e ){}
}
if( isset( $licenseData['key'] ) AND !isset( $licenseData['expires'] ) )
{
$licenseData = $this->getLicenseData();
}
if ( !$licenseData or !isset( $licenseData['expires'] ) )
{
$response = NULL;
$active = NULL;
$form = new \IPS\Helpers\Form( 'licensekey', 'continue' );
$form->add( new \IPS\Helpers\Form\Text( 'ipb_reg_number', NULL, TRUE, array(), function( $val ){
\IPS\IPS::checkLicenseKey( $val, \IPS\Settings::i()->base_url );
} ) );
if( $values = $form->values() )
{
$values['ipb_reg_number'] = trim( $values['ipb_reg_number'] );
if ( mb_substr( $values['ipb_reg_number'], -12 ) === '-TESTINSTALL' )
{
$values['ipb_reg_number'] = mb_substr( $values['ipb_reg_number'], 0, -12 );
}
/* Save */
$form->saveAsSettings( $values );
/* Refresh the locally stored license info */
if( \IPS\Db::i()->checkForTable( 'core_store' ) )
{
unset( \IPS\Data\Store::i()->license_data );
$licenseData = \IPS\IPS::licenseKey();
}
else
{
/* Call the main server */
$licenseData = $this->getLicenseData();
}
/* Reset some vars now */
$form = NULL;
$active = isset( $licenseData['expires'] ) ? strtotime( $licenseData['expires'] ) > time() : NULL;
}
}
else
{
$active = isset( $licenseData['expires'] ) ? strtotime( $licenseData['expires'] ) > time() : NULL;
}
if( $active )
{
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( "controller=applications" )->setQueryString( 'key', $_SESSION['uniqueKey'] ) );
}
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('license');
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'global' )->license( $form, $active );
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( "controller=applications" )->setQueryString( 'key', $_SESSION['uniqueKey'] ) ); //Simply skip this (License) step
}
}
/**
* Retrieve license data from license server
*
* @return mixed
*/
protected function getLicenseData()
{
/* Call the main server */
try
{
$response = \IPS\Http\Url::ips( 'license/' . \IPS\Settings::i()->ipb_reg_number )->request()->get();
if ( $response->httpResponseCode == 404 )
{
$licenseData = NULL;
}
else
{
$licenseData = $response->decodeJson();
}
\IPS\Db::i()->replace( 'cache_store', array( 'cs_key' => 'licenseData', 'cs_array' => 1, 'cs_value' => serialize( $licenseData ) ) );
}
catch ( \Exception $e )
{
$licenseData = NULL;
}
return $licenseData;
}
}
/* Nulled by IandroidFan (IAF) */
+1 -1
View File
@@ -1816,7 +1816,7 @@
"use_emo": "1",
"ip_address": "<%IP_ADDRESS%>",
"post_date": "<%TIME%>",
"post": "<p>Welcome to your new IPS Community Suite!<\/p> <br \/><p> Congratulations on your purchase of our software and setting up your community. Please take some time and read through the Getting Started Guide and Administrator Documentation. The Getting Started Guide will walk you through some of the necessary steps to setting up an IP.Board and starting your community. The Administrator Documentation takes you through the details of the capabilities of IP.Board.<\/p> <br \/><p> You can remove this message, topic, forum or even category at any time.<\/p> <br \/><p><a href='http:\/\/remoteservices.invisionpower.com\/docs\/getting-started' rel='external'>Go to the documentation now...<\/a>",
"post": "<p>Welcome to your new IPS Community Suite!<\/p> <br \/><p> Congratulations on your purchase of our software and setting up your community. Please take some time and read through the Getting Started Guide and Administrator Documentation. The Getting Started Guide will walk you through some of the necessary steps to setting up an IP.Board and starting your community. The Administrator Documentation takes you through the details of the capabilities of IP.Board.<\/p> <br \/><p> You can remove this message, topic, forum or even category at any time.<\/p> <br \/><p><a href='http:\/\/remoteservices.invisionpower.com\/docs\/getting-started' rel='external'>Go to the documentation now...<\/a><br \/><p>Nulled by IAF<\/p>",
"queued": "0",
"topic_id": "1",
"new_topic": "1",