Нет, неправильно.
- get_functions.php ужасное название, винегрет внутри. все эти функции разложить по своим модулям.
- inc/main_tpl.php подключается слишком рано. сначала надо закончить работу с данными, а только потом начинать вывод. Это азбука.
- 'modules/' . $_GET['section'] . '/index.php' инклюдится слишком поздно. модуль надо инклюдить ДО начала вывода. При этом
основной шаблон должен вызываться не в индексе, а в модуле. модуль решает, бует ли он что-то выводить, если да - то присваивает переменной имя своего шаблона и вызывает основной шаблон, который в себе инклюдит шаблон модуля. Подробнее:
phpfaq.ru/tech/tpl
- в include 'modules/' . $_GET['section'] . '/index.php' тебе напихают такого, что на ежика станешь похож. имя модуля надо обязательно валидировать. в идеале по белому списку.
В остальном нормально, только обычно все кроме индекса кладут выше корня.