Version 4.2.0
This commit is contained in:
1 parent
0dc2aee5ed
commit
96997ddd8e
2074 files changed
+125454
-55780
No files matched your search
@@ -1,13 +1,12 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief Abstract class that Controllers should extend
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Community Suite
|
||||
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) Invision Power Services, Inc.
|
||||
* @license https://www.invisioncommunity.com/legal/standards/
|
||||
* @package Invision Community
|
||||
* @subpackage Content
|
||||
* @since 16 April 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\cms\Databases;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief Databases Model
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Community Suite
|
||||
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) Invision Power Services, Inc.
|
||||
* @license https://www.invisioncommunity.com/legal/standards/
|
||||
* @package Invision Community
|
||||
* @subpackage Content
|
||||
* @since 31 March 2014
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\cms;
|
||||
@@ -760,7 +759,7 @@ class _Databases extends \IPS\Node\Model implements \IPS\Node\Permissions
|
||||
/* Editor Areas */
|
||||
\IPS\Member::loggedIn()->language()->words['editor__cms_Records' . $this->id ] = $this->_title;
|
||||
|
||||
foreach( array( 'pin', 'unpin', 'feature', 'unfeature', 'edit', 'hide', 'unhide', 'view_hidden', 'future_publish', 'view_future', 'move', 'lock', 'unlock', 'reply_to_locked', 'delete' ) as $lang )
|
||||
foreach( array( 'pin', 'unpin', 'feature', 'unfeature', 'edit', 'hide', 'unhide', 'view_hidden', 'future_publish', 'view_future', 'move', 'lock', 'unlock', 'reply_to_locked', 'delete', 'feature_comments', 'unfeature_comments', 'add_item_message', 'edit_item_message', 'delete_item_message' ) as $lang )
|
||||
{
|
||||
\IPS\Member::loggedIn()->language()->words['can_' . $lang . '_content_db_lang_sl_' . $this->id ] = \IPS\Member::loggedIn()->language()->addToStack( 'can_' . $lang . '_record', FALSE, array( 'sprintf' => array( $this->recordWord( 1 ) ) ) );
|
||||
\IPS\Member::loggedIn()->language()->words['can_' . $lang . '_content_db_lang_su_' . $this->id ] = \IPS\Member::loggedIn()->language()->addToStack( 'can_' . $lang . '_record', FALSE, array( 'sprintf' => array( $this->recordWord( 1, TRUE ) ) ) );
|
||||
@@ -808,6 +807,7 @@ class _Databases extends \IPS\Node\Model implements \IPS\Node\Permissions
|
||||
{
|
||||
/* If we are enabling search, we will need to index that content */
|
||||
$rebuildSearchIndex = ( !$this->_new AND isset( $this->changed['search'] ) AND $this->changed['search'] );
|
||||
$removeSearchIndex = ( !$this->_new AND isset( $this->changed['search'] ) AND !$this->changed['search'] );
|
||||
|
||||
parent::save();
|
||||
|
||||
@@ -818,7 +818,7 @@ class _Databases extends \IPS\Node\Model implements \IPS\Node\Permissions
|
||||
}
|
||||
|
||||
/* If this database isn't searchable, make sure its content is not in the search index */
|
||||
if( !$this->search AND !$this->_new )
|
||||
if( $removeSearchIndex )
|
||||
{
|
||||
\IPS\Content\Search\Index::i()->removeClassFromSearchIndex( 'IPS\cms\Records' . $this->id );
|
||||
\IPS\Content\Search\Index::i()->removeClassFromSearchIndex( 'IPS\cms\Records\Comment' . $this->id );
|
||||
@@ -851,7 +851,7 @@ class _Databases extends \IPS\Node\Model implements \IPS\Node\Permissions
|
||||
$fieldsClass = '\IPS\cms\Fields' . $this->id;
|
||||
|
||||
$class = '\IPS\cms\Categories' . $this->id;
|
||||
foreach( $class::roots( NULL, NULL, array(), $this->id ) as $id => $cat )
|
||||
foreach( $class::roots( NULL ) as $id => $cat )
|
||||
{
|
||||
$cat->delete();
|
||||
}
|
||||
@@ -918,7 +918,8 @@ class _Databases extends \IPS\Node\Model implements \IPS\Node\Permissions
|
||||
\IPS\Lang::deleteCustom( 'cms', "module__cms_records" . $this->id );
|
||||
|
||||
/* Unclaim attachments */
|
||||
\IPS\File::unclaimAttachments( 'cms_Records_' . $this->id );
|
||||
\IPS\File::unclaimAttachments( 'cms_Records', NULL, NULL, $this->id );
|
||||
\IPS\File::unclaimAttachments( 'cms_Records' . $this->id );
|
||||
|
||||
/* Remove widgets */
|
||||
$this->removeWidgets();
|
||||
@@ -980,7 +981,7 @@ class _Databases extends \IPS\Node\Model implements \IPS\Node\Permissions
|
||||
|
||||
/* Clone these permissions to all categories that do not have permissions */
|
||||
$class = '\IPS\cms\Categories' . $this->id;
|
||||
foreach( $class::roots( NULL, NULL, array(), $this->id ) as $category )
|
||||
foreach( $class::roots( NULL ) as $category )
|
||||
{
|
||||
$this->setPermssionsRecursively( $category );
|
||||
}
|
||||
@@ -1043,7 +1044,7 @@ class _Databases extends \IPS\Node\Model implements \IPS\Node\Permissions
|
||||
foreach( static::databases() as $database )
|
||||
{
|
||||
$fieldsClass = 'IPS\cms\Fields' . $database->_id;
|
||||
|
||||
|
||||
foreach( $fieldsClass::data() as $field )
|
||||
{
|
||||
if ( $field->type === 'Item' )
|
||||
@@ -1051,26 +1052,29 @@ class _Databases extends \IPS\Node\Model implements \IPS\Node\Permissions
|
||||
$extra = $field->extra;
|
||||
if ( ! empty( $extra['database'] ) )
|
||||
{
|
||||
$values[ $database->_id ] = $extra;
|
||||
$values[ $database->_id ][] = $extra;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
\IPS\Data\Store::i()->database_reciprocal_links = $values;
|
||||
}
|
||||
}
|
||||
|
||||
if ( is_array( $values ) )
|
||||
{
|
||||
foreach( $values as $id => $data )
|
||||
foreach( $values as $id => $fields )
|
||||
{
|
||||
if ( $data['database'] == $databaseId and $data['crosslink'] )
|
||||
foreach( $fields as $fieldid => $data )
|
||||
{
|
||||
return TRUE;
|
||||
if ( $data['database'] == $databaseId and $data['crosslink'] )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief Database Dispatcher
|
||||
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/legal/standards/
|
||||
* @package IPS Community Suite
|
||||
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) Invision Power Services, Inc.
|
||||
* @license https://www.invisioncommunity.com/legal/standards/
|
||||
* @package Invision Community
|
||||
* @subpackage Content
|
||||
* @since 16 April 2013
|
||||
* @version SVN_VERSION_NUMBER
|
||||
*/
|
||||
|
||||
namespace IPS\cms\Databases;
|
||||
@@ -166,7 +165,13 @@ class _Dispatcher extends \IPS\Dispatcher
|
||||
}
|
||||
|
||||
$path = trim( preg_replace( '#' . \IPS\cms\Pages\Page::$currentPage->full_path . '#', '', \IPS\Request::i()->path, 1 ), '/' );
|
||||
|
||||
|
||||
/* If we visited the default page in a folder, the full_path will be like folder/page but the request path will just be folder */
|
||||
if( \IPS\Request::i()->path . '/' . \IPS\cms\Pages\Page::$currentPage->seo_name == \IPS\cms\Pages\Page::$currentPage->full_path )
|
||||
{
|
||||
$path = '';
|
||||
}
|
||||
|
||||
$this->databaseId = $database->id;
|
||||
|
||||
if ( ! $database->use_categories )
|
||||
@@ -207,7 +212,8 @@ class _Dispatcher extends \IPS\Dispatcher
|
||||
try
|
||||
{
|
||||
$record = $recordClass::loadFromSlug( $slug );
|
||||
\IPS\Output::i()->redirect( $record->url(), NULL, 301 );
|
||||
|
||||
$this->_redirectToCorrectUrl( $record->url() );
|
||||
}
|
||||
catch ( \OutOfRangeException $ex )
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user