Я буду создавать CMS для моего окончательного проекта курса веб-разработки, и мой учитель бросил мне вызов, создавая его в системе MVC, и сейчас я буду использовать CodeIgniter.
Поэтому я хотел бы знать, как вы организуете структуру файлов / папок.
Я буду использовать простую систему шаблонов:
- На данный момент у меня есть файл конфигурации templates.php, который загружается автоматически и содержит имя выбранного шаблона и абсолютный путь к нему.
- Папка шаблонов находится внутри папки представлений (это самый правильный способ сделать это?)
- Прямо сейчас у меня возникли некоторые проблемы с доступом к файлам .css через файлы в представлении, и из того, что я прочитал, люди обычно помещают все эти файлы за пределы папки приложения.
Как ты обычно это делаешь? И, что касается того, что я строю, какие советы вы можете мне дать?
Разве представления не должны содержать весь материал из шаблонов? (включая CSS внутри папки шаблонов)
Спасибо.
(я использую Code Ignitor 2.1.0)
EDIT:
Прямо сейчас, после структурирования всех файлов и папок, я попал в дилемму. Я добавил следующее в 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" />
Но теперь я пытался получить заголовок, сохраненный в конфигурации, но я не могу этого сделать, потому что мне нужно, чтобы все эти переменные были в другом файле 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>
Следовательно, мне нужно иметь обе конфигурации, чтобы они работали на моем сайте? Это действительно не имеет особого смысла для меня ...