Hy,
Я пытаюсь сделать плагин для joomla для отображения данных из базы данных в статье. Проблема в том, что когда данные печатаются из базы данных, не отображаются данные, где находится тег ({myplugintag}), теперь отображаются данные над заголовком статьи.
Я помещаю тег внутри статьи, чтобы получить данные
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.plugin.plugin' );
class plgContentNamePlugin extends JPlugin
{
function PluginNamePlugin( &$subject )
{
parent::__construct( $subject );
}
function onContentPrepare( $context, &$article, $page = 0)
{
global $mainframe;
if ( JString::strpos( $article->text, '{myplugintag}' ) === false ) {
return true;
}
$article->text = preg_replace_callback('|{myplugintag}(.*){\/myplugintag}|m',function($m) { return $this->getResults($m[1]); }, $article->text);
return true;
}
function getResults($gameID)
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('*')
->from('#__component_table')
->where($db->quoteName('gameid') . ' = '. $db->quote($gameID));
$db->setQuery($query);
$result = $db->loadObjectList();
foreach ($result as $var){$playerid=$var->playerid;
print $playerid;}
}
}
заранее спасибо
Вместо того, чтобы печатать результат, вы просто возвращаете результат.
$playerid = '';
foreach ($result as $var){
$playerid .= $var->playerid;
}
return $playerid;
Причина заключается в том, что вы печатаете данные, которые он печатает перед выходом компонента.