Как установить приоритет импорта файла над другим файлом - PullRequest
1 голос
/ 08 января 2011

Привет! Я ищу решение, чтобы отдать приоритет File-B над File-A.Позвольте мне объяснить.

Я использую Joomla, и мой шаблон находится в блоках, которые все импортированы и объединены в основном файле index.php.

Допустим, у меня есть 2 папки FOLDER-A и FOLDER-B

FOLDER-A СОДЕРЖАНИЕ:

head.php
header.php
mainbody.php
footer.php

Я использую следующую функцию, чтобы получить их в мой index.php файл:

function getBlock($filename){
require_once(YOURBASEPATH.DS.'FOLDER-A'.DS.$filename.'.php');
}

, и я называю их как:

<?php className::getBlock('head') ?>

<?php className::getBlock('header') ?>

<?php className::getBlock('mainbody') ?>

<?php className::getBlock('footer') ?>

Теперь яЯ хочу создать опцию изменения этих основных файлов, не нарушая оригинал.

Поэтому, если кто-то хочет внести изменения в основной текст, он копирует файл mainbody.php в файл под названием FOLDER-B и включает в себя изменения.

Итак, я ищу функцию, которая сначала проверяет FOLDER-B и проверяет, есть ли файл с тем же именем, что и в FOLDER-A существует, тогда он должен загрузить, иначе он должен загрузить обычный файл из FOLDER-A .

Ответы [ 2 ]

1 голос
/ 08 января 2011
function getBlock($filename){

    $folders = array(
        YOURBASEPATH.DS.'FOLDER-B',
        YOURBASEPATH.DS.'FOLDER-A',
    );

    foreach ($folders as $folder) {
        $file = $folder.DS.$filename.'.php';
        if ( file_exists($file) ) {
            require_once ($file);
            break;
        }
    }

}
1 голос
/ 08 января 2011

Как:

function getBlock($filename){
  $fileB = YOURBASEPATH.DS.'FOLDER-B'.DS.$filename.'.php';
  if (file_exists($fileB)) {
    require_once($fileB); 
  } else {
    require_once(YOURBASEPATH.DS.'FOLDER-A'.DS.$filename.'.php'); 
  }
} 

?

...