Как организовать структуру шаблонов в CodeIgniter?

Я буду строить CMS для моего финального проекта веб-разработки, и мне был задан вопрос о том, что мой учитель создал его в системе MVC, и пока я буду использовать CodeIgniter.

Поэтому я хотел бы знать, как организовать структуру файлов / папок.

Я буду использовать простую систему шаблонов: – На данный момент у меня есть файл конфигурации templates.php, который автоматически загружается и говорит имя выбранного шаблона, и абсолютный путь к нему. – Папка шаблонов находится внутри папки представлений (это самый правильный способ сделать это?) – Сейчас у меня есть некоторые проблемы с доступом к файлам .css через файлы в представлении и, из того, что я читал людям обычно помещают все эти файлы вне папки приложения.

Как вы обычно это делаете? И, видя, что я строю, какие советы вы можете мне дать? Должны ли представления не содержать все материалы из шаблонов? (включая CSS внутри папки шаблонов)

Благодарю.

(я использую Code Ignitor 2.1.0)

РЕДАКТИРОВАТЬ:

Прямо сейчас, после структурирования всех файлов и папок, у меня есть дилемма. Я добавил следующее в constants.php

<!-- language: lang-php --> $config['selected_template'] = 'oceania'; $config['template_abs_path'] = 'assets/templates/'.$config['selected_template']; define('IMAGES_PATH', $config['template_abs_path'].'/img/' ); define('CSS_PATH', $config['template_abs_path'].'/css/' ); define('SCRIPTS_PATH', $config['template_abs_path'].'/js/' ); 

(если я не определил selected_template и template_abs_path, я мог бы играть с ними в константах)

И я включаю их в HTML следующим образом:

 <!-- language: lang-html --> <link rel="stylesheet" type="text/css" href="<?=CSS_PATH;?>style.css" /> 

Но теперь я пытался получить заголовок, хранящийся в config тоже, но я не могу этого сделать, потому что мне нужно, чтобы все эти переменные были в другом файле templates.php, который я создал ранее, иначе он не узнает мои переменные. (У меня есть автозагрузка шаблонов)

templates.php

 <!-- language: lang-php --> <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); $config['title'] = 'Title of the website'; $config['selected_template'] = 'oceania'; $config['template_abs_path'] = 'templates/'.$config['selected_template']; 

header.php

 <div id="logo"> <h1><a href="#"><?=$this->config->item('title');?></a></h1> </div> 

Поэтому нужно ли мне иметь оба конфигуратора, чтобы он работал на моем веб-сайте? Это действительно не имеет большого значения для меня …

Хорошая структура файлов / папок будет ниже:

 website_folder/ –––– application/ –––––––– config/ –––––––––––– autoload.php –––––––––––– config.php –––––––––––– ... –––––––– controllers/ –––––––––––– examples.php –––––––––––– index.html –––––––––––– welcome.php –––––––– ... –––––––– views/ ––––––––---- templates/ ––––––––-------- backend.php ––––––––-------- frontend.php –––––––––––– .... –––––––––––– example.php –––––––––––– index.html –––––––––––– welcome_message.php –––– assets/ –––––––– css/ –––––––– js/ –––––––– images/ –––––––– templates/ ––––––––---- frontend/ ––––––––-------- css/ ––––––––-------- js/ ––––––––-------- images/ ––––––––---- backend/ ––––––––-------- css/ ––––––––-------- js/ ––––––––-------- images/ –––––––– uploads/ –––––––– index.html –––– system/ –––– user_guide/ –––– index.php –––– license.txt 

Это всего лишь предложение. Таким образом, у вас будут свои шаблонные представления в представлениях / шаблонах и ваших файлах css / js по активам / шаблонам /

Я полностью согласен с структурой папок веб-johnny, но, на мой взгляд, он пропустил одну вещь, определяющую все ваши пути к ресурсам в файле ./application/config/constants.php, например

 define('IMAGES_PATH', your_absolute_path_of_images_folder); define('CSS_PATH', your_absolute_path_of_css_folder); define('SCRIPTS_PATH', your_absolute_path_of_scripts_folder); 

и т. д. … используйте эти константы во всем приложении, поэтому таким образом, если вам когда-либо понадобится изменить структуру папок файлов, вам просто нужно изменить значения этих констант.

Проверьте модульные расширения HMVC , это действительно полезно, когда ваш проект начинает расти. Модульные расширения – HMVC делает модульную структуру CodeIgniter PHP модульной. Модули представляют собой группы независимых компонентов (как правило, контроллер, модель и представление), расположенных в одном подкаталоге приложения, которые можно отбросить в другие приложения CodeIgniter.