Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: MVC Что должен решить контролер, а что отображение

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ekkl
Отправлено: 26 Марта, 2014 - 20:23:05
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Окт. 2013  


Помог: 0 раз(а)




Может однозначного ответа нет, но есть такой вопрос. Пишу на Kohana, хотя это к делу прямого отношения не имеет.
Есть код в отображении
PHP:
скопировать код в буфер обмена
  1.    <?PHP if ($test) : ?>
  2.           <?= HTML::anchor(Route::url('install', ['action' => 'database']), __('Next'), ['class' => 'button right radius']); ?>
  3.     <div class="clear"></div>
  4.    <?PHP else : ?>

Как на меня не очень красиво...
Куда уходит ссылка, я считаю должен решить контролер; заголовок, 50/50, но все-же лучше снова контролер. Ну а класс ссылки, это уже 100% отображение.
Получается что-то типа
PHP:
скопировать код в буфер обмена
  1.    <?PHP if ($test) : ?>
  2.           <?= HTML::anchor($href, $title, ['class' => 'button right radius']); ?>
  3.     <div class="clear"></div>
  4.    <?PHP else : ?>
Тоже не очень...
И перевести отображения на шаблонизатор будет не очень просто с таким подходом.
Что можете посоветовать по данному вопросу?
 
 Top
Мелкий Супермодератор
Отправлено: 26 Марта, 2014 - 20:59:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ссылки не имеют отношения ни к данным ни к логике, а самое прямое к представлению => я считаю первый вариант уместным.

А вот с классом HTML, заявленный как хелпер, я не согласен. Наоборот, усложняет и запутывает код вёрстки там, где это совершенно не окупается.


-----
PostgreSQL DBA
 
 Top
ekkl
Отправлено: 26 Марта, 2014 - 21:18:02
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Окт. 2013  


Помог: 0 раз(а)




т.е. отображение должно решить куда уходит ссылка?
А обработчик формы кто должен определить?
HTML это стандартный хелпер Kohana...
 
 Top
ekkl
Отправлено: 22 Апреля, 2014 - 12:38:56
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Окт. 2013  


Помог: 0 раз(а)




Еще один вопрос из этой оперы. Для создания формы написал собственный класс. Форма создается примерно так
PHP:
скопировать код в буфер обмена
  1. $form = Spform::factory(Request::initial()->uri())
  2.                 ->session('register')
  3.                 ->text('name')->icon('torso')
  4.                 ->email('email')->icon('mail')
  5.                 ->password('pass')->icon('unlock')->icon('lock', true)
  6.                 ->password('passconf')->icon('dislike')->icon('like', true)
  7.                 ->submit(__('registration'));

Меня смущает то, что в контроллере приходится указывать значок для поля. На самом деле значок это класс для некоторого элемента перед элементом управления формы.
CODE (html):
скопировать код в буфер обмена
  1. <div class="input-wraper">
  2.     <div class="row">
  3.         <div class="large-offset-1 large-11>">
  4.             <?= Form::label($id, $title); ?>
  5.         </div>
  6.     </div>
  7.     <div class="row collapse">
  8.             <div class="large-1 columns">
  9.             <span class="prefix <?= $icon ?>" style="font-size: 140%"></span>
  10.         </div>
  11.         <div class="large-6 columns">
  12.             <?= $field ?>
  13.             <small class="error"><?= $abide_msg ?></small>
  14.         </div>
  15.         <div class="large-5 columns" data-input-error="<?= $name ?>">
  16.         </div>   
  17.     </div>
  18. </div>

Например, я хочу поместить перед полем значок "user" В принципе, это решать отображению. Но так как отображения формы у меня как такового нет, прописать в отображении я не могу-то. На кого лучше переложить это?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB