Version 5.0.0 beta 2

This commit is contained in:
Neo committed 2025-12-19 16:39:01 -08:00
1 parent 15c7beabc5
commit f61b0da85d
181 files changed
+3182 -1533

No files matched your search

@@ -416,6 +416,9 @@ class databases extends Controller
{
$name = NULL;
$desc = NULL;
$displaySettings = [
'index' => [ 'type' => 'categories', 'layout' => 'table' ]
];
if ( $xml->name == 'data' )
{
@@ -423,26 +426,60 @@ class databases extends Controller
$node = new SimpleXMLElement( $xml->readOuterXML() );
foreach( $node->attributes() as $k => $v )
{
$database->$k = (string) $v;
switch( $k )
{
case 'template_listing':
$displaySettings['listing'] = ( $v == 'listing' ) ? [ 'layout' => 'table', 'template' => null ] : [ 'layout' => 'custom', 'template' => (string) $v ];
break;
case 'template_display':
$displaySettings['display'] = [ 'layout' => 'custom', 'template' => (string) $v ];
break;
case 'template_form':
$displaySettings['form'] = [ 'layout' => 'custom', 'template' => (string) $v ];
break;
case 'template_categories':
$displaySettings['categories'] = ( $v == 'category_index' ) ? [ 'layout' => 'table', 'template' => null ] : [ 'layout' => 'custom', 'template' => (string) $v ];
break;
case 'template_featured':
break;
case 'cat_index_type':
if( $v )
{
$displaySettings['index'] = [ 'type' => 'all', 'layout' => 'grid' ];
}
break;
default:
$database->$k = (string) $v;
break;
}
}
/* Any kids of your own? */
foreach( $node->children() as $k => $v )
{
if ( $k === 'name' )
switch( $k )
{
$name = $v;
}
else if ( $k === 'description' )
{
$desc = $v;
}
else
{
$tryJson = json_decode( $v, TRUE );
$database->$k = ( $tryJson ) ?: (string) $v;
case 'name':
$name = $v;
break;
case 'description':
$desc = $v;
break;
case 'featured_settings':
$json = json_decode( $v, true );
if( isset( $json['featured'] ) and $json['featured'] )
{
$displaySettings['index']['type'] = 'featured';
}
break;
default:
$tryJson = json_decode( $v, TRUE );
$database->$k = ( $tryJson ) ?: (string) $v;
break;
}
}
$database->display_settings = $displaySettings;
Lang::saveCustom( 'cms', "content_db_" . $database->id, $name );
Lang::saveCustom( 'cms', "content_db_" . $database->id . '_desc', $desc );
@@ -650,8 +687,18 @@ class databases extends Controller
}
else
{
$attrs[ $k ] = ( $k == 'category_parent_id' ) ? (int) $v : (string) $v;
switch( $k )
{
case 'category_parent_id':
$attrs[ $k ] = (int) $v;
break;
case 'category_club_id': // always null because the club itself is not imported here
$attrs[ $k ] = null;
break;
default:
$attrs[ $k ] = (string) $v;
break;
}
}
}
@@ -697,6 +744,13 @@ class databases extends Controller
}
}
}
/* If the database does not have a default category yet, assign one */
if( !$database->use_categories and !$database->default_category )
{
$database->default_category = $category->id;
$database->save();
}
$cat_map = Store::i()->db_import_cat_map;
$parent_map = Store::i()->db_import_cat_parent_map;
@@ -809,7 +863,7 @@ class databases extends Controller
/* Done */
$data['next'] = $next;
return array( $data, Member::loggedIn()->language()->addToStack('cms_db_import_progress', FALSE, array( 'sprintf' => array( ucfirst( $data['next'] ) ) ) ) );
return array( $data, Member::loggedIn()->language()->addToStack('cms_db_import_progress', FALSE, array( 'sprintf' => array( ucfirst( $data['next'] ?? '' ) ) ) ) );
}
else
{
@@ -993,7 +1047,7 @@ class databases extends Controller
if ( array_key_exists( $k, $fieldSchema['columns'] ) AND ! in_array( $k, $removeFields ) AND ! in_array( $k, $textFields ) )
{
$xml->startAttribute( $k );
$xml->text( $v );
$xml->text( $v ?? '' );
$xml->endAttribute();
}
}
@@ -1040,7 +1094,7 @@ class databases extends Controller
if ( array_key_exists( $k, $categorySchema['columns'] ) AND ! in_array( $k, $removeFields ) AND ! in_array( $k, $textFields ) )
{
$xml->startAttribute( $k );
$xml->text( $v );
$xml->text( $v ?? '' );
$xml->endAttribute();
}
}