На мой взгляд, слишком много кода? CakePHP / MVC шаблон проектирования - PullRequest
2 голосов
/ 10 марта 2011

Я использую Google Maps CakePHP помощник от dereuromark, чтобы показать карту в моем представлении.На карте также есть маркеры, и у каждого маркера есть собственный связанный слушатель, который выполняет вызов ajax.

Карта отображается идеально, и все работает, как и ожидалось.Однако я не уверен, что весь этот код отделен от моего взгляда?Я новичок в архитектуре MVC ...

<h1>Render map</h1>
<?php

// returns true if user logged in
if (!$session->check('Auth.User.id')){
    echo $this->Html->link('Log in',array('controller'=>'users', 'action' => 'login'));
} else 
{   
    echo "Hello " . $session->read('Auth.User.username') . "... ";
    echo $this->Html->link('Log out',array('controller'=>'users', 'action' => 'logout'));
}
echo $this->GoogleMapV3->map(array('map' => array('lat' => '44.230065', 'lng' => '-76.5000', 'zoom' => 14), 'div'=>array('id'=>'my_map3', 'height' => '400px', 'width' => '786px')));

foreach ($posts as $post) {
    $options = array(
        'lat' => $post['Post']['lat'],
        'lng' => $post['Post']['lng'],
    );

    $marker = $this->GoogleMapV3->addMarker($options);
    $script = "$.ajax({
                          url: \"show_post.php?q=\"+{$post['Post']['id']},
                          success: function(html){
                            $(\"#results\").html(html);
                          }
                        });";
    $this->GoogleMapV3->addCustomEvent($marker,$script);

}

echo $this->GoogleMapV3->script();

?>

Если бы вы могли указать на любые недостатки дизайна, которые были бы великолепны.Спасибо

1 Ответ

1 голос
/ 11 марта 2011

выглядит хорошо, если вы не выполняете какие-либо вызовы модели или слишком много бизнес-логики в хороших представлениях.Вы можете вставить приветствие в элемент и просто вызвать $ this-> element ('reeting ');вверху вместо if

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...