2013-11-22 77 views
1

我有一個Joomla網站,我有一個自定義模塊與mod_myModuleName.php和mod_myModuleName.xml文件和一個文件夾,其中有幾個PHP腳本添加特殊功能到我的模塊。文件夾中有一個config.php文件,該文件包含一個關聯數組,其中包含變量及其值的硬編碼。該模塊工作得很好。Joomla 3!模塊參數

我想要的是爲數組中的變量的值提供管理員區域,以便我可以將值放入管理員面板並在config.php中獲取它們的值。在我的mod_myModuleName.php中,我使用了<?php echo $params->get('param')?>,它的功能就像一個魅力。

但是,當我嘗試在config.php中使用相同的技術時,它會破壞我的代碼。我試圖獲取mod_myModuleName.php中的值,然後將其包含在config.php中並使用變量,但它也不起作用。我沒有太多的PHP經驗,不明白可能是什麼原因。

它有時會給我一個非對象的錯誤,我想它必須是面向對象的PHP連接的東西,我是對嗎?如果有的話,是否有辦法克服這種方式沒有面向對象或如何解決我的問題?

回答

1

問題出在您使用config.php的方式。

當您的模塊入口點文件mod_myModuleName.php由Joomla加載時,$params對象在該上下文中已經可用,您需要將其提供給腳本。

如果你看的東西像mod_articles_latest模塊中,你會發現,輔助類是包含在這一行:

require_once __DIR__ . '/helper.php'; 

然後輔助類是有它與$params傳遞給它稱爲靜態getList()方法,使$params可用來上課情境:

$list = ModArticlesLatestHelper::getList($params); 

裏面的輔助類ModArticlesLatestHelper你會發現getList()預計$params在傳遞。

public static function getList(&$params) 
{ 
... 
} 

我會強烈建議閱讀的Developers PortalModules section物品上Joomla Doc's

嘗試「創建簡單模塊」文章。