node_reference.inc 840 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. /**
  3. * @file
  4. * Contains the CER plugin for Node Reference fields.
  5. */
  6. class CerNodeReferenceField extends CerField {
  7. /**
  8. * Implements CerField::getTargetType().
  9. */
  10. public function getTargetType() {
  11. return 'node';
  12. }
  13. /**
  14. * @override CerField::getTargetBundles().
  15. */
  16. public function getTargetBundles() {
  17. $bundles = array();
  18. $view = $this->settings['view']['view_name'];
  19. if ($view) {
  20. $view = views_get_view($view);
  21. $view->set_display($this->settings['view']['view_display']);
  22. $handler = $view->display_handler->get_handler('filter', 'type');
  23. if ($handler) {
  24. $bundles = $handler->value;
  25. }
  26. }
  27. else {
  28. $bundles = array_filter($this->settings['referenceable_types']);
  29. }
  30. return ($bundles ? $bundles : parent::getTargetBundles());
  31. }
  32. }