コード例 #1
0
 /**
  * Sets options for a display, inheriting from the defaults when possible.
  *
  * This function can be used to set options for a display when it is desired
  * that the options inherit from the default display whenever possible. This
  * avoids setting too many options as overrides, which will be harder for the
  * user to modify later. For example, if $this->setDefaultOptions() was
  * previously called on a page display and then this function is called on a
  * block display, and if the user entered the same title for both displays in
  * the views wizard, then the view will wind up with the title stored as the
  * default (with the page and block both inheriting from it).
  *
  * @param array $options
  *   An array whose keys are the name of each option and whose values are the
  *   desired values to set.
  * @param \Drupal\views\View\plugin\display\DisplayPluginBase $display
  *   The display handler which the options will be applied to. The default
  *   display will actually be assigned the options (and this display will
  *   inherit them) when possible.
  * @param \Drupal\views\View\plugin\display\DisplayPluginBase $default_display
  *   The default display handler, which will store the options when possible.
  */
 protected function setOverrideOptions(array $options, DisplayPluginBase $display, DisplayPluginBase $default_display)
 {
     foreach ($options as $option => $value) {
         // Only override the default value if it is different from the value that
         // was provided.
         $default_value = $default_display->getOption($option);
         if (!isset($default_value)) {
             $display->setOption($option, $value);
         } elseif ($default_value !== $value) {
             $display->overrideOption($option, $value);
         }
     }
 }