Несколько абстрактно-прикладной вопрос. Есть страница, на ней вводятся: 1)- регистрационные данные; 2)- после их ввода проверяется полнота ввода данных. Если чего не хватает- сообщение с просьбой вернуться. 3)- Если все ок- сообщение что профиль добавлен. Вопрос: к расположить это все в шаблоне (я имею ввиду 3 варианта формы): сделать разные шаблоны или вообще вынести в контроллер или есть еще какой-нибудь способ.
отдельный шаблон, а первые - в один. Тексты ошибок могут сразу присутствовать в форме, но быть невидимыми. При этом видимыми их может делать javascript.
Во первых, зачем это предлагать вернуться и ввести корректные данные, выведете сразу форму регистрации и "подсветите" поля в которых ошибки, т.е. есть 3 варианта развития событий - форма регистрации (первый раз зашел или ввел ошибочные данные), все введено верно - сообщение об успехе, возникла какая то ошибка (база отказалась принимать такого пользователя), все, ну или еще возможно на случай если запрещена (временно отключена) регистрация. Далее, у тебя в классе view есть стандартны метод который подключает основной шаблон + шаблон по ситуации (например: шаблон страницы + форма регистрации), я бы забацал еще один такой метод, который подключает основной шаблон + за место шаблона по ситуации выводит сообщение, и как раз бы выводит сообщение об успехе / ошибке через данный метод. Хотя это немного подкашивает принцип MVC, т.к. по логике текст в случае если ты его захочешь подправить ты будешь искать во view, а он будет в контроллере.
Примерно так и делаю. Но тут возникли проблемы В странице с регистрационной формой хочу добавить сообщение если чего не хватает в заполненных полях. Но возникает вопрос: получается данные я буду методом post передавать на туже страницу, если чего не хватает - добавится надпись. Но если все ок- [1] делать перенаправление на другую страницу через headers? [2] А у всех ли стработает перенаправление, вроде в аутпосте есть возможность блокировки редиректа? Или например если вообще все в одной странице- то рег.форму не всегда нужно видеть- [3] получается один шаблон невозможно сделать? [4] Я так понимаю, контроллер должен еще определять какой шаблон грузить? Добавлено спустя 1 минуту 41 секунду: [5] вместо шаблона другой шабон, так?
Зачем выдавать страницу с одной фразой "У вас не все заполнено, вернитесь и дозаполните", не проще туже фразу вставить в сам шаблон регистрации и выводить ее в случае если что то не заполнено, так же выводить что конкретно + выводить уже заполненные данные, что бы пользователю не приходилось их заполнять повторно, как так: Код (PHP): <input type="text" name="login" id="login" <?php echo( empty($_POST['login']) ? '' : "value=\"{$_POST['login']}\"" ); ?> /> 1. зачем перенаправление и куда, на той же странице за место формы регистрации сообщение об успехе. 2. в данном случае можно и без перенаправления обойтись. 3. есть 2 типа шаблонов, основной, шаблон страницы (ну или сайта) и второй, это часть страницы, в данном случае форма регистрации. 4. По большому счету да. Добавлено спустя 4 минуты 5 секунд: https://yadi.sk/d/gqhcFS30WCCyF ), в том числе и есть регистрация, вроде как там все более менее написано нормально. Скачай, посмотри. Добавлено спустя 7 минут 48 секунд: только как видишь допустим view/register_error.php содержит всего одну строчку текста, возникает вопрос, зачем плодить файлы и сразу на ум приходит добавить в класс view (core/view.php) еще один метод: Код (PHP): public function load_short_text($short_text, $tpl_view, $data = NULL) { include (DIR."/view/{$tpl_view}.php"); } а в view/tpl.php написать так: Код (PHP): if ( empty($short_text) ) { include ( DIR."/view/{$content_view}.php" ); } else { echo $short_text; } Добавлено спустя 2 минуты 14 секунд: и если допустим надо сообщить что пользователь успешно зарегистрирован я просто делаю так: Код (PHP): $this->view->load_short_text('Вы успешно зарегистрировались!', 'tpl');