0

私は Web サイトに Joomla 2.5 を使用していますが、ホームページは外部の php ページであり、特定の joomla 記事とメニュー項目からデータを取得する必要があります。

  1. モジュールを呼び出すか、データベースに接続して必要なものを取得する最善の方法は何ですか?
  2. Joomla のクラスや関数などを呼び出して結果を取得するにはどうすればよいですか?

私がすでに試したこと:

この投稿 ( Joomla Menu In External Page ) の「モジュール」ソリューションは、セッションが既に開始されていることに関するエラーを示しています。

データ取得用のコード:

define('_JEXEC', 1);
define('JPATH_BASE', dirname(__FILE__).'/../../Joomla_2.5.9' );   // should point to joomla root
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 = 1');
$db->setQuery($query);

$fullArticle = $db->loadResult();

echo $fullArticle;

このコードは、特定の記事から記事テキストを取得するのに最適です。もちろん、カテゴリや多言語コンテンツに対応したいので、それほど機能的ではありません。

問題をより良い方法で解決するために判明したものは何でも追加します。それ以上のアイデアは確かに役立ちます!

4

2 に答える 2

2

Joomla アプリケーションを初期化する必要があります。

$joomlaPath = dirname(__FILE__).'/../../Joomla_2.5.9';
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);

if (file_exists($joomlaPath . '/defines.php')) {
    include_once $joomlaPath . '/defines.php';
}

if (!defined('_JDEFINES')) {
    define('JPATH_BASE', $joomlaPath);
    require_once JPATH_BASE.'/includes/defines.php';
}

require_once JPATH_BASE.'/includes/framework.php';

// Instantiate the application.
$app = JFactory::getApplication('site');

// Initialise the application.
$app->initialise();

まず、構成済みの Joomla 環境にアクセスできます。

于 2013-04-05T13:25:14.790 に答える
1

ニブラ!あなたのコードは私のものと非常に似ています:

<?php
define( '_JEXEC', 1 );
define( 'JPATH_BASE', '/home/user7633/public_html/cms' );
define( 'DS', '/' );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
JFactory::getApplication('site')->initialise();
$user = JFactory::getUser();
echo $user->username;
?>

この方法で作成されたコードは機能しません!

PHP 5.4.36 で Joomal 3.4.1 を使用していますが、コードがたまにしか機能しません。ユーザー名が空である場合もあれば、例外である場合もあります。ログインしました!

「外部 URL」メニュー項目から PHP ファイルを呼び出しています。

于 2015-05-15T10:33:54.110 に答える