@@ -299,5 +299,47 @@ function xmldb_cms_upgrade($oldversion) {
299
299
upgrade_mod_savepoint (true , 2023111500 , 'cms ' );
300
300
}
301
301
302
+ if ($ oldversion < 2023112100 ) {
303
+ // Update CMS types settings to upgrade list to userlist.
304
+ $ like = $ DB ->sql_like ('datasources ' , ':list ' );
305
+ $ records = cms_types::get_records_select ($ like , ['list ' => '%list% ' ]);
306
+ foreach ($ records as $ record ) {
307
+ $ datasources = $ record ->get ('datasources ' );
308
+ // Remove list.
309
+ $ datasources = array_filter ($ datasources , function ($ i ) {
310
+ return $ i !== 'list ' ;
311
+ });
312
+ // Add userlist.
313
+ $ datasources [] = 'userlist ' ;
314
+ $ record ->set ('datasources ' , $ datasources );
315
+ // Convert config hash name.
316
+ $ hash = $ record ->get_custom_data ('listconfighash ' );
317
+ if ($ hash !== null ) {
318
+ $ record ->set_custom_data ('listconfighash ' , null );
319
+ $ record ->set_custom_data ('userlistconfighash ' , $ hash );
320
+ }
321
+ $ record ->save ();
322
+ }
323
+
324
+ // Update CMS instances.
325
+ $ like = $ DB ->sql_like ('datasources ' , ':userlist ' );
326
+ $ cmstypeids = $ DB ->get_records_select_menu ('cms_types ' , $ like , ['userlist ' => '%userlist% ' ], '' , 'id,name ' );
327
+ if (count ($ cmstypeids ) !== 0 ) {
328
+ [$ insql , $ inparams ] = $ DB ->get_in_or_equal (array_keys ($ cmstypeids ));
329
+ $ records = cms::get_records_select ("typeid $ insql " , $ inparams );
330
+ foreach ($ records as $ record ) {
331
+ // Convert config hash name.
332
+ $ hash = $ record ->get_custom_data ('listinstancehash ' );
333
+ if ($ hash !== null ) {
334
+ $ record ->set_custom_data ('listinstancehash ' , null );
335
+ $ record ->set_custom_data ('userlistinstancehash ' , $ hash );
336
+ $ record ->save ();
337
+ }
338
+ }
339
+ }
340
+
341
+ upgrade_mod_savepoint (true , 2023112100 , 'cms ' );
342
+ }
343
+
302
344
return true ;
303
345
}
0 commit comments