Пример #1
0
 /**
  * {@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);
         }
     }
 }
 /**
  * Get all popups.
  *
  * @return array
  */
 public function getPopups()
 {
     $collection = PopupModel::findAll(array('order' => 'title'));
     $builder = OptionsBuilder::fromCollection($collection, 'title');
     return $builder->getOptions();
 }