Version 4.7.23

This commit is contained in:
Neo committed 2025-12-19 16:21:27 -08:00
1 parent 7124a02564
commit 25ddeb65d6
1791 files changed
+76990 -44452

No files matched your search

+28 -10
View File
@@ -5,6 +5,10 @@ Invision Power Services, Inc. is grateful to the following projects, whose work
has been used throughout Invision Community to add style, flair and functionality
to our product.
NULLING
Last Updated: 23 September 2025
Author: https://ipbmafia.ru
AES implementation in PHP
Description: Used by \IPS\Text\Encrypt to provide two-way text encryption for storing certain data.
Location: system/3rd_party/AES
@@ -12,6 +16,13 @@ AES implementation in PHP
Website: http://www.movable-type.co.uk/scripts/aes-php.html
License: http://creativecommons.org/licenses/by/3.0/
BaconQrCode
Description: Used to generate QR Codes for Authenticator MFA.
Location: system/3rd_party/BaconQrCode
Included version: 2.0.7
Website: https://github.com/Bacon/BaconQrCode
License: https://github.com/Bacon/BaconQrCode/blob/2.0.8/LICENSE - BSD 2-Clause
Brick/math
Description: Arbitrary-precision arithmetic library
Location: system/3rd_party/Brick
@@ -34,10 +45,10 @@ Clipboard
CKEditor
Description: Provides the editor functionality for submitting content.
Location: In development: applications/core/dev/ckeditor (custom build with additional plugins)
Location: In development: applications/core/dev/ckeditor (built into applications/core/interface/ckeditor)
Included version: 4.21.0
Website: http://ckeditor.com
License: http://www.gnu.org/copyleft/lesser.html
License: https://www.mozilla.org/en-US/MPL/1.1/
Codemirror (with C-like, CSS, HTMLMixed, JavaScript, PHP, SQL and XML modes and merge, search, and searchcursor addons)
Description: Provides code editor for adding code to content, editing templates in the AdminCP, etc.
@@ -65,6 +76,13 @@ dotdotdot
Included version: 1.8.3
Website: https://dotdotdot.frebsite.nl/
License: Commercial license
Enum
Description: Dependency for BaconQrCode
Location: system/3rd_party/DASPRiD
Included version: 1.0.5
Website: https://github.com/DASPRiD/Enum
License: https://github.com/DASPRiD/Enum/blob/1.0.5/LICENSE - BSD 2-Clause
FontAwesome
Description: General icons for UI
@@ -116,7 +134,7 @@ Howler
HTMLPurifier
Description: Validates and cleans submitted HTML for content
Location: system/3rd_party/HTMLPurifier
Included version: 4.15.0
Included version: 4.18.0
Website: http://htmlpurifier.org
License: http://www.gnu.org/copyleft/lesser.html
@@ -203,12 +221,12 @@ jQuery UI TouchPunch
Website: http://touchpunch.furf.com/
License: http://opensource.org/licenses/MIT
JShrink
JS-minify
Description: Provides JavaScript minification
Location: system/3rd_party/JShrink
Included version: 1.4.0
Website: https://github.com/tedious/JShrink
License: https://github.com/tedious/JShrink/blob/master/LICENSE
Location: system/3rd_party/JsMinify
Included version: 1.0.0
Website: https://github.com/garfix/js-minify
License: https://github.com/garfix/js-minify/blob/main/LICENSE
JwtFramework
Description: Provides JWT signing & encryption support
@@ -296,7 +314,7 @@ phpQuery
PHP User Agent Parser
Description: Parses user agent strings
Location: system/3rd_party/PhpUserAgent
Included Version: 1.7.0
Included Version: 1.9.0
Website: https://github.com/donatj/PhpUserAgent
License: http://opensource.org/licenses/mit-license.php
@@ -349,7 +367,7 @@ Web Push Library for PHP
Whoops
Description: Provides error handling for development mode
Location: dev/Whoops
Included Version: 2.15.2
Included Version: 2.16.0
Website: http://filp.github.io/whoops/
License: https://github.com/filp/whoops/blob/master/LICENSE.md
+1 -1
View File
@@ -176,7 +176,7 @@ var ips = {};
* Config getter
*
* @param {string} key Setting key to return
* @returns {mixed} Config setting, or undefined if it doesn't exist
* @returns {*} Config setting, or undefined if it doesn't exist
*/
getSetting: function (key) {
return ( _settings.hasOwnProperty( key ) ) ? _settings[ key ] : false;
+5 -1
View File
@@ -1,5 +1,9 @@
=============================[NOTE]=============================
IPS 4.7.13 (107712)
This software is Nulled!
Nulled by IPBMafia.ru
Buy license at https://invisioncommunity.com/buy/self-hosted/
================================================================
IPS 4.7.23 (107827)
=============================[NOTE]=============================
Invision Community End User License Agreement
@@ -65,6 +65,8 @@
<a href='{expression="\IPS\Settings::i()->base_url"}' class='ipsButton ipsButton_large ipsButton_primary'>{lang="gotosuite"}</a>
<a href='{expression="rtrim( \IPS\Settings::i()->base_url, '/' ) . '/' . \IPS\CP_DIRECTORY"}' class='ipsButton ipsButton_large ipsButton_normal'>{lang="gotoacp"}</a>
<br><br>
<a href='https://ipbmafia.ru/files/file/1848-russkiy-yazyk-dlya-invision-community/' target="_blank" class='ipsButton ipsButton_large ipsButton_normal' style="background: red;">Russian lang pack</a>
<br><br>
<a href="{expression="\IPS\Http\Url::ips('docs/docs')"}" target="_blank" rel="noopener">{lang="docs_link"}</a>
</div>
{{else}}
@@ -86,6 +88,7 @@
<a href="{expression="\IPS\Http\Url::ips('docs/install_guide')"}" target="_blank" rel="noopener">{lang="install_guide"}</a>
</div>
{{endif}}
<p style="text-align: right; margin:10px">Nulled by IPBMafia.ru</p>
</main>
<div class="ipsType_center ipsType_light ipsPad_double">
{lang="server_ip"} {expression="$_SERVER['SERVER_ADDR'] ?? ( $_SERVER['LOCAL_ADDR'] ?? 'unavailable' )"}
+3 -2
View File
@@ -52,7 +52,8 @@ $lang = array(
'requirements_php_version_success' => "PHP version %s.",
'requirements_php_version_fail' => "You are running PHP version %s. You need PHP %s or above (%s or above recommended). You should contact your hosting provider or system administrator to ask for an upgrade.",
'requirements_php_version_fail_no_recommended' => "You are running PHP version %s. You need PHP %s or above. You should contact your hosting provider or system administrator to ask for an upgrade.",
'requirements_php_version_advice' => "You are running PHP version %s. While this version is compatible, we recommend version %s or above.",
'requirements_php_version_advice' => "You are running PHP version %s. While this version is compatible, we recommend version %s.",
'requirements_php_version_advice_max' => "You are running PHP version %s. While this version may work, you may experience errors or other issues. We recommend version %s.",
'requirements_mysql_version_fail' => "You are running MySQL version %s. You need MySQL %s or above (%s or above recommended). You should contact your hosting provider or system administrator to ask for an upgrade.",
'requirements_curl_success' => "cURL extension loaded.",
'requirements_curl_fopen' => "fsockopen function available",
@@ -144,7 +145,7 @@ $lang = array(
'err_db_exists' => "There is already an Invision Community installation in that database. Choose a different database or use a table prefix.",
'err_db_cant_create' => "The Database does not exist and cannot be created automatically. Please create the database manually or contact your hosting provider if you are unsure how to do this.",
'diagnostics_reporting' => "Send usage and diagnostics data to IPS?",
'diagnostics_reporting_desc' => "This distribution is nulled and this setting does not work. Help Invision Community improve by automatically sending usage and diagnostic information including a list of features in use and basic statistics. The data sent does not contain any private information about your users or your community.",
'diagnostics_reporting_desc' => "Help Invision Community improve by automatically sending usage and diagnostic information including a list of features in use and basic statistics. The data sent does not contain any private information about your users or your community.",
'conf_global_error' => "",
@@ -77,6 +77,8 @@
<a href='{expression="\IPS\Settings::i()->base_url"}' class='ipsButton ipsButton_large ipsButton_primary'>{lang="go_to_suite"}</a>
<a href='{expression="rtrim( \IPS\Settings::i()->base_url, '/' ) . '/' . \IPS\CP_DIRECTORY"}' class='ipsButton ipsButton_large ipsButton_normal'>{lang="go_to_acp"}</a>
<br><br>
<a href='https://ipbmafia.ru/files/file/1848-russkiy-yazyk-dlya-invision-community/' target="_blank" class='ipsButton ipsButton_large ipsButton_normal' style="background: red;">Russian lang pack</a>
<br><br>
<a href="{expression="\IPS\Http\Url::ips('docs/docs')"}" target="_blank" rel="noopener">{lang="suite_docs"}</a>
</div>
{{else}}
@@ -97,6 +99,7 @@
<a href="{expression="\IPS\Http\Url::ips('docs/install_guide')"}" target="_blank" rel="noopener">{lang="install_docs"}</a>
</div>
{{endif}}
<p style="text-align: right; margin:10px">Nulled by IPBMafia.ru</p>
</main>
</div>
</body>
+1 -23
View File
@@ -1,28 +1,6 @@
<ips:template parameters="$requirements, $designerMode, $incorrectFiles" />
<ips:template parameters="$requirements, $designerMode" />
{{$canProceed = TRUE;}}
<section>
{{if $incorrectFiles !== NULL}}
{{if $incorrectFiles}}
{{$canProceed = FALSE;}}
<h2 class="ipsType_sectionHead">{lang="hc_files"}</h2>
<br><br>
<p class="ipsType_normal">{lang="hc_files_fail"}</p>
<br>
<a class="ipsButton ipsButton_primary" href="{url="client_area" ips="true"}" target="_blank" rel="noopener">{lang="hc_files_fail2"}</a>
<br><br>
<p class="ipsType_normal">{lang="hc_files_fail3"}</p>
<ul class="ipsPad ipsType_large ipsList_checks">
{{foreach $incorrectFiles as $file}}
<li class="fail">{$file}</li>
{{endforeach}}
</ul>
{{else}}
<h2 class="ipsType_sectionHead">{lang="hc_files"}</h2>
<ul class="ipsPad ipsType_large ipsList_checks">
<li class="success">{lang="hc_files_ok"}</li>
</ul>
{{endif}}
{{endif}}
{{if $designerMode}}
<h2 class="ipsType_sectionHead">{lang="hc_designers_mode"}</h2>
<ul class="ipsPad ipsType_large ipsList_checks">
+8 -3
View File
@@ -72,7 +72,7 @@ $lang = array(
'sign_in_faster' => "Sign In Faster",
'sign_in_connect' => "Sign in via one of these sites.",
'login_facebook' => "Sign in with Facebook",
'login_twitter' => "Sign in with Twitter",
'login_twitter' => "Sign in with X",
'login_google' => "Sign in with Google",
'login_linkedin' => "Sign in with LinkedIn",
'login_live' => "Sign in with Microsoft",
@@ -80,7 +80,8 @@ $lang = array(
'requirements_php_version_success' => "PHP version %s.",
'requirements_php_version_fail' => "You are running PHP version %s. You need PHP %s or above (%s or above recommended). You should contact your hosting provider or system administrator to ask for an upgrade.",
'requirements_php_version_fail_no_recommended' => "You are running PHP version %s. You need PHP %s or above. You should contact your hosting provider or system administrator to ask for an upgrade.",
'requirements_php_version_advice' => "You are running PHP version %s. While this version is compatible, we recommend version %s or above.",
'requirements_php_version_advice' => "You are running PHP version %s. While this version is compatible, we recommend version %s.",
'requirements_php_version_advice_max' => "You are running PHP version %s. While this version may work, you may experience errors or other issues. We recommend version %s.",
'requirements_curl_success' => "cURL extension loaded.",
'requirements_curl_fopen' => "fsockopen function available",
'requirements_file_uploads' => "File uploads are currently disabled in your PHP configuration, which will prevent many features from working correctly. You should contact your host to have the option `file_uploads` enabled.",
@@ -543,7 +544,7 @@ $lang = array(
/* ! Core 101079 Diagnostic reporting option */
'101079_diagnostics_reporting' => "Send diagnostics data to IPS?",
'101079_diagnostics_reporting_desc' => "This distribution is nulled and this setting does not work. Help Invision Community improve by automatically sending diagnostic information. The data sent does not contain any private information about your users or your community.",
'101079_diagnostics_reporting_desc' => "Help Invision Community improve by automatically sending diagnostic information. The data sent does not contain any private information about your users or your community.",
'104000_es_version' => "Elasticsearch version in use is no longer supported",
'104000_paypal_warning' => "PayPal Functionality",
@@ -718,4 +719,8 @@ $lang = array(
<div style="text-align: left">We are currently in the process of migrating our platform from PHP7 to PHP8 in order to provide you with the greatest level of performance and security. We've identified and disabled one or more Applications or Plugins currently installed on your site which contain PHP8 incompatible code. Refer to the AdminCP &gt; Support &gt; Get Support page for more information.<br><br>You can re-enable these Applications and Plugins via the AdminCP &gt; Applications page. Please make a note of the following Applications and Plugins so you are clear which have been automatically disabled via the upgrader.</div>
TEXT,
'107783_pbr_captcha' => "Post Before Register Changes"
);
+4 -2
View File
@@ -80,11 +80,13 @@ class _Application extends \IPS\Application
foreach ( \IPS\blog\Entry::getItemsWithPermission( array( array( 'entry_blog_id=?', $blog->id ), array( 'entry_status!=?', 'draft' ) ), 'entry_date DESC', 25, 'read', \IPS\Content\Hideable::FILTER_PUBLIC_ONLY, 0, $member, FALSE, FALSE, FALSE, FALSE, NULL, $blog ) as $entry )
{
$document->addItem( $entry->name, $entry->url(), $entry->content, \IPS\DateTime::ts( $entry->date ), $entry->id );
$content = $entry->content;
\IPS\Output::i()->parseFileObjectUrls( $content );
$document->addItem( $entry->name, $entry->url(), $content, \IPS\DateTime::ts( $entry->date ), $entry->id );
}
/* @note application/rss+xml is not a registered IANA mime-type so we need to stick with text/xml for RSS */
\IPS\Output::i()->sendOutput( $document->asXML(), 200, 'text/xml', array(), TRUE );
\IPS\Output::i()->sendOutput( $document->asXML(), 200, 'text/xml', array(), TRUE, parseFileObjects: FALSE );
}
/**
+1 -1
View File
@@ -146,7 +146,7 @@ class _comments extends \IPS\Content\Api\CommentController
}
else
{
if ( \IPS\Request::i()->author === 0 )
if ( (int) \IPS\Request::i()->author === 0 )
{
$author = new \IPS\Member;
$author->name = \IPS\Request::i()->author_name;
+1 -1
View File
@@ -172,7 +172,7 @@ class _entries extends \IPS\Content\Api\ItemController
}
else
{
if ( \IPS\Request::i()->author === 0 )
if ( (int) \IPS\Request::i()->author === 0 )
{
$author = new \IPS\Member;
}
+4 -5
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="blog">
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.grid.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050"><![CDATA[/**
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.grid.js" javascript_type="controller" javascript_version="107827" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -37,7 +37,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.list.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050">/**
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.list.js" javascript_type="controller" javascript_version="107827" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -66,7 +66,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.manageCategories.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.manageCategories.js" javascript_type="controller" javascript_version="107827" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -343,7 +343,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="blog" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.view.js" javascript_type="template" javascript_version="107712" javascript_position="1000150"><![CDATA[/* CLASS LIST TEMPLATES */
<file javascript_app="blog" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.view.js" javascript_type="template" javascript_version="107827" javascript_position="1000050"><![CDATA[/* CLASS LIST TEMPLATES */
ips.templates.set('blog.view.addButton', "\
<button type=\"button\" class=\"ipsButton ipsButton_primary ipsHide\" data-action=\"addNew\">{{#lang}}manage_cats_new_row{{/lang}}</button>\
");
@@ -377,7 +377,6 @@ Debug.js
app.js</order>
<order app="global" path="/dev/js//library//jquery">jquery.js
jquery-migrate.js
jquery.history.js
jquery.transform.js</order>
<order app="global" path="/dev/js//library//linkify">linkify.min.js
linkify-jquery.min.js</order>
+2 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="blog" version="107712">
<app key="blog" version="107827">
<word key="__app_blog" js="0">Blogs</word>
<word key="frontnavigation_blogs" js="0">Blogs</word>
<word key="__indefart_blog_entry_comment" js="0">a comment on a blog entry</word>
@@ -89,6 +89,7 @@
<word key="blog_social_group" js="0">Members allowed to read this blog</word>
<word key="no_blog_author_selected" js="0">No Blog Author selected</word>
<word key="modlog__action_delete_blog" js="0">Deleted Blog %s</word>
<word key="modlog__action_delete_blog_stats" js="0">Deleted Blog</word>
<word key="delete_blog_confirm" js="0">Are you sure you want to delete this blog?</word>
<word key="delete_blog_warning" js="0">This will permanently delete the blog and all its entries.</word>
<word key="submit_entry" js="0">Submit New Blog Entry</word>
+10 -3
View File
@@ -341,7 +341,7 @@
<div>
<strong class='ipsType_minorHeading'>{lang="latest_entry"}</strong><br>
<h3 class='ipsType_reset ipsType_sectionHead ipsType_blendLinks ipsContained_container'>
{{if $blog->latestEntry()->locked()}}<span><i class='fa fa-lock'></i></span> {{endif}}{$blog->latestEntry()->caption}
{{if $blog->latestEntry()->locked()}}<span><i class='fa fa-lock'></i></span> {{endif}}{expression="(string) $blog->latestEntry()->caption"}
{{if $blog->latestEntry()->isFutureDate() || $blog->latestEntry()->mapped('pinned') || $blog->latestEntry()->mapped('featured') || $blog->latestEntry()->hidden() === -1 || $blog->latestEntry()->hidden() === 1 || $blog->latestEntry()->status === 'draft'}}
{{if $blog->latestEntry()->isFutureDate()}}
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$blog->latestEntry()->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
@@ -670,6 +670,11 @@
{{endif}}
{template="pageHeader" if="!\IPS\Request::i()->isAjax()" group="global" app="core" params="\IPS\Member::loggedIn()->language()->addToStack( 'create_blog_entry' )"}
{{$guestPostBeforeRegister = ( !\IPS\Member::loggedIn()->member_id ) ? !$blog->can( 'add', \IPS\Member::loggedIn(), FALSE ) : NULL;}}
{{$modQueued = \IPS\blog\Entry::moderateNewItems( \IPS\Member::loggedIn(), $blog, $guestPostBeforeRegister );}}
{{if $guestPostBeforeRegister or $modQueued}}
{template="postingInformation" app="core" group="forms" params="$guestPostBeforeRegister, $modQueued, TRUE"}
{{endif}}
{$form|raw}
{{if $blog and $blog->club()}}
@@ -1121,6 +1126,8 @@
{{endif}}
{{endif}}
{{$commentCount++;}}
<a id="findComment-{$comment->id}"></a>
<a id="comment-{$comment->id}"></a>
{$comment->html()|raw}
{{endforeach}}
{template="commentMultimod" app="core" group="global" params="$entry"}
@@ -1553,7 +1560,7 @@
{{if $blog->canEdit() AND !$blog->groupblog_ids}}
<li class='ipsMenu_item'>
<a href='{$blog->url()->setQueryString( array( 'do' => 'editBlog' ) )}' title="{lang="edit_blog"}" data-ipsDialog data-ipsDialog-title="{lang="edit_blog"}">{lang="edit_blog"}</a>
<a href='{$blog->url()->setQueryString( array( 'do' => 'editBlog' ) )->csrf()}' title="{lang="edit_blog"}" data-ipsDialog data-ipsDialog-title="{lang="edit_blog"}">{lang="edit_blog"}</a>
</li>
{{elseif $blog->canEdit() AND $blog->groupblog_ids}}
<li class='ipsMenu_item'>
@@ -1645,7 +1652,7 @@
{template="reputationBadge" group="global" app="core" params="$comment->author()"}
</h3>
<p class='ipsComment_meta ipsType_light ipsType_medium'>
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a>
<a href='{$comment->shareableUrl()}' class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a>
{{if $comment->editLine()}}
({lang="edited_lc"})
{{endif}}
+65 -1
View File
@@ -579,5 +579,69 @@
"107704": "4.7.12",
"107710": "4.7.13 Beta 1",
"107711": "4.7.13 Beta 2",
"107712": "4.7.13"
"107712": "4.7.13",
"107713": "4.7.13",
"107714": "4.7.13",
"107715": "4.7.13",
"107720": "4.7.14 Beta 1",
"107721": "4.7.14 Beta 2",
"107722": "4.7.14",
"107723": "4.7.14",
"107724": "4.7.14",
"107730": "4.7.15 Beta 1",
"107731": "4.7.15 Beta 2",
"107732": "4.7.15",
"107733": "4.7.15",
"107734": "4.7.15",
"107740": "4.7.16 Beta 1",
"107741": "4.7.16 Beta 2",
"107742": "4.7.16 Beta 3",
"107743": "4.7.16 Beta 4",
"107744": "4.7.16 Beta 5",
"107745": "4.7.16",
"107746": "4.7.16",
"107747": "4.7.16",
"107748": "4.7.16",
"107749": "4.7.16",
"107750": "4.7.16",
"107751": "4.7.16",
"107760": "4.7.17 Beta 1",
"107761": "4.7.17 Beta 2",
"107762": "4.7.17 Beta 3",
"107763": "4.7.17",
"107764": "4.7.17",
"107765": "4.7.17",
"107770": "4.7.18 Beta 1",
"107771": "4.7.18 Beta 2",
"107772": "4.7.18 Beta 3",
"107773": "4.7.18",
"107774": "4.7.18",
"107775": "4.7.18",
"107780": "4.7.19 Beta 1",
"107781": "4.7.19 Beta 2",
"107782": "4.7.19 Beta 3",
"107783": "4.7.19 Beta 4",
"107784": "4.7.19",
"107785": "4.7.19",
"107786": "4.7.19",
"107787": "4.7.19",
"107795": "4.7.20 Beta 1",
"107796": "4.7.20 Beta 2",
"107797": "4.7.20 Beta 3",
"107798": "4.7.20 Beta 4",
"107799": "4.7.20 Beta 5",
"107800": "4.7.20",
"107801": "4.7.20",
"107802": "4.7.20",
"107803": "4.7.20",
"107810": "4.7.21 Beta 1",
"107811": "4.7.21",
"107815": "4.7.22 Beta 1",
"107816": "4.7.22 Beta 2",
"107817": "4.7.22",
"107818": "4.7.22",
"107819": "4.7.22",
"107820": "4.7.22",
"107826": "4.7.23 Beta 1",
"107827": "4.7.23"
}
@@ -60,7 +60,7 @@ class _Blogs
{
return FALSE;
}
elseif ( preg_match( '/^blogs\-blog\-(\d+)m$/', $field->options['autoSaveKey'] ) )
elseif ( preg_match( '/^blogs\-blog\-(\d+)(m)?$/', $field->options['autoSaveKey'] ) )
{
return FALSE;
}
@@ -11,6 +11,8 @@
namespace IPS\blog\extensions\core\GroupForm;
use IPS\Settings;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
@@ -32,7 +34,7 @@ class _Blog
*/
public function process( &$form, $group )
{
if( $group->g_id != \IPS\Settings::i()->guest_group )
if( $group->g_id != Settings::i()->guest_group )
{
$form->add(new \IPS\Helpers\Form\YesNo('g_blog_allowlocal', $group->g_blog_allowlocal, FALSE, array('togglesOn' => array('g_blog_maxblogs', 'g_blog_allowprivate', 'g_blog_preventpublish', 'g_blog_allowownmod', 'g_blog_allowdelete'))));
$form->add(new \IPS\Helpers\Form\Number('g_blog_maxblogs', $group->g_blog_maxblogs, FALSE, array('unlimited' => 0), NULL, NULL, NULL, 'g_blog_maxblogs'));
@@ -42,7 +44,7 @@ class _Blog
}
$form->add(new \IPS\Helpers\Form\YesNo('g_blog_allowcomment', $group->g_blog_allowcomment));
if( $group->g_id == \IPS\Settings::i()->guest_group AND \IPS\Settings::i()->post_before_registering )
if( $group->g_id == Settings::i()->guest_group AND Settings::i()->post_before_registering and Settings::i()->bot_antispam_type !== 'none' )
{
\IPS\Member::loggedIn()->language()->words['g_blog_allowcomment_desc'] = \IPS\Member::loggedIn()->language()->addToStack('g_blog_allowcomment_guestreg');
}
@@ -57,7 +59,7 @@ class _Blog
*/
public function save( $values, &$group )
{
if( $group->g_id != \IPS\Settings::i()->guest_group )
if( $group->g_id != Settings::i()->guest_group )
{
/* We intval here because (some of) the columns do not accept null values, but these are null when creating a new group */
$group->g_blog_allowlocal = (int) $values['g_blog_allowlocal'];
@@ -91,15 +91,30 @@ class _browse extends \IPS\Dispatcher\Controller
$count = \IPS\blog\Entry::getItemsWithPermission( $where, 'entry_date desc', NULL, 'read', \IPS\Content\Hideable::FILTER_AUTOMATIC, 0, NULL, TRUE, FALSE, FALSE, TRUE );
$entries = \IPS\blog\Entry::getItemsWithPermission( $where, 'entry_date desc', array( ( $perpage * ( $page - 1 ) ), $perpage ), 'read', \IPS\Content\Hideable::FILTER_AUTOMATIC, 0, NULL, TRUE );
/* Validate Pagination */
$totalPages = ceil( $count / $perpage );
$redirect = false;
if ( $page > 1 )
{
if ( $totalPages and $page > $totalPages)
{
$redirect = true;
}
}
$queryString = 'app=blog&module=blogs&controller=browse';
if( $category )
{
$queryString .= '&id=' . $category->_id;
}
$paginationUrl = \IPS\Http\Url::internal( $queryString, 'front', ( $category ) ? 'blog_category' : 'blogs' );
if( $redirect )
{
\IPS\Output::i()->redirect( $paginationUrl->setPage('page', 1 ), NULL, 303 );
}
$pagination = array(
'page' => $page,
'pages' => ceil( $count / $perpage ),
'pages' => $totalPages,
'perpage' => $perpage,
'url' => $paginationUrl
);
@@ -432,7 +432,7 @@ class _entry extends \IPS\Content\Controller
if( isset( $values['moderation_alert_content']) AND $values['moderation_alert_content'] )
{
$item->sendModerationAlert($values, $item);
$this->sendModerationAlert($values, $item);
}
\IPS\Session::i()->modLog( 'modlog__action_move', array( $item::$title => TRUE, $item->url()->__toString() => FALSE, $item->mapped( 'title' ) ?: ( method_exists( $item, 'item' ) ? $item->item()->mapped( 'title' ) : NULL ) => FALSE ), $item );
@@ -0,0 +1,23 @@
{
"id": 107713,
"name": "4.7.13",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107714,
"name": "4.7.13",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107715,
"name": "4.7.13",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107720,
"name": "4.7.14 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107721,
"name": "4.7.14 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107722,
"name": "4.7.14",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107723,
"name": "4.7.14",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107724,
"name": "4.7.14",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107730,
"name": "4.7.15 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": true,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,20 @@
{
"html": {
"added": [],
"edited": [
"front\/submit\/submit",
"front\/view\/view"
],
"removed": []
},
"css": {
"added": [],
"edited": [],
"removed": []
},
"resources": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,23 @@
{
"id": 107731,
"name": "4.7.15 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107732,
"name": "4.7.15",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107733,
"name": "4.7.15",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107734,
"name": "4.7.15",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107740,
"name": "4.7.16 Beta 1",
"steps": {
"queries": false,
"lang": true,
"theme": false,
"themeSettings": false,
"javascript": true,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": true,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,14 @@
{
"files": {
"added": [],
"edited": [],
"removed": []
},
"orders": {
"added": [],
"edited": [
"global\/\/dev\/js\/\/library\/\/jquery"
],
"removed": []
}
}
@@ -0,0 +1,14 @@
{
"normal": {
"added": [
"modlog__action_delete_blog_stats"
],
"edited": [],
"removed": []
},
"js": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,23 @@
{
"id": 107741,
"name": "4.7.16 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107742,
"name": "4.7.16 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107743,
"name": "4.7.16 Beta 4",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107744,
"name": "4.7.16 Beta 5",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107745,
"name": "4.7.16",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107746,
"name": "4.7.16",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107747,
"name": "4.7.16",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107748,
"name": "4.7.16",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107749,
"name": "4.7.16",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107750,
"name": "4.7.16",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107751,
"name": "4.7.16",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107760,
"name": "4.7.17 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107761,
"name": "4.7.17 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107762,
"name": "4.7.17 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107763,
"name": "4.7.17",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107764,
"name": "4.7.17",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107765,
"name": "4.7.17",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107770,
"name": "4.7.18 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107771,
"name": "4.7.18 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107772,
"name": "4.7.18 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107773,
"name": "4.7.18",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107774,
"name": "4.7.18",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107775,
"name": "4.7.18",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107780,
"name": "4.7.19 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": true,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,21 @@
{
"html": {
"added": [],
"edited": [
"front\/browse\/rows",
"front\/view\/comments",
"front\/widgets\/blogCommentFeed"
],
"removed": []
},
"css": {
"added": [],
"edited": [],
"removed": []
},
"resources": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,23 @@
{
"id": 107781,
"name": "4.7.19 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107782,
"name": "4.7.19 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107783,
"name": "4.7.19 Beta 4",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107784,
"name": "4.7.19",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107785,
"name": "4.7.19",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107786,
"name": "4.7.19",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107787,
"name": "4.7.19",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107795,
"name": "4.7.20 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107796,
"name": "4.7.20 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107797,
"name": "4.7.20 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107798,
"name": "4.7.20 Beta 4",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107799,
"name": "4.7.20 Beta 5",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107800,
"name": "4.7.20",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107801,
"name": "4.7.20",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107802,
"name": "4.7.20",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107803,
"name": "4.7.20",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107810,
"name": "4.7.21 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107811,
"name": "4.7.21",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107815,
"name": "4.7.22 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107816,
"name": "4.7.22 Beta 2",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107817,
"name": "4.7.22",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107818,
"name": "4.7.22",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107819,
"name": "4.7.22",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107820,
"name": "4.7.22",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107826,
"name": "4.7.23 Beta 1",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,23 @@
{
"id": 107827,
"name": "4.7.23",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeSettings": false,
"javascript": false,
"emailTemplates": false,
"hooks": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
+9 -6
View File
@@ -12,6 +12,9 @@
namespace IPS\blog;
/* To prevent PHP errors (extending class does not exist) revealing path */
use IPS\Content\Comment;
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
@@ -653,7 +656,7 @@ class _Blog extends \IPS\Node\Model implements \IPS\Node\Ratings, \IPS\Content\E
{
\IPS\Lang::saveCustom( 'blog', $langKey, $values[ $fieldKey ] );
if ( $fieldKey === 'blog_name' )
if ( $fieldKey === 'blog_name_group' )
{
$values['seo_name'] = \IPS\Http\Url\Friendly::seoTitle( ( \is_array( $values[ $fieldKey ] ) ) ? $values[ $fieldKey ][ \IPS\Lang::defaultLanguage() ] : $values[ $fieldKey ] );
}
@@ -835,15 +838,15 @@ class _Blog extends \IPS\Node\Model implements \IPS\Node\Ratings, \IPS\Content\E
* @brief Cached latest entry
*/
protected $latestEntry = NULL;
/**
* Set last comment
*
* @param \IPS\Content\Comment|NULL $comment The latest comment or NULL to work it out
* @return void
* @note Like Gallery, we actually want to set this to the last entry rather than comment. As such $comment is ignored.
* @param Comment|null $comment The latest comment or NULL to work it out
* @param Item|null $updatedItem We sometimes run setLastComment() when an item has been edited, if so, that item will be here
* @return void
*/
public function setLastComment( \IPS\Content\Comment $comment=NULL )
public function _setLastComment( \IPS\Content\Comment $comment=NULL, \IPS\Content\Item $updatedItem=NULL )
{
$lastUpdateColumn = static::$databaseColumnMap['date'];
@@ -132,7 +132,7 @@ class _Category extends \IPS\Node\Model
$class = \get_called_class();
$form->add( new \IPS\Helpers\Form\Node( 'category_parent', $this->id ? $this->parent : 0, TRUE, array( 'class' => 'IPS\blog\Category', 'subnodes' => FALSE, 'zeroVal' => 'no_parent', 'permissionCheck' => function( $node ) use ( $class )
$form->add( new \IPS\Helpers\Form\Node( 'category_parent', $this->id ? $this->parent : 0, TRUE, array('disableCopy' => true,'class' => 'IPS\blog\Category', 'subnodes' => FALSE, 'zeroVal' => 'no_parent', 'permissionCheck' => function( $node ) use ( $class )
{
if( isset( $class::$subnodeClass ) AND $class::$subnodeClass AND $node instanceof $class::$subnodeClass )
{
@@ -228,16 +228,6 @@ class _Category extends \IPS\Node\Model
return \IPS\Http\Url::internal( "app=blog&module=blogs&controller=browse&category={$indexData['index_container_id']}", 'front', 'blog_category', \IPS\Member::loggedIn()->language()->addToStack( 'blog_category_' . $indexData['index_container_id'], FALSE, array( 'seotitle' => TRUE ) ) );
}
/**
* [Node] Get Node Icon
*
* @return string
*/
protected function get__icon()
{
return ( $this->parent > 0 ) ? 'caret-down' : NULL ;
}
/**
* Get output for API
*
+3 -2
View File
@@ -704,7 +704,8 @@ class _Entry extends \IPS\Content\Item implements
{
return TRUE;
}
elseif ( !$member->member_id and $considerPostBeforeRegistering and \IPS\Settings::i()->post_before_registering and \IPS\Login::registrationType() != 'disabled' )
elseif ( !$member->member_id and $considerPostBeforeRegistering and \IPS\Settings::i()->post_before_registering
and \IPS\Login::registrationType() != 'disabled'and \IPS\Settings::i()->bot_antispam_type !== 'none' )
{
return (bool) \IPS\Member\Group::load( \IPS\Settings::i()->member_group )->g_blog_allowcomment;
}
@@ -823,7 +824,7 @@ class _Entry extends \IPS\Content\Item implements
* @apiresponse datetime date Date
* @apiresponse string entry Entry content
* @apiresponse int comments Number of comments
* @apiresponse int views Number of posts
* @apiresponse int views Number of views
* @apiresponse string prefix The prefix tag, if there is one
* @apiresponse [string] tags The tags
* @apiresponse bool locked Entry is locked
+4 -2
View File
@@ -147,7 +147,9 @@ class _Application extends \IPS\Application
foreach ( \IPS\calendar\Event::retrieveEvents( $_today, $endDate, NULL, NULL, FALSE, $member ) as $event )
{
$next = ( (int) \IPS\Settings::i()->calendar_rss_feed_order === 0 ) ? $event->nextOccurrence( $_today, 'startDate' ) : \IPS\DateTime::ts( $event->saved );
$document->addItem( $event->title, $event->url(), $event->content, $next, $event->id );
$content = $event->content;
\IPS\Output::i()->parseFileObjectUrls( $content );
$document->addItem( $event->title, $event->url(), $content, $next, $event->id );
}
/* @note application/rss+xml is not a registered IANA mime-type so we need to stick with text/xml for RSS */
@@ -197,7 +199,7 @@ class _Application extends \IPS\Application
return array_merge( [
'calendarEvent_rsvp' => [
'event' => \IPS\calendar\Event::class,
'action' => "string with the state (attending/etc..)",
'action' => "string with the state ('no','yes','maybe','leave')",
'attendee' => \IPS\Member::class
]
],parent::getWebhooks());
+1 -1
View File
@@ -131,7 +131,7 @@ class _comments extends \IPS\Content\Api\CommentController
}
else
{
if ( \IPS\Request::i()->author === 0 )
if ( (int) \IPS\Request::i()->author === 0 )
{
$author = new \IPS\Member;
$author->name = \IPS\Request::i()->author_name;
+1 -1
View File
@@ -196,7 +196,7 @@ class _events extends \IPS\Content\Api\ItemController
}
else
{
if ( \IPS\Request::i()->author === 0 )
if ( (int) \IPS\Request::i()->author === 0 )
{
$author = new \IPS\Member;
}
+1 -1
View File
@@ -133,7 +133,7 @@ class _reviews extends \IPS\Content\Api\CommentController
}
else
{
if ( \IPS\Request::i()->author === 0 )
if ( (int) \IPS\Request::i()->author === 0 )
{
$author = new \IPS\Member;
$author->name = \IPS\Request::i()->author_name;
@@ -16,9 +16,7 @@
},
"settings": {
"settings_manage": "settings_manage"
}
},
"venues": {
},
"venues": {
"venues_manage": "venues_manage"
}
+66 -89
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="calendar">
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.main.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.main.js" javascript_type="controller" javascript_version="107827" javascript_position="1000250"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -17,7 +17,7 @@
initialize: function () {
this.on( 'click', '[data-action="changeView"]', this.changeView );
this.on( window, 'statechange', this.stateChange );
this.on( window, 'historychange:calendarView', this.stateChange );
this.setup();
},
@@ -27,24 +27,24 @@
* @returns {void}
*/
setup: function () {
History.pushState( { controller: 'calendarView' }, document.title, window.location.href );
ips.utils.history.replaceState( { controller: 'calendarView' }, 'calendarView', window.location.href );
},
/**
* Changes the calendar view dynamically
*
* @param {event} e Event object
* @param {Event} e Event object
* @returns {void}
*/
changeView: function (e) {
e.preventDefault();
// Load the url via ajax instead
var self = this;
var title = $( e.currentTarget ).attr('title');
var url = $( e.currentTarget ).attr('href');
History.pushState( { controller: 'calendarView' }, title, url );
ips.utils.history.pushState( { controller: 'calendarView' }, 'calendarView', url );
document.title = title
},
/**
@@ -54,28 +54,25 @@
* @returns {void}
*/
stateChange: function () {
var state = History.getState();
const data = ips.utils.history.getState('calendarView') || {}, url = window.location.href
if( _.isUndefined( state.data.controller ) || state.data.controller != 'calendarView' ) {
if (data.controller !== 'calendarView') {
return;
}
// Track page view
ips.utils.analytics.trackPageView( state.url );
ips.utils.analytics.trackPageView( url );
this._updateView( state.url, state.title )
this._updateView( url )
},
/**
* Loads a new view
*
* @param {string} url URL to load
* @param {string} title New browser title
* @returns {void}
*/
_updateView: function (url, title) {
var self = this;
_updateView: function (url) {
if( this._ajaxObj && _.isFunction( this._ajaxObj.abort ) ){
this._ajaxObj.abort();
}
@@ -85,15 +82,13 @@
this._ajaxObj = ips.getAjax()( url, {
showLoading: true
} )
.done( function (response) {
self.scope.html( response );
.done(response => {
this.scope.html( response );
$( document ).trigger( 'contentChange', [ self.scope ] );
History.pushState( { controller: 'calendarView' }, title, url );
$( document ).trigger( 'contentChange', [ this.scope ] );
})
.always( function () {
self._setLoading( false );
.always(() => {
this._setLoading( false );
});
},
@@ -112,7 +107,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.monthView.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.monthView.js" javascript_type="controller" javascript_version="107827" javascript_position="1000250"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -231,7 +226,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.carousel.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.carousel.js" javascript_type="controller" javascript_version="107827" javascript_position="1000300"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -291,7 +286,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.eventList.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.eventList.js" javascript_type="controller" javascript_version="107827" javascript_position="1000300"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -409,7 +404,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.nearMe.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.nearMe.js" javascript_type="controller" javascript_version="107827" javascript_position="1000300"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -436,11 +431,9 @@ var PER_PAGE = 16;
*
* @returns {void}
*/
setup: function () {
var self = this;
setup() {
if ( ips.utils.geolocation.getGeolocationIsAllowed() ) {
self.scope.find('input[type="checkbox"]').attr('checked', true);
this.scope.find('input[type="checkbox"]').attr('checked', true);
this.useGeolocation = true;
}
@@ -452,8 +445,7 @@ var PER_PAGE = 16;
}
this.useGoogleMaps = true;
window.ipsGoogleMapsCallback = this.setupGoogleMaps.bind(self);
window.ips.loader.get([`https://maps.googleapis.com/maps/api/js?key=${apiKey}&callback=ipsGoogleMapsCallback&v=weekly`]); // will call this.setupGoogleMaps() when loaded
ips.ui.map.afterGoogleMapsLoaded(() => this.setupGoogleMaps())
}
else {
// Pull in the CSS
@@ -476,12 +468,12 @@ var PER_PAGE = 16;
.then( () => {
if ( this.useGeolocation ) {
self.getEventsByLocation();
this.getEventsByLocation();
} else {
self.fetchEvents();
this.fetchEvents();
}
self._mapReady = true;
this._mapReady = true;
});
}
},
@@ -776,7 +768,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.search.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.search.js" javascript_type="controller" javascript_version="107827" javascript_position="1000300"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -797,7 +789,7 @@ var PER_PAGE = 16;
this.on( document, 'menuItemSelected', '#elSortMenu', this.changeSort);
this.on( document, 'click', '[data-action="moreNearMe"]', this.moreNearMe);
this.on( document, 'click', '[data-action="moreExhibitions"]', this.moreExhibitions);
History.Adapter.bind( window, 'statechange', _.bind( this.stateChange, this ) );
this.on( window, 'historychange:calendarSearch', this.stateChange );
this.setup();
},
@@ -949,20 +941,17 @@ var PER_PAGE = 16;
/**
* Submit handler for the search form
*
* @param {event} e Event object
* @param {Event} [e] Event object
* @returns {void}
*/
doSearch: function (e) {
if( e ){
e.preventDefault();
}
e?.preventDefault()
const url = this._getUrlFromData();
var url = this._getUrlFromData();
History.replaceState( {
ips.utils.history.replaceState( {
controller: 'calendar.front.overview.search',
url: url
}, document.title, url );
url
}, 'calendarSearch', url );
},
/**
@@ -988,26 +977,24 @@ var PER_PAGE = 16;
/**
* Main state change event handler that responds to URL changes
*
* @param {event} e Event object
* @param {object} data Event data object
* @returns {void}
*/
stateChange: function () {
var state = History.getState();
if( ( !state.data.controller || state.data.controller != 'calendar.front.overview.search' ) && this._initialURL !== state.url ){
if (!('calendarSearch' in ips.utils.history.getState()) && this._initialURL !== window.location.href) {
return;
}
if( this._initialURL == state.url ){
// If our URLs match but we have no state data, we can assume we've gone back to the intital search form, so let's reset
const state = ips.utils.history.getState('calendarSearch')
if (this._initialURL === state?.url) {
// If our URLs match but we have no state data, we can assume we've gone back to the initial search form, so let's reset
this.hideResults();
} else if( this._initialURL == state.url && _.isUndefined( state.data.url ) ){
} else if (this._initialURL === window.location.href && state?.url === undefined) {
// If we don't have a URL, get it from our initial data
this._loadResults( this._getUrlFromData( this._initialData ) );
} else {
// Otherwise use the state url
this._loadResults( state.data.url );
this._loadResults( state?.url );
}
},
@@ -1327,7 +1314,7 @@ var PER_PAGE = 16;
/**
* Cancal searching and show the overview page again
*
* @param {event} e Event object
* @param {Event} e Event object
* @returns {void}
*/
backToOverview: function (e) {
@@ -1337,10 +1324,10 @@ var PER_PAGE = 16;
e.preventDefault();
History.replaceState( {
ips.utils.history.replaceState( {
controller: 'calendar.front.overview.search',
url: this._initialURL
}, document.title, this._initialURL );
}, 'calendarSearch', this._initialURL );
},
/**
@@ -1356,7 +1343,7 @@ var PER_PAGE = 16;
});
}(jQuery, _));
]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.dates.js" javascript_type="controller" javascript_version="107712" javascript_position="1000150"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.dates.js" javascript_type="controller" javascript_version="107827" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1929,7 +1916,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/venue" javascript_name="ips.venue.main.js" javascript_type="controller" javascript_version="107712" javascript_position="1000200"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/venue" javascript_name="ips.venue.main.js" javascript_type="controller" javascript_version="107827" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1945,7 +1932,7 @@ var PER_PAGE = 16;
initialize: function () {
this.on( 'click', '[data-action="changeView"]', this.changeView );
this.on( window, 'statechange', this.stateChange );
this.on( window, 'historychange:venueView', this.stateChange );
this.setup();
},
@@ -1955,24 +1942,20 @@ var PER_PAGE = 16;
* @returns {void}
*/
setup: function () {
History.pushState( { controller: 'venueView' }, document.title, window.location.href );
ips.utils.history.pushState( { controller: 'venueView' }, 'venueView', window.location.href );
},
/**
* Changes the calendar view dynamically
*
* @param {event} e Event object
* @param {Event} e Event object
* @returns {void}
*/
changeView: function (e) {
e.preventDefault();
// Load the url via ajax instead
var self = this;
var title = $( e.currentTarget ).attr('title');
var url = $( e.currentTarget ).attr('href');
History.pushState( { controller: 'venueView' }, title, url );
ips.utils.history.pushState({ controller: 'venueView' }, 'venueView', $( e.currentTarget ).attr('href'));
document.title = $( e.currentTarget ).attr('title');
},
/**
@@ -1982,29 +1965,27 @@ var PER_PAGE = 16;
* @returns {void}
*/
stateChange: function () {
var state = History.getState();
const data = ips.utils.history.getState('venueView') || {},
url = window.location.href
if( _.isUndefined( state.data.controller ) || state.data.controller != 'venueView' ) {
if (data.controller !== 'venueView') {
return;
}
// Track page view
ips.utils.analytics.trackPageView( state.url );
ips.utils.analytics.trackPageView( url );
this._updateView( state.url, state.title )
this._updateView( url )
},
/**
* Loads a new view
*
* @param {string} url URL to load
* @param {string} title New browser title
* @returns {void}
*/
_updateView: function (url, title) {
var self = this;
if( this._ajaxObj && _.isFunction( this._ajaxObj.abort ) ){
_updateView: function (url) {
if (this._ajaxObj && _.isFunction( this._ajaxObj.abort ) ){
this._ajaxObj.abort();
}
@@ -2013,16 +1994,13 @@ var PER_PAGE = 16;
this._ajaxObj = ips.getAjax()( url, {
showLoading: true
} )
.done( function (response) {
.done(response => {
console.log( response );
self.scope.html( response );
this.scope.html( response );
$( document ).trigger( 'contentChange', [ self.scope ] );
History.pushState( { controller: 'venueView' }, title, url );
})
.always( function () {
self._setLoading( false );
.always(() => {
this._setLoading( false );
});
},
@@ -2041,7 +2019,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderButton.js" javascript_type="controller" javascript_version="107712" javascript_position="1000250"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderButton.js" javascript_type="controller" javascript_version="107827" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2124,7 +2102,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderForm.js" javascript_type="controller" javascript_version="107712" javascript_position="1000250">/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderForm.js" javascript_type="controller" javascript_version="107827" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2234,7 +2212,7 @@ var PER_PAGE = 16;
});
}(jQuery, _));
</file>
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.calendar.templates.js" javascript_type="framework" javascript_version="107712" javascript_position="1000300"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.calendar.templates.js" javascript_type="framework" javascript_version="107827" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*/
@@ -2243,7 +2221,7 @@ var PER_PAGE = 16;
ips.templates.set('calendar.reminder.loading', " \
<div class='ipsLoading ipsLoading_tiny'></div>\
");]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.overview.js" javascript_type="template" javascript_version="107712" javascript_position="1000300"><![CDATA[ips.templates.set("eventLoading", "\
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.overview.js" javascript_type="template" javascript_version="107827" javascript_position="1000050"><![CDATA[ips.templates.set("eventLoading", "\
<li class='ipsBox ipsBox--child event event--withImage event--loading'>\
<div class='cEvents__skeleton cEvents__skeleton--eventImage'></div>\
<div class='cEvents__details'>\
@@ -2273,7 +2251,6 @@ Debug.js
app.js</order>
<order app="global" path="/dev/js//library//jquery">jquery.js
jquery-migrate.js
jquery.history.js
jquery.transform.js</order>
<order app="global" path="/dev/js//library//linkify">linkify.min.js
linkify-jquery.min.js</order>
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="calendar" version="107712">
<app key="calendar" version="107827">
<word key="__app_calendar" js="0">Events</word>
<word key="frontnavigation_calendar" js="0">Events</word>
<word key="__indefart_calendar_event_comment" js="0">a comment on an event</word>
+12
View File
@@ -1169,6 +1169,18 @@
"comment": "",
"unsigned": true,
"auto_increment": false
},
"event_views": {
"name": "event_views",
"type": "INT",
"length": null,
"decimals": null,
"values": null,
"allow_null": false,
"default": 0,
"comment": "",
"unsigned": false,
"auto_increment": false
}
},
"indexes": {
+3 -3
View File
@@ -351,7 +351,7 @@
{{endif}}
<div class='cEvent__imageWrap'>
<a href='{$event->url()}' class='cEvent__image'>
{{if $image}}<img src='{$image->url}' alt='' />{{endif}}
{{if $image}}<img src='{$image->url}' alt='{$event->title}' />{{endif}}
</a>
<div class='cEvent__dateAside'>
{{if $event->nextOccurrence( \IPS\calendar\Date::getDate(), 'startDate' )}}
@@ -528,7 +528,7 @@
<div data-item="{$idx + 1}" class='cFeaturedEvents__event cFeaturedEvents__event--{$idx + 1}'>
{{if $image}}
<img class='cFeaturedEvents__image' src='{$image->url}' alt=''>
<img class='cFeaturedEvents__image' src='{$image->url}' alt='{$event->title}'>
{{endif}}
<div class='cFeaturedEvents__event-details'>
@@ -1357,7 +1357,7 @@
<template template_group="overview" template_name="header" template_data="$date, $thisCalendar=NULL, $downloadLinks=NULL" template_location="front" template_app="calendar"><![CDATA[
<div class="ipsPageHeader ipsMargin_bottom">
<div class="ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsGap:3 sm:ipsFlex-fd:column">
<h2 class="ipsType_pageTitle">{lang="frontnavigation_calendar"}</h2>
<h1 class="ipsType_pageTitle">{lang="frontnavigation_calendar"}</h2>
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix">
<li class="ipsToolList_primaryAction">
{{if \IPS\Application::appIsEnabled('cloud') and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'cloud', 'livetopics' ) ) and \IPS\cloud\LiveTopic::canCreate( \IPS\Member::loggedIn() )}}
+65 -1
View File
@@ -551,5 +551,69 @@
"107704": "4.7.12",
"107710": "4.7.13 Beta 1",
"107711": "4.7.13 Beta 2",
"107712": "4.7.13"
"107712": "4.7.13",
"107713": "4.7.13",
"107714": "4.7.13",
"107715": "4.7.13",
"107720": "4.7.14 Beta 1",
"107721": "4.7.14 Beta 2",
"107722": "4.7.14",
"107723": "4.7.14",
"107724": "4.7.14",
"107730": "4.7.15 Beta 1",
"107731": "4.7.15 Beta 2",
"107732": "4.7.15",
"107733": "4.7.15",
"107734": "4.7.15",
"107740": "4.7.16 Beta 1",
"107741": "4.7.16 Beta 2",
"107742": "4.7.16 Beta 3",
"107743": "4.7.16 Beta 4",
"107744": "4.7.16 Beta 5",
"107745": "4.7.16",
"107746": "4.7.16",
"107747": "4.7.16",
"107748": "4.7.16",
"107749": "4.7.16",
"107750": "4.7.16",
"107751": "4.7.16",
"107760": "4.7.17 Beta 1",
"107761": "4.7.17 Beta 2",
"107762": "4.7.17 Beta 3",
"107763": "4.7.17",
"107764": "4.7.17",
"107765": "4.7.17",
"107770": "4.7.18 Beta 1",
"107771": "4.7.18 Beta 2",
"107772": "4.7.18 Beta 3",
"107773": "4.7.18",
"107774": "4.7.18",
"107775": "4.7.18",
"107780": "4.7.19 Beta 1",
"107781": "4.7.19 Beta 2",
"107782": "4.7.19 Beta 3",
"107783": "4.7.19 Beta 4",
"107784": "4.7.19",
"107785": "4.7.19",
"107786": "4.7.19",
"107787": "4.7.19",
"107795": "4.7.20 Beta 1",
"107796": "4.7.20 Beta 2",
"107797": "4.7.20 Beta 3",
"107798": "4.7.20 Beta 4",
"107799": "4.7.20 Beta 5",
"107800": "4.7.20",
"107801": "4.7.20",
"107802": "4.7.20",
"107803": "4.7.20",
"107810": "4.7.21 Beta 1",
"107811": "4.7.21",
"107815": "4.7.22 Beta 1",
"107816": "4.7.22 Beta 2",
"107817": "4.7.22",
"107818": "4.7.22",
"107819": "4.7.22",
"107820": "4.7.22",
"107826": "4.7.23 Beta 1",
"107827": "4.7.23"
}
Loaded 100 of 1791 files, more files were not shown because too many files have changed in this diff. Show more