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

+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"
}
@@ -43,6 +43,18 @@ class _event extends \IPS\Content\Controller
if ( !$this->event->canView( \IPS\Member::loggedIn() ) )
{
if ( $this->event->container()->can('view') AND !$this->event->container()->can('read') )
{
if ( \IPS\Member::loggedIn()->member_id )
{
\IPS\Output::i()->error( 'no_module_permission', '2L179/8', 404, '' );
}
else
{
\IPS\Output::i()->error( 'no_module_permission_guest', '2L179/9', 404, '' );
}
}
\IPS\Output::i()->error( 'node_error', '2L179/1', 403, '' );
}
@@ -141,6 +153,11 @@ class _event extends \IPS\Content\Controller
'name' => $this->event->mapped('title'),
'description' => $this->event->truncated( TRUE, NULL ),
'eventStatus' => "EventScheduled",
'organizer' => array(
'@type' => 'Person',
'name' => $this->event->author()->name
),
'eventAttendanceMode' => ( $this->event->online ) ? 'OnlineEventAttendanceMode' : 'OfflineEventAttendanceMode',
'startDate' => $this->event->nextOccurrence( \IPS\calendar\Date::getDate(), 'startDate' ) ?
$this->event->nextOccurrence( \IPS\calendar\Date::getDate(), 'startDate' )->format( $format ) :
$this->event->lastOccurrence( 'startDate' )->format( $format )
@@ -183,7 +200,8 @@ class _event extends \IPS\Content\Controller
}
}
}
/* If we have a physical location, use that. */
if( $location )
{
\IPS\Output::i()->jsonLd['event']['location'] = array(
@@ -202,6 +220,7 @@ class _event extends \IPS\Content\Controller
\IPS\Output::i()->jsonLd['event']['location']['name'] = $addressName;
}
}
/* If not, default to events URL */
else
{
\IPS\Output::i()->jsonLd['event']['location'] = array(
@@ -211,6 +230,15 @@ class _event extends \IPS\Content\Controller
'url' => \IPS\Output::i()->jsonLd['event']['url']
);
}
/* Finally, if event is online and there is a URL, use that */
if ( $this->event->online AND $this->event->url )
{
\IPS\Output::i()->jsonLd['event']['location'] = array(
'@type' => 'VirtualLocation',
'url' => $this->event->url
);
}
/* Display */
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'view' )->view( $this->event, $commentsAndReviews, $attendees, $address, $reminder );
@@ -346,19 +374,19 @@ class _event extends \IPS\Content\Controller
'rsvp_response' => (int) $_go
) );
$webhookData = [
'event' => $this->event->apiOutput(),
'action' => \IPS\Request::i()->action,
'attendee' => \IPS\Member::loggedIn()->apiOutput(),
];
$message = 'rsvp_selection_' . \IPS\Request::i()->action;
\IPS\Api\Webhook::fire( 'calendarEvent_rsvp', $webhookData );
\IPS\Member::loggedIn()->achievementAction( 'calendar', 'Rsvp', $this->event );
}
$webhookData = [
'event' => $this->event->apiOutput(),
'action' => \IPS\Request::i()->action,
'attendee' => \IPS\Member::loggedIn()->apiOutput(),
];
$message = 'rsvp_selection_' . \IPS\Request::i()->action;
\IPS\Api\Webhook::fire( 'calendarEvent_rsvp', $webhookData );
\IPS\Output::i()->redirect( $this->event->url(), $message );
}
@@ -456,13 +456,17 @@ class _view extends \IPS\Dispatcher\Controller
/* Featured events */
$featured = iterator_to_array( \IPS\calendar\Event::featured( 13, '_rand' ) );
/* Get the calendars we can view */
$calendars = \IPS\Settings::i()->club_nodes_in_apps ? \IPS\calendar\Calendar::rootsWithClubs() : \IPS\calendar\Calendar::roots();
/* If there are no featured get upcoming */
if( \count( $featured ) === 0 )
{
$featured = \IPS\calendar\Event::retrieveEvents(
$this->_today,
\IPS\calendar\Date::getDate()->adjust( "next year" ),
NULL,
array_keys($calendars),
3,
FALSE,
NULL,
@@ -493,13 +497,11 @@ class _view extends \IPS\Dispatcher\Controller
}
}
/* Get the calendars we can view */
$calendars = \IPS\Settings::i()->club_nodes_in_apps ? \IPS\calendar\Calendar::rootsWithClubs() : \IPS\calendar\Calendar::roots();
$nearme = \IPS\calendar\Event::retrieveEvents(
$this->_today,
\IPS\calendar\Date::getDate()->adjust( "next year" ),
NULL,
array_keys($calendars),
6,
FALSE,
NULL,
@@ -548,7 +550,7 @@ class _view extends \IPS\Dispatcher\Controller
$events = \IPS\calendar\Event::retrieveEvents(
\IPS\calendar\Date::getDate( $date->firstDayOfMonth('year'), $date->firstDayOfMonth('mon'), $date->firstDayOfMonth('mday') ),
\IPS\calendar\Date::getDate( $date->lastDayOfMonth('year'), $date->lastDayOfMonth('mon'), $date->lastDayOfMonth('mday'), 23, 59, 59 ),
NULL,
array_keys($calendars),
NULL,
FALSE,
NULL,
@@ -584,7 +586,7 @@ class _view extends \IPS\Dispatcher\Controller
} );
/* Pagination */
$offset = isset( \IPS\Request::i()->offset ) ? min( array( \IPS\Request::i()->offset, \count( $events ) ) ) : 0;
$offset = isset( \IPS\Request::i()->offset ) ? min( [(int) \IPS\Request::i()->offset, \count( $events )] ) : 0;
/* If there are no events, tell search engines not to index the page but do NOT tell them not to follow links */
if( \count( $events ) === 0 )
@@ -641,7 +643,7 @@ class _view extends \IPS\Dispatcher\Controller
$online = \IPS\calendar\Event::retrieveEvents(
$startTime,
NULL,
NULL,
array_keys($calendars),
NULL,
FALSE,
NULL,
@@ -705,16 +707,16 @@ class _view extends \IPS\Dispatcher\Controller
/* Build the search form */
$form = $this->getForm();
$select = 'calendar_events.*, core_clubs.name';
$sort = 'event_start_date asc';
$location = NULL;
$having = [];
$where = [];
$where[] = ['event_approved=?', 1];
$searchNearLocation = FALSE; // Should results be limited to near the provided location only? If not, we'll just use location to allow sorting.
if( $values = $form->values() )
{
$select = "calendar_events.*, core_clubs.name";
$sort = 'event_start_date asc';
$location = NULL;
$having = array();
$where = array();
$where[] = array( 'event_approved=?', 1 );
$searchNearLocation = FALSE; // Should results be limited to near the provided location only? If not, we'll just use location to allow sorting.
if( isset( \IPS\Request::i()->searchNearLocation ) && \IPS\Request::i()->searchNearLocation )
{
$searchNearLocation = TRUE;
@@ -730,7 +732,7 @@ class _view extends \IPS\Dispatcher\Controller
{
if( $locations[0]['value'] )
{
$having[] = "( event_title LIKE CONCAT( '%', '" . $locations[0]['value'] . "', '%' ) OR name LIKE CONCAT( '%', '" . $locations[0]['value'] . "', '%' ) )";
$having[] = "( event_title LIKE CONCAT( '%', '" . \IPS\Db::i()->real_escape_string( $locations[0]['value'] ) . "', '%' ) OR name LIKE CONCAT( '%', '" . \IPS\Db::i()->real_escape_string( $locations[0]['value'] ) . "', '%' ) )";
}
$location = array( 'lat' => $locations[0]['lat'], 'lon' => $locations[0]['long'] );
@@ -738,7 +740,7 @@ class _view extends \IPS\Dispatcher\Controller
}
else
{
$having[] = "( event_title LIKE CONCAT( '%', '" . \IPS\Request::i()->location . "', '%' ) OR name LIKE CONCAT( '%', '" . \IPS\Request::i()->location . "', '%' ) )";
$having[] = "( event_title LIKE CONCAT( '%', '" . \IPS\Db::i()->real_escape_string( \IPS\Request::i()->location ) . "', '%' ) OR name LIKE CONCAT( '%', '" . \IPS\Db::i()->real_escape_string( \IPS\Request::i()->location ) . "', '%' ) )";
}
}
else if ( isset( \IPS\Request::i()->lat ) and isset( \IPS\Request::i()->lon ) and \IPS\Request::i()->lat !== 0 and \IPS\Request::i()->lon !== 0 )
@@ -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
}
Loaded 100 of 1791 files, more files were not shown because too many files have changed in this diff. Show more