Я создаю модуль Joomla, который в конечном итоге будет извлекать данные из внешнего источника данных.Прямо сейчас, пока я учусь, я просто установил строку «Этот бит работает правильно» в позицию модуля.Однако у меня были проблемы с тем, чтобы заставить его работать правильно.Вот мой код:
mod_ucr.php:
<?php
/**
* UniversalContentRepository Module Entry Point
*
* @package UniversalContentRepository
* @subpackage Modules
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
// Include the syndicate functions only once
require_once( dirname(__FILE__).DS.'helper.php' );
$helper = new modUCRHelper();
$content = $helper->getSnippetContent();
require( JModuleHelper::getLayoutPath( 'mod_ucr' ) );
?>
mod_ucr.xml
<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
<name>Universal Content Repository</name>
<author>Brendon Dugan</author>
<version>1.5.0</version>
<description>A module to allow the insertion of UCR Snippets into a Joomla site.</description>
<files>
<filename>mod_ucr.xml</filename>
<filename module="mod_ucr">mod_ucr.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
</files>
<params>
</params>
</install>
helper.php:
<?php
class modUCRHelper
{
function __construct(){
}
public function getSnippetContent($id = 0){
$content = "This bit works correctly, ID = $id";
return $content;
}
}
?>
tmpl/default.php:
<?php // no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
echo $content;
?>
Здесь мы устанавливаем переменную $ content как выход метода getSnippetContent () вспомогательного класса.Этот метод в настоящее время:
function getSnippetContent($id = 0){
$output = "This bit works correctly";
return $output;
}
, который просто выводит строку, которую я хочу напечатать.В моем шаблоне я должен иметь возможность отображать содержимое следующим образом:
<?php // no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
echo $content;
?>
Но вместо этого модуль выводит:
"This bit works correctlyThis bit works correctly"
Если я закомментирую выражение echo, строка будетвсе еще повторяется один раз, предполагая, что само выражение return повторяет.
Я адаптировал свой код из "Hello World!"Пример расположен в документации Joomla .Есть идеи?