2011-01-08 33 views
1

嗨,我正在尋找一個解決方案來優先考慮File-B over File-A。讓我解釋。如何將文件導入優先於其他文件

我正在運行Joomla和我的模板是在所有導入和加入主要index.php文件的塊。

讓我們說,我有2個文件夾FOLDER-AFOLDER-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到的Filder稱爲FOLDER-B,並採用相應的修改。

所以,我在找的是哪些檢查FOLDER-B第一,如果與它同名的文件的副本作爲FOLDER-A存在,那麼它必須加載,否則它應該加載功能來自FOLDER-A的常規文件。

回答

1

像:

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'); 
    } 
} 

+0

@Madas非常感謝代碼。上帝祝福你。 – 2011-01-08 16:11:44

1
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; 
     } 
    } 

} 
+0

你包括他們兩個,需要休息一下; – 2011-01-08 14:43:10

相關問題