Попытаюсь сформулировать простым языком...
Есть у меня на сайте модули. Модуль users, articles и т.д...
Есть модуль content, который должен выводить на страницу результат работы других модулей. Ну может content это даже не модуль, а некий компонент - назовем так его.
Допустим есть роутер, который не важно каким способом, но пинает модули и они распознают в uri свои параметры.
Так вот, например модуль users распознал строку типа site/users/register
Модуль думает, ага - надо выполнить скрипт регистрации. Он его выполняет и говорит компоненту content - меня значит зовут модуль users, покажи ка на сайте форму регистрации - register_form.php
Компонент content должен взять register_form.php и загрузить ее в область контента.
Так вот я не могу реализовать эту передачу - от модуля к компоненту.
То есть смысл таков - модули выполняют свою работу, а результат должны передавать компоненту content. Как это сделать?
1. Hapson - 15 Августа, 2013 - 21:34:21 - перейти к сообщению
2. Саныч - 15 Августа, 2013 - 21:57:24 - перейти к сообщению
Так и сделайте. Сделайте в content метод, ну скажем setPage, который будет принимать один параметр - ваш register_form.php. В модуле вызываете этот метод и говорите ему, покажи register_form.php. А уже внутри вашего content нужно организовать, чтобы он нашел этот файл и сделал все что нужно. А также предусмотреть, если не был задан файл, либо задан неверный, то либо исключение бросить, либо какой-то файл по-умолчанию использовать, вобщем что-то сделать.
Вот я себе это как-то так представляю.
Вот я себе это как-то так представляю.
3. DelphinPRO - 15 Августа, 2013 - 22:40:32 - перейти к сообщению
ваш компонент "content" по описанию сильно смахивает на вьюху. Т.е. генерирует страницу и отдает пользователю. Что нужно вьюхе для генерации страницы?
1. Шаблон
2. Данные
Если вьюха сделана классом, можно сделать пару методов для указания шаблона и передачи данных. Если это просто функция - передавайте в параметрах.
1. Шаблон
2. Данные
Если вьюха сделана классом, можно сделать пару методов для указания шаблона и передачи данных. Если это просто функция - передавайте в параметрах.
4. Hapson - 16 Августа, 2013 - 15:12:51 - перейти к сообщению
Саныч пишет:
Так и сделайте. Сделайте в content метод, ну скажем setPage, который будет принимать один параметр - ваш register_form.php. В модуле вызываете этот метод и говорите ему, покажи register_form.php. А уже внутри вашего content нужно организовать, чтобы он нашел этот файл и сделал все что нужно. А также предусмотреть, если не был задан файл, либо задан неверный, то либо исключение бросить, либо какой-то файл по-умолчанию использовать, вобщем что-то сделать.
Вот я себе это как-то так представляю.
Вот я себе это как-то так представляю.
Так-то верно. Я тоже так думаю.
Модуль articles распознал свои параметры в uri, выполнил то, что от него требовалось и передает компоненту content какой-то вывод - форму, последние 5 статей или одну статью...
Но вот как реализовать сам компонент content я не соображу. Чтобы в шаблоне было только например
То есть, чтобы в шаблоне был один единственный вызов какого-то метода компонента content.
(Добавление)
DelphinPRO пишет:
ваш компонент "content" по описанию сильно смахивает на вьюху. Т.е. генерирует страницу и отдает пользователю. Что нужно вьюхе для генерации страницы?
1. Шаблон
2. Данные
Если вьюха сделана классом, можно сделать пару методов для указания шаблона и передачи данных. Если это просто функция - передавайте в параметрах.
1. Шаблон
2. Данные
Если вьюха сделана классом, можно сделать пару методов для указания шаблона и передачи данных. Если это просто функция - передавайте в параметрах.
Да нет, не совсем так. Вьюхи есть в самих модулях. Там например форма регистрации, форма авторизации, форма добавления статьи, вывод статей и т.д.
А вот компонент content должен быть неким посредником между модулями и областью контента
(Добавление)
PS
у меня получалось сделать такое взаимодействие, но вот выводить именно в нужном div не получается