コード例 #1
0
ファイル: ViewExecutable.php プロジェクト: nsp15/Drupal8
 /**
  * Internal method to build an individual set of handlers.
  *
  * @todo Some filter needs this function, even it is internal.
  *
  * @param string $key
  *    The type of handlers (filter etc.) which should be iterated over to
  *    build the relationship and query information.
  */
 public function _build($key)
 {
     $handlers =& $this->{$key};
     foreach ($handlers as $id => $data) {
         if (!empty($handlers[$id]) && is_object($handlers[$id])) {
             $multiple_exposed_input = array(0 => NULL);
             if ($handlers[$id]->multipleExposedInput()) {
                 $multiple_exposed_input = $handlers[$id]->groupMultipleExposedInput($this->exposed_data);
             }
             foreach ($multiple_exposed_input as $group_id) {
                 // Give this handler access to the exposed filter input.
                 if (!empty($this->exposed_data)) {
                     if ($handlers[$id]->isAGroup()) {
                         $converted = $handlers[$id]->convertExposedInput($this->exposed_data, $group_id);
                         $handlers[$id]->storeGroupInput($this->exposed_data, $converted);
                         if (!$converted) {
                             continue;
                         }
                     }
                     $rc = $handlers[$id]->acceptExposedInput($this->exposed_data);
                     $handlers[$id]->storeExposedInput($this->exposed_data, $rc);
                     if (!$rc) {
                         continue;
                     }
                 }
                 $handlers[$id]->setRelationship();
                 $handlers[$id]->query($this->display_handler->useGroupBy());
             }
         }
     }
 }