Version 4.1.19

This commit is contained in:
Neo committed 2025-12-19 05:38:56 -08:00
1 parent 28bd025b35
commit 2bd5025018
2674 files changed
+233518 -77766

No files matched your search

@@ -2,9 +2,10 @@
/**
* @brief Databases Model
* @author <a href='http://www.invisionpower.com'>Invision Power Services, Inc.</a>
* @copyright (c) 2001 - SVN_YYYY Invision Power Services, Inc.
* @copyright (c) 2001 - 2016 Invision Power Services, Inc.
* @license http://www.invisionpower.com/legal/standards/
* @package IPS Social Suite
* @package IPS Community Suite
* @subpackage Content
* @since 31 March 2014
* @version SVN_VERSION_NUMBER
*/
@@ -176,7 +177,7 @@ class _databases extends \IPS\Node\Controller
);
}
if ( \IPS\Member::loggedIn()->hasAcpRestriction( 'cms', 'fields', 'fields_manage' ) )
if ( \IPS\Member::loggedIn()->hasAcpRestriction( 'cms', 'fields', 'cms_fields_manage' ) )
{
$return['fields'] = array(
'title' => 'content_database_manage_fields',
@@ -204,7 +205,7 @@ class _databases extends \IPS\Node\Controller
'title' => 'delete',
'icon' => 'times-circle',
'link' => \IPS\Http\Url::internal( 'app=cms&module=databases&controller=databases&do=delete&id=' . $row['database_id'] ),
'data' => array( 'ipsDialog' => '', 'ipsDialog-title' => \IPS\Member::loggedIn()->language()->addToStack('delete') )
'data' => array( 'delete' => '' )
);
}
@@ -242,7 +243,7 @@ class _databases extends \IPS\Node\Controller
move_uploaded_file( $values['cms_database_import'], $tempFile );
/* Initate a redirector */
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=cms&module=databases&controller=databases&do=import&file=' . urlencode( $tempFile ) . '&key=' . md5_file( $tempFile ) ) );
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=cms&module=databases&controller=databases&do=import' )->setQueryString( array( 'file' => $tempFile, 'key' => md5_file( $tempFile ) ) ) );
}
else
{
@@ -266,15 +267,16 @@ class _databases extends \IPS\Node\Controller
}
\IPS\Output::i()->output = new \IPS\Helpers\MultipleRedirect(
\IPS\Http\Url::internal( 'app=cms&module=databases&controller=databases&do=import&file=' . urlencode( \IPS\Request::i()->file ) . '&key=' . \IPS\Request::i()->key ),
\IPS\Http\Url::internal( 'app=cms&module=databases&controller=databases&do=import' )->setQueryString( array( 'file' => \IPS\Request::i()->file, 'key' => \IPS\Request::i()->key ) ),
function( $data )
{
/* Open XML file */
$xml = new \XMLReader;
$xml = new \IPS\Xml\XMLReader;
$xml->open( \IPS\Request::i()->file );
if ( ! @$xml->read() )
{
@unlink( \IPS\Request::i()->file );
\IPS\Output::i()->error( 'xml_upload_invalid', '2C163/1', 403, '' );
}
@@ -371,8 +373,8 @@ class _databases extends \IPS\Node\Controller
\IPS\Lang::saveCustom( 'cms', "content_db_" . $database->id, $name );
\IPS\Lang::saveCustom( 'cms', "content_db_" . $database->id . '_desc', $desc );
\IPS\Lang::saveCustom( 'cms', "digest_area_records" . $database->id, $langs['content_db_lang_pu'] );
\IPS\Lang::saveCustom( 'cms', "digest_area_categories" . $database->id, $langs['content_db_lang_pu'] );
\IPS\Lang::saveCustom( 'cms', "digest_area_cms_records" . $database->id, $langs['content_db_lang_pu'] );
\IPS\Lang::saveCustom( 'cms', "digest_area_cms_categories" . $database->id, $langs['content_db_lang_pu'] );
$menu = array();
@@ -420,29 +422,36 @@ class _databases extends \IPS\Node\Controller
$xml->read();
$next = NULL;
$areas = array( 'field', 'category', 'template' );
if ( $data['next'] )
{
while ( $xml->read() )
{
if( ! in_array( $xml->name, $areas ) OR $xml->nodeType != \XMLReader::ELEMENT )
{
continue;
}
$i++;
if ( $data['done'] )
{
if ( $i - 1 < $data['done'] )
{
$xml->next();
continue;
}
}
$doneSomething = false;
if ( $xml->name == $data['next'] )
{
$i++;
if ( $data['done'] )
{
if ( $i - 1 < $data['done'] )
{
$xml->next();
continue;
}
}
$data['done']++;
$areaName = $xml->name;
$node = new \SimpleXMLElement( $xml->readOuterXML() );
/* Import */
switch ( $areaName )
{
@@ -481,6 +490,8 @@ class _databases extends \IPS\Node\Controller
$attrs[ $k ] = ( $tryJson ) ? $tryJson : (string) $v;
}
$attrs['_skip_formatting'] = TRUE;
$originalFieldId = $attrs['field_id'];
unset( $attrs['field_id'] );
@@ -529,6 +540,7 @@ class _databases extends \IPS\Node\Controller
\IPS\Lang::saveCustom( 'cms', "content_field_" . $obj->id . '_validation_error', $attrs['field_validator_error'] );
}
$next = 'category';
$doneSomething = true;
break;
case 'category':
@@ -603,6 +615,7 @@ class _databases extends \IPS\Node\Controller
\IPS\Db::i()->update( 'core_permission_index', array_merge( $perms, array( 'perm_id' => $existingPerms['perm_id'], 'perm_type_id' => $category->id ) ), array( 'perm_id=?', $existingPerms['perm_id'] ) );
$next = 'template';
$doneSomething = true;
break;
case 'template':
@@ -621,84 +634,44 @@ class _databases extends \IPS\Node\Controller
$attrs[ $k ] = ( $tryJson ) ? $tryJson : (string) $v;
}
$add = FALSE;
$updateDb = FALSE;
if ( isset( $attrs['template_title'] ) and isset( $attrs['template_location'] ) and isset( $attrs['template_group'] ) )
$obj = new \IPS\cms\Templates;
$obj->location = $attrs['template_location'];
$obj->group = $attrs['template_group'];
$obj->title = $attrs['template_title'];
$obj->params = $attrs['template_params'];
$obj->content = $attrs['template_content'];
$obj->original_group = $attrs['template_original_group'];
$obj->user_created = 1;
$obj->user_edited = 1;
$obj->desc = '';
if ( $attrs['template_group'] !== 'template_form' )
{
/* Got this template? */
if ( isset( $templates['cms']['database'][ $attrs['template_location'] ][ $attrs['template_group'] ] ) )
$obj->group .= '_' . $database->id;
foreach( array( 'template_listing', 'template_display', 'template_categories', 'template_form', 'template_featured' ) as $name )
{
/* Compare with version stored in DB and don't bother importing unless we need to */
if ( $templates['cms']['database'][ $attrs['template_location'] ][ $attrs['template_group'] ]['template_content'] != $attrs['template_content'] )
if ( $database->$name == $attrs['template_group'] )
{
$updateDb = TRUE;
$add = TRUE;
}
}
else
{
$add = TRUE;
$updateDb = TRUE;
}
if ( $add )
{
$obj = new \IPS\cms\Templates;
$obj->location = $attrs['template_location'];
$obj->group = $attrs['template_group'];
$obj->title = $attrs['template_title'];
$obj->params = $attrs['template_params'];
$obj->content = $attrs['template_content'];
$obj->original_group = $attrs['template_original_group'];
$obj->user_created = 1;
$obj->user_edited = 1;
$obj->desc = '';
$obj->save();
$obj->key = 'database_' . \IPS\Http\Url::seoTitle( $obj->group ) . '_' . \IPS\Http\Url::seoTitle( $obj->title ) . '_' . $obj->id;
$obj->save();
$templateArea = NULL;
if ( $updateDb )
{
if ( $obj->group !== 'template_form' )
{
foreach( array( 'template_listing', 'template_display', 'template_categories', 'template_form', 'template_featured' ) as $name )
{
if ( $database->$name == $obj->group )
{
$templateArea = $name;
}
}
if ( $templateArea )
{
/* Template group has same name as existing */
$obj->group .= '_' . $database->_id;
$obj->save();
$database->$templateArea = $obj->group;
$database->save();
}
}
else if ( $database->template_form === $obj->title )
{
$templateArea = $obj->title;
if ( $templateArea )
{
/* Template group has same name as existing */
$obj->title .= '_' . $database->_id;
$obj->save();
$database->$templateArea = $obj->title;
$database->save();
}
}
$database->$name = $obj->group;
$database->save();
}
}
}
else
{
$obj->title .= '_' . $database->_id;
$database->template_form = $obj->title;
$database->save();
}
$obj->save();
$obj->key = 'database_' . \IPS\Http\Url\Friendly::seoTitle( $obj->group ) . '_' . \IPS\Http\Url\Friendly::seoTitle( $obj->title ) . '_' . $obj->id;
$obj->save();
$doneSomething = true;
$next = NULL;
break;
}
@@ -712,13 +685,35 @@ class _databases extends \IPS\Node\Controller
}
else
{
/* Did we do anything? if not, skip to the next section */
if ( ! $doneSomething )
{
switch ( $data['next'] )
{
case 'field':
$data['next'] = 'category';
break;
case 'category':
$data['next'] = 'template';
break;
case 'template':
$data['next'] = null;
break;
}
if ( $data['next'] )
{
return array( $data, \IPS\Member::loggedIn()->language()->addToStack('cms_db_import_progress', FALSE, array( 'sprintf' => array( \ucfirst( $data['next'] ) ) ) ) );
}
}
$xml->next();
}
}
/* Done */
$data['next'] = $next;
$data['done'] = 0;
return array( $data, \IPS\Member::loggedIn()->language()->addToStack('cms_db_import_progress', FALSE, array( 'sprintf' => array( \ucfirst( $data['next'] ) ) ) ) );
}
else
@@ -752,7 +747,16 @@ class _databases extends \IPS\Node\Controller
$databaseId = \IPS\Data\Store::i()->db_import_db_id;
unset( \IPS\Data\Store::i()->db_import_db_id );
$database = \IPS\cms\Databases::load( $databaseId );
foreach( array( 'template_listing', 'template_display', 'template_categories', 'template_form', 'template_featured' ) as $name )
{
\IPS\cms\Templates::fixTemplateTags( $database->$name );
}
@unlink( \IPS\Request::i()->file );
/* Done */
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=cms&module=databases&controller=databases&do=permissions&id=' . $databaseId ) );
}
@@ -784,6 +788,9 @@ class _databases extends \IPS\Node\Controller
}
else
{
/* We need to know the database schema to prevent non-standard columns from add-ons being added to the XML (which then causes the import to fail) */
$schema = json_decode( \file_get_contents( \IPS\ROOT_PATH . '/applications/cms/data/schema.json' ), TRUE );
/* Init */
$xml = new \XMLWriter;
$xml->openMemory();
@@ -857,8 +864,9 @@ class _databases extends \IPS\Node\Controller
$xml->endElement();
/* Custom fields */
$textFields = array( 'field_extra', 'field_default_value', 'field_name', 'field_description', 'field_display_json', 'field_validator_error' );
$removeFields = array( 'field_database_id' );
$textFields = array( 'field_extra', 'field_default_value', 'field_name', 'field_description', 'field_display_json', 'field_validator_error' );
$removeFields = array( 'field_database_id' );
$fieldSchema = $schema['cms_database_fields'];
foreach ( \IPS\Db::i()->select( 'f.*, w.word_custom as field_name, w2.word_custom as field_description, w3.word_custom as field_validator_error, p.*', array('cms_database_fields', 'f'), array( 'field_database_id=?', $database->id ) )
->join( array( 'core_sys_lang_words', 'w' ), "w.word_key=CONCAT( 'content_field_', f.field_id ) and w.lang_id=" . \IPS\Lang::defaultLanguage() )
->join( array( 'core_sys_lang_words', 'w2' ), "w2.word_key=CONCAT( 'content_field_', f.field_id, '_desc' ) and w2.lang_id=" . \IPS\Lang::defaultLanguage() )
@@ -871,7 +879,7 @@ class _databases extends \IPS\Node\Controller
foreach( $row as $k => $v )
{
if ( ! in_array( $k, $removeFields ) AND ! in_array( $k, $textFields ) )
if ( array_key_exists( $k, $fieldSchema['columns'] ) AND ! in_array( $k, $removeFields ) AND ! in_array( $k, $textFields ) )
{
$xml->startAttribute( $k );
$xml->text( $v );
@@ -906,6 +914,7 @@ class _databases extends \IPS\Node\Controller
$removeFields = array( 'category_database_id', 'category_last_record_id', 'category_last_record_date', 'category_last_record_member', 'category_last_record_name', 'category_last_record_seo_name', 'category_records', 'category_record_comments',
'category_record_comments_queued', 'category_rss_cache', 'category_rss_cached', 'category_rss_exclude', 'category_forum_override', 'category_forum_record', 'category_forum_comments', 'category_forum_delete', 'category_forum_suffix', 'category_forum_prefix',
'category_forum_forum', 'category_full_path', 'category_last_title', 'category_last_seo_title');
$categorySchema = $schema['cms_database_categories'];
foreach ( \IPS\Db::i()->select( 'c.*, w.word_custom as category_name, w2.word_custom as category_description, p.*', array('cms_database_categories', 'c'), array( 'category_database_id=?', $database->id ) )
->join( array( 'core_sys_lang_words', 'w' ), "w.word_key=CONCAT( 'content_cat_name_', c.category_id ) and w.lang_id=" . \IPS\Lang::defaultLanguage() )
->join( array( 'core_sys_lang_words', 'w2' ), "w2.word_key=CONCAT( 'content_cat_name_', c.category_id, '_desc' ) and w2.lang_id=" . \IPS\Lang::defaultLanguage() )
@@ -917,7 +926,7 @@ class _databases extends \IPS\Node\Controller
foreach( $row as $k => $v )
{
if ( ! in_array( $k, $removeFields ) AND ! in_array( $k, $textFields ) )
if ( array_key_exists( $k, $categorySchema['columns'] ) AND ! in_array( $k, $removeFields ) AND ! in_array( $k, $textFields ) )
{
$xml->startAttribute( $k );
$xml->text( $v );
@@ -1035,6 +1044,10 @@ class _databases extends \IPS\Node\Controller
{
\IPS\Dispatcher::i()->checkAcpPermission( 'databases_delete' );
/* Make sure the user confirmed the deletion */
\IPS\Request::i()->confirmedDelete();
/* Load the database */
try
{
$database = \IPS\cms\Databases::load( \IPS\Request::i()->id );
@@ -1043,27 +1056,16 @@ class _databases extends \IPS\Node\Controller
{
\IPS\Output::i()->error( 'cms_database_not_exist', '3T259/2', 403, '' );
}
$form = new \IPS\Helpers\Form( 'form', 'delete' );
$form->addMessage( \IPS\Member::loggedIn()->language()->addToStack('content_delete_db_confirm'), 'ipsMessage ipsMessage_warning' );
$form->add( new \IPS\Helpers\Form\YesNo( 'content_delete_db', 0, FALSE, array(), NULL, NULL, NULL, 'content_delete_db' ) );
if ( $values = $form->values() )
{
if ( $values['content_delete_db'] == 1 )
{
\IPS\Session::i()->log( 'acplogs__cms_deleted_database', array( 'content_db_' . $database->id => TRUE ) );
$database->delete();
/* Delete the database and clear the 'create' menu cache */
$database->delete();
\IPS\Member::clearCreateMenu();
\IPS\Member::clearCreateMenu();
}
/* Log the deletion */
\IPS\Session::i()->log( 'acplogs__cms_deleted_database', array( 'content_db_' . $database->id => TRUE ) );
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=cms&module=databases&controller=databases' ), 'deleted' );
}
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'global', 'core' )->block( 'delete', $form, FALSE );
/* Send the user back to the list */
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=cms&module=databases&controller=databases' ), 'deleted' );
}
/**
@@ -1104,6 +1106,24 @@ class _databases extends \IPS\Node\Controller
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('cms_pages_settings');
}
/**
* Resynchronise topic content dialog
*
* @return void
*/
public function rebuildTopicContent()
{
if ( isset( \IPS\Request::i()->process ) )
{
\IPS\Task::queue( 'cms', 'ResyncTopicContent', array( 'databaseId' => \IPS\Request::i()->id ), 3, array( 'databaseId' ) );
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=cms&module=databases&controller=databases&do=form&id=' . \IPS\Request::i()->id ), 'database_rebuild_added' );
}
else
{
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'databases', 'cms', 'admin' )->rebuildTopics( \IPS\Request::i()->id );
}
}
/**
* Add/Edit
*
@@ -1135,7 +1155,13 @@ class _databases extends \IPS\Node\Controller
'key' => ( $current ? "content_db_" . $current->id . "_desc" : NULL ),
'textArea' => true
) ) );
$disabled = FALSE;
if ( $current and $current->use_categories and $current->numberOfCategories() > 1 )
{
$disabled = TRUE;
}
$form->add( new \IPS\Helpers\Form\Radio( 'database_use_categories' , $current ? $current->use_categories : 1, FALSE, array(
'options' => array(
1 => 'database_use_categories_yes',
@@ -1143,11 +1169,27 @@ class _databases extends \IPS\Node\Controller
),
'toggles' => array(
1 => array( 'database_template_categories' ),
0 => array( 'category_allow_rating' )
0 => array( 'category_allow_rating', 'category_can_view_others' )
),
'disabled' => $disabled
) ) );
if ( $disabled === TRUE )
{
$form->hiddenValues['database_use_categories_impossible'] = TRUE;
\IPS\Member::loggedIn()->language()->words['database_use_categories_warning'] = \IPS\Member::loggedIn()->language()->addToStack( 'database_use_categories_impossible', NULL, array( 'sprintf' => array( $current->numberOfCategories() ) ) );
}
$form->add( new \IPS\Helpers\Form\Radio( 'database_use_as_page_title' , $current ? $current->use_as_page_title : 1, FALSE, array(
'options' => array(
1 => 'database_use_as_page_title_yes',
0 => 'database_use_as_page_title_no'
)
) ) );
\IPS\Member::loggedIn()->language()->words['category_can_view_others_desc'] = \IPS\Member::loggedIn()->language()->addToStack('category_can_view_others_database_desc');
$form->add( new \IPS\Helpers\Form\YesNo( 'category_allow_rating', ( $category !== NULL and $category->allow_rating ) ? TRUE : FALSE, FALSE, array(), NULL, NULL, NULL, 'category_allow_rating' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'category_can_view_others', ( $category !== NULL ) ? $category->can_view_others : TRUE, FALSE, array(), NULL, NULL, NULL, 'category_can_view_others' ) );
$templatesCat = NULL;
$templatesList = NULL;
@@ -1198,8 +1240,8 @@ class _databases extends \IPS\Node\Controller
'primary_id_field' => 'database_field__id',
'member_id' => 'database_field__member',
'record_publish_date' => 'database_field__saved',
'record_last_comment' => 'database_field__updated',
'rating_real' => 'database_field__rating'
'record_last_comment' => ( $current and $current->_comment_bump === \IPS\cms\Databases::BUMP_ON_EDIT ) ? 'database_field__edited' : 'database_field__updated',
'record_rating' => 'database_field__rating'
);
if ( $current )
@@ -1412,7 +1454,17 @@ class _databases extends \IPS\Node\Controller
{
$form->addMessage( 'cms_no_db_page_no_forum_link', 'ipsMessage ipsMessage_info' );
}
if ( $current )
{
$rebuildUrl = \IPS\Http\Url::internal( 'app=cms&module=databases&controller=databases&id=' . $current->id . '&do=rebuildTopicContent' );
\IPS\Member::loggedIn()->language()->words['database_forum_record_desc'] = \IPS\Member::loggedIn()->language()->addToStack( 'database_forum_record__desc' ) . ' ' . \IPS\Member::loggedIn()->language()->addToStack( 'database_forum_record__rebuild', NULL, array( 'sprintf' => array( $rebuildUrl ) ) );
}
else
{
\IPS\Member::loggedIn()->language()->words['database_forum_record_desc'] = \IPS\Member::loggedIn()->language()->addToStack( 'database_forum_record__desc' );
}
$form->add( new \IPS\Helpers\Form\YesNo( 'database_forum_record', $current ? $current->forum_record : FALSE, FALSE, array( 'togglesOn' => array(
'database_forum_comments',
'database_forum_forum',
@@ -1457,7 +1509,7 @@ class _databases extends \IPS\Node\Controller
if ( $name === 'page_name' )
{
/* Overwrite field */
$field = new \IPS\Helpers\Form\Text( 'page_name', FALSE, NULL, array( 'maxLength' => 64 ), function( $val )
$field = new \IPS\Helpers\Form\Translatable( 'page_name', FALSE, NULL, array( 'app' => 'cms', 'key' => NULL, 'maxLength' => 64 ), function( $val )
{
if ( empty( $val ) AND \IPS\Request::i()->database_create_page === 'new' )
{
@@ -1551,11 +1603,21 @@ class _databases extends \IPS\Node\Controller
{
if ( is_array( $values['database_name'] ) )
{
$current->key = \IPS\Http\Url::seoTitle( $values['database_name'][ key( $values['database_name'] ) ] );
$keyToUse = uniqid();
foreach( $values['database_name'] as $langId => $word )
{
if ( ! empty( $word ) )
{
$keyToUse = $word;
break;
}
}
$current->key = \IPS\Http\Url\Friendly::seoTitle( $keyToUse );
}
else
{
$current->key = \IPS\Http\Url::seoTitle( $values['database_name'] );
$current->key = \IPS\Http\Url\Friendly::seoTitle( $values['database_name'] );
}
/* Now test it */
@@ -1597,12 +1659,11 @@ class _databases extends \IPS\Node\Controller
\IPS\Lang::saveCustom( 'cms', "content_db_lang_pu_" . $current->id, $values['database_lang_pu'] );
\IPS\Lang::saveCustom( 'cms', "content_db_lang_ia_" . $current->id, $values['database_lang_ia'] );
\IPS\Lang::saveCustom( 'cms', "content_db_lang_sl_" . $current->id . '_pl', $values['database_lang_pu'] );
\IPS\Lang::saveCustom( 'cms', "digest_area_records" . $current->id, $values['database_lang_pu'] );
\IPS\Lang::saveCustom( 'cms', "digest_area_categories" . $current->id, $values['database_lang_pu'] );
\IPS\Lang::saveCustom( 'cms', "digest_area_cms_records" . $current->id, $values['database_lang_pu'] );
\IPS\Lang::saveCustom( 'cms', "digest_area_cms_categories" . $current->id, $values['database_lang_pu'] );
$menu = array();
foreach( \IPS\Lang::languages() as $id => $lang )
foreach( \IPS\Lang::getEnabledLanguages() as $id => $lang )
{
$menu[ $lang->_id ] = \sprintf( $lang->get('cms_create_menu_records_x'), $values['database_lang_su'][ $lang->_id ], $values['database_name'][ $lang->_id ] );
}
@@ -1619,17 +1680,7 @@ class _databases extends \IPS\Node\Controller
$current->template_form = $values['database_template_form'];
$current->template_featured = $values['database_template_featured'];
$current->cat_index_type = $values['database_cat_index_type'];
/* Make sure we have a default category */
$current->default_category = $current->_default_category;
if ( ! $current->use_categories )
{
$class = '\IPS\cms\Categories' . $current->id;
$category = $class::load( $current->get__default_category() );
$category->allow_rating = $values['category_allow_rating'];
$category->save();
}
$current->use_as_page_title = $values['database_use_as_page_title'];
$current->all_editable = (int) $values['database_all_editable'];
$current->revisions = (int) $values['database_revisions'];
@@ -1721,8 +1772,21 @@ class _databases extends \IPS\Node\Controller
}
$current->fixed_field_perms = $fixedFields;
$current->use_categories = $values['database_use_categories'];
$current->save();
/* Make sure we have a default category */
$current->default_category = $current->_default_category;
if ( ! $current->use_categories )
{
$class = '\IPS\cms\Categories' . $current->id;
$category = $class::load( $current->get__default_category() );
$category->allow_rating = $values['category_allow_rating'];
$category->can_view_others = $values['category_can_view_others'];
$category->save();
}
if ( $new )
{
@@ -1743,6 +1807,7 @@ class _databases extends \IPS\Node\Controller
$pageValues['page_content'] = '{database="' . $current->id . '"}';
$pageValues['page_template'] = '';
}
$pageValues['page_folder_id'] = $pageValues['page_folder_id'] ?: 0;
$newPage = \IPS\cms\Pages\Page::createFromForm( $pageValues, 'html' );
@@ -1755,6 +1820,9 @@ class _databases extends \IPS\Node\Controller
'area_orientation' => 'horizontal'
) );
}
$current->page_id = $newPage->id;
$current->save();
}
}
else