/** * {@inheritdoc} */ protected function build(Definition $definition, \Model $model, DefinitionMapper $mapper, Filter $filter = null, Definition $parent = null) { if ($definition instanceof Marker) { if ($model->addPopup) { $popup = null; $content = $this->valueFilter->filter($model->popupContent); if ($model->popup) { $popupModel = PopupModel::findActiveByPK($model->popup); if ($popupModel) { $popup = $mapper->handle($popupModel, $filter, null, $definition); } } if ($popup instanceof Popup) { $definition->bindPopup($content, $popup->getOptions()); } else { $definition->bindPopup($content); } } if ($model->customIcon) { $iconModel = IconModel::findBy(array('id=?', 'active=1'), array($model->icon), array('return' => 'Model')); if ($iconModel) { /** @var ImageIcon $icon */ $icon = $mapper->handle($iconModel); $definition->setIcon($icon); } } } }
/** * Build the popup. * * @param Definition $definition The definition. * @param \Model $model The model. * @param DefinitionMapper $mapper The definition mapper. * @param Filter $filter The filter. * * @return void */ protected function buildPopup(Definition $definition, \Model $model, DefinitionMapper $mapper, Filter $filter = null) { if ($definition instanceof HasPopup && $model->addPopup) { $popup = null; $content = $this->valueFilter->filter($model->popupContent); if ($model->popup) { $popupModel = PopupModel::findActiveByPK($model->popup); if ($popupModel) { $popup = $mapper->handle($popupModel, $filter, null, $definition); } } if ($popup instanceof Popup) { $definition->bindPopup($content, $popup->getOptions()); } else { $definition->bindPopup($content); } } }