Загрузка модуля в шаблон страницы


Я пытаюсь создать веб-приложение (КМВ) как часть моего исследовательского проекта, и я использую ниже код, чтобы загрузить модули в разделе. Пожалуйста, ознакомьтесь с настоящим Кодексом.

public function LoadModule($module,$position){

    if(file_exists('modules/'.$module.'.tpl'))
    {
        //todo: might have to get a better thing for this !
        $mod = 'modules/'.$module.'.tpl';
        ob_start();
        include($mod);
        $mod = ob_get_clean();

        $this->html = str_replace('__{'.$position.'}__', $mod ,$this->html); 
    }
    else{
        if(function_exists('LOGIT')){

            LOGIT('$module - module not found.');
        }
        else {
            $this->html = str_replace('__{'.$position.'}__', "$module Modlule not found" ,$this->html);
        }
    }
}


275
1
задан 24 мая 2011 в 01:05 Источник Поделиться
Комментарии
1 ответ

Я не знаю, если это вставить-проблема, но вы должны намерений твоего кода ;)

Вы создаете файл-путь дважды. Вы должны двигаться, что строки:

$mod = 'modules/'.$module.'.tpl';

К началу функции (и дать ему имя получше):

public function LoadModule($module,$position)
{

$absTemplatePath = 'modules/'.$module.'.tpl';
if(file_exists($absTemplatePath ))
{

Эту Линию:

LOGIT('$module - module not found.');

должно быть (еще $модуль не будет заменен):

LOGIT("$module - module not found");

Если шаблон файл не содержит PHP-код, вы должны использовать функции file_get_contents вместо ob_start, включают, ob_get_clean (производительность). Если у вас есть php-код в шаблонах, вы можете взглянуть на Зенд-фреймворк, то Zend_View.

2
ответ дан 24 мая 2011 в 03:05 Источник Поделиться