1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- /**
- * @file
- * Contains the content ID argument handler.
- */
- /**
- * Handler to accept an argument of the content ID of any object.
- *
- * @ingroup views
- */
- class flag_handler_argument_entity_id extends views_handler_argument_numeric {
- /**
- * Returns the flag object associated with our argument.
- *
- * An argument is in some relationship. This function reaches out for this
- * relationship and reads its 'flag' option, which holds the flag name.
- */
- function get_flag() {
- return $this->view->relationship[$this->options['relationship']]->get_flag();
- }
- /**
- * Override the behavior of title(). Get the title of the appropriate objects.
- */
- function title_query() {
- if (!($flag = $this->get_flag())) {
- // Error message is printed by get_flag().
- return array();
- }
- $views_info = $flag->get_views_info();
- $titles = array();
- $placeholders = implode(', ', array_fill(0, count($this->value), '%d'));
- $result = db_select($views_info['views table'], 'o')
- ->fields('o', array($views_info['title field']))
- ->condition('o.' . $views_info['join field'], $this->value, 'IN')
- ->execute();
- foreach ($result as $title) {
- $titles[] = check_plain($title->$views_info['title field']);
- }
- return $titles;
- }
- }
|