2

我喜欢阅读来自 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 是每个空值:

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

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

有人可以帮忙吗?

谢谢安德烈

4

2 回答 2

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;

希望这可以帮助

于 2013-02-23T16:41:35.843 回答
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`有时为空。

于 2013-02-23T17:11:58.973 回答