You are here

class Debug in Openlayers 7.3

Class Debug.

Plugin annotation


@OpenlayersPlugin(
 id = "Debug"
)

Hierarchy

Expanded class hierarchy of Debug

File

src/Plugin/Component/Debug/Debug.php, line 19
Component: Debug.

Namespace

Drupal\openlayers\Plugin\Component\Debug
View source
class Debug extends Component {

  /**
   * {@inheritdoc}
   */
  public function postBuild(array &$build, ObjectInterface $context = NULL) {
    $alternative_template = 'openlayers--' . str_replace('_', '-', $context
      ->getMachineName()) . '.tpl.php';
    $template_value = file_get_contents(drupal_get_path('module', 'openlayers') . '/theme/openlayers.tpl.php');
    $build['parameters'][$this
      ->getPluginId()] = array(
      '#type' => 'fieldset',
      '#title' => 'Map debug',
      '#description' => 'Here\'s a quick view of all the objects in the map.',
      '#attributes' => array(
        'class' => array(
          'collapsible',
          'collapsed',
        ),
      ),
      '#attached' => array(
        'library' => array(
          array(
            'system',
            'drupal.collapse',
          ),
        ),
      ),
      'theme' => array(
        '#weight' => 20,
        '#type' => 'fieldset',
        '#attributes' => array(
          'class' => array(
            'collapsible',
            'collapsed',
          ),
        ),
        '#title' => 'Theming information',
        'template_content' => array(
          '#title' => 'Openlayers map template',
          '#type' => 'textarea',
          '#default_value' => $template_value,
          '#value' => $template_value,
          '#description' => t('The default Openlayers template is <strong>openlayers.tpl.php</strong> for all the maps. You may override it by creating a file with the same name in your theme template\'s directory. You can also name it <em>openlayers--[map_machine_name].tpl.php</em> if you want to alter the display of this particular map only. For example: <strong>@template</strong>.', array(
            '@template' => $alternative_template,
          )),
        ),
      ),
    );
    foreach ($context
      ->getCollection()
      ->getObjects() as $type => $objects) {
      $build['parameters'][$this
        ->getPluginId()][$type] = array(
        '#type' => 'fieldset',
        '#title' => 'Plugin type: ' . $type,
        '#attributes' => array(
          'class' => array(
            'collapsible',
            'collapsed',
          ),
        ),
      );
      foreach ($objects as $object) {
        $build['parameters'][$this
          ->getPluginId()][$type][$object
          ->getMachineName()] = array(
          '#type' => 'fieldset',
          '#attributes' => array(
            'class' => array(
              'collapsible',
              'collapsed',
            ),
          ),
          '#title' => $object
            ->getMachineName(),
          'configuration' => $this
            ->getInfo($object),
        );
      }
    }
  }

  /**
   * Return the markup for a table.
   *
   * @param array $data
   *   The values of the table.
   *
   * @return string
   *   The HTML.
   */
  protected function toInfoArrayMarkup($data) {
    $rows = array();
    foreach ($data as $name => $value) {
      if (is_array($value)) {
        $value = $this
          ->toInfoArrayMarkup($value);
      }
      else {
        $value = htmlspecialchars($value);
      }
      $rows[] = array(
        'data' => array(
          '<code>' . $name . '</code>',
          '<code>' . $value . '</code>',
        ),
        'no_striping' => TRUE,
      );
    }
    $table = array(
      '#type' => 'table',
      '#rows' => $rows,
    );
    return drupal_render($table);
  }

