Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

DataObjectManager Module

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, biapar, Willr, Ingo, swaiba, simon_w

Install/remove modules.. Site crashes and burns.


Reply

501 Views

Avatar
Anteaus

5 May 2012 at 8:37am Community Member, 3 Posts

Installed 2.4.7, worked through the tutorials, created a basic template and installed the forum without trouble. Then tried to install Diary, and this reported a missing dependency. Installed Calendar as it sounded as if this contained the dependency. Still neither worked, so removed both folders from the site root and did /dev/build?flush. Result: White screen of death when attempting to access admin area. Public pages still work.

Looking at the database, I see that the Diary and Calendar tables are still there. There are no file types with missing classes.

There is a 2010 post describing a very similar problem, and it looks like the bug still exists.
http://www.silverstripe.org/dataobjectmanager-module-forum/show/11903

Debug output:

[User Error] Bad RecordClassName '' and $baseClass not set
GET \stripe\admin?flush=1

Line 2762 in stripe\sapphire\core\model\DataObject.php
Source

2753       foreach($records as $record) {
2754          if(empty($record['RecordClassName'])) {
2755             $record['RecordClassName'] = $record['ClassName'];
2756          }
2757          if(class_exists($record['RecordClassName'])) {
2758             $results[] = new $record['RecordClassName']($record);
2759          } else {
2760             if(!$baseClass) {
2761                user_error("Bad RecordClassName '{$record['RecordClassName']}' and "
2762                   . "\$baseClass not set", E_USER_ERROR);
2763             } else if(!is_string($baseClass) || !class_exists($baseClass)) {
2764                user_error("Bad RecordClassName '{$record['RecordClassName']}' and bad "
2765                   . "\$baseClass '$baseClass not set", E_USER_ERROR);
2766             }
2767             $results[] = new $baseClass($record);
2768          }