123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace LeafletBundle\Controller;
- use Symfony\Bundle\FrameworkBundle\Controller\Controller;
- use Symfony\Component\Workflow\Exception\ExceptionInterface;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\Response;
- use Sonata\AdminBundle\Admin\Pool;
- class LeafletController extends Controller
- {
- public function createVectorAction($layerId = 1, Request $request)
- {
- $vectorsPopup = $vectors = array();
- //{"lat":-34.6036844,"lng":-58.381559100000004,"zoom":10} BS AS
- $map = array('lat'=>-34.6036844,'lng'=>-58.381559100000004,'zoom'=>10);
- $layerName = "New Layer";
- $em = $this->get('doctrine')->getManager();
- $layer = $em->getRepository("MapBundle\Entity\Layer")->findOneById($layerId);
- $layers = array();
- if(!is_null($layer)) {
- $layerName = $layer->getName();
- if($layer->getMap()) {
- $_layers = $layer->getMap()->getLayers();
- foreach($_layers as $k => $l) {
- if($l->getId() == $layerId) continue;
- $_vectors = $l->getVectors();
- foreach($_vectors as $k => $v) {$vectorsPopup[] = $v;}
- $layers[] = array('name' => $l->getName(),'vectors'=>$_vectors);
- }
- $map = $layer->getMap()->jsonExtraData();
- }
- $vectors = $em->getRepository("MapBundle\Entity\Vector")->findByLayer($layer);
- foreach($vectors as $k => $v) {$vectorsPopup[] = $v;}
- }
- $adminPool = $this->get('sonata.admin.pool');
- $url_post = "admin_map_vector_create_ajax";
- $url_delete = "admin_map_vector_delete_ajax";
- return $this->render('LeafletBundle:Leaflet:create_vector.html.twig', array(
- 'base_template' => $adminPool->getTemplate('layout'),
- 'admin_pool' => $adminPool,
- 'admin' => $adminPool->getAdminByClass("MapBundle\Entity\Map"),
- 'uuid' => time(),
- 'url_post' => $url_post,
- 'url_delete' => $url_delete,
- 'vectors' => $vectors,
- 'layerId' => $layerId,
- 'map' => $map,
- 'layers' => $layers,
- 'vectorsPopup' => $vectorsPopup,
- 'layerName' => $layerName
- ));
- }
- public function saveVectorAction(Request $request)
- {
- print_r($request->request->all());
- die;
- }
- public function showMapAction($mapId = null, Request $request)
- {
- if(is_null($mapId)) {
- print_r("error: null mapId");
- die;
- }
- $layers = array();
- $em = $this->get('doctrine')->getManager();
- $map = $em->getRepository("MapBundle\Entity\Map")->findOneById($mapId);
- $objectClasses = $em->getRepository("MapBundle\Entity\ObjectClass")->findAll();
- $_layers = $map->getLayers();
- foreach($_layers as $k => $l) {
- $_vectors = $l->getVectors();
- $layers[] = array('name' => $l->getName(),'vectors'=>$_vectors);
- }
- $map = $map->jsonExtraData();
- $adminPool = $this->get('sonata.admin.pool');
- return $this->render('LeafletBundle:Leaflet:show_map.html.twig', array(
- 'base_template' => $adminPool->getTemplate('layout'),
- 'admin_pool' => $adminPool,
- 'admin' => $adminPool->getAdminByClass("MapBundle\Entity\Map"),
- 'map' => $map,
- 'layers' => $layers,
- 'objectClasses' => $objectClasses
- ));
- }
- }
|