  /**
   * Array containing basic information about an OL Object.
   *
   * @param \Drupal\openlayers\Types\ObjectInterface $object
   * @return array
   */
  protected function getInfo(ObjectInterface $object) {
    $js = $object
      ->getJS();
    $info = array(
      'mn' => array(
        '#type' => 'item',
        '#title' => 'Machine name:',
        '#markup' => $object
          ->getMachineName(),
      ),
      'fs' => array(
        '#type' => 'item',
        '#title' => 'Factory service:',
        '#markup' => $object
          ->getFactoryService(),
      ),
    );
    $plugin_description = $object
      ->getPluginDescription();
    if (!empty($plugin_description)) {
      $info['pd'] = array(
        '#type' => 'item',
        '#title' => 'Plugin description:',
        '#markup' => $plugin_description,
      );
    }
    if (isset($js['opt'])) {
      $info['opt'] = array(
        '#type' => 'item',
        '#title' => 'Options:',
        'options' => array(
          '#markup' => $this
            ->toInfoArrayMarkup($js['opt']),
        ),
      );
    }
    return $info;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Base::$attached protected property Holds all the attachment used by this object. 6
Base::$collection protected property Holds the Collection object.
Base::$id protected property A unique ID for the object.
Base::addObject public function Add an object into the collection of the parent object. Overrides ObjectInterface::addObject
Base::attached public function Returns a list of attachments for building the render array. Overrides ObjectInterface::attached 6
Base::clearOption public function Remove an option. Overrides ObjectInterface::clearOption
Base::dependencies public function Defines dependencies. Overrides ObjectInterface::dependencies 3
Base::getClassDirectory public function Returns the path to the plugin directory. Overrides ObjectInterface::getClassDirectory
Base::getClassPath public function Returns the path to the class file. Overrides ObjectInterface::getClassPath
Base::getCollection public function Return the Collection object linked to the object. Overrides ObjectInterface::getCollection
Base::getConfiguration public function Return the object configuration. Overrides ObjectInterface::getConfiguration
Base::getDependencies public function Return all the dependencies objects of the parent object. Overrides ObjectInterface::getDependencies
Base::getDescription public function Return the description of the object. Overrides ObjectInterface::getDescription
Base::getExport public function Return an object, CTools Exportable. Overrides ObjectInterface::getExport
Base::getFactoryService public function Return the Factory Service of the object. Overrides ObjectInterface::getFactoryService
Base::getId public function Return the object unique ID. Overrides ObjectInterface::getId
Base::getJS public function !Attention! This function will remove any option that is named after a plugin type e.g.: layers, controls, styles, interactions, components . Overrides ObjectInterface::getJS 6
Base::getMachineName public function Return the unique machine name of the object. Overrides ObjectInterface::getMachineName
Base::getName public function Return the human name of the object. Overrides ObjectInterface::getName
Base::getObjects public function Return an array of OL objects indexed by their type. Overrides ObjectInterface::getObjects
Base::getOption public function Returns an option. Overrides ObjectInterface::getOption
Base::getOptions public function Return the options array. Overrides ObjectInterface::getOptions
Base::getParents public function Returns an array with the maps this object is attached on. Overrides ObjectInterface::getParents
Base::getPluginDescription public function Return the description of the object's plugin. Overrides ObjectInterface::getPluginDescription
Base::getProvider public function Return the module that provides this plugin. Overrides ObjectInterface::getProvider
Base::getType public function The type of this object. Overrides ObjectInterface::getType
Base::getWeight public function Get the weight of an object. Overrides ObjectInterface::getWeight
Base::i18nStringsRefresh public function Refresh string translations. Overrides ObjectInterface::i18nStringsRefresh 1
Base::init public function Initializes the object. Overrides ObjectInterface::init 2
Base::initCollection public function Initializes the Collection, Import objects from options, Import the current object. Overrides ObjectInterface::initCollection
Base::isAsynchronous public function Whether or not this object has to be processed asynchronously. Overrides ObjectInterface::isAsynchronous 3
Base::optionsForm public function @TODO What is this return? If it is the form, why is form by reference? Overrides ObjectInterface::optionsForm 54
Base::optionsFormSubmit public function Submit callback for the options form. Overrides ObjectInterface::optionsFormSubmit 11
Base::optionsFormValidate public function Validation callback for the options form. Overrides ObjectInterface::optionsFormValidate
Base::optionsToObjects public function Return a flat array containing Openlayers Objects from the options array. Overrides ObjectInterface::optionsToObjects 9
Base::preBuild public function Invoked before an objects render array is built. Overrides ObjectInterface::preBuild 4
Base::removeObject public function Remove an object from the collection. Overrides ObjectInterface::removeObject
Base::resetCollection public function Reset the object's Collection. Overrides ObjectInterface::resetCollection
Base::setFactoryService public function Set the Factory Service of the object. Overrides ObjectInterface::setFactoryService
Base::setId public function Set the object ID. Overrides ObjectInterface::setId
Base::setOption public function Set an option. Overrides ObjectInterface::setOption
Base::setOptions public function Set the options array. Overrides ObjectInterface::setOptions
Base::setWeight public function Set the weight of an object. Overrides ObjectInterface::setWeight
Component::$options protected property The array containing the options. Overrides Base::$options
Debug::getInfo protected function Array containing basic information about an OL Object.
Debug::postBuild public function Invoked after an objects render array is built. Overrides Base::postBuild
Debug::toInfoArrayMarkup protected function Return the markup for a table.