?

Log in

Идеологически правильно - куда? :) - Codeigniter [entries|archive|friends|userinfo]
Русское сообщество пользователей CodeIgniter

[ website | проект CodeIgniter ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| репозитарий проектов wiki ]

Идеологически правильно - куда? :) [Aug. 14th, 2009|10:10 pm]
Русское сообщество пользователей CodeIgniter

ru_codeigniter

[_bublik_]
Допустим имеется проект небольшого новостного сайта.

На заглавной странице, кроме самих новостей есть "Погода", "Курсы валют" и "Голосовалка".
На остальных страниц тоже хочется видеть эти части.

Откуда идеологически правильно будет их подключать?

Писать в каждый контроллер что-то типа:

load->model('weather_model');
		$this->load->model('money_model');
		$this->load->model('vote_model');
                .......
		$this->load->view('header',$data);
	}
	
	function index()
        {
               .....
	}
}

?>



мне кажется неправильно.
LinkReply

Comments:
[User Picture]From: sontar
2009-08-15 06:46 am (UTC)
один хрен в контроллере придётся вызывать функцию для вызова хелпера. но главное то, что блок на странице представляет собой совокупность модели/метода и отображения, так что хелпером не обойдёшься. Причём этот метод должен иметь возможность получить данные из uri + произвольные дополнительные параметры.

Я представляю удобной такую схему:
Элементрная единица: модель/метод + отображение. Метод получает параметры и выдаёт данные (массив), эти данные совмещаются с отображением и получается на выходе HTML-документ или часть документа (строка). В этом документе может быть ссылка на такую же единицу - происходит вызов дочерней совокупности модели/метода + отображения, которая возвращает такую же часть HTML-документа (контейнерный блок с содержимым), и эта часть вставляется в родительский HTML-документ в соответствующем месте.
И так далее. Можно делать многоуровневый вызов, но на практике достаточно одного уровня.
Эта схема избавит нас от копания в контроллере. По сути контроллер будет только один, а вся задача программиста будет сводиться к написанию методов/отображений и подключение их в конфигурации.
(Reply) (Parent) (Thread)
[User Picture]From: drumrock
2009-08-15 07:26 am (UTC)
А такая элементарная единица откуда вызывается? Из контроллера?

Если в сгенерированной строке есь ссылка на такую же элементарную единицу, то получается по сути вставка "модель/метод + отображение" в отображение. Или я что-то упустил?
(Reply) (Parent) (Thread)
[User Picture]From: sontar
2009-08-15 08:08 am (UTC)
Корневая - из контроллера, остальные вызываются из корневой. Древовидная структура.

> получается по сути вставка "модель/метод + отображение" в отображение
Да, каждая комбинация "модель/метод + отображение" после обработки преобразуется в HTML-код, который может содержать или часть страницы (< div>...</div>) или страницу целиком (включая < html>< head>...). Получается вставка HTML-кода в HTML-код.
(Reply) (Parent) (Thread)