web-dev-qa-db-ja.com

多言語ウェブサイトでの記事出力

Joomla 2.5多言語ウェブサイト(ua、ru、en)​​を持っています。

記事の出力を担当する機能を変更したい。この関数は、コンテンツ(db列introtextテーブル_content)をタグ<ua>/<ru>/<en>でトリミングし、記事のその部分のみを出力する必要があります。記事のその部分は、英語の場合は<en></en>、ウクライナ語の場合は<ua></ua>、ロシア語の場合は<ru></ru>で囲まれています。そう:

結果の記事は次のようになります。

<ua>bla blah</ua><ru>ololo lorem ipsum</ru><en>hello world!</en>

次に、関数は$_SERVER['REQUEST_URI']をチェックし、$lang変数に言語を入力する必要があります。

その後、関数は、<$lang></$lang>タグで囲まれているものを除いて、introtext列からすべてのコードを削除する必要があります。

記事出力の機能がどこにあるかを見つけるのを手伝ってくれませんか?

4
Alukret

" Easy Language "と呼ばれる拡張機能を確認してください。私はそれを自分で試したことはありませんが、説明によると、それはあなたが望んでいることとまったく同じです(タグが少し異なることを除いて)。あなたの場合、あなたの記事は次のようになります:

{lang ua}bla blah{/lang}
{lang ru}ololo lorem ipsum{/lang}
{lang en}hello world!{/lang}

記事の出力をオーバーライドする場合は、オーバーライドを作成できます。

ファイルをコピーJOOMLAROOT\components\com_content\views\article\tmpl\default.phpから\templates\YOURTEMPLATE\html\com_content\article\default.phpし、必要に応じてファイルを編集します。

3
johanpw

ありがとう、ヨハンプ!
次のコードは私の仕事を解決しました:

$lang = substr($_SERVER['REQUEST_URI'],1,2); echo substr($this->item->text, strpos($this->item->text,'{'.$lang.'}')+4, strpos($this->item->text,'{/'.$lang.'}') - strpos($this->item->text,'{'.$lang.'}')-4);

...の代わりに:
echo $this->item->text;

追伸将来的には、いくつかのプラグインを作成することを約束します。

2
Alukret

これには コンテンツプラグインを開発する が必要であり、必要に応じて onContentPrepare イベントを使用して出力を変更する必要があるようです。

0
Dmitry Rekun