我想獲取未分配給當前頁面的模塊的參數。幫助程序類JModuleHelper具有getModule方法,但在此定義:http://docs.joomla.org/JModuleHelper/getModule,模塊必須分配給當前菜單項或所有菜單項。獲取未分配給當前頁面的模塊的Joomla 2.5模塊參數
很明顯,我可以進入數據庫並自己提取參數,但我想用一個整潔的Joomla方式來完成。
我想要做的是編寫一個庫,但是庫需要一些參數化和它自己的數據庫表(這是庫不能做的兩件事),所以我試圖用一個模塊填補空白。我需要從庫代碼(可以從站點上的任何頁面調用)訪問模塊參數。
感謝所有幫助
我已經有解決的辦法是將下面的代碼添加到我的圖書館:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('m.params')
->from('#__modules AS m')
->where('m.module=' . $db->quote('mod_my_module_name'));
$db->setQuery($query);
$module = $db->loadObject();
$module_params = new JRegistry();
$module_params->loadString($module->params);
我還沒有加入這個作爲一個答案因爲我認爲應該有一個更好的解決方案,它不直接查詢核心數據庫。不過,我認爲以上是目前最好的解決方案。
更新
根據答案對的Joomla這個問題!開發人員小組我實施了一個庫/插件解決方案。插件可具有可利用代碼的任何地方被拉到參數:
$plugin = JPluginHelper::getPlugin('plugin_type', 'plugin_name');
$parameteres = new JRegistry($plugin->params);
$param =$parameteres->get('parameter');
過度模塊插件的優點是,有給插件分配給所有項目的ID,這是他們與模塊沒有要求。
我越看越它,我越有信心,我沒有優雅的解決方案,我的原始問題,獲取模塊的參數未分配給當前項目ID。所以,如果你發現這個問題,因爲你想做類似的事情,那麼我會推薦我的解決方案或cppl的解決方案下面。兩者都可以工作,並且可能沒有太多選擇它們
你可能想通過分配模塊的所有菜單項,但是把它放在不模板中存在的位置,以規避問題。然後getModule會找到它,我想。如果你有時需要顯示它,雖然這將是一個麻煩。 – 2013-05-04 21:15:22