1

Joomla1.5および2.5で正常に動作するシャウトボックスを開発しました。XMLのバージョンと他のいくつかのビットnボブを変更することで、Joomla3.0と互換性を持たせています。

shoutboxモジュールが割り当てられているページを読み込もうとすると、次のエラーメッセージが表示されます。

Notice: Trying to get property of non-object in C:\wamp\www\XXX\libraries\legacy\module\helper.php on line 150

Notice: Undefined property: stdClass::$content in C:\wamp\www\XXX\templates\system\html\modules.php on line 17

問題の原因となっている1行に絞り込みました。これは、次のとおりです。

$rows = $db->loadObjectList();

この行は、シャウトを取得するための次の関数からのものです。

function getShouts($number, $timezone, $message) {
    global $mainframe;
    $shouts = array();
    $db =& JFactory::getDBO();
    $query = 'SELECT * FROM #__shoutbox ORDER BY id DESC';
    $db->setQuery($query , 0 , $number);
    $rows = $db->loadObjectList();
    $i=0;
    $timezone=$timezone*60*60;
    foreach ( $rows as $row ) {
        $shouts[$i]->id = $row->id;
        $shouts[$i]->name = $row->name;
        $adjustedtime = strtotime($row->when) + $timezone;
        $shouts[$i]->when = date( 'Y-m-d H:i:s', $adjustedtime);
        $shouts[$i]->ip = $row->ip;
        $shouts[$i]->msg = $row->msg;
        $i++;
    }
    return $shouts;
}

以前のJoomlaバージョンではモジュールが完全に機能するため、これら2つのエラーが発生する理由は正直わかりません。さまざまな方法を使用して叫び声を上げようとしましたが、何も機能しませんでした。

なぜこれが起こっているのかについて誰かが何か考えを持っていて、解決策を持っていますか?

4

1 に答える 1

2

2.5でどのように機能したかはわかりませんが、 http: //www.theartofjoomla.com/home/9-developer/135-database-upgrades-in-joomla-16.html $ query =$db-が必要です。 > getQuery(true);

また、&here $ db =&JFactory :: getDBO();を使用しないでください。オブジェクトは常に参照によって渡されるためです。

于 2012-10-23T17:15:34.430 に答える