metatag_views_plugin_display_extender_metatags.inc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. /**
  3. * @file
  4. * Custom display extender plugin for Views.
  5. */
  6. class metatag_views_plugin_display_extender_metatags extends views_plugin_display_extender {
  7. protected function has_metatags() {
  8. return metatag_views_views_display_has_metatags($this->display);
  9. }
  10. function options_definition_alter(&$options) {
  11. $options['metatags'] = array('default' => array());
  12. }
  13. function options_summary(&$categories, &$options) {
  14. if ($this->has_metatags()) {
  15. $categories['metatags'] = array(
  16. 'title' => t('Meta tags'),
  17. 'column' => 'second',
  18. );
  19. $metatags = $this->display->get_option('metatags');
  20. $options['metatags'] = array(
  21. 'category' => 'metatags',
  22. 'title' => t('Meta tags'),
  23. 'value' => !empty($metatags) ? t('Overridden') : t('Using defaults'),
  24. );
  25. }
  26. }
  27. function options_form(&$form, &$form_state) {
  28. if ($form_state['section'] == 'metatags') {
  29. $form['#title'] .= t('The meta tags for this display');
  30. $instance = 'view:' . $form_state['view']->name;
  31. $metatags = $this->display->get_option('metatags');
  32. $metatags = !empty($metatags) ? $metatags : array();
  33. $options['token types'] = array('view');
  34. $options['context'] = 'view';
  35. metatag_metatags_form($form, $instance, $metatags, $options);
  36. $form['metatags']['#type'] = 'container';
  37. }
  38. }
  39. function options_submit(&$form, &$form_state) {
  40. if ($form_state['section'] == 'metatags') {
  41. $metatags = $form_state['values']['metatags'];
  42. metatag_filter_values_from_defaults($metatags);
  43. $this->display->set_option('metatags', $metatags);
  44. }
  45. }
  46. }