Posted by polskikrol on May 22, 2012 at 4:00am
26 followers
Jump to:
| Project: | Calendar |
| Version: | 7.x-3.4 |
| Component: | Code |
| Category: | bug report |
| Priority: | major |
| Assigned: | Unassigned |
| Status: | active |
Issue Summary
After installing 7.x-3.4, the calendar block does not view properly. Further, the following issues are seen:
- Error 'calendar_plugin_style: The calendar row plugin is required when using the calendar style, but it is missing.' seen.
- Navigating to 'admin/structure/views/view/calendar/edit' results in 500 error.
- The following error seen in dblog:
'calendar_plugin_style: The calendar row plugin is required when using the calendar style, but it is missing.'
in calendar_plugin_style->render() (line 228 of sites/all/modules/calendar/includes/calendar_plugin_style.inc).
Comments
#1
I also have this issue with the new D7 update, except I don't get the 500 error you mentioned. I did before I cleared the cache though. Following.
Edit: I get the following warning appear twice on the view edit page:
"Style Calendar requires a row style but the row plugin is invalid."
#2
Same issue as OP.
- missing calendar pluging style message
- missing calendar_plugin_style error in dblog
- cannot edit view:
httpd/error_logPHP Fatal error: Call to a member function summary_title() on a non-object in /var/www/html/drupal-7.14/sites/all/modules/views/plugins/views_plugin_display.inc on line 1148, referer: http://example.com/
#3
It appears that sometimes, you need to rebuild the View using the last Calendar template (at least it seems to have worked on my instance).
#4
Simon's advice at #3 works.
I deleted the view and then built a new view from template (/admin/structure/views/add-template).
I lucked out that after I deleted the original view, I could save the new view with the same name; thus most of my CSS was not affected.
#5
That is the right solution. I had to create some new calendar components that work better than the old ones did and it resulted in deprecating some old ones. Creating a new view will make everything work.
#6
I see 9 different templates to pick from... which one is the correct one to retain original functionality?
Also, any reason why such a drastic change did not have database schema changes to make the old view compatible ?
#7
A message with the "Release Notes" explaining calendar views must be recreated would be nice.
#8
I have tried exporting the view-> import it again.
However it does not work. Should I need to rebuilt the view from scratch?
My previous views were quite complicated. I am afraid it is not that easy to do so.
Now I have downgraded to use version 7.3.
#9
@polskikrol, each template is actually the same, but targetting a different date field, so choose the one regarding the date field you want to use for your calendar.
#10
Thanks guys, that's the solution. More specifically, these are the steps I took:
1. Go to admin/structure/views
2. In the list of views, find the Calendar view
3. Under the Operations column, click Delete
4. From the same page, click 'Add view from template'
5. Select whichever view matches your field name (can be found under admin/structure/types/manage/[event node type]/fields)
6. Ensure you save the view
#11
For anyone not wanting to re-create their calendar views the following can be done.
$handler->display->display_options['row_plugin'] = 'calendar_entity';Hope this helps!
#12
I get the following error when I try to rebuild the view with a template:
Original View disappeared but no new is created.
#13
#11's solution restores the calendar at the Month page. However, it does not work on all other display: year page, week page, and the month block.
#14
Great!! I follow the #11 steps and its works again.
Thanks!!
#15
The solution is to create a new view. There is no way to 'change the schema' of an existing view automatically, so there is no way for the code to do this automatically.
#16
+1 #10 #15
It's necessary to delete the view and create it new.
#17
#10 worked for me with one exception. I did not have the ability to "delete" it, but instead disabled it.
Got it to working now, thanks for the help!!
Frank
#18
For me it was #10 who fix my problem.
Thanks!
#19
cries..
as KarenS says in #5, recreating all your views is the only "stable" solution
I can't help but wonder why a simple module update can become such a pain and it is not mentioned anywhere in the release notes? Don't we care for some little backwards compatibilty? How about deprecating stuff instead of deleting it?
For me this means hours of work recreating all the views, and lots of chances to make mistakes in doing so :( It is a rather complex site and I use calendar functionality in many places.
Luckily I didn't take any chances and used a testserver first..
#20
Automatically closed -- issue fixed for 2 weeks with no activity.
#21
For me it was #10 - thank you.
#22
I Exported the view, removed the code related to
/* Display: Week */(This display was causing problem to me and I don't need it)imported the view code with "Replace an existing view if one exists with the same name" and "Bypass view validation"
#23
'calendar_plugin_style: The calendar row plugin is required when using the calendar style, but it is missing.'
in calendar_plugin_style->render() (line 228 of C:\wamp\www\sitename\sites\all\modules\calendar\includes\calendar_plugin_style.inc).
I've read the fixes for this however wouldn't it make more sense then to remove the calendar views by default if you have to delete it and re-create them? Seems very strange to leave something installed that basically needs deleting straight away.
Can these views be removed and instructions on how to create them be included in the readme.txt file instead?
Thank you
#24
Added to previous comment there's no way to delete the broken views. There's only a disable option in the dropdown. Clicking on edit to go into the view then normally click the delete view just outputs the following in the view.
( ! ) Fatal error: Call to a member function summary_title() on a non-object in C:\wamp\www\sitename\sites\all\modules\views\plugins\views_plugin_display.inc on line 1192
This has also broken http://drupal.org/project/events_calendar_feature.
#25
@kylebcooke that is fantastic! Thanks much.
I had the WSOD with this error:
PHP Fatal error: Call to a member function summary_title() on a non-object in ...sites/all/modules/views/plugins/views_plugin_display.inc on line 1192
I followed your advice and made some other changes and my calendar views are back!
Here are my complete steps:
$handler->display->display_options['row_plugin'] = 'calendar_entity';just below the last
$handler->display->display_options['style_options']...
in the /* Display: Master */ before any field declarations like: /* Field: Content: Title */.
['row_plugin']
I found that I had one for each display:
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;to
$handler->display->display_options['defaults']['row_plugin'] = TRUE;unless you have a display that already has a
$handler->display->display_options['row_plugin']
entry.
In that case leave it false. Ex:
/*no change*/
$handler->display->display_options['defaults']['row_plugin'] = FALSE;$handler->display->display_options['row_plugin'] = 'fields';
@metakel: This may help your issue
Block notes:
I noticed the error when running
$ drush cc all.Ex: I had 2 blocks (block_1, block_2) and the highest number was 2 so
$handler = $view->new_display('block', 'Upcoming', 'block_1');became
$handler = $view->new_display('block', 'Upcoming', 'block_3');and
$handler = $view->new_display('block', 'Upcoming', 'block_2');became
$handler = $view->new_display('block', 'Upcoming', 'block_4');Perhaps I could have avoided this by using some combination of cache clearing and db updating but the damage was done and this fixed it.
Optional steps (these may not be necessary)
Now my calendars are back and I don't have any php errors.
@KarenS; Could something like this be done programmatically?
#26
Thanks vid (#25), it worked for me.
#27
Hurray I solved the issue.
I was stuck at this issue for a long time.
Then I solved the issue.
Solution :
The Events Calender view that gets generated automatically is having some default settings.
And It happens many time that You don't have all the same in your site.
step 1 : delete or Disable the View : Events Calender
step 2: Create a new view using : create View using Template.
step 3:SELECT CALENDER AND THE DATE FIELD THAT YOU WANT THE VIEW TO BE TRACKED ON.
step 4 : allocate your view to specific block and enjoy the special calender features of your website.
#28
Thanks @_vid, #25 worked!
Note to avoid step #7, I simply deleted the calendar view prior to re-importing it.
#29
Great. Glad it's working for others. @webdrips; thanks for the tip on Step #7.
#30
Thanks all, #25 fixed it for me!