Как получить данные из параметра модуля в joomla

Я создаю модуль joomla 2.5, я хочу получить доступ к данным из параметра модуля, но я получаю следующую ошибку: Неустранимая ошибка: вызов функции-члена get () для не-объекта. Мой код следует:

helper.php

class modFeedGrabber { function feedurl( $params ){ return $params->get('feedUrl'); } } 

mod_feedGrabber.php

 defined( '_JEXEC' ) or die( 'Restricted access' ); $sitebase = JPATH_BASE; $doc =& JFactory::getDocument(); // Include the syndicate functions only once require_once( dirname(__FILE__).DS.'/helper.php' ); $feed = new modFeedGrabber(); $url = $feed->feedurl(); require( JModuleHelper::getLayoutPath( 'mod_feedGrabber' ) ); 

mod_feedGrabber.xml

 <?xml version="1.0" encoding="utf-8"?> <extension type="module" version="2.5.0" client="site" method="install"> <name>Scroll Feed</name> <author>Josiah Gerald</author> <version>1.0.0</version> <date>03-04-2013</date> <description>A simple feed scroller.</description> <files> <filename>mod_feedGrabber.xml</filename> <filename module="mod_feedGrabber">mod_feedGrabber.php</filename> <filename>index.html</filename> <filename>helper.php</filename> <filename>tmpl/default.php</filename> <filename>tmpl/index.html</filename> <folder>tmpl</folder> </files> <config> <fields name="params"> <fieldset name="basic"> <field name="feedUrl" type="url" size="50" label="Feed URL" description="Enter the url of the feed" /> </fieldset> </fields> </config> </extension> 

default.php

  <?php // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); ?> <div id='feed' class="<?php echo $module_sfx; ?>"><?php echo $url; ?> </div> 

Основная проблема, которую я вижу с помощью кода, заключается в том, что вы не передаете $params своей вспомогательной функции. Он должен прочитать что-то вроде этого:

 defined( '_JEXEC' ) or die( 'Restricted access' ); $sitebase = JPATH_BASE; $doc =& JFactory::getDocument(); // Include the syndicate functions only once require_once( dirname(__FILE__).DS.'/helper.php' ); $feed = new modFeedGrabber(); $url = $feed->feedurl($params); require( JModuleHelper::getLayoutPath( 'mod_feedGrabber' ) ); 

Также ваш XML недействителен, так как он пропускает закрывающие теги для тегов fieldset и fields . Он должен выглядеть так:

 <?xml version="1.0" encoding="utf-8"?> <extension type="module" version="2.5.0" client="site" method="install"> <name>Scroll Feed</name> <author>Josiah Gerald</author> <version>1.0.0</version> <date>03-04-2013</date> <description>A simple feed scroller.</description> <files> <filename>mod_feedGrabber.xml</filename> <filename module="mod_feedGrabber">mod_feedGrabber.php</filename> <filename>index.html</filename> <filename>helper.php</filename> <filename>tmpl/default.php</filename> <filename>tmpl/index.html</filename> <folder>tmpl</folder> </files> <config> <fields name="params"> <fieldset name="basic"> <field name="feedUrl" type="url" size="50" label="Feed URL" description="Enter the url of the feed" /> </fieldset> </fields> </config> </extension> 

В качестве подсказки вы можете быстро проверить, действительно ли файл XML действителен, перетащив его в окно браузера, например, ваш код, опубликованный выше, приводит к следующему:

Ошибка в XML-ошибке в Chrome