从外部脚本访问Joomla 2.5以获取id的文章

时间:2013-02-23 15:39:34

标签: php sql joomla article

我喜欢阅读Joomla 2.5中的id文章。 因为我不在框架内,所以我首先要包含它。 我还发现了一些样本如何通过id获取文章,但它失败了...... 这是我正在尝试的样本:

define( '_JEXEC', 1 );
define( '_VALID_MOS', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__)));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
echo JPATH_BASE .DS.'includes'.DS.'framework.php';
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
echo  $mainframe->getCfg('sitename');

$articleId = JRequest::getInt('Itemid');
$db =& JFactory::getDBO();

$sql = "SELECT fulltext FROM #__content WHERE id = 260"; //.intval($articleId);
$db->setQuery($sql);
$fullArticle = $db->loadResult();

文章ID 260可用,但它永远返回null ...

当我跟踪它时,loadResult()中的$ cursor是每个null:

public function loadResult()
{
    // Initialise variables.
    $ret = null;

    // Execute the query and get the result set cursor.
    if (!($cursor = $this->execute()))
    {
        return null;
    }
     ...

有人可以帮忙吗?

由于 安德烈

2 个答案:

答案 0 :(得分:3)

您的脚本中有一些您不需要的东西,我已将其更改为Joomla 2.5编码标准:

define('_JEXEC', 1);
define('JPATH_BASE', realpath(dirname(__FILE__)));
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );

$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('introtext')
 ->from('#__content')
 ->where('id = 260');
$db->setQuery($query);

$fullArticle = $db->loadResult();

echo $fullArticle;

希望这有帮助

答案 1 :(得分:0)

尝试这个SQL查询,现在应该可以使用了!

$sql  = 'SELECT `fulltext` FROM `#__content` WHERE `id` = 260';

Lodder所说的完全相同,只是比你的查询结构更好。

因此,如果适合您,您可以使用该样式进行编码。在他的编码方式中,它将成为:

$sql = $db->getQuery(true);
$sql->select('fulltext')
 ->from('#__content')
 ->where('id = 260');
$db->setQuery($sql);

这种方式易于阅读和修改,不是吗? :)

此外,您可以从`introtext` 中获取内容,因为`fulltext` 有时会为空